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

Giao tiếp vi điều khiển với LED đơ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 (606.27 KB, 20 trang )


GIAO TIẾP VI ĐIỀU KHIỂN VỚI LED ĐƠN
Sơ đồ mạch điện theo kiểu sink dòng: dòng chạy từ v
cc
qua led và điện trở hạn
dòng vào vi điều khiển.
Mức logic 0 thì led sáng, mức logic 1 thì led tắt.



BÀI SỐ 1: CHƯƠNG TRÌNH ĐIỀU KHIỂN 8 LED CHÓP TẮT (SÁNG TẮT)
ĐIỀU KHIỂN LED SÁNG THÌ DỮ LIỆU GỞI RA LED LÀ 1, MỨC 0 LED TẮT
 LƯU ĐỒ
BEGIN
8 LED SÁNG
DELAY
8 LED TẮT
DELAY
END


 VIẾT CHƯƠNG TRÌNH
(H1) ;CHUONG TRINH DIEU KHIEN 8 LED CUA PORT 0 SANG TAT
(H2) ORG 0000H
(H3) LB: MOV P0,#00000000B
(H4) CALL DELAY100MS
(H5) MOV P0,#11111111B
(H6) CALL DELAY100MS
(H7) JMP LB
(H8) $INCLUDE(TV_DELAY.ASM)
(H9) END



GIẢI THÍCH CHƯƠNG TRÌNH
(H1) ;CHUONG TRINH DIEU KHIEN 8 LED CUA PORT 0 SANG TAT
LÀ HÀNG CHÚ THÍCH CHƯƠNG TRÌNH ĐIỀU KHIỂN CÁI GÌ
KHÔNG CÓ CŨNG ĐƯC NHƯNG NẾU CÓ THÌ PHẢI BẮT ĐẦU BẰNG DẤU ;
(H2) ORG 0000H
KHAI BÁO ĐỊA CHỈ BẮT ĐẦU CỦA CHƯƠNG TRÌNH
LUÔN BẮT ĐẦU TẠI ĐỊA CHỈ 0000H, CÓ THỂ GHI 0H
(H3) LB: MOV P0,#00000000B
GỒM CÓ NHÃN ĐỂ NHẢY VÀ LỆNH
MOV P0,#00000000B
CÓ CHỨC NĂNG NẠP DỮ LIỆU 00000000B VÀO PORT0
B LÀ BINARY LÀ SỐ NHỊ PHÂN, CÓ THỂ GHI BẰNG SỐ HEX
LÀM TẮT 8 LED, THỜI GIAN THỰC HIỆN LÀ 2µS
(H4) CALL DELAY100MS
LÀ LỆNH GỌI CHƯƠNG TRÌNH CON DELAY LÀM CHẬM LẠI ĐỂ NHÌN THẤY
(H5) MOV P0,#11111111B
CÓ CHỨC NĂNG NẠP DỮ LIỆU 11111111B VÀO PORT0 LÀM SÁNG 8 LED
(H6) CALL DELAY100MS
GỌI DELAY ĐỂ LÀM CHẬM
(H7) JMP LB
LỆNH NHẢY (JUMP) VỀ ĐỂ THỰC HIỆN LẠI
(H8) $INCLUDE(TV_DELAY.ASM)
KHAI BÁO CHƯƠNG TRÌNH CHỨA CÁC CHƯƠNG TRÌNH CON DELAY
TRONG CHƯƠNG TRÌNH “TV_DELAY.ASM” NGƯỜI TA ĐÃ VIẾT SẴN
CÁC CHƯƠNG TRÌNH CON DELAY, CHỈ DÙNG NHỮNG CHƯƠNG TRÌNH ĐÃ
VIẾT
(H9) END
KẾT THÚC CHƯƠNG TRÌNH.
NHỮNG GÌ SAU LỆNH END SẼ KHÔNG CÒN HIỆU LỰC.


TÌM HIEÅU FILE “*.LST”
MCS-51 MACRO ASSEMBLER TAMPRO4
10/31/:9 PAGE 1
DOS 5.0 (038-N) MCS-51 MACRO ASSEMBLER, V2.2
OBJECT MODULE PLACED IN E:\TAM\TAMPRO4.OBJ
ASSEMBLER INVOKED BY: E:\ATS.EXE E:\TAM\TAMPRO4.ASM


LOC OBJ LINE SOURCE

1 ;CHUONG TRINH DIEU KHIEN 8 LED SANG
TAT
0000 2 ORG 0000H
3
0000 758000 4 LB: MOV P0,#00000000B
;LAM 8 LED TAT
0003 120049 5 CALL DELAY100MS
0006 758001 6 MOV P0,#00000001B
;LAM 8 LED SANG
0009 120049 7 CALL DELAY100MS
000C 80F2 8 JMP LB
9
GIẢI THÍCH
0000 758000 4 LB: MOV P0,#00000000B
;LAM 8 LED TAT
BYTE THỨ NHẤT “75” LÀ MÃ LỆNH
BYTE THỨ HAI “80” LÀ ĐỊA CHỈ CỦA PORT 0
87
80H

86 85 84 83 82 81 80
P0

BYTE THỨ BA “00” LÀ DỮ LIỆU “#DATA”
TƯƠNG TỰ CHO CÁC LỆNH CÒN LẠI
1. Lệnh chuyển dữ liệu vào ô nhớ trực tiếp :
 Cú pháp : MOV direct, #data
 Mã lệnh :
0 1 1 1 0 1 0 1
a7 a6 a5 a4 a3 a2 a1 a0
d7 d6 d5 d4 d3 d2 d1 d0

 Lệnh này chiếm 3 byte và thời gian thực hiện lệnh là 2 chu kỳ máy
 Chức năng: Nạp dữ liệu data 8 bit (d0 đến d7 ) vào ô nhớ có đòa chỉ direct.

TÌM HIỂU FILE “*.HEX”
CHỈ CHỨA CÁC MÃ LỆNH DẠNG NHỊ PHÂN:

:1000000075800012004975800112004980F2757FE9
:1000100030D57FFD22757E0A757F30D57FFDD57E78
:10002000F722757E64757F30D57FFDD57EF722750A
:100030007EC8757F30D57FFDD57EF722757EC87569
:100040007FFAD57FFDD57EF722113C113C22114964
:10005000114922114E114E22757D14113CD57DFBA4
:0A00600022757D28113CD57DFB229E
:00000001FF


CÁC LỆNH ĐÃ SỬ DỤNG
2. Lệnh gọi chương trình con dùng đòa chỉ tuyệt đối :

 Cú pháp : ACALL addr11
 Mã lệnh :
a1
0
a9 a8 1 0 0 0 1
a7 a6 a5 a4 a3 a2 a1 a0
 Lệnh này chiếm 2 byte và thời gian thực hiện lệnh là 2 chu kỳ máy.
 Chức năng: Khi lệnh này được thực hiện thì vi điều khiển sẽ thực hiện chương trình con
tại đòa chỉ addr11. Chương trình con không được cách lệnh gọi quá 2 kbyte. Addr11 của
chương trình con có thể thay bằng nhản (tên của chương trình con).
 Chú ý: Trước khi nạp đòa chỉ mới vào thanh ghi PC thì đòa chỉ của lệnh kế trong chương
trình chính được cất vào bộ nhớ ngăn xếp.
3. Lệnh gọi chương trình con dùng đòa chỉ dài 16 bit :
 Cú pháp : LCALL addr16
 Mã lệnh :
0 0 0 1 0 0 1 0
A15 a1
4
a1
3
a1
2
a1
1
a1
0
a9 a8
A7 a6 a5 a4 a3 a2 a1 a0
 Lệnh này chiếm 3 byte và thời gian thực hiện lệnh là 2 chu kỳ máy
 Chức năng: Khi lệnh này được thực hiện thì vi điều khiển sẽ thực hiện chương trình con

tại đòa chỉ addr16. Lệnh này có thể gọi chương trình con ở đâu cũng được trong vùng
64kbyte. Addr16 của chương trình con có thể thay bằng nhản (tên của chương trình
con).
 16 bit đòa chỉ A15 – A0 được nạp vào PC, vi điều khiển sẽ thực hiện chương trình con
tại đòa chỉ vừa nạp vào PC. Chú ý: Trước khi nạp đòa chỉ vào thanh ghi PC thì đòa chỉ
của lệnh kế trong chương trình chính được cất vào bộ nhớ ngăn xếp.
4. Lệnh nhảy dùng đòa chỉ tuyệt đối :
 Cú pháp : AJMP addr11
 Mã lệnh :
a1
0
a9 a8 0 0 0 0 1
a7 a6 a5 a4 A3 a2 a1 a0

×