ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA BÁO CÁO THÍ NGHIỆM KĨ THUẬT SỐ GV Lớp L08 Đặng Thái Dương 2011031 TP Hồ Chí Minh tháng 11 năm 2021 Đề bài Thiết kế đèn giao thông trên phần mềm.
ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA BÁO CÁO THÍ NGHIỆM KĨ THUẬT SỐ GV: Lớp L08 Đặng Thái Dương 2011031 _ TP.Hồ Chí Minh tháng 11 năm 2021 Đề bài: Thiết kế đèn giao thông phần mềm PROTEUS QUARTUS với thời gian hiển thị ba đèn xanh, vàng đỏ cho Mã ID Họ Tên Xanh Vàng Đỏ PHẦN LÀM TRÊN PROTEUS -Các linh kiện sử dụng: 74LS151, 7447, NOT, AND,OR, LED ĐOẠN,74LS283, TRAFFIC LIGHT -Ta sử dụng JK-FF để đếm lên, tổng thời gian đếm 13 nên ta sử dụng flip flop để mô tả -Ứng với giá trị đếm lên có ba đèn sáng Ta có bảng sau: Q3 0 0 0 0 1 1 1 Q2 0 0 1 1 0 0 1 Q1 0 1 0 1 0 1 0 Q0 1 1 1 Giá trị thập phân 10 11 12 13 delay 2 * Đèn Xanh Biểu thức Q3’.Q2’.Q1’ + Q3’.Q2’.Q1.Q0’ + Q3’.Q2’.Q1.Q0 + Q3’.Q2.Q1’Q0’ + Q3’.Q2.Q1’.Q0 Vàng Q3’.Q2.Q1.Q0’ + Q3’.Q2.Q1.Q0 Đỏ Q3.Q2’.Q1’.Q0’ + Q3.Q2’.Q1’.Q0 + Q3.Q2’.Q1.Q0’ + Q3.Q2’.Q1.Q0 + Q3.Q2.Q1’.Q0’ *Là trạng thái không mong muốn, để 1101 trạng thái ban đầu “0000” đếm tiếp => nối (Q3.Q2.Q0)’ vào chân R flip flop * Bên trái sơ đồ đèn xanh, bên phải đèn vàng(trên) đèn đỏ (dưới) -Ta thấy, giá trị xác (thập phân) đếm bị lệch với thời gian delay đèn Vì ta phải sử dụng IC 74LS283 để cộng thêm giá trị để sau đưa vào IC 74LS47 hiển thị LED đoạn Cụ thể: +đèn xanh: cộng “0001” +đèn vàng: cộng bù “1011” +đèn đỏ: cộng bù “1001” IC 74LS283 thực chức cộng A+B với : A giá trị đếm flip flop, B số hạng phải cộng thêm để thõa yêu cầu Để cộng A với B (4 bit) ta sử dụng thêm IC 74151 dồn bit đèn (“001,010,100”) (Mỗi IC ứng với bit B)) => Khi tín hiệu đếm rơi vào đèn có giá trị IC MUX tích cực đưa vào cộng Bước cuối đưa tín hiệu thể LED PHẦN LÀM TRÊN QUARTUS -Ý tưởng: Đầu tiên ta chia thành hai process Process thứ khối “den” có đầu vào “clk” đầu ba led tượng trưng cho đèn đỏ, vàng, xanh Process thứ hai khối “decode” với đầu vào number để hiển thị kết đếm giây Dưới sơ đồ khối ý tưởng: -Chương trình mơ tả hoạt động: library ieee; use ieee.std_logic_1164.all; entity den is port(clk: in std_logic; green: out std_logic; yellow: out std_logic; red: out std_logic; digit: out std_logic_vector(6 downto 0)); led có bit end entity; architecture behavior of den is signal number: integer range to 9; led hiển thị từ đến begin den: process(clk) variable count : integer range to 9; khai báo biến đếm, số giây hiển thị variable state : integer range to 2; khai báo biến trạng thái, có ba trạng thái đỏ vàng xanh begin if clk'event and clk = '1' then clk thay đổi kích cạnh lên if count = then count ba đèn tắt hết green