I. GIỚI THIỆU:
5. THIẾT KẾ MẠCH ĐẾM BCD TỪ 000 ĐẾN 999 – HIỂN THỊ TRÊN 3 LED 7 ĐOẠN
Bài 4-13: Thiết kế mạch đếm bcd từ 000 đến 999 hiển thị trên 3 led 7 đoạn kết nối theo
phương pháp bình thường. Sử dụng nguồn xung clock tuỳ ý.
Bước 1: Vẽ sơ đồ khối của mạch:
a b c d e f g a b c d e f g a b c d e f g
Hình 4-13. Sơ đồ khối mạch đếm từ 000 đến 999.
Bước 2: Viết chương trình: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity DEM_999000 is Port ( CLR : in STD_LOGIC; CLK : in STD_LOGIC;
QDVI : out STD_LOGIC_VECTOR (6 downto 0);
QCHU : out STD_LOGIC_VECTOR (6 downto 0);
QTRA : out STD_LOGIC_VECTOR (6 downto 0));
end DEM_999000;
architecture Behavioral of DEM_999000 is
signal GMA_DVI: std_logic_vector(7 downto 0); signal GMA_CHU: std_logic_vector(7 downto 0); signal GMA_TRM: std_logic_vector(7 downto 0);
function giai_ma(x1: in std_logic_vector(3 downto 0)) return std_logic_vector is variable z1: std_logic_vector(6 downto 0);
begin case x1 is when "0000" => z1 := "1000000"; -- so 0 when "0001" => z1 := "1111001"; -- so 1 when "0010" => z1 := "0100100"; -- so 2 when "0011" => z1 := "0110000"; -- so 3 when "0100" => z1 := "0011001"; -- so 4 when "0101" => z1 := "0010010"; -- so 5 when "0110" => z1 := "0000010"; -- so 6 when "0111" => z1 := "1111000"; -- so 7 when "1000" => z1 := "0000000"; -- so 8 when "1001" => z1 := "0010000"; -- so 9
when others =>z1 := "1111111"; -- TATLED
return z1;
end giai_ma;
begin
process (CLR,CLK)
variable BCD_DVI: std_logic_vector(3 downto 0);
variable BCD_CHU: std_logic_vector(3 downto 0); variable BCD_TRA: std_logic_vector(3 downto 0);
begin
if CLR = '1' then BCD_DVI:="0000"; BCD_CHU:="0000";
BCD_TRA:="0000";
Elsif CLK= '1' and CLK'event then
BCD_DVI:=BCD_DVI+1; if BCD_DVI= "1010" then BCD_DVI:="0000"; BCD_CHU:= BCD_CHU+1; if BCD_CHU= "1010" then BCD_CHU:="0000"; BCD_TRA:= BCD_TRA+1; if BCD_TRA= "1010" then BCD_TRA:="0000"; end if; end if; end if; end if; QDVI <= giai_ma(BCD_DVI); QCHU <= giai_ma(BCD_CHU); QTRA <= giai_ma(BCD_TRA); END PROCESS; end Behavioral;
V. CÂU HỎI ÔN TẬP VÀ BÀI TẬP
Bài tập 4-1: Thiết kế flip flop RS. Bài tập 4-2: Thiết kế mạch chốt D. Bài tập 4-3: Thiết kế flip flop D.
Bài tập 4-4: Thiết kế flip flop T.
Bài tập 4-5: Thiết kế 4 flip flop D gồm 4 ngõ vào D, 4 ngõ ra Q và 4 ngõ ra QD, dùng chung
1 CLK.
Bài tập 4-6: Thiết kế 8 flip flop T gồm 8 ngõ vào T, 8 ngõ ra Q và 8 ngõ ra QD, dùng chung
CLK.
Bài tập 4-7: Thiết kế thanh ghi dịch giống như IC 74164. Bài tập 4-8: Thiết kế thanh ghi dịch giống như IC 47194.
Bài tập 4-9: Thiết kế mạch điều khiển đèn giao thông với xanh_1, vàng_1, Đỏ_1, xanh_2,
vàng_2, đỏ_2. Cho xanh sáng 15 giây, vàng sáng 5 giây và đỏ sáng 20 giây.
Bài tập 4-10: Thiết kế mạch điều khiển đèn 8 led đơn với yêu cầu như sau: điểm sáng chạy
từ phải sang trái và từ trái sang phải theo xung clock và có 1 chân cho phép E tích cực mức 0.
Bài tập 4-11: Thiết kế mạch có chức năng giống như IC 4017.
Bài tập 4-12: Thiết kế mạch có chức năng giống như IC 4017 nhưng gồm có 20 ngõ ra.
Bài tập 4-13: Thiết kế mạch có chức năng giống như IC 4017 nhưng gồm 2 con: một con đếm
hàng đơn vị và một con đếm hàng chục.
Bài tập 4-14: Thiết kế mạch đếm nhị phân 4 bit – đếm xuống.
Bài tập 4-15: Thiết kế mạch đếm nhị phân 4 bit – đếm lên, đếm xuống được điều khiển bằng
tín hiệu UD (UD = 0 thì đếm lên, UD = 1 thì đếm xuống), có một tín hiệu CLK, một tín hiệu CLR.
Bài tập 4-16: Thiết kế mạch đếm nhị phân 4 bit – đếm lên, đếm xuống được điều khiển bằng
tín hiệu UD (UD = 0 thì đếm lên, UD = 1 thì đếm xuống), có một tín hiệu CLK, một tín hiệu CLR. Có thêm chức năng đặt trước số đếm như IC 74193.
Bài tập 4-17: Thiết kế mạch đếm nhị phân 4 bit – đếm lên, đếm xuống được điều khiển bằng
tín hiệu UD (UD = 0 thì đếm lên, UD = 1 thì đếm xuống), có một tín hiệu CLK, một tín hiệu CLR, có giải mã hiển thị ra 1 led 7 đoạn từ 0 đến F tương ứng với số thập lục phân.
Bài tập 4-18: Thiết kế mạch đếm BCD – đếm lên, đếm xuống được điều khiển bằng tín hiệu
UD (UD = 0 thì đếm lên, UD = 1 thì đếm xuống), có một tín hiệu CLK, một tín hiệu CLR, có giải mã hiển thị ra 1 led 7 đoạn.
Bài tập 4-19: Thiết kế mạch đếm BCD từ 00 đến 99 – đếm lên, đếm xuống được điều khiển
bằng tín hiệu UD (UD = 0 thì đếm lên, UD = 1 thì đếm xuống), có một tín hiệu CLK, một tín hiệu CLR, có giải mã hiển thị ra 2 led 7 đoạn – không dùng quét.
Bài tập 4-20: Thiết kế mạch đếm BCD từ 000 đến 999 – đếm lên, đếm xuống được điều
khiển bằng tín hiệu UD (UD = 0 thì đếm lên, UD = 1 thì đếm xuống), có một tín hiệu CLK, một tín hiệu CLR, có giải mã hiển thị ra 3 led 7 đoạn – dùng quét.
Bài tập 4-21: Thiết kế mạch gồm có 3 led 7 đoạn, bàn phím gồm 10 phím số từ “0” đến “9”.
Ban đầu thì 3 led hiển thị số “000”, khi nhấn phím nào thì phím đó được dịch vào từ bên phải. (giống như máy tính calculator).
Bài tập 4-22: Thiết kế mạch định thời: gồm có 2 led 7 đoạn để hiển thị số giây từ 00 đến 99,
vào từ bên phải. Sau khi nhấn xong thì nhấn “enter” quá trình đếm xuống sẽ bắt đầu cho đến khi giá trị đếm bằng 00 thì relay sẽ tác động. Hệ thống ngừng.
end