Tải bản đầy đủ (.pdf) (34 trang)

Vi điều khiển giao tiếp LED 7 đoạn

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.06 MB, 34 trang )

Đạ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

×