KHOA CÔNG NGHỆ ðIỆN TỬ
BỘ MÔN ðIỆN TỬ CÔNG NGHIỆP
T
T
À
À
I
IL
L
I
I
Ệ
Ệ
U
UH
H
Ư
Ư
Ớ
I
Ệ
Ệ
M
M-
-T
T
H
H
Ự
Ự
C
CH
H
À
À
N
N
H
H
cần ñiều khiển.
• Khi kết nối ñúng vị trí bit 0 thì các bit còn lại sẽ ñúng vị trí.
• Tất cả các chương trình mẫu trong hệ thống này ñều ñược kiểm tra rất kỹ theo ñúng như kết
nối mạch ñược trình bày.
• Nếu một yêu cầu nào ñó không ñúng thì hãy xem lại phần kết nối và chương trình.
B. Khi viết chương trình:• Số 0 thường ñược ñánh nhầm là chữ O.
• Thường ñánh thiếu tiền tố # và hậu tố H ñi kèm trong một số trường hợp.
• Sau lệnh END thì không còn một hàng hay một ký tự nào (kể cả ký tự trắng) nếu không
chương trình biên dịch sẽ báo lỗi. Lỗi này có thể bỏ qua.
• Hãy dùng phím TAB ñể viết chương trình cho thẳng hàng. ðiều này rất có ích cho bạn khi
cần xem lại và kiểm tra lỗi chương trình ñược nhanh chóng.
• Hiện nay các phần mềm biên dịch ñều có hỗ trợ tính năng kiểm tra lỗi lập trình, nhưng việc
kiểm tra lỗi này chỉ dựa trên việc kiểm tra cú pháp (kiểm tra lỗi chính tả). Cho nên, có
trường hợp việc kiểm tra chương trình không thấy xuất hiện lỗi nhưng chương trình vẫn
không hoạt ñộng ñược là do phương pháp lập trình không chính xác. Vì vậy ñể chương trình
viết ra hoạt ñộng tốt thì ñòi hỏi: CÚ PHÁP phải ñúng và PHƯƠNG PHÁP phải ñúng
• Nếu nhập một chương trình nào ñó trong tài liệu mà chương trình chạy không ñúng như yêu
cầu thì hãy xem kỹ lại có ñánh ñầy ñủ tất cả các lệnh trong chương trình hay chưa? Có thiếu
sót gì không? Kết nối mạch có theo như hướng dẫn hay không? Tất cả các chương trình
trong tài liệu hướng dẫn ñã ñược chạy thử và luôn luôn ñúng. ðỌC KỸ HƯỚNG DẪN SỬ DỤNG TRƯỚC KHI THỰC HÀNH
U
UH
H
Ư
Ư
Ớ
Ớ
N
N
G
GD
D
Ẫ
Ẫ
N
NT
T
H
H
Í
Í
H
H
À
À
N
N
H
H A. HỆ THỐNG ðIỀU KHIỂN LED ðƠN
Giáo trình thực hành vi xử lý. 58 Biên soạn: Phạm Quang Trí
A. MỤC ðÍCH:
BAR LED 2 BAR LED 1POWER
NGUỒN
+5V
VI ĐIỀU KHIỂN
A0 A7
SELECT
CHIP
CLOCK
OUT
POWER
SW
8
3
8
1.2 Sơ đồ ngun lý của hệ thống:
D7
D0
D1
D2
D3
D4
D5
D6
AD7 AD7
AD0
D0AD0 AD0
AD1 AD1
AD2 AD2
AD3 AD3
30
EA
31
PSEN
29
RST
9
P0.0/AD0
39
P0.1/AD1
38
P0.2/AD2
37
P0.3/AD3
36
P0.4/AD4
35
P0.5/AD5
34
P0.6/AD6
33
P0.7/AD7
32
P1.0
1
P1.1
2
P1.2
3
P1.3
22
P2.2/A10
23
P2.3/A11
24
P2.4/A12
25
P2.5/A13
26
P2.6/A14
27
U1
AT89C51
C1
33p
C2
33p
X1
12MHz
C3
10uF
R1
10k
+5V
D1
R2
330
+5V
D2
R3
3B
3
4B
4
5B
5
6B
6
7B
7
8B
8
1C
18
2C
17
3C
16
4C
15
5C
14
6C
13
7C
12
8C
11
COM
10
Bài 1: Chương trình ñiều khiển 8 LED ñược nối với Port0 sáng tắt (có sử dụng bộ ñệm ñảo).
Giáo trình thực hành vi xử lý. 60 Biên soạn: Phạm Quang Trí
1.3 Vẽ lưu ñồ giải thuật và viết chương trình ñiều khiển.
DELAY500MS
CẤT TẠM GIÁ TRỊ CỦA R0 VÀO
STACK
NẠP GIÁ TRỊ VÒNG LẶP
(R0) = 100
DEL:
GIÃM SỐ LẦN LẶP
SỐ LẦN LẶP ≠ 0
(CHƯA LẶP XONG)
ð
S
LẤY LẠI GIÁ TRỊ CHO R0 TỪ
STACK
RET
KHỞI ðỘNG TIMER
(TIMER 0, MODE 1)
(TMOD) = 01H
NẠP GIÁ TRỊ CHO TIMER
(T
DELAY
= 20000.T
MÁY
)
(TH0/TL0) = -5000 = EC78H
CHƯA ðỦ THỜI GIAN
(TF0) = 0
ð
MOV P0,#0FFH ;LED SANG
LCALL DELAY500MS
SJMP CHOPTAT ;QUAY LAI
;****************************************************
DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS
PUSH 00H
MOV R0,#100
MOV TMOD,#01H
LOOP2:
MOV TH0,#HIGH(-5000)
MOV TL0,#LOW(-5000)
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
DJNZ R0,LOOP2
POP 00H
RET
1.1 Kết nối thiết bị thí nghiệm.
• Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Sơ ñồ nguyên lý của hệ thống:
• Sơ ñồ nguyên lý của hệ thống tương tự như Bài 1.
1.3 Vẽ lưu ñồ giải thuật và viết chương trình ñiều khiển.
;***************************************************
;CHUONG TRINH DIEU KHIEN 8 LED DEM LEN NHI PHAN
;***************************************************
;KET NOI: 8 LED -> PORT0 (CO DEM DAO).
;***************************************************
ORG 00H
MOV P0,#00H ;LED TAT
LCALL DELAY500MS
LAP:
INC P0 ;TANG NHI PHAN
LCALL DELAY500MS
SJMP LAP ;QUAY LAI
;****************************************************
DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS
PUSH 00H
MOV R0,#100
MOV TMOD,#01H
LOOP2:
• Bài 5:
Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
A. HỆ THỐNG ðIỀU KHIỂN LED ðƠN
Bài 3: Chương trình ñiều khiển 8 LED ñược nối với Port0 sáng dần và tắt hết (có sử dụng bộ ñệm ñảo).
Giáo trình thực hành vi xử lý. 63 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm.
• Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Sơ ñồ nguyên lý của hệ thống:
• Sơ ñồ nguyên lý của hệ thống tương tự như Bài 1.
1.3 Vẽ lưu ñồ giải thuật và viết chương trình ñiều khiển.
• Cách 1:
ðIỀU KHIỂN LED TẮT
(P0) = 0 / 0 = TẮT
BEGIN
GỌI CTC TẠO TRỄ
DELAY500MS
ðIỀU KHIỂN 1 LED SÁNG
(P0) = 00000001B / 1 = SÁNG
GỌI CTC TẠO TRỄ
DELAY500MS
A3.1
ðIỀU KHIỂN 2 LED SÁNG
(P0) = 00000011B / 1 = SÁNG
GỌI CTC TẠO TRỄ
DELAY500MS
ðIỀU KHIỂN 3 LED SÁNG
(P0) = 00000111B / 1 = SÁNG
GỌI CTC TẠO TRỄ
;***************************************************
ORG 00H
MAIN:
MOV P0,#00000000B ;HIEN THI 0 LED
LCALL DELAY500MS
MOV P0,#00000001B ;HIEN THI 1 LED
LCALL DELAY500MS
MOV P0,#00000011B ;HIEN THI 2 LED
LCALL DELAY500MS
MOV P0,#00000111B ;HIEN THI 3 LED
LCALL DELAY500MS
MOV P0,#00001111B ;HIEN THI 4 LED
LCALL DELAY500MS
MOV P0,#00011111B ;HIEN THI 5 LED
LCALL DELAY500MS
MOV P0,#00111111B ;HIEN THI 6 LED
LCALL DELAY500MS
MOV P0,#01111111B ;HIEN THI 7 LED
LCALL DELAY500MS
MOV P0,#11111111B ;HIEN THI 8 LED
LCALL DELAY500MS
• Cách 2:
NẠP GIÁ TRỊ BIẾN LẶP
(R0) = 0
BEGIN
NẠP ðỊA CHỈ VÙNG DỮ LIỆU
(DPTR) = DATADISP
NẠP ðỊA CHỈ OFFSET
(A) = (R0)
LẤY DỮ LIỆU
(A) = (@A+DPTR)
A3.2
XUẤT DỮ LIỆU RA PORT
(P0) = (A)
GỌI CTC TẠO TRỄ
DELAY500MS
TĂNG BIẾN LẶP
(R0) = (R0) + 1
MAIN:
LOOP:
CHƯA ðỦ
(R0) ≠ 9
ð
S
VÙNG DỮ LIỆU DATADISP
00H,01H,03H,07H,0FH,1FH,3FH,7FH,0FFH
DELAY500MS
(XEM CTC NÀY TẠI VÍ DỤ A1)
;***************************************************
MOV TL0,#LOW(-5000)
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
DJNZ R0,LOOP2
POP 00H
RET
;****************************************************
DATADISP: ;VUNG DU LIEU HIEN THI
DB 00H,01H,03H,07H,0FH,1FH,3FH,7FH,0FFH
END
• Cách 3:
A. HỆ THỐNG ðIỀU KHIỂN LED ðƠN
Bài 3: Chương trình ñiều khiển 8 LED ñược nối với Port0 sáng dần và tắt hết (có sử dụng bộ ñệm ñảo).
Giáo trình thực hành vi xử lý. 65 Biên soạn: Phạm Quang Trí
;***************************************************
;CHUONG TRINH DIEU KHIEN 8 LED SANG DAN VA TAT HET
;***************************************************
;KET NOI: 8 LED -> PORT0 (CO DEM DAO).
CLR TR0
CLR TF0
DJNZ R0,LOOP2
POP 00H
RET
END
1.4 Thực hiện lần lượt các bước từ 1.3 ñến 1.8 tương tự như bài trên.
2 Bài tập:
• Bài 1:
Hãy viết chương trình ñiều khiển 8 LED ñược nối với Port3 sáng dần và tắt hết.
• Bài 2:
Hãy viết chương trình ñiều khiển 8 LED ñược nối với Port2 sáng hết và tắt dần.
• Bài 3:
Hãy viết chương trình ñiều khiển tương tự như hai bài tập 1 và 2 nhưng là theo chiều ngược lại.
• Bài 4:
Hãy viết chương trình ñiều khiển 8 LED ñược nối với Port1 sáng dần và tắt dần.
• Bài 5:
Hãy viết chương trình ñiều khiển 16 LED ñược nối với hai Port (Port2 và Port3) sáng dần và tắt dần.
• Bài 6:
Hãy viết chương trình ñiều khiển tương tự như hai bài tập 4 và 5 nhưng là theo chiều ngược lại.
• Bài 7:
Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
A. HỆ THỐNG ðIỀU KHIỂN LED ðƠN
Bài 4: Chương trình ñiều khiển 8 LED ñược nối với Port0 sáng ñuổi (có sử dụng bộ ñệm ñảo).
Giáo trình thực hành vi xử lý. 66 Biên soạn: Phạm Quang Trí
CHƯA ðỦ
(R0) ≠ 8
DELAY500MS
(XEM CTC NÀY TẠI VÍ DỤ A1)
;***************************************************
;CHUONG TRINH DIEU KHIEN 8 LED SANG DUOI
;***************************************************
;KET NOI: 8 LED -> PORT0 (CO DEM DAO).
;***************************************************
ORG 00H
MAIN:
MOV R0,#00H ;BIEN DEM SO TRANG THAI HIEN THI
MOV DPTR,#DATADISP ;NAP DIA CHI VUNG DU LIEU
LOOP:
MOV A,R0
MOVC A,@A+DPTR ;LAY DU LIEU TU VUNG NHO
MOV P0,A ;HIEN THI
LCALL DELAY500MS
INC R0 ;LAY DU LIEU KE TIEP
CJNE R0,#8,LOOP ;KIEM TRA SO DU TRANG THAI HIEN THI
SJMP MAIN ;QUAY LAI
;****************************************************
DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS
PUSH 00H
Giáo trình thực hành vi xử lý. 67 Biên soạn: Phạm Quang Trí
• Cách 2:
;***************************************************
;CHUONG TRINH DIEU KHIEN 8 LED SANG DUOI
;***************************************************
;KET NOI: 8 LED -> PORT0 (CO DEM DAO).
;***************************************************
ORG 00H
MAIN:
MOV A,#01H ;KHOI DONG GIA TRI BAN DAU
LAP:
MOV P0,A ;HIEN THI
LCALL DELAY500MS
RL A ;DICH BIT 1 SANG TRAI
SJMP LAP ;QUAY LAI
;****************************************************
DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS
PUSH 00H
MOV R0,#100
MOV TMOD,#01H
LOOP2:
MOV TH0,#HIGH(-5000)
• Bài 6:
Hãy viết chương trình ñiều khiển tương tự như hai bài tập 4 và 5 nhưng là theo chiều ngược lại.
• Bài 7:
Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
A. HỆ THỐNG ðIỀU KHIỂN LED ðƠN
Bài 5: Chương trình ñiều khiển 8 LED ñược nối với Port0 sáng dồn (có sử dụng bộ ñệm ñảo).
Giáo trình thực hành vi xử lý. 68 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm.
• Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Sơ ñồ nguyên lý của hệ thống:
• Sơ ñồ nguyên lý của hệ thống tương tự như Bài 1.
1.3 Vẽ lưu ñồ giải thuật và viết chương trình ñiều khiển.
• Cách 1:
NẠP GIÁ TRỊ BIẾN LẶP
(R0) = 0
BEGIN
NẠP ðỊA CHỈ VÙNG DỮ LIỆU
(DPTR) = DATADISP
NẠP ðỊA CHỈ OFFSET
(A) = (R0)
LẤY DỮ LIỆU
(A) = (@A+DPTR)
A5.1
XUẤT DỮ LIỆU RA PORT
(P0) = (A)
GỌI CTC TẠO TRỄ
DELAY500MS
MOV DPTR,#DATADISP ;NAP DIA CHI VUNG DU LIEU
LOOP:
MOV A,R0
MOVC A,@A+DPTR ;LAY DU LIEU TU VUNG NHO
MOV P0,A ;HIEN THI
LCALL DELAY500MS
INC R0 ;LAY DU LIEU KE TIEP
CJNE R0,#36,LOOP ;KIEM TRA SO DU TRANG THAI HIEN THI
SJMP MAIN ;QUAY LAI
;****************************************************
DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS
PUSH 00H
MOV R0,#100
MOV TMOD,#01H
LOOP2:
MOV TH0,#HIGH(-5000)
MOV TL0,#LOW(-5000)
SETB TR0
JNB TF0,$
CLR TR0
• Cách 2:
NẠP SỐ LẦN DỊCH BIT
(R0) = 08H
BEGIN
TRẠNG THÁI DÃY LED Ở LẦN
DỒN ðẦU TIÊN
(R1) = 00000000B / 0 = TẮT
A5.2
MAIN:
LAP2:
NẠP SỐ LẦN PHẢI DỊCH BIT
(R2) = (R0)
NẠP TRẠNG THÁI DỊCH BIT
ðẦU TIÊN
(R3) = 000000001B / 1 = SÁNG
LAP1:
NẠP TRẠNG THÁI DỊCH BIT
(A) = (R3)
KẾT HỢP TRẠNG THÁI DÃY
LED VÀ TRẠNG THÁI DỊCH BIT
HIỆN TẠI
(A) = (R3) + (R1)
XUẤT DỮ LIỆU RA PORT
(P0) = (A)
GỌI CTC TẠO TRỄ
DELAY500MS
DỊCH TRÁI (R3)
RL A / SÁNG ðUỔI
GIÃM SỐ LẦN DỊCH BIT (R2)
LAP2:
A. HỆ THỐNG ðIỀU KHIỂN LED ðƠN
Bài 5: Chương trình ñiều khiển 8 LED ñược nối với Port0 sáng dồn (có sử dụng bộ ñệm ñảo).
Giáo trình thực hành vi xử lý. 70 Biên soạn: Phạm Quang Trí
MOV R2,00H
MOV R3,#01H
LAP1:
MOV A,R3
ORL A,R1
MOV P0,A ;HIEN THI
ACALL DELAY500MS
MOV A,R3 ;DON LED
RL A
MOV R3,A
DJNZ R2,LAP1 ;CHUA DON XONG? QUAY LAI
DEC R0 ;GIAM SO LAN DON LED
SETB C ;THAY DOI TRANG THAI LED CHO LAN DON TIEP THEO
MOV A,R1
RRC A
MOV R1,A
RET
END
1.4 Thực hiện lần lượt các bước từ 1.3 ñến 1.8 tương tự như bài trên.
2 Bài tập:
• Bài 1:
Hãy viết chương trình ñiều khiển 8 LED ñược nối với Port3 sáng dồn.
• Bài 2:
Hãy viết chương trình ñiều khiển 8 LED ñược nối với Port2 tắt dồn.
• Bài 3:
Hãy viết chương trình ñiều khiển tương tự như hai bài tập 1 và 2 nhưng là theo chiều ngược lại.
• Bài 4:
Hãy viết chương trình ñiều khiển 16 LED ñược nối với hai Port (Port1 và Port3) sáng dồn.
• Bài 5:
Hãy viết chương trình ñiều khiển 16 LED ñược nối với hai Port (Port2 và Port0) tắt dồn.
• Bài 6:
Hãy viết chương trình ñiều khiển tương tự như hai bài tập 4 và 5 nhưng là theo chiều ngược lại.
• Bài 7:
Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
A. HỆ THỐNG ðIỀU KHIỂN LED ðƠN
Bài 6: Chương trình ñiều khiển 8 LED ñược nối với Port0 hoạt ñộng bằng cách tổng hợp các phương pháp ñiều
khiển ñã thực tập (có sử dụng bộ ñệm ñảo).
Giáo trình thực hành vi xử lý. 71 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm.
• Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Sơ ñồ nguyên lý của hệ thống:
• Sơ ñồ nguyên lý của hệ thống tương tự như Bài 1.
1.3 Vẽ lưu ñồ giải thuật và viết chương trình ñiều khiển.
LCALL DELAY500MS
MOV P0,#0FFH ;LED SANG
LCALL DELAY500MS
DJNZ R7,SOLAN1 ;GIAM SO LAN THUC HIEN BAI
RET ;QUAY LAI
;****************************************************
DEMLEN: ;CTC DEM LEN NHI PHAN
MOV R7,#2 ;SO LAN THUC HIEN
SOLAN2:
MOV P0,#00H ;LED TAT
LCALL DELAY500MS
LAP1:
INC P0 ;TANG NHI PHAN
LCALL DELAY500MS
MOV A,P0
CJNE A,#00H,LAP1
DJNZ R7,SOLAN2 ;GIAM SO LAN THUC HIEN BAI
RET ;QUAY LAI
;****************************************************
SANGDUOI: ;CTC SANG DUOI
MOV R7,#5 ;SO LAN THUC HIEN
SOLAN3:
SOLAN5:
MOV R0,#08H ;LUU SO LAN DICH BIT
MOV R1,#00H ;TRANG THAI LED KHI DON LAN DAU TIEN
LAP4:
A. HỆ THỐNG ðIỀU KHIỂN LED ðƠN
Bài 6: Chương trình ñiều khiển 8 LED ñược nối với Port0 hoạt ñộng bằng cách tổng hợp các phương pháp ñiều
khiển ñã thực tập (có sử dụng bộ ñệm ñảo).
Giáo trình thực hành vi xử lý. 73 Biên soạn: Phạm Quang Trí
MOV R2,00H
MOV R3,#01H
LAP5:
MOV A,R3
ORL A,R1
MOV P0,A ;HIEN THI
ACALL DELAY500MS
MOV A,R3 ;DON LED
RL A
MOV R3,A
DJNZ R2,LAP5 ;CHUA DON XONG? QUAY LAI
DEC R0 ;GIAM SO LAN DON LED
SETB C ;THAY DOI TRANG THAI LED CHO LAN DON TIEP THEO
MOV A,R1
DJNZ R0,LOOP2
POP 00H
RET
END
1.4 Thực hiện lần lượt các bước từ 1.3 ñến 1.8 tương tự như bài trên.
2 Bài tập:
• Bài 1:
Hãy viết chương trình ñiều khiển sao cho phần sáng tắt của chương trình ví dụ trên ñược thực hiện
10 lần (các phần khác không thay ñổi).
• Bài 2:
Hãy viết chương trình ñiều khiển sao cho phần ñếm lên nhị phân chương trình ví dụ trên ñược thực
hiện 10 lần (các phần khác không thay ñổi).
• Bài 3:
Hãy viết chương trình ñiều khiển sao cho phần sáng dần và tắt dần của chương trình ví dụ trên ñược
thực hiện 10 lần (các phần khác không thay ñổi).
• Bài 4:
Hãy viết chương trình ñiều khiển sao cho phần sáng ñuổi của chương trình ví dụ trên ñược thực hiện
10 lần (các phần khác không thay ñổi).
• Bài 5:
Hãy viết chương trình ñiều khiển sao cho phần sáng dồn của chương trình ví dụ trên ñược thực hiện
10 lần (các phần khác không thay ñổi).
• Bài 6:
Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
A. HỆ THỐNG ðIỀU KHIỂN LED ðƠN
Bài 7: Chương trình con ñiều khiển tạo thời gian trễ 200
GIÃM SỐ LẦN LẶP 1
SỐ LẦN LẶP 1 ≠ 0
(CHƯA LẶP XONG)
ð
S
LẤY LẠI GIÁ TRỊ CHO R0, R1 TỪ
STACK
RET
DELAY200US:
;***************************************************
;CHUONG TRINH DIEU KHIEN 8 LED SANG TAT
;***************************************************
;KET NOI: 8 LED -> PORT0 (CO DEM DAO).
;***************************************************
ORG 00H
CHOPTAT:
MOV P0,#00H ;LED TAT
LCALL DELAY200US
MOV P0,#0FFH ;LED SANG
LCALL DELAY200US
SJMP CHOPTAT ;QUAY LAI
;***************************************************
;CHUONG TRINH CON TAO THOI GIAN TRE
;***************************************************
;TIME DELAY: 200US
µµ
µ
s, 20ms, 2s sử dụng Timer.
Giáo trình thực hành vi xử lý. 75 Biên soạn: Phạm Quang Trí
DELAY20MS
A7.2
KHỞI ðỘNG TIMER
(TIMER 0, MODE 1)
(TMOD) = 01H
NẠP GIÁ TRỊ CHO TIMER
(T
DELAY
= 20000.T
MÁY
)
(TH0/TL0) = -20000 = B1E0H
CHƯA ðỦ THỜI GIAN
(TF0) = 0
ð
S
RET
CHO TIMER HOẠT ðỘNG
(TR0) = 1
DỪNG TIMER
(TR0) = 0
XÓA CỜ TRÀN TIMER
(TF0) = 0
DELAY20MS:
;***************************************************
MOV TL0,#LOW(-20000)
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
RET
END
• Ứng dụng chương trình tạo thời gian trễ 2s:
;***************************************************
;CHUONG TRINH DIEU KHIEN 8 LED SANG TAT
;***************************************************
;KET NOI: 8 LED -> PORT0 (CO DEM DAO).
;***************************************************
ORG 00H
CHOPTAT:
MOV P0,#00H ;LED TAT
LCALL DELAY2S
MOV P0,#0FFH ;LED SANG
LCALL DELAY2S
SJMP CHOPTAT ;QUAY LAI
;***************************************************
;CHUONG TRINH CON TAO THOI GIAN TRE
;***************************************************
CLR TR0
CLR TF0
DJNZ R0,DEL
POP 00H
RET
END
DELAY2S
A7.3
CẤT TẠM GIÁ TRỊ CỦA R0 VÀO
STACK
NẠP GIÁ TRỊ VÒNG LẶP
(R0) = 200
DEL:
GIÃM SỐ LẦN LẶP
SỐ LẦN LẶP ≠ 0
(CHƯA LẶP XONG)
ð
S
LẤY LẠI GIÁ TRỊ CHO R0 TỪ
STACK
RET
KHỞI ðỘNG TIMER
(TIMER 0, MODE 1)
(TMOD) = 01H
NẠP GIÁ TRỊ CHO TIMER
(T
Hãy viết chương trình con ñiều khiển tạo thời gian trễ 10s sử dụng Timer.
• Bài 7:
Hãy viết chương trình con ñiều khiển tạo thời gian trễ 1 phút sử dụng Timer.
• Bài 8:
Hãy viết chương trình con ñiều khiển tạo thời gian trễ 1 giờ sử dụng Timer.
• Bài 9:
Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.