Chương 4 CÁC FLIP FLOP, THANH GHI, BỘ ĐẾM TRONG VHDL GIỚI THIỆU THIẾT KẾ CÁC LOẠI FLIP FLOP THIẾT KẾ FLIP FLOP JK THIẾT KẾ FLIP FLOP D CÓ ENABLE THIẾT KẾ THANH GHI DỊCH THIẾT KẾ THAN
Trang 1Chương 4
CÁC FLIP FLOP, THANH GHI, BỘ ĐẾM
TRONG VHDL
GIỚI THIỆU
THIẾT KẾ CÁC LOẠI FLIP FLOP
THIẾT KẾ FLIP FLOP JK
THIẾT KẾ FLIP FLOP D CÓ ENABLE
THIẾT KẾ THANH GHI DỊCH
THIẾT KẾ THANH GHI DỊCH 4 BIT
THIẾT KẾ THANH GHI DỊCH 8 BIT
THIẾT KẾ MẠCH ĐẾM JOHNSON 8 BIT
THIẾT KẾ MẠCH ĐẾM VÒNG 8 BIT
THIẾT KẾ MẠCH ĐIỀU KHIỂN 8 LED SÁNG DẦN – TẮT DẦN
THIẾT KẾ MẠCH ĐẾM
THIẾT KẾ MẠCH ĐẾM NHỊ PHÂN 4 BIT – ĐẾM LÊN
THIẾT KẾ MẠCH BCD – ĐẾM LÊN
THIẾT KẾ MẠCH ĐẾM BCD VÀ GIẢI MÃ HIỂN THỊ LED 7 ĐOẠN
THIẾT KẾ MẠCH ĐẾM BCD TỪ 00 ĐẾN 59 – HIỂN THỊ TRÊN 2 LED 7 ĐOẠN
THIẾT KẾ MẠCH ĐẾM BCD TỪ 000 ĐẾN 999 – HIỂN THỊ TRÊN 3 LED 7 ĐOẠN
CÂU HỎI ÔN TẬP VÀ BÀI TẬP
Trang 2Hình 4-1 Sơ đồ khối FLIP FLIP JK
Hình 4-2 Sơ đồ khối FLIP FLIP D có enable
Hình 4-3 Sơ đồ khối thanh ghi 4 bit
Hình 4-4 Sơ đồ khối thanh ghi 4 bit, nạp song song
Hình 4-5 Sơ đồ khối thanh ghi 8 bit
Hình 4-6 Sơ đồ khối mạch đếm vòng Johnson 8 bit
Hình 4-7 Sơ đồ khối mạch đếm vòng 8 bit
Hình 4-8 Sơ đồ khối mạch điều khiển 8 led sáng tắt dần
Hình 4-9 Sơ đồ khối mạch đếm nhị phân 4 bit
Hình 4-10 Sơ đồ khối mạch đếm BCD
Hình 4-11 Sơ đồ khối mạch đếm BCD có giải mã 7 đoạn anode chung
Hình 4-12 Sơ đồ khối mạch đếm từ 00 đến 59 có hiển thị
Hình 4-13 Sơ đồ khối mạch đếm từ 000 đến 999
Bảng 4-1 BTT FLIP FLIP JK
Bảng 4-2 BTT FLIP FLIP D có enable
Bảng 4-3 BTT mạch thanh ghi dịch 4 bit
Bảng 4-4 BTT mạch thanh ghi dịch 4 bit, nạp song song
Bảng 4-5 BTT thanh ghi dịch 8 bit
Bảng 4-6 BTT mạch đếm JOHNSON 8 bit
Bảng 4-7 BTT mạch mạch đếm vòng 8bit
Bảng 4-8 BTT mạch điều khiển 8 led sáng tắt dần
Bảng 4-9 BTT mạch đếm nhị phân 4 bit
Bảng 4-10 BTT mạch đếm BCD
Bảng 4-11 BTT mạch đếm BCD có giải mã 7 đoạn
Trang 3I GIỚI THIỆU:
Trong phần này sẽ thiết kế các mạch flip flop, thanh ghi và mạch đếm dùng ngôn ngữ VHDL và sử dụng thiết bị lập trình
Các mạch flip flop bao gồm flip flop JK, flip flop T, flip flop D
Thanh ghi dịch bao gồm thanh ghi dịch nối tiếp sang nối tiếp, nối tiếp sang song song, mạch đếm vòng, mạch đếm JohnSon
Mạch đếm nhị phân, mạch đếm lên đếm xuống, mạch đếm BCD, mạch đếm đặt trước số đếm, mạch đếm có giải mã sang led 7 đoạn, mạch đếm giây, đếm phút giây,…
Các thiết bị lập trình có thể dùng CPLD XC9572, XC 95144, Coolrunner XC2C256
II THIẾT KẾ CÁC LOẠI FLIP FLOP
1 THIẾT KẾ FLIP FLOP JK:
Bài 4-1: Thiết kế flip flop JK gồm có các ngõ vào J, K, CLK, PRE, CLR và các ngõ ra gồm Q
và Q :
Bước 1: Vẽ sơ đồ khối của mạch:
Hình 4-1 Sơ đồ khối FF JK
Bước 2: Bảng trạng thái:
NGÕ VÀO NGÕ RA
use IEEE.STD_LOGIC_1164 ALL ;
use IEEE.STD_LOGIC_ARITH ALL ;
Trang 4use IEEE.STD_LOGIC_UNSIGNED ALL ;
IF (PRE='0') AND (CLR='0') THEN QT <='1'; QDT <='1';
IF (PRE='0') AND (CLR='1') THEN QT <='1'; QDT <='0';
ELSIF (PRE='1') AND (CLR='0') THEN QT <='0'; QDT <='1';
ELSIF (PRE='1') AND (CLR='1') THEN
IF CLK='0' AND CLK'EVENT THEN
Trang 5Bài 4-2: Thiết kế flip flop D gồm có các ngõ vào D, CLK, Enable và ngõ ra gồm Q và Q :
Bước 1: Vẽ sơ đồ khối của mạch:
Hình 4-2 Sơ đồ khối FF D có enable
Bước 2: Bảng trạng thái:
NGÕ VÀO NGÕ RA
Bảng 4-2 BTT FF D có enable
Bước 3: 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 ;
Trang 6Q <= QT;
QD <= NOT QT;
end Behavioral;
III THIẾT KẾ THANH GHI DỊCH
1 THIẾT KẾ THANH GHI DỊCH 4 BIT:
Bài 4-3: Thiết kế thanh ghi dịch 4 bit vào nối tiếp ra nối tiếp
Bước 1: Vẽ sơ đồ khối của mạch:
Hình 4-3 Sơ đồ khối thanh ghi 4 bit
Bước 2: Lập bảng trạng thái:
NGÕ VÀO NGÕ RA Ghi chú clr clk D Q3 Q2 Q1 Q0
1 0 x Q3 0 Q2 0 Q1 0 Q0 0 Không có xung clk
1 ↑ d Q2 0 Q1 0 Q0 0 d Dịch dữ liệu vào
Bảng 4-3 BTT thanh ghi 4 bit
Bước 3: 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 ;
Trang 7begin
if CLR ='0' then QT :="0000";
elsif CLK='1' and CLK'event then
QT(3 downto 0) := QT(2 downto 0) & D;
Q <= QT;
end process;
end Behavioral;
Bài 4-4: Thiết kế thanh ghi dịch 4 bit vào nối tiếp, song song, ra nối tiếp song song
Bước 1: Vẽ sơ đồ khối của mạch:
Hình 4-4 Sơ đồ khối thanh ghi 4 bit, nạp song song, nối tiếp
Bước 2: Lập bảng trạng thái:
Bước 3: 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 tghi4b_ntss is
Port ( D : in STD_LOGIC;
CLR : in STD_LOGIC;
CLK : in STD_LOGIC;
Trang 82 THIẾT KẾ THANH GHI DỊCH 8 BIT:
Bài 4-5: Thiết kế thanh ghi dịch 8 bit vào nối tiếp, ra nối tiếp song song
Bước 1: Vẽ sơ đồ khối của mạch:
CLKCLR
Q0Q1Q2Q3D
Q4Q5Q6Q7
Hình 4-5 Sơ đồ khối thanh ghi 8 bit
Bước 2: Lập bảng trạng thái:
clr clk D Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0
1 0 x Q7 O Q6 O Q5 O Q4 O Q3 O Q2 O Q1 O Q0 O Không có xung clk
1 ↑ d Q6 O Q5 O Q4 O Q3 O Q2 O Q1 O Q0 O d Dịch dữ liệu vào
Bảng 4-5 BTT thanh ghi dịch 8 bit
Bước 3: Viết chương trình:
Trang 9library IEEE;
use IEEE.STD_LOGIC_1164 ALL ;
use IEEE.STD_LOGIC_ARITH ALL ;
use IEEE.STD_LOGIC_UNSIGNED ALL ;
architecture Behavioral of TGHI8BIT is
3 THIẾT KẾ MẠCH ĐẾM JOHNSON 8 BIT:
Bài 4-6: Thiết kế mạch đếm vòng JONHSON 8 bit
Bước 1: Vẽ sơ đồ khối của mạch:
Hình 4-6 Sơ đồ khối mạch đếm vòng Johnson 8 bit
Chú ý: D đã được kết nối với ngõ ra 7 Q và nằm bên trong mạch điện
Bước 2: Lập bảng trạng thái:
Trang 10NGÕ VÀO NGÕ RA clr clk Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0
Bảng 4-6 BTT mạch đếm JOHNSON 8 bit
Bước 3: 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 ;
architecture Behavioral of johnson8bit is
SIGNAL QT : STD_LOGIC_VECTOR (7 downto 0);
Trang 114 THIẾT KẾ MẠCH ĐẾM VÒNG 8 BIT:
Bài 4-7: Thiết kế mạch đếm vòng 8 bit
Bước 1: Vẽ sơ đồ khối của mạch:
CLKCLR
Q0Q1Q2Q3
8 BIT RING COUNTER
D
Q4Q5Q6Q7
Hình 4-7 Sơ đồ khối mạch đếm vòng 8 bit
Bước 2: Lập bảng trạng thái:
Bảng 4-7 BTT mạch đếm vòng 8bit
Bước 3: 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 ringcounter8 is
Port ( CLK : in STD_LOGIC ;
Trang 12CLR : in STD_LOGIC ;
Q : out STD_LOGIC_VECTOR (7 downto 0));
end ringcounter8;
architecture Behavioral of ringcounter8 is
SIGNAL QT : STD_LOGIC_VECTOR (7 downto 0) :=”00000001”;
use IEEE.STD_LOGIC_1164 ALL ;
use IEEE.STD_LOGIC_ARITH ALL ;
use IEEE.STD_LOGIC_UNSIGNED ALL ;
Trang 13END PROCESS;
end Behavioral;
5 THIẾT KẾ MẠCH ĐIỀU KHIỂN 8 LED SÁNG DẦN – TẮT DẦN:
Bài 4-8: Thiết kế mạch điều khiển 8 led sáng dần, tắt dần từ trái sang phải và từ phải sang
trái theo xung clock
Bước 1: Vẽ sơ đồ khối của mạch:
Hình 4-8 Sơ đồ khối mạch điều khiển 8 led sáng tắt dần
Bước 2: Lập bảng trạng thái:
Trang 14Bảng 4-8 BTT mạch điều khiển 8 led sáng tắt dần
Các trạng thái sáng dần tắt dần từ phải sang trái cần 16 xung clock và trạng thái ngược lại cũng cần 16 xung clock
Bước 3: 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 ;
architecture Behavioral of sangtatdan_tppt is
Trang 15Q <= QT;
end Behavioral;
Trong chương trình biến DEM có chức năng làm biến đếm để thực hiện lần lượt các trạng
thái
IV THIẾT KẾ MẠCH ĐẾM
1 THIẾT KẾ MẠCH ĐẾM NHỊ PHÂN 4 BIT – ĐẾM LÊN
Bài 4-9: Thiết kế mạch đếm nhị phân 4 bit
Bước 1: Vẽ sơ đồ khối của mạch:
Hình 4-9 Sơ đồ khối mạch đếm nhị phân 4 bit
Bước 2: Lập bảng trạng thái:
NGÕ VÀO NGÕ RA Ghi chú clr clk Q3 Q2 Q1 Q0
Bảng 4-9 BTT mạch đếm nhị phân 4 bit
Bước 3: 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 ;
Trang 162 THIẾT KẾ MẠCH ĐẾM BCD – ĐẾM LÊN:
Bài 4-10: Thiết kế mạch đếm bcd
Bước 1: Vẽ sơ đồ khối của mạch:
Hình 4-10 Sơ đồ khối mạch đếm BCD
Bước 2: Lập bảng trạng thái:
NGÕ VÀO NGÕ RA Ghi chú clr clk Q3 Q2 Q1 Q0
Bảng 4-10 BTT mạch đếm BCD
Bước 3: Viết chương trình:
library IEEE;
use IEEE.STD_LOGIC_1164 ALL ;
use IEEE.STD_LOGIC_ARITH ALL ;
Trang 17use IEEE.STD_LOGIC_UNSIGNED ALL ;
3 THIẾT KẾ MẠCH ĐẾM BCD VÀ GIẢI MÃ HIỂN THỊ LED 7 ĐOẠN
Bài 4-11: Thiết kế mạch đếm bcd hiển thị trên led 7 đoạn
Bước 1: Vẽ sơ đồ khối của mạch:
I0 I1
DECODE
a b c d e f g
I2 I3 SEGMENT
CLK CLR
Q0
COUNTER
Q1 Q2 Q3
Hình 4-11 Sơ đồ khối mạch đếm BCD có giải mã 7 đoạn anode chung
Bước 2: Lập bảng trạng thái:
tp clr clk Q3 Q2 Q1 Q0 dp g f e d c b a hex
0 0 x 0 0 0 0 1 1 0 0 0 0 0 0 C0
1 1 ↑ 0 0 0 1 1 1 1 1 1 0 0 1 F9
Trang 18Bảng 4-11 BTT mạch đếm BCD có giải mã 7 đoạn
Bước 3: 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 count_bcd_gma is
Port ( CLR : in STD_LOGIC ;
CLK : in STD_LOGIC ;
Q : out STD_LOGIC_VECTOR (3 downto 0);
L7D : out STD_LOGIC_VECTOR (6 downto 0));
end count_bcd_gma;
architecture Behavioral of count_bcd_gma is
begin
IF CLR='0' THEN QTAM :="0000";
IF QTAM = "1010" THEN QTAM:="0000";
Trang 194 THIẾT KẾ MẠCH ĐẾM BCD TỪ 00 ĐẾN 59 – HIỂN THỊ TRÊN 2 LED 7 ĐOẠN
Bài 4-12: Thiết kế mạch đếm bcd từ 00 đến 59 hiển thị trên 2 led 7 đoạn kết nối theo phương
pháp quét Sử dụng nguồn xung clock có tần số 1,8432MHz trên bộ thí nghiệm dùng để quét và làm xung tăng giá trị đếm
Bước 1: Vẽ sơ đồ khối của mạch:
CLK
CLR
OSC 1,8432MHz
a b c d e f g
anod0 anod1
Vcc
Hình 4-12 Sơ đồ khối mạch đếm từ 00 đến 59 có hiển thị
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 DEM0099 is
Port ( CLR : in std_logic ;
CLK : in std_logic ; anod : out std_logic_vector (3 downto 0);
Trang 20QB : out std_logic_vector ( 7 downto 0);
ma7d : out std_logic_vector ( 7 downto 0));
end DEM0099;
architecture Behavioral of DEM0099 is
signal F: std_logic_vector (18 downto 0);
signal mabl: std_logic_vector (7 downto 0);
signal mabh: 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 (7 downto 0);
begin
when "0000" => z1 := "11000000"; so 0 when "0001" => z1 := "11111001"; so 1 when "0010" => z1 := "10100100"; so 2 when "0011" => z1 := "10110000"; so 3
when "0100" => z1 := "10011001"; so 4 when "0101" => z1 := "10010010"; so 5 when "0110" => z1 := "10000010"; so 6 when "0111" => z1 := "11111000"; so 7
when "1000" => z1 := "10000000"; so 8 when "1001" => z1 := "10010000"; so 9 when others =>z1 := "11111111"; so
variable bcd1: std_logic_vector (3 downto 0);
variable bcd2: std_logic_vector (3 downto 0);
Trang 21case F (10 downto 9)is
when "00" => ma7d <= mabh;
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
Trang 22Bướ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
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
Trang 23return z1;
begin
if BCD_CHU= "1010" then BCD_CHU:="0000";
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
Trang 24Bà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,
bàn phím gồm 10 phím số từ “0” đến “0” vàà phím chức năng như “clear”, “enter”, “test”, một ngõ
ra điều khiển relay Ban đầu thì 2 led hiển thị số “00”, khi nhấn phím nào thì phím đó được dịch