Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 19
VI ĐIỀU KHIỂN GIAO TIẾP LED 7 ĐOẠN
CHỨC NĂNG LED 7 ĐOẠN LÀ HIỂN THỊ SỐ THẬP PHÂN
CÓ 2 CÁCH: GIAO TIẾP TRỰC TIẾP VÀ GIAO TIẾP THEO PP QUÉT
CÁCH 1: GIAO TIẾP TRỰC TIẾP – DÙNG PORT ĐIỀU KHIỂN
MỖI PORT ĐIỀU KHIỂN 1 LED 7 ĐOẠN LOẠI ANODE CHUNG
MỖI PORT ĐIỀU KHIỂN TRỰC TIẾP 1 LED
HÌNH ẢNH LED – (LINK ĐĨA F TRONG MỤC GT CPLD – WEB HAY)
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 20
LED SỬ DỤNG LÀ LED ANODE CHUNG: 0 THÌ LED SÁNG, 1 THÌ LED TẮT
MÃ 7 ĐOẠN
TP SỐ NHỊ PHÂN HEX
7 6 5 4 3 2 1 0
DP G F E D C B A
1 1 0 0 0 0 0 0 C0
1 1 1 1 1 0 0 1 F9
A4
B0
4 99
5 92
6 82
7 F8
8 80
9 90
BÀI SỐ 2-1: CTDK LED 7 ĐOẠN SÁNG SỐ 0 – DÙNG PORT0 0979 507 754
VIẾT CHƯƠNG TRÌNH
;CHTR DK 1 LED 7 DOAN SANG SO 0
ORG 0H
MOV P0,#0C0H ;MA SO 0
JMP $ ;NHẢY TẠI CHỖ
END
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 21
BÀI SỐ 2-2: CTDK LED 7 ĐOẠN ĐẾM THỜI GIAN TỪ 0 ĐẾN 9 – CÁCH 1 – DÙNG PORT0
LƯU ĐỒ ĐIỀU KHIỂN
BEGIN
SÁNG SỐ ‘0’, DELAY
SÁNG SỐ ‘1’, DELAY
SÁNG SỐ ‘2’, DELAY
SÁNG SỐ ‘9’, DELAY
END
VIẾT CHƯƠNG TRÌNH
;CHTR DK 1 LED 7 DOAN DEM TU 0 DEN 9
ORG 0000H
LB: MOV P0,#0C0H ;SANG SO 0
CALL DELAY1S
MOV P0,#0F9H ;SANG SO 1
CALL DELAY1S
MOV P0,#0A4H ;SANG SO 2
CALL DELAY1S
MOV P0,#0B0H ;SANG SO 3
CALL DELAY1S
MOV P0,#099H ;SANG SO 4
CALL DELAY1S
MOV P0,#092H ;SANG SO 5
CALL DELAY1S
MOV P0,#082H ;SANG SO 6
CALL DELAY1S
MOV P0,#0F8H ;SANG SO 7
CALL DELAY1S
MOV P0,#080H ;SANG SO 8
CALL DELAY1S
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 22
MOV P0,#090H ;SANG SO 9
CALL DELAY1S
JMP LB
$INCLUDE(TV_DELAY.ASM)
END
LƯU ĐỒ – CÁCH 2
CÁC MÃ 7 ĐOẠN CỦA 10 SỐ TỪ 0 ĐẾN 9 ĐƯC LƯU VÀO BỘ NHỚ CHƯƠNG TRÌNH.
CHƯƠNG TRÌNH CÓ NHIỆM VỤ LẤY LẦN LƯT CÁC MÃ ĐEM GỞI RA PORT ĐIỀU
KHIỂN LED ĐỂ HIỂN THỊ.
BEGIN
LẤY MÃ (DEM) GỞI RA LED
DELAY
END
DEM:=DEM+1
DEM=10
Đ
S
LƯU 10 MÃ VÀO BN
DEM:=0
VIẾT CHƯƠNG TRÌNH – CÁCH 2
;CHTR DK 1 LED 7 DOAN DEM TU 0 DEN 9
(H1) DEM EQU R4
(H2) ORG 0H
(H3)LB: MOV DPTR,#MA7DOAN
(H4) MOV DEM,#0
(H5)LB1: MOV A,DEM
(H6) MOVC A,@A+DPTR ;LẤY MÃ
(H7) MOV P0,A ;HIỂN THỊ
(H8) CALL DELAY1S
(H9) INC DEM
(H10) CJNE DEM,#10,LB1
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 23
(H11) JMP LB
(H13)MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
$INCLUDE(TV_DELAY.ASM)
END
GIẢI THÍCH CHƯƠNG TRÌNH
(H13)MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
LƯU 10 MÃ 7 ĐOẠN CỦA 10 SỐ TỪ 0 ĐẾN 9 VÀO VÙNG NHỚ CHƯƠNG TRÌNH BẮT ĐẦU
TẠI ĐỊA CHỈ MA7DOAN
(H13) LIỆT KÊ CÁC MÃ 7 ĐOẠN BẮT ĐẦU BẰNG KÍ HIỆU DB – DEFINE BYTE: ĐỊNH
NGHĨA 1 VÙNG DỮ LIỆU DẠNG BYTE.
(H3)LB: MOV DPTR,#MA7DOAN
NẠP ĐỊA CHỈ MA7DOAN VÀO TG DPTR ĐỂ QUẢN LÝ VÙNG NHỚ CHỨA MÃ 7 ĐOẠN
(H13)MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
GIẢ SỬ ĐỊA CHỈ MA7DOAN CÓ GIÁ TRỊ LÀ 1000H
THÌ C0H SẼ LƯU VÀO ON CÓ ĐỊA CHỈ 1000H = 1000H + 0H – MÃ SỐ 0
CÒN F9H SẼ LƯU VÀO ON CÓ ĐỊA CHỈ 1001H = 1000H + 1H - MÃ SỐ 1
CÒN A4H SẼ LƯU VÀO ON CÓ ĐỊA CHỈ 1002H = 1000H + 2H - MÃ SỐ 2
CÒN B0H SẼ LƯU VÀO ON CÓ ĐỊA CHỈ 1003H = 1000H + 3H - MÃ SỐ 3
…
CÒN 90H SẼ LƯU VÀO ON CÓ ĐỊA CHỈ 1009H = 1000H + 9H - MÃ SỐ 9
1000H THÌ LƯU TRONG DPTR, CÒN CÁC CON SỐ 0, 1, 2, … THÌ LƯU TRONG A
LỆNH MOVC A,@A+DPTR COPY NDON (CÓ ĐC BẰNG DPTR + A) SANG TGA
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 24
+2
+3
+4
+5
+6
+7
+8
+9
+1
90
80
F8
82
92
99
B0
A4
F9
(DPTR+A)=(1000) + 0
C0
ADDR CODE
(H4) MOV DEM,#0
(H5)LB1: MOV A,DEM
(H6) MOVC A,@A+DPTR
LẤY NỘI DUNG Ơ NHỚ (CĨ ĐỊA CHỈ TRONG TG DPTR CỘNG VỚI TG A) SANG TG A
TRƯỚC KHI THỰC HIỆN THÌ DPTR=1000H, A = 00 – TẠO RA ĐỊA CHỈ
DPTR + A = 1000H + 00H = 1000H – LẤY ND ON CĨ DC 1000H ĐƯA SANG A
SAU KHI THỰC HIỆN THÌ A = C0H – LÀ MÃ CỦA SỐ 0 – GỞI RA PORT 0 ĐỂ HIỂN THỊ
;CHTR DEM TU 0 DEN 9 - TREN 1 LED 7 DOAN NOI VOI P0 - CACH 2
DEM EQU R4
ORG 0H
MOV DPTR,#MA7DOAN ;CHO MA7DOAN=1000H
LB: MOV DEM,#0 ;DEM=0
LB1: MOV A,DEM ;A=0,1,2
MOVC A,@A+DPTR ;,1000H,1001H,1002H (MA7DOAN, MA7DOAN+1)
MOV P0,A ;P0=C0H,F9H,A4H
CALL DELAY1S
INC DEM ;DEM=1,2
CJNE DEM,#10,LB1
JMP LB ;LAM LAI
;LUU CAC MA 7 DOAN VAO BO NHO CHTR
MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,99H
DB 092H,082H,0F8H,080H,090H
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 25
$INCLUDE(TV_DELAY.ASM)
END
TÓM TẮT GIẢI MÃ:
MOV DPTR,#MA7DOAN ;KHOI TAO DIA CHI QL MA7DOAN
MOV A,DEM ;DUA BIEN CAN GIAI MA SANG A
MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG
;LUU CAC MA 7 DOAN VAO BO NHO CHTR
MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,99H
DB 092H,082H,0F8H,080H,090H
GIỚI HẠN CỦA BIẾN ĐẾM LÀ TỪ 0 ĐẾN 9 – CHỈ 1 SỐ
NẾU CÓ NHIỀU SỐ THÌ TÁCH TỪNG CON SỐ RỒI TIẾN HÀNH GIẢI MÃ.
GIẢI MÃ SỐ HEX ĐƯC KHÔNG?
BÀI SỐ 2-4: CTDK LED 7 ĐOẠN ĐẾM THỜI GIAN TỪ 9 ĐẾN 0 – DÙNG PORT0
DỮ LIỆU ĐIỀU KHIỂN
LƯU ĐỒ ĐIỀU KHIỂN
BEGIN
LẤY MÃ (DEM) GỞI RA LED
DELAY
END
DEM:=DEM-1
DEM=-1
Đ
S
LƯU 10 MÃ VÀO BN
DEM:=9
VIẾT CHƯƠNG TRÌNH
;CHTR DK 1 LED 7 DOAN DEM TU 0 DEN 9
DEM EQU R2
ORG 0000H
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 26
LB: MOV DPTR,#1000H
MOV DEM,#9
LB1: MOV A,DEM
MOVC A,@A+DPTR
MOV P0,A
CALL DELAY1S
DEC DEM
CJNE DEM,#-1,LB1
JMP LB
ORG 1000H
DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
$INCLUDE(TV_DELAY.ASM)
END
BÀI SỐ 2-5: CTDK LED 7 ĐOẠN ĐẾM THỜI GIAN TỪ 00 ĐẾN 99 – DÙNG P0 VÀ P2
LƯU ĐỒ ĐIỀU KHIỂN
BEGIN
DELAY
DEM:=DEM+1
END
DEM=100
Đ
S
LƯU 10 MÃ VÀO BN
DEM:=0000 0000B
HEX(DEM) => BCD
BCD => MA7DOAN => LED
;CHTR DK 2 LED 7 DOAN DEM TU 00 LEN 99
DEM EQU R2
ORG 0H
MOV DPTR,#MA7DOAN
LB: MOV DEM,#00H
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 27
LB1: CALL HEXTOBCD_GIAIMA ;MOI THEM VAO
CALL DELAY100MS
INC DEM
CJNE DEM,#100,LB1
JMP LB
HEXTOBCD_GIAIMA:
MOV A,DEM
MOV B,#10
DIV AB ;(A) = BCD_CHUC, (B)=BCD_DONVI
MOVC A,@A+DPTR ;LAY MA CHUC
MOV P2,A ;HIEN THI HANG CHUC
MOV A,B ;BCD DONVI => A
MOVC A,@A+DPTR ;LAY MA DONVI
MOV P0,A ;HIEN THI HANG DON VI
RET
MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
$INCLUDE(TV_DELAY.ASM)
END
TẠI SAO CHUYỂN SỐ HEX SANG SỐ BCD?
NHỊ PHÂN HAY HEX
DEM
(00H -FFH)
BCD
CHUC – DONVI
(00H – 99H)
MA7DOAN HIỂN THỊ
GIỐNG
0000 0000 = 00H 0000 0000=00H C0H C0H
GIỐNG
0000 0001 = 01H 0000 0001=01H C0H F9H
GIỐNG
…
GIỐNG
0000 1001 = 09H 0000 1001=09H C0H 90H
KHÁC 0000 1010 = 0AH 0001 0000=10H F9H C0H
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 28
KHÁC 0000 1011=0BH 0001 0001=11H
KHÁC 0000 1100=0CH 0001 0010=12H
KHÁC
KHÁC 0110 0011=63H 1001 1001=99H
0110 0100=64H 0001 0000 0000
3 SỐ BCD
0100 0101 0001 0000 0001 101
GIẢI THUẬT:
NẾU SỐ HEX NẰM GIỚI HẠN TỪ 10 ĐẾN 99 THÌ SỐ BCD GỒM CHỤC VÀ ĐƠN VỊ.
LẤY SỐ HEX CHIA CHO 10: ĐƯC KẾT QUẢ LÀ SỐ BCD HÀNG CHỤC, SỐ DƯ LÀ
SỐ BCD HÀNG ĐƠN VỊ.
NẾU SỐ HEX NẰM GIỚI HẠN TỪ 100 ĐẾN 999 THÌ SỐ BCD GỒM TRĂM, CHỤC VÀ
ĐƠN VỊ. LẤY SỐ HEX CHIA CHO 10 LẦN THỨ NHẤT: ĐƯC KẾT QUẢ LẦN 1, SỐ
DƯ LÀ BCD HÀNG ĐƠN VỊ. LẤY KẾT QUẢ LẦN 1 CHIA TIẾP CHO 10 LẦN THỨ 2:
SỐ DƯ LẦN HAI LÀ BCD CHỤC, KẾT QUẢ LÀ BCD TRĂM.
LỆNH CHIA DIV AB LÀ CHIA A(8 BIT) CHO B(8 BIT THƯỜNG LÀ SỐ 10)
SAU KHI CHIA: A LƯU KẾT QUẢ, B LƯU SỐ DƯ.
VÍ DỤ1: CHUYỂN SỐ HEX 3FH = 0011 1111B SANG SỐ BCD:
HEX BCD
32+16+8+4+2+1=63
BCD = 0110 0011B
0 0 1 1 1 1 1 1 1010
- 1 0 1 0 0110=BCD_CHUC
0 1 0 1 1
- 1 0 1 0
0 0 0 1 1 0011=BCD_DVI
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 29
TP
KQ
;CHTR DK 2 LED 7 DOAN DEM TU 00 LEN 99 ROI DEM XUONG 00
DEM EQU R2
ORG 0000H
MOV DPTR,#MA7DOAN
LB: MOV DEM,#00H
LB1: CALL HEXTOBCD_GIAIMA ;MOI THEM VAO
CALL DELAY100MS
INC DEM
CJNE DEM,#100,LB1
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
LB2: DEC DEM
CALL HEXTOBCD_GIAIMA ;MOI THEM VAO
CALL DELAY100MS
CJNE DEM,#-1,LB2
JMP LB1
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
HEXTOBCD_GIAIMA:
MOV A,DEM
MOV B,#10
DIV AB ;(A) = BCD CHUC, (B)=BCD DONVI
MOVC A,@A+DPTR ;LAY MA CHUC
MOV P2,A ;HIEN THI HANG CHUC
MOV A,B ;BCD DONVI => A
MOVC A,@A+DPTR ;LAY MA DONVI
MOV P0,A ;HIEN THI HANG DON VI
RET
MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
$INCLUDE(TV_DELAY.ASM)
END
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 30
BÀI SỐ 2-6: CTDK LED 7 ĐOẠN ĐẾM THỜI GIAN TỪ 000 ĐẾN 250 – DÙNG P0 – LED ĐƠN
VỊ, P1 – LED CHỤC VÀ P2 – LED TRĂM.
LƯU ĐỒ ĐIỀU KHIỂN
BEGIN
DELAY
DEM:=DEM+1
END
DEM=251
Đ
S
LƯU 10 MÃ VÀO BN
DEM:=0000 0000B
HEX(DEM) => BCD
BCD => MA7DOAN => LED
;CHTR DK 2 LED 7 DOAN DEM TU 000 LEN 250
DEM EQU R2
ORG 0H
MOV DPTR,#MA7DOAN
LB: MOV DEM,#00H
LB1: CALL HEXTOBCD_GIAIMA ;MOI THEM VAO
CALL DELAY100MS
INC DEM
CJNE DEM,#251,LB1
JMP LB
HEXTOBCD_GIAIMA:
MOV A,DEM
MOV B,#10
DIV AB ;(A) = KQ1, (B)=BCD_DONVI
MOV 20H,B ;LUU BCD_DVI VAO ON CO ĐC 20H
MOV B,#10
DIV AB ; (A) = BCD_TRAM, (B)=BCD_CHUC
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú
Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 31
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
MOVC A,@A+DPTR ;LAY MA TRAM
MOV P2,A ;HIEN THI HANG TRAM
MOV A,B ;BCD_CHUC => A
MOVC A,@A+DPTR ;LAY MA CHUC
MOV P1,A ;HIEN THI HANG CHUC
MOV A,20H ;BCD_DVI => A
MOVC A,@A+DPTR ;LAY MA DVI
MOV P0,A ;HIEN THI HANG DVI
RET
MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
$INCLUDE(TV_DELAY.ASM)
END
CÁC CHƯƠNG TRÌNH CON TỔNG QUÁT
CHUYỂN SỐ HEX 8 BIT SANG 3 SỐ BCD LƯU VÀO 3 ON 20H, 21H, 22H:
HEXTOBCD: MOV A,HEX8BIT
MOV B,#10
DIV AB
MOV 20H,B ;LUU BCD_DVI
MOV B, #10
DIV AB
MOV 21H,B ;LUU BCD_CHUC
MOV 22H,A ;LUU BCD_TRAM
RET
GIAIMA: MOV DPTR,#MA7DOAN
MOV A,20H
MOVC A,@A+DPTR
MOV 30H,A ;LUU MA_DVI
MOV A,21H
MOVC A,@A+DPTR