THIẾT KẾ MẠCH ĐẾM BCD TỪ 000 ĐẾN 999 – HIỂN THỊ TRÊN 3 LED 7 ĐOẠN

Một phần của tài liệu Luận văn : Kỹ thuật PLD và ASIC doc (Trang 168 - 173)

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

Một phần của tài liệu Luận văn : Kỹ thuật PLD và ASIC doc (Trang 168 - 173)