Bài giảng Vi điều khiển - Giao tiếp led - Nguyễn Đình Phú

Tóm tắt Bài giảng Vi điều khiển - Giao tiếp led - Nguyễn Đình Phú: ...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 .... BÀI SỐ 2: CHƯƠNG TRÌNH ĐIỀU KHIỂN 16 LED CHÓP TẮT (SÁNG TẮT) P0 VÀ P1  LƯU ĐỒ ĐIỀU KHIỂN BEGIN 16 LED SÁNG DELAY 16 LED TẮT DELAY END  VIẾT CHƯƠNG TRÌNH ;CHUONG TRINH DIEU KHIEN 16 LED SANG TAT - P0 VA P1 ORG 0000H NHAN1: MOV P0,#00000000B Đại học sư phạm kỹ... Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 14 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 A7 A6 A5 A4 A3 A2 A1 A0 000000 1 C TRƯỚC KHI THỰC HIỆN 0 1 A7 A6 A5...

pdf18 trang | Chia sẻ: havih72 | Lượt xem: 231 | Lượt tải: 0download
Nội dung tài liệu Bài giảng Vi điều khiển - Giao tiếp led - Nguyễn Đình Phú, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Đạ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 1 
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Ừ VCC 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. 
Đạ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 2 
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 
Đạ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 3 
(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 CHO CHÚNG TA 
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 
Đạ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 4 
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 HIỂU FILE “*.LST” 
Đạ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 5 
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 
8780H 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. 
Đạ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 6 
TÌM HIỂU FILE “*.HEX” 
Đạ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 
CHỈ CHỨA CÁC MÃ LỆNH DẠNG NHỊ PHÂN: 
 :1000000075800012004975800112004980F2757FE9 
:1000100030D57FFD22757E0A757F30D57FFDD57E78 
:10002000F722757E64757F30D57FFDD57EF722750A 
:100030007EC8757F30D57FFDD57EF722757EC87569 
:100040007FFAD57FFDD57EF722113C113C22114964 
:10005000114922114E114E22757D14113CD57DFBA4 
:0A00600022757D28113CD57DFB229E 
:00000001FF 
Đạ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 8 
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 : 
a10 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 a14 a13 a12 a11 a10 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 : 
a10 a9 a8 0 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 
 Yù nghĩa của lệnh: vi điều khiển sẽ nhảy đến đến địa chỉ addr11 để thực hiện chương trình tại đó. 
Addr11 có thể thay thế bằng nhản. Nhản hay địa chỉ nhảy đến không quá 2 kbyte. 
 11 bit địa chỉ A10 – A0 được nạp vào PC, các bit cao của PC không thay đổi, vi điều khiển sẽ nhảy 
đến thực hiện lệnh tại địa chỉ PC mới vừa nạp. 
 Lệnh này khác với lệnh gọi chương trình con là không cất địa chỉ trở về. Nơi nhảy đến không quá 2 
kbyte so với lệnh nhảy. 
5. Lệnh nhảy dùng địa chỉ 16 bit : 
 Cú pháp : LJMP addr16 
Đạ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 9 
 Mã lệnh : 
0 0 0 0 0 0 1 0 
a15 a14 a13 a12 a11 a10 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: vi điều khiển sẽ nhảy đến địa chỉ addr16 để thực hiện chương trình tại đó. Nơi nhảy đến 
tùy ý nằm trong vùng 64 kbyte. 
6. Lệnh nhảy tương đối : 
 Cú pháp : SJMP rel 
 Mã lệnh : 
1 0 0 0 0 0 0 0 
r7 r6 r5 r4 r3 r2 r1 r0 
 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: vi điều khiển sẽ nhảy đến lệnh có địa chỉ tương đối (rel) để thực hiện tiếp. Có thể thay 
thế rel bằng nhản. 
 Lệnh này chỉ nhảy trong tầm vực 256 byte: có thể nhảy tới 128 byte và có thể nhảy lùi 128 byte. Khi 
tầm vực nhảy xa hơn ta nên dùng lệnh AJMP hay LJMP. 
 Chú ý: rel [relative: tương đối]: các lệnh có xuất hiện “rel” đều liên quan đến lệnh nhảy: nơi nhảy 
đến được tính bằng cách lấy nội dung của PC cộng với số lượng byte của các lệnh nằm giữa lệnh 
nhảy và nơi nhảy đến. Chúng ta không cần quan tâm đến điều này vì chương trình biên dịch của 
máy tính sẽ tính giúp chúng ta. 
BÀI SỐ 2: CHƯƠNG TRÌNH ĐIỀU KHIỂN 16 LED CHÓP TẮT (SÁNG TẮT) P0 VÀ P1 
 LƯU ĐỒ ĐIỀU KHIỂN 
BEGIN
16 LED SÁNG
DELAY
16 LED TẮT
DELAY
END
 VIẾT CHƯƠNG TRÌNH 
;CHUONG TRINH DIEU KHIEN 16 LED SANG TAT - P0 VA P1 
 ORG 0000H 
NHAN1: MOV P0,#00000000B 
Đạ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 10 
 MOV P1,#00000000B 
 CALL DELAY100MS 
 MOV P0,#11111111B 
 MOV P1,#11111111B 
 CALL DELAY100MS 
 JMP NHAN1 
$INCLUDE(TV_DELAY.ASM) 
 END 
BÀI SỐ 3: CTDK 32 LED CHÓP TẮT (SÁNG TẮT) P0, P1, P2, P3 
 LƯU ĐỒ ĐIỀU KHIỂN 
BEGIN
32 LED SÁNG
DELAY
32 LED TẮT
DELAY
END
 VIẾT CHƯƠNG TRÌNH 
;CHUONG TRINH DIEU KHIEN 32 LED SANG TAT - P0,P1,P2,P3 
 ORG 0000H 
NHAN1: MOV P0,#00000000B 
 MOV P1,#00000000B 
 MOV P2,#00000000B 
 MOV P3,#00000000B 
 CALL DELAY100MS 
 MOV P0,#11111111B 
 MOV P1,#11111111B 
 MOV P2,#11111111B 
 MOV P3,#11111111B 
 CALL DELAY100MS 
 JMP NHAN1 
$INCLUDE(TV_DELAY.ASM) 
Đạ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 11 
 END 
BÀI SỐ 4: CTDK SÁNG TẮT DẦN CÁC PORT 0,1,2,3 
 LƯU ĐỒ ĐIỀU KHIỂN 
BEGIN
SÁNG P0 DELAY
END
SÁNG P1 DELAY
SÁNG P2 DELAY
SÁNG P3 DELAY
TẮT P0 DELAY
TẮT P1 DELAY
TẮT P2 DELAY
TẮT P3 DELAY
 VIẾT CHƯƠNG TRÌNH 
;CHUONG TRINH DIEU KHIEN 32 LED SANG TAT - P0,P1,P2,P3 
 ORG 0000H 
NHAN1: MOV P0,#00000000B 
 CALL DELAY100MS 
 MOV P1,#00000000B 
 CALL DELAY100MS 
 MOV P2,#00000000B 
 CALL DELAY100MS 
 MOV P3,#00000000B 
 CALL DELAY100MS 
 MOV P0,#11111111B 
 CALL DELAY100MS 
Đạ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 12 
 MOV P1,#11111111B 
 CALL DELAY100MS 
 MOV P2,#11111111B 
 CALL DELAY100MS 
 MOV P3,#11111111B 
 CALL DELAY100MS 
 JMP NHAN1 
$INCLUDE(TV_DELAY.ASM) 
 END 
BÀI SỐ 5: CTDK SÁNG TẮT 1 LED CỦA PORT0 
 LƯU ĐỒ ĐIỀU KHIỂN 
 VIẾT CHƯƠNG TRÌNH 
;CHUONG TRINH DIEU KHIEN 1 LED CUA PORT 0 SANG TAT 
 ORG 0000H 
NHAN1: MOV P0,#11111110B 
 CALL DELAY100MS 
 MOV P0,#11111111B 
 CALL DELAY100MS 
 JMP NHAN1 
$INCLUDE(TV_DELAY.ASM) 
 END 
CÁCH 2 
;CHUONG TRINH DIEU KHIEN 1 LED CUA PORT 0 SANG TAT 
 ORG 0000H 
NHAN1: CLR P0.7 ;CLEAR BIT P0.7 
 CALL DELAY100MS 
 SETB P0.7 ;SET BIT P0.7 
 CALL DELAY100MS 
 JMP NHAN1 
$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 13 
BÀI SỐ 6: CTDK 8 LED CỦA PORT0 SÁNG TẮT DẦN 
 LƯU ĐỒ ĐIỀU KHIỂN 
BEGIN
TẮT 8 LED, DELAY
END
LED 0 SÁNG, DELAY
LED 1 SÁNG, DELAY
LED 2 SÁNG, DELAY
...
LED 7 SÁNG, DELAY
LED 0 TẮT, DELAY
LED 1 TẮT, DELAY
LED 7 TẮT, DELAY
 VIẾT CHƯƠNG TRÌNH 
DỮ LIỆU ĐIỀU KHIỂN 
CO CI SÁNG TẮT 
 0 0 0 0 0 0 0 0 0 8 
0 ←0 0 0 0 0 0 0 1 ←1 
0 ←0 0 0 0 0 0 1 1 ←1 
1 ←0 0 0 0 0 1 1 1 ←0 
1 ←0 0 0 0 1 0 0 0 ←0 
1 ←0 0 0 0 0 0 0 0 ←0 
1 ←0 0 0 0 0 0 0 0 ←0 
1 ←0 0 0 0 0 0 0 0 ←0 
0 ←0 0 0 0 0 0 0 0 ←0 
 0 0 0 0 0 0 0 1 
Đạ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 14 
 0 0 0 0 0 0 1 1 
 0 0 0 0 0 1 1 1 
 0 0 0 0 1 1 1 1 
 0 0 0 1 1 1 1 1 
 0 0 1 1 1 1 1 1 
 0 1 1 1 1 1 1 1 
 1 1 1 1 1 1 1 1 
0 0
A7 A6 A5 A4 A3 A2 A1 A0
000000 1
C
TRƯỚC KHI THỰC HIỆN
0 1
A7 A6 A5 A4 A3 A2 A1 A0
000000 0
C
SAU KHI THỰC HIỆN
TẮT HẾT – HẾT SỐ 0 
SÁNG HẾT – HẾT SỐ 1 
LỆNG XOAY THANH GHI A SANG TRÁI “RLC A” 
LỆNH LÀM CỜ C BẰNG 1 LÀ “SETB C” 
LỆNH LÀM CỜ C BẰNG 1 LÀ “CLR C” 
7. Lệnh xoay trái nội dung thanh ghi A : 
 Cú pháp : RL A (rotate left) 
 Mã lệnh : 
0 0 1 0 0 0 1 1 
 Lệnh này chiếm 1 byte và thời gian thực hiện lệnh là 1 chu kỳ máy 
 Chức năng: Nội dung thanh ghi A được xoay trái 1 bit minh họa như hình vẽ. 
 Ví dụ : 
 Mov A,#1011 0011b ; 
 RL A ;lệnh thứ nhất 
Đạ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 15 
 Gía trị ban đầu của C ta không cần quan tâm đến kết quả sau khi xoay thì (A) = 0110 0111b và cờ (C) = 1 là 
do bit A7 bằng 1 chuyển sang. 
 RL A ;lệnh thứ 2 
 Kết quả sau khi xoay thì (A) = 11001110b và cờ (C) = 0 là do bit A7 bằng 0 chuyển sang. 
8. Lệnh xoay trái nội dung thanh ghi A và bit carry : 
 Cú pháp : RLC A 
 Mã lệnh : 
0 0 1 1 0 0 1 1 
 Lệnh này chiếm 1 byte và thời gian thực hiện lệnh là 1 chu kỳ máy 
 Chức năng: Nội dung thanh ghi A và bit C được xoay trái 1 bit. 
 Ví dụ 1: Giả sử cho cờ C = 0 trước khi thực hiện lệnh 
 Mov A ,#10110011b 
 RLC A ;kết quả (A) = 01100110b và cờ (C) = 1 
 Ví dụ 2: 
 Setb c ;làm cờ C bằng 1 
 Mov A,#00000000b 
 RLC A ;kết quả (A) = 0000 0001b và cờ (C) = 0 
 Setb c ;làm cờ C bằng 1 
 RLC A ;kết quả (A) = 0000 0011b và cờ (C) = 0 
 . 
 Setb c ;làm cờ C bằng 1 
 RLC A ;kết quả (A) = 0111 1111b và cờ (C) = 0 
 Setb c ;làm cờ C bằng 1 (lần thứ 8) 
 RLC A ;kết quả (A) = 1111 1111b và cờ (C) = 0 
 Setb c ;làm cờ C bằng 1 (lần thứ 9) 
 RLC A ;kết quả (A) = 1111 1111b và cờ (C) = 1 
;xxxx 
 clr c ;làm cờ C bằng 0 
 RLC A ;kết quả (A) = 1111 1110b và cờ (C) = 1 
9. Lệnh xoay phải nội dung thanh ghi A : 
 Cú pháp : RR A (rotate right) 
 Mã lệnh : 
Đạ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 16 
0 0 0 0 0 0 1 1 
 Lệnh này chiếm 1 byte và thời gian thực hiện lệnh là 1 chu kỳ máy 
 Chức năng: Nội dung thanh ghi A được xoay phải 1 bit ngược với lệnh RL A. 
10. Lệnh xoay phải nội dung thanh ghi A và bit carry : 
 Cú pháp : RRC A 
 Mã lệnh : 
1 1 1 0 0 1 0 0 
 Lệnh này chiếm 1 byte và thời gian thực hiện lệnh là 1 chu kỳ máy 
 Chức năng: Nội dung thanh ghi A và bit C được xoay phải 1 bit ngược với lệnh RLC A. 
 ;CHUONG TRINH DIEU KHIEN 8 LED CUA PORT 0 SANG TAT 
 ORG 0000H 
NHAN1: MOV P0,#11111111B ;8 LED TAT 
 CALL DELAY100MS 
 MOV P0,#11111110B ;LED 0 SANG 
 CALL DELAY100MS 
 MOV P0,#11111100B ;LED 0,1 SANG 
 CALL DELAY100MS 
 MOV P0,#11111000B ;LED 0,1,2 SANG 
 CALL DELAY100MS 
 MOV P0,#11110000B ;LED 0,1,2 SANG 
 CALL DELAY100MS 
 MOV P0,#11100000B ;LED 0,1,2 SANG 
 CALL DELAY100MS 
 MOV P0,#11000000B ;LED 0,1,2 SANG 
 CALL DELAY100MS 
 MOV P0,#10000000B ;LED 0,1,2 SANG 
 CALL DELAY100MS 
 MOV P0,#00000000B ;LED 0,1,2 SANG 
 CALL DELAY100MS 
;SANG HET 8 LED 
 MOV P0,#00000001B ;TAT LED 0 
 CALL DELAY100MS 
Đạ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 17 
 MOV P0,#00000011B ;TAT LED 0,1 
 CALL DELAY100MS 
 MOV P0,#00000111B ;TAT LED 0,1,2 
 CALL DELAY100MS 
 MOV P0,#00001111B ;TAT LED 0,1,2 
 CALL DELAY100MS 
 MOV P0,#00011111B ;TAT LED 0,1,2 
 CALL DELAY100MS 
 MOV P0,#00111111B ;TAT LED 0,1,2 
 CALL DELAY100MS 
 MOV P0,#01111111B ;TAT LED 0,1,2 
 CALL DELAY100MS 
 JMP NHAN1 
$INCLUDE(TV_DELAY.ASM) 
 END 
CÁCH 2 
LƯU ĐỒ 
BEGIN
TẮT 8 LED 
END
 DELAY
DỊCH ‘0’ VÀO
HẾT ‘1’
S
Đ
DỊCH ‘1’ VÀO
 DELAY
HẾT ‘0’
Đ
S
CHƯƠNG TRÌNH 
Đạ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 18 
 ORG 0000H 
LB: MOV P0,#11111111B ;8 LED TAT 
LB1: CALL DELAY100MS 
 CLR C ;XOA C DE DICH VAO 
 MOV A,P0 
 RRC A ;XOAY CHI DUNG CHO TG A 
 MOV P0,A 
 JC LB1 ;NHAY VE "LB1" NEU C = 1 
;SANG HET - TAT DAN 
LB2: SETB C ; SET C DE DICH VAO 
 MOV A,P0 
 RRC A ;XOAY CHI DUNG CHO TG A 
 MOV P0,A 
 CALL DELAY100MS 
 JNC LB2 ;NHAY VE "LB2" NEU C = 0 
 JMP LB 
$INCLUDE(TV_DELAY.ASM) 
 END 
GIẢI THÍCH CHƯƠNG TRÌNH 
(H1) ;CHUONG TRINH DIEU KHIEN 8 LED CUA PORT 0 SANG TAT 
KHÔNG CÓ CŨNG ĐƯỢC NHƯNG NẾU CÓ THÌ PHẢI BẮT ĐẦU BẰNG DẤU ; 

File đính kèm:

  • pdfbai_giang_vi_dieu_khien_giao_tiep_led_nguyen_dinh_phu.pdf