Mục lục:

Đồng hồ báo thức Basys 3: 9 bước
Đồng hồ báo thức Basys 3: 9 bước

Video: Đồng hồ báo thức Basys 3: 9 bước

Video: Đồng hồ báo thức Basys 3: 9 bước
Video: Thanh niên lần đầu chưa có kinh nghiệm kiểu#funny #tiktok 2024, Tháng Mười
Anonim
Đồng hồ báo thức Basys 3
Đồng hồ báo thức Basys 3

Dự án của chúng tôi tạo đồng hồ báo thức bằng cách sử dụng bảng FPGA Basys 3, Arduino và bảng điều khiển loa. Người dùng có thể nhập thời gian hiện tại vào bảng bằng 11 công tắc đầu vào trên Basys 3 và khóa giá trị bằng nút giữa trên bảng. Sau đó, người dùng có thể nhập thời gian báo thức bằng cách sử dụng các công tắc tương tự nhưng nhấn nút bên trái để khóa thời gian báo thức. Nếu nhập sai thời gian, có thể nhấn nút đặt lại (nút trên cùng) và đặt giờ đồng hồ hiện tại và thời gian báo thức thành 00:00. Sau đó, người dùng có thể khởi động đồng hồ bằng công tắc ngoài cùng bên trái và bật báo thức bằng công tắc tiếp theo. Khi bật báo thức, đồng hồ báo thức sẽ phát ra âm thanh khi thời gian đồng hồ và cài đặt thời gian báo thức khớp với nhau.

Bước 1: Sơ đồ hộp đen

Sơ đồ hộp đen
Sơ đồ hộp đen
Sơ đồ hộp đen
Sơ đồ hộp đen

Chúng tôi bắt đầu dự án của mình bằng cách vẽ sơ đồ hộp đen để hình dung các đầu vào và đầu ra cần thiết trong chương trình của chúng tôi. Các đầu vào sau cho chương trình của chúng tôi, chẳng hạn như đầu vào 5 bit (Hour_in) được khởi tạo để chỉ định thời gian 24 giờ, đầu vào 6 bit (Min_in) để hiển thị lên đến 60 phút, nút đặt lại (Rst_b) để cho phép người dùng thay đổi đầu vào thời gian của chúng, đầu vào 1 bit (alm_en) tải đầu vào cảnh báo, đầu vào 1 bit (alert_sw) để tắt đồng hồ báo thức khi nó được kích hoạt, đầu vào 1 bit (e_sec) điều khiển khi bộ đếm giây sẽ chạy, đầu vào 1 bit (Led_btn) đặt thời gian hiện tại và cuối cùng là đầu vào 1 bit (clk) kiểm soát thời gian được hiển thị bởi bảng Basys 3. Các đầu ra là (alm_on) gửi tín hiệu đến Arduino, đầu ra sseg hiển thị thời gian đầu vào trên Basys 3 và đầu ra anode kiểm soát nơi đầu vào được hiển thị trên màn hình bảy đoạn.

Bước 2: Đồng hồ chậm

Đồng hồ chậm
Đồng hồ chậm

Đồng hồ chậm hoặc tệp clock_div2 tạo ra một đồng hồ có tần số là 2 hz. Nếu chúng ta đưa đồng hồ này vào bộ đếm giây của mình, giá trị giây sẽ tăng lên một giây sau mỗi giây. Đồng hồ chậm được sử dụng để tạo ra một tín hiệu đồng hồ đáng tin cậy thay đổi từ thấp đến cao một lần mỗi giây.

Bước 3: Bộ đếm

Quầy tính tiền
Quầy tính tiền
Quầy tính tiền
Quầy tính tiền

Bộ đếm thành phần (phút và giây):

Chức năng cơ bản của phút và giây là chúng là bộ đếm. Bộ đếm phút nhận đầu vào (Vin) là tín hiệu từ đầu vào (Min_in), sau đó đếm cho đến khi đạt được đầu vào mong muốn. Số giây chỉ nhận đầu vào của công tắc (e_Sec) vì nó không thể được hiển thị trên bảy phân đoạn và được tính trong nền khi công tắc ở mức cao '1'. Cả hai đều xuất giá trị ở đó đến (Qout), và sau đó nó được lưu trữ trong (dữ liệu) sẽ gửi nó đến SSEG được thực hiện trong tệp liên kết. Ngoài ra, khi phút và giây đạt đến giá trị 59, nó sẽ đặt lại và đầu ra của chúng là ‘1’ để tăng phút / giờ. Nó cũng có thể được ánh xạ với một thiết lập lại (rst_b) cho các đầu vào của chúng.

Bước 4: Giờ truy cập

Giờ truy cập
Giờ truy cập
Giờ truy cập
Giờ truy cập

Giờ bộ đếm thành phần

Tương tự, đối với bộ đếm thành phần phút và giây, thành phần giờ nhận đầu vào như (Vin), là tín hiệu từ việc liên kết đầu vào tệp (Giờ_in) và có các đầu ra được liên kết theo cách tương tự như phút và giây. Khi giá trị đếm của giờ đạt đến 24 00, nó sẽ đặt lại thành 00 00.

Bước 5: Báo thức

Báo thức
Báo thức
Báo thức
Báo thức
Báo thức
Báo thức
Báo thức
Báo thức

Tệp.vhd cảnh báo được tạo thành từ các d-flip-flops là thiết bị lưu trữ có thể lưu trữ dữ liệu kỹ thuật số. Tệp báo thức được sử dụng để lưu trữ thời gian mà báo thức sẽ được kích hoạt. Để lưu trữ dữ liệu giờ (đầu vào 5 bit) và phút (đầu vào 6 bit), chúng ta phải dập 11 d-flip-flops trong tệp báo thức của chúng tôi. Để làm điều này, trước tiên chúng ta phải nhập logic điều chỉnh hoạt động của d-flip-flops và ánh xạ các thành phần. Mỗi trong số 11 d-flip-flops sẽ lưu trữ một bit dữ liệu từ các đầu vào và cho phép dữ liệu được ánh xạ tới các đầu ra của tệp cảnh báo. Bởi vì d-flip-flops lưu trữ dữ liệu, chúng tôi có thể sử dụng dữ liệu tại thời điểm sau đó ngay cả khi các công tắc đầu vào đã được thay đổi.

Bước 6: Trình điều khiển hiển thị bảy phân đoạn phổ biến

Trình điều khiển hiển thị bảy phân đoạn phổ biến
Trình điều khiển hiển thị bảy phân đoạn phổ biến
Trình điều khiển hiển thị bảy phân đoạn phổ biến
Trình điều khiển hiển thị bảy phân đoạn phổ biến
Trình điều khiển hiển thị bảy phân đoạn phổ biến
Trình điều khiển hiển thị bảy phân đoạn phổ biến

Trình điều khiển hiển thị bảy phân đoạn phổ biến nhận các đầu vào từ đồng hồ và bộ đồng hồ và có thể xuất chúng ra màn hình hiển thị bảy phân đoạn trên bảng. Trình điều khiển có thể xuất ra hai số đếm riêng biệt trên bảng cùng một lúc. Chúng tôi đã sử dụng chức năng này để hiển thị cả giờ và phút một cách riêng biệt. Màn hình bảy phân đoạn chỉ có thể kích hoạt một số tại một thời điểm vì tệp sseg phải sử dụng ghép kênh để hiển thị tất cả các số cùng một lúc. Tín hiệu đồng hồ bảng được đưa vào sseg để giữ đúng thời gian ghép kênh. Một bộ mã hóa thập phân được mã hóa từ nhị phân sang nhị phân là cần thiết để chuyển đổi các đầu vào vào tệp thành một dạng có thể xuất ra màn hình bảy phân đoạn. Đầu ra cuối cùng của tệp sseg được ánh xạ tới màn hình bảy phân đoạn và thời gian chính xác được hiển thị trên màn hình.

Bước 7: Liên kết tệp

Liên kết tệp
Liên kết tệp
Liên kết tệp
Liên kết tệp
Liên kết tệp
Liên kết tệp

Tệp liên kết kết nối tất cả các khía cạnh khác của chương trình và ánh xạ các tín hiệu đến vị trí chính xác của chúng. Mỗi thành phần được đưa vào và khởi tạo trong tệp. Tín hiệu được sử dụng để truyền dữ liệu từ thành phần này sang thành phần khác. Ánh xạ cổng sẽ tuân theo sơ đồ hộp đen được liệt kê ở trên. Tệp liên kết cũng chứa logic chi phối khi cảnh báo được kích hoạt. Hầu hết dự án sẽ được hoàn thành vào thời điểm này. Công việc còn lại là định tuyến từng tín hiệu đến vị trí thích hợp.

Bước 8: Arduino

Arduino
Arduino
Arduino
Arduino

Arduino được sử dụng để kích hoạt loa cũng như kiểm soát âm sắc và thời lượng của nốt nhạc được phát qua loa. Arduino đọc tín hiệu kỹ thuật số từ bảng Basys 3. Khi tín hiệu này ở mức cao, arduino sẽ xuất ra tín hiệu PWM điều khiển âm báo và thời lượng của cảnh báo. Tín hiệu đầu ra từ arduino kết nối với tín hiệu đầu vào của bảng trình điều khiển loa làm tăng âm lượng của loa. Arduino thực hiện quá trình này rất nhanh lặp lại nhiều lần trong một giây.

Bước 9: Định tuyến cáp

Tuyến cáp
Tuyến cáp

Bo mạch arduino và Basys 3 phải được kết nối vật lý để chuyển tín hiệu giữa các bo mạch. Cáp đầu tiên để nối dây sẽ là từ chân nối đất của JA PMOD của Basys 3 đến chân nối đất của arduino. Tiếp theo, kết nối dây từ chân 1 của JA PMOD của Basys 3 đến chân số 7 của arduino. Tiếp theo, kết nối hai chân nối đất từ arduino với chân nối đất của trình điều khiển loa. Tiếp theo, kết nối đầu ra 3,3 V của arduino với chân Vcc của trình điều khiển loa. Tiếp theo, kết nối chân số 9 của arduino với chân Trong của trình điều khiển loa.

Đề xuất: