Đạ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
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
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
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
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
…
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.
;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
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