Tải bản đầy đủ (.pdf) (18 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 (747.7 KB, 18 trang )

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




×