Đại học sư phạm kỹ thuật tp HCM
khoa điện – điện tử
Nguyễn Đình Phú
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.
Bộ môn điện tử công nghiệp
bài giảng vi điều khiển: giao tiếp led
1
Đại học sư phạm kỹ thuật tp HCM
khoa điện – điện tử
Nguyễn Đình Phú
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
Bộ môn điện tử công nghiệp
bài giảng vi điều khiển: giao tiếp led
2
Đại học sư phạm kỹ thuật tp HCM
khoa điện – điện tử
Nguyễn Đình Phú
(H1);CHUONG TRINH DIEU KHIEN 8 LED CUA PORT 0 SANG TAT
(H2)
ORG 0000H
(H3) LB:
(H4)
(H5)
MOV
CALL
MOV
P0,#00000000B
DELAY100MS
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
Bộ môn điện tử công nghiệp
bài giảng vi điều khiển: giao tiếp led
3
Đại học sư phạm kỹ thuật tp HCM
khoa điện – điện tử
Nguyễn Đình Phú
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”
Bộ môn điện tử công nghiệp
bài giảng vi điều khiển: giao tiếp led
4
Đại học sư phạm kỹ thuật tp HCM
khoa điện – điện tử
Nguyễn Đình Phú
MCS-51 MACRO ASSEMBLER TAMPRO4
PAGE 1
10/31/:9
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
0000
1
2
;CHUONG TRINH DIEU KHIEN 8 LED SANG TAT
ORG 0000H
0000 758000
0003 120049
3
4
5
LB:
0006 758001
0009 120049
000C 80F2
MOV
CALL
P0,#00000000B
DELAY100MS
;LAM 8 LED TAT
6
7
MOV
CALL
P0,#00000001B
DELAY100MS
;LAM 8 LED SANG
8
9
JMP
LB
GIẢI THÍCH
0000 758000 4
LB:
MOV
P0,#00000000B
BYTE THỨ NHẤT “75” LÀ MÃ LỆNH
BYTE THỨ HAI “80” LÀ ĐỊA CHỈ CỦA PORT 0
80H
87
86
85
84
83
82
81
;LAM 8 LED TAT
P0
80
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.
Bộ môn điện tử công nghiệp
bài giảng vi điều khiển: giao tiếp led
5
Đại học sư phạm kỹ thuật tp HCM
khoa điện – điện tử
Nguyễn Đình Phú
TÌM HIỂU FILE “*.HEX”
Bộ môn điện tử công nghiệp
bài giảng vi điều khiển: giao tiếp led
6
Đại học sư phạm kỹ thuật tp HCM
khoa điện – điện tử
Nguyễn Đình Phú
CHỈ CHỨA CÁC MÃ LỆNH DẠNG NHỊ PHÂN:
:1000000075800012004975800112004980F2757FE9
:1000100030D57FFD22757E0A757F30D57FFDD57E78
:10002000F722757E64757F30D57FFDD57EF722750A
:100030007EC8757F30D57FFDD57EF722757EC87569
:100040007FFAD57FFDD57EF722113C113C22114964
:10005000114922114E114E22757D14113CD57DFBA4
:0A00600022757D28113CD57DFB229E
:00000001FF
Bộ môn điện tử công nghiệp
bài giảng vi điều khiển: giao tiếp led
7
Đại học sư phạm kỹ thuật tp HCM
khoa điện – điện tử
Nguyễn Đình Phú
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
a7
0
0
0
1
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
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 :
Bộ môn điện tử công nghiệp
LJMP addr16
bài giảng vi điều khiển: giao tiếp led
8
Đại học sư phạm kỹ thuật tp HCM
khoa điện – điện tử
Nguyễn Đình Phú
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
Bộ môn điện tử công nghiệp
P0,#00000000B
bài giảng vi điều khiển: giao tiếp led
9
Đại học sư phạm kỹ thuật tp HCM
khoa điện – điện tử
MOV
CALL
P1,#00000000B
DELAY100MS
MOV
MOV
CALL
P0,#11111111B
P1,#11111111B
DELAY100MS
Nguyễn Đình Phú
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
MOV
MOV
P1,#00000000B
P2,#00000000B
P3,#00000000B
CALL
MOV
MOV
DELAY100MS
P0,#11111111B
P1,#11111111B
MOV
MOV
P2,#11111111B
P3,#11111111B
CALL
DELAY100MS
JMP NHAN1
$INCLUDE(TV_DELAY.ASM)
Bộ môn điện tử công nghiệp
bài giảng vi điều khiển: giao tiếp led
10
Đại học sư phạm kỹ thuật tp HCM
khoa điện – điện tử
Nguyễn Đình Phú
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
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
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
CALL
MOV
CALL
DELAY100MS
P1,#00000000B
DELAY100MS
MOV
CALL
P2,#00000000B
DELAY100MS
MOV
CALL
P3,#00000000B
DELAY100MS
MOV
CALL
P0,#11111111B
DELAY100MS
Bộ môn điện tử công nghiệp
bài giảng vi điều khiển: giao tiếp led
11
Đại học sư phạm kỹ thuật tp HCM
khoa điện – điện tử
MOV
CALL
P1,#11111111B
DELAY100MS
MOV
CALL
MOV
P2,#11111111B
DELAY100MS
P3,#11111111B
CALL
JMP
DELAY100MS
NHAN1
Nguyễn Đình Phú
$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
CALL
P0,#11111110B
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
CALL
SETB
P0.7
DELAY100MS
P0.7
;CLEAR BIT P0.7
;SET BIT P0.7
CALL
DELAY100MS
JMP
NHAN1
$INCLUDE(TV_DELAY.ASM)
END
Bộ môn điện tử công nghiệp
bài giảng vi điều khiển: giao tiếp led
12
Đại học sư phạm kỹ thuật tp HCM
khoa điện – điện tử
Nguyễn Đình Phú
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
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
END
VIẾT CHƯƠNG TRÌNH
DỮ LIỆU ĐIỀU KHIỂN
CO
0
0
1
1
1
1
1
0
Bộ môn điện tử công nghiệp
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
CI
SÁNG
0
TẮT
8
←1
←1
←0
←0
←0
←0
←0
←0
bài giảng vi điều khiển: giao tiếp led
13
Đại học sư phạm kỹ thuật tp HCM
0
0
0
0
0
0
1
khoa điện – điện tử
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
Nguyễn Đình Phú
1
1
1
1
1
1
1
A7
A6
A5
A4
A3
A2
A1
A0
C
0
0
0
0
0
0
0
0
1
TRƯỚC KHI THỰC HIỆN
A7
A6
A5
A4
A3
A2
A1
A0
C
0
0
0
0
0
0
0
1
0
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
LỆNH LÀM CỜ C BẰNG 1 LÀ “CLR
7.
C”
C”
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
Bộ môn điện tử công nghiệp
;
;lệnh thứ nhất
bài giảng vi điều khiển: giao tiếp led
14
Đại học sư phạm kỹ thuật tp HCM
khoa điện – điện tử
Nguyễn Đình Phú
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
Setb c
;làm cờ C bằng 1
Ví dụ 2:
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
RLC A
;làm cờ C bằng 1 (lần thứ 8)
;kết quả (A) = 1111 1111b và cờ (C) = 0
Setb c
RLC A
;làm cờ C bằng 1 (lần thứ 9)
;kết quả (A) = 1111 1111b và cờ (C) = 1
;xxxx
clr c
RLC A
9.
;làm cờ C bằng 0
;kết quả (A) = 1111 1110b và cờ (C) = 1
Lệnh xoay phải nội dung thanh ghi A :
Cú pháp :
RR A
(rotate right)
Mã lệnh :
Bộ môn điện tử công nghiệp
bài giảng vi điều khiển: giao tiếp led
15
Đại học sư phạm kỹ thuật tp HCM
khoa điện – điện tử
0
0
0
0
0
0
Nguyễn Đình Phú
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
CALL
P0,#11111111B
DELAY100MS
;8 LED TAT
MOV
CALL
P0,#11111110B
DELAY100MS
;LED 0 SANG
MOV
CALL
MOV
P0,#11111100B
DELAY100MS
P0,#11111000B
;LED 0,1 SANG
CALL
MOV
CALL
DELAY100MS
P0,#11110000B
DELAY100MS
MOV
CALL
MOV
P0,#11100000B
DELAY100MS
P0,#11000000B
CALL
MOV
CALL
DELAY100MS
P0,#10000000B
DELAY100MS
MOV
CALL
;SANG HET 8 LED
P0,#00000000B
DELAY100MS
;LED 0,1,2 SANG
MOV
CALL
P0,#00000001B
DELAY100MS
;TAT LED 0
Bộ môn điện tử công nghiệp
;LED 0,1,2 SANG
;LED 0,1,2 SANG
;LED 0,1,2 SANG
;LED 0,1,2 SANG
;LED 0,1,2 SANG
bài giảng vi điều khiển: giao tiếp led
16
Đại học sư phạm kỹ thuật tp HCM
khoa điện – điện tử
Nguyễn Đình Phú
MOV
CALL
P0,#00000011B
DELAY100MS
;TAT LED 0,1
MOV
CALL
MOV
P0,#00000111B
DELAY100MS
P0,#00001111B
;TAT LED 0,1,2
CALL
MOV
CALL
DELAY100MS
P0,#00011111B
DELAY100MS
MOV
CALL
MOV
P0,#00111111B
DELAY100MS
P0,#01111111B
CALL
JMP
DELAY100MS
NHAN1
;TAT LED 0,1,2
;TAT LED 0,1,2
;TAT LED 0,1,2
;TAT LED 0,1,2
$INCLUDE(TV_DELAY.ASM)
END
CÁCH 2
LƯU ĐỒ
BEGIN
TẮT 8 LED
DELAY
DỊCH ‘0’ VÀO
HẾT ‘1’
Đ
S
DỊCH ‘1’ VÀO
DELAY
HẾT ‘0’
Đ
S
END
CHƯƠNG TRÌNH
Bộ môn điện tử công nghiệp
bài giảng vi điều khiển: giao tiếp led
17
Đại học sư phạm kỹ thuật tp HCM
khoa điện – điện tử
Nguyễn Đình Phú
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 ;
Bộ môn điện tử công nghiệp
bài giảng vi điều khiển: giao tiếp led
18