Phân tích:Tại mỗi thời điểm chỉcó 1 led sáng, do đó có thểsửdụng lệnh xoay trái
trạng thái các bit của các Port, với một bit nào đó được đặt lên 1, xoay bit này lần lượt qua
P0,P1,P2,P3 sẽ đạt kết quả. Vấn đề đặt ra là làm sao đểxoay 32 bit của P0,P1,P2,P3 trong
khi đó chỉcó thanh ghi A thực hiện được lệnh xoay. Không thểthực hiện xoay 32 bit của 4
Port bằng một lệnh duy nhất mà phải trải qua nhiều bước.
Đểxoay trạng thái các bit trong một ô nhớbất kì, đầu tiên chuyển giá trịcủa ô nhớ đó lên
thanh ghi A, rồi dùng lệnh xoay thanh ghi A, sau đó chuyển kết quảvềlại ô nhớcần
xoay,kết quảô nhớ đã được xoay. Bây giờcó thểqui ước cụm từ "xoay ô nhớ"thay cho
các bước vừa nêu.
Đểxoay 32 bit (trong bài này là P0,P1,P2,P3), trước hết xoay trái ô nhớ đầu tiên (P0)
cùng với cờC (giá trị đầu tiên của cờC được được đặt trước tùy từng trường hợp cụthể
hoặc do chương trình thực hiện), sau khi xoay ô nhớ đầu tiên với cờC, các trạng thái của
các bit trong ô nhớ đó chuyển qua một bit, giá trịcủa cờC chuyển vào bit 0, bit 7 của ô
nhớ đó chuyển vào cờnhớC. Xoay ô nhớthứhai với cờnhớC, giá trịcủa C trước đó
chuyển vào bit 0 của ô nhớthứhai (mà giá trịnày trước đó là của bit 7 ô nhớthứnhất), giá
trịcủa bit 7 trong ô nhớthứhai chuyển vào cờnhớC. Tiếp tục xoay ô nhớthứ3 và thứ4
với cờnhớC. Kết quảcuối cùng trạng thái của 32 bit được dịch sang trái 1 bit, bit 0 của ô
nhớ đầu tiên là giá trịcủa C trước đó và giá trịcủa cờnhớC hiện tại là của bit 7 của ô nhớ
thứ4 chuyển sang.
189 trang |
Chia sẻ: luyenbuizn | Lượt xem: 1617 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Chương trình vi điều khiển, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
CHƯƠNG
TRÌNH VI
ĐIỀU KHIỂN
CHÖÔNG TRÌNH VI ĐIỀU KHIỂN * ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG * CLASS: ĐĐT307. 3
Trang 1
;**************************************************************************
CHÖÔNG TRÌNH VI ĐIỀU KHIỂN * ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG * CLASS: ĐĐT307. 3
Trang 2
AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
A
D
3
A
D
2
A
D
1
A
D
0
Q
A
Q
B
Q
C
Q
D
Q
E
Q
F
Q
G
A
D
5
A
D
4
Q
A
Q
B
Q
C
Q
D
Q
E
Q
F
Q
G
Q
A
Q
B
Q
C
Q
D
Q
E
Q
F
Q
G
A
D
6
A
D
7
Q
A
Q
B
Q
C
Q
D
Q
E
Q
F
Q
G
A
D
6
A
D
7
A
D
5
A
D
4
Q
A
Q
B
Q
C
Q
D
Q
E
Q
F
Q
G
XTAL2 18
XTAL1 19
ALE 30
EA 31
PSEN 29
RST 9
P0.0/AD039
P0.1/AD138
P0.2/AD237
P0.3/AD336
P0.4/AD435
P0.5/AD534
P0.6/AD633
P0.7/AD732
P2.7/A1528
P2.0/A821
P2.1/A922
P2.2/A1023
P2.3/A1124
P2.4/A1225
P2.5/A1326
P2.6/A1427
P1.0 1
P1.1 2
P1.2 3
P1.3 4
P1.4 5
P1.5 6
P1.6 7
P1.7 8
P3.0/RXD10
P3.1/TXD11
P3.2/INT012
P3.3/INT113
P3.4/T014
P3.7/RD17
P3.6/WR16
P3.5/T115
U1
80C51
R0 10k
C103
10u
X1
12MHz
C101
30p
C102
30p
VCC
TUYEN DUONG A
A
7
B
1
C
2
D
6
LT
3
BI
4
LE
/S
TB
5
Q
A
13
Q
B
12
Q
C
11
Q
D
10
Q
E
9
Q
F
15
Q
G
14
U2
4511
V
C
C
VCC
2
3
4
5
6
7
8
9
1
DRT1
10K
V
C
C
2 3 4 5 6 7 8 91
DRT2
10K
Q6
2N2369
Q1
2N2369
Q2
2N2369
Q3
2N2369
Q4
2N2369
Q5
2N2369
TUYEN DUONG BEN B1 TUYEN DUONG BEN A2TUYEN DUONG BEN A1 TUYEN DUONG BEN B2
TUYEN DUONG B
VCC
R1
100
R2 4k7
R4 4k7
R3 4k7
R5 4k7
R6 4k7
R7 4k7
CHÖÔNG TRÌNH VI ĐIỀU KHIỂN * ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG * CLASS: ĐĐT307. 3
Trang 3
CHÖÔNG TRÌNH VI ĐIỀU KHIỂN * ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG * CLASS: ĐĐT307. 3
Trang 4
CHƯƠNG TRÌNH CHẠY HAI CHẾ ĐỘ AUTO VÀ HANDDY
;chuong trinh den giao thong 2 che do co hien thi thoi gian ra led 7 doan
;Nguoi viet :VUONG VAN HUNG
;Ngay viet :20/06/2008
;===================================================
TGA DATA 7CH
CHUCA DATA 2EH
DONVIA DATA 7DH
TGB DATA 7EH
DONVIB DATA 7FH
CHUCB DATA 2FH
;===================================================
ORG 0000H
INIT:
MOV TMOD,#01H
MOV P1,#00H
;===================================================
;Chuong trinh chinh
MAIN:
;****************************************************
; Do A va Xanh b sang
;***************************************************
DAXB_AUTO:
CLR P1.3
CLR P1.1
MOV TGA,#20
MOV TGB,#17
SETB P1.0
SETB P1.5
;==============================
LAPXB:
JNB P3.0,DAXB_HANDDY ; neu p3.0 o muc thap (0) thi chay Auto
CALL DELAY1S ; con p3.0 o muc cao (1) thi chay Handdy
DEC TGA
DJNZ TGB,LAPXB
;=================================================
; Do A va vang B sang
;************************************************
DAVB_AUTO:
CLR P1.5
SETB P1.4
MOV TGB,#3
;=====================================
LAPVB:
JNB P3.0,XADB_HANDDY ; neu p3.0 o muc thap (0) thi chay Auto
CALL DELAY1S ; con p3.0 o muc cao (1) thi chay Handdy
DEC TGA
CHÖÔNG TRÌNH VI ĐIỀU KHIỂN * ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG * CLASS: ĐĐT307. 3
Trang 5
DJNZ TGB,LAPVB
;=============================================
; Xanh A va Do B sang
;*************************************************
XADB_AUTO:
CLR P1.0
CLR P1.4
SETB P1.2
SETB P1.3
MOV TGA,#26
MOV TGB,#30
;==============================
LAPXA:
JNB P3.0,XADB_HANDDY ; neu p3.0 o muc thap (0) thi chay Handdy
CALL DELAY1S ; con p3.0 o muc cao (1) thi chay AuTo
DEC TGB
DJNZ TGA,LAPXA
;======================================
;Vang A va Do B sang
;*************************************************
VADB_AUTO:
CLR P1.2
SETB P1.1
MOV TGA,#4
;=============================
LAPVA:
JNB P3.0,DAXB_HANDDY ;||Î neu p3.0 o muc cao (1) thi chay Auto
CALL DELAY1S ;||Î con p3.0 o muc thap (0) thi chay Handdy
DEC TGB
DJNZ TGA,LAPVA
LJMP MAIN
;************************************************************
HANDDY:
;============================
DAXB_HANDDY:
MOV P0,#0FFH ; Khong cho hien thoi gian
SETB P1.0 ;Do A sang
SETB P1.5 ; Xanh B sang
CLR P1.3 ;Tat Do B
CLR P1.4 ;Tat Vang B
CLR P1.2 ;Tat Xanh A
JB P3.0,DAXB_AUTO ;||=>neu p3.0 = 0 thi Chay Handdy
JB P3.1,DAXB_HANDDY ;||=> neu p3.0 = 1 thi chay AUTO
;||Îneu p3.1 = 0 thi nhay XADB_HANDDY
;||Îneu p3.1 = 1 thi nhay DAXB_HANDDY
;====================================================================
XADB_HANDDY:
MOV P0,#0FFH
SETB P1.2
SETB P1.3
CLR P1.1
CLR P1.0
CLR P1.5
JB P3.0,XADB_AUTO ; ||=>neu p3.0 = 0 thi Chay Handdy
JNB P3.1,XADB_HANDDY ; ||=>neu p3.0 = 1 thi chay AUTO
JMP DAXB_HANDDY ;||Îneu p3.1 = 1 thi nhay DAXB_HANDDY
;||Îneu p3.1 = 0 thi nhay XADB_HANDDY
CHÖÔNG TRÌNH VI ĐIỀU KHIỂN * ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG * CLASS: ĐĐT307. 3
Trang 6
;=============================================
HIENTHI:
CALL MAHOA
MOV P0,CHUCA
CALL DELAY
MOV P0,DONVIA
CALL DELAY
MOV P0,CHUCB
CALL DELAY
MOV P0,DONVIB
CALL DELAY
RET
;================================================
MAHOA:
MOV A,TGA
MOV B,#10
DIV AB
ADD A,#10110000B
MOV CHUCA,A
MOV A,B
ADD A,#01110000B
MOV DONVIA,A
MOV A,TGB
MOV B,#10
DIV AB
ADD A,#11100000B
MOV CHUCB,A
MOV A,B
ADD A,#11010000B
MOV DONVIB,A
RET
;================================================
DELAY1S:
MOV R0,#40
LAPDELAY1S:
CALL HIENTHI
CALL DELAY50MS
DJNZ R0,LAPDELAY1S
RET
;===============================================
DELAY50MS:
MOV TH0,#HIGH(-25000)
MOV TL0,#LOW(-25000)
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
RET
;=======================================
DELAY:
LOOP1:
MOV R1,#10
LOOP2:
MOV R2,#200
DJNZ R2,$
DJNZ R1,LOOP2
CHÖÔNG TRÌNH VI ĐIỀU KHIỂN * ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG * CLASS: ĐĐT307. 3
Trang 7
RET
;===================================================
END
;===================================================
*****************************************************************
CHƯƠNG TRÌNH 2:
;chuong trinh den giao thong 2 che do co hien thi thoi gian ra led 7 doan
;Nguoi viet :VUONG VAN HUNG
;Ngay viet :20/06/2008
;===================================================
DOA BIT P1.0
VANGA BIT P1.1
XANHA BIT P1.2
DOB BIT P1.3
VANGB BIT P1.4
XANHB BIT P1.5
TGA DATA 7CH
CHUCA DATA 2EH
DONVIA DATA 7DH
TGB DATA 7EH
DONVIB DATA 7FH
CHUCB DATA 2FH
;===================================================
ORG 0000H
INIT:
MOV TMOD,#01H
MOV P1,#00H
;===================================================
;Chuong trinh chinh
MAIN:
;****************************************************
; Do A va Xanh b sang
;***************************************************
DAXB_AUTO:
CLR DOB
CLR VANGA
MOV TGA,#20
MOV TGB,#17
SETB DOA
SETB XANHB
;==============================
LAPXB:
JNB P3.0,DAXB_HANDDY ;||Î neu p3.0 =1 thi chay Auto
CALL DELAY1S ;||Î con p3.0 =0 thi chay Handdy
DEC TGA
CHÖÔNG TRÌNH VI ĐIỀU KHIỂN * ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG * CLASS: ĐĐT307. 3
Trang 8
DJNZ TGB,LAPXB
;=================================================
; Do A va vang B sang
;************************************************
DAVB_AUTO:
CLR XANHB
MOV TGB,#3
SETB VANGB
;=====================================
LAPVB:
JNB P3.0,XADB_HANDDY ;||Î neu p3.0 =1 thi chay Auto
CALL DELAY1S ;||Î con p3.0 =0 thi chay Handdy
DEC TGA
DJNZ TGB,LAPVB
;=============================================
; Xanh A va Do B sang
;*************************************************
XADB_AUTO:
CLR DOA
CLR VANGB
MOV TGA,#26
MOV TGB,#30
SETB XANHA
SETB DOB
;==============================
LAPXA:
JNB P3.0,XADB_HANDDY
CALL DELAY1S
DEC TGB
DJNZ TGA,LAPXA
;======================================
;Vang A va Do B sang
;*************************************************
VADB_AUTO:
CLR XANHA
MOV TGA,#4
SETB VANGA
;=============================
LAPVA:
JNB P3.0,DAXB_HANDDY
CALL DELAY1S
DEC TGB
DJNZ TGA,LAPVA
LJMP MAIN
;************************************************************
HANDDY:
;============================
DAXB_HANDDY:
MOV P0,#0FFH ; Khong cho hien thoi gian
SETB DOA ;Do A sang
SETB XANHB ; Xanh B sang
CLR DOB ;Tat Do B
CLR VANGB ;Tat Vang B
CLR XANHA ;Tat Xanh A
JB P3.0,DAXB_AUTO ; ||Îneu p3.0 = 0 thi Chay Handdy
CHÖÔNG TRÌNH VI ĐIỀU KHIỂN * ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG * CLASS: ĐĐT307. 3
Trang 9
JB P3.1,DAXB_HANDDY ; ||Îneu p3.0 = 1 thi chay AUTO
;|| =>neu p3.1 = 1 thi nhay DAXB_HANDDY
;|| =>neu p3.1 = 0 thi nhay XADB_HANDDY
;=======================================
XADB_HANDDY:
MOV P0,#0FFH
SETB XANHA
SETB DOB
CLR VANGA
CLR DOA
CLR XANHB ; || Îneu p3.0 = 1 thi chay AUTO
JB P3.0,XADB_AUTO ; ||Î neu p3.0 = 0 thi Chay Handdy
JNB P3.1,XADB_HANDDY ; || =>neu p3.1 = 1 thi nhay DAXB_HANDDY
JMP DAXB_HANDDY ; || =>neu p3.1 = 0 thi nhay XADB_HANDDY
;=============================================
HIENTHI:
CALL MAHOA
MOV P0,CHUCA
CALL DELAY
MOV P0,DONVIA
CALL DELAY
MOV P0,CHUCB
CALL DELAY
MOV P0,DONVIB
CALL DELAY
RET
;================================================
MAHOA:
MOV A,TGA
MOV B,#10
DIV AB
ADD A,#10110000B
MOV CHUCA,A
MOV A,B
ADD A,#01110000B
MOV DONVIA,A
MOV A,TGB
MOV B,#10
DIV AB
ADD A,#11100000B
MOV CHUCB,A
MOV A,B
ADD A,#11010000B
MOV DONVIB,A
RET
;================================================
DELAY1S:
MOV R0,#40
LAPDELAY1S:
CALL HIENTHI
CALL DELAY50MS
DJNZ R0,LAPDELAY1S
RET
;===============================================
DELAY50MS:
MOV TH0,#HIGH(-25000)
CHÖÔNG TRÌNH VI ĐIỀU KHIỂN * ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG * CLASS: ĐĐT307. 3
Trang 10
MOV TL0,#LOW(-25000)
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
RET
;=======================================
DELAY:
LOOP1:
MOV R1,#10
LOOP2:
MOV R2,#200
DJNZ R2,$
DJNZ R1,LOOP2
RET
;===================================================
END
;====================================================
**************************************************************
CHƯƠNG TRÌNH CHẠY CHẾ ĐỘ AUTO
;CHUONG TRINH DEN GIAO THONG CHAY AUTO CO HIEN THI THOI GIAN
;Nguoi viet :VUONG VAN HUNG
;Ngay viet :20/06/2008
;===================================================
TGA DATA 7CH
CHUCA DATA 2EH
DONVIA DATA 7DH
TGB DATA 7EH
DONVIB DATA 7FH
CHUCB DATA 2FH
;===================================================
;Chuong trinh chinh
ORG 0000H
INIT:
MOV TMOD,#01H
MOV P1,#0H
MAIN:
MOV TGA,#30
MOV TGB,#25
SETB P1.0
SETB P1.5
;===============================
;Thoi gian cua Do A va Xanh B
LAPXB:
CALL DELAY1S
CHÖÔNG TRÌNH VI ĐIỀU KHIỂN * ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG * CLASS: ĐĐT307. 3
Trang 11
DEC TGA
DJNZ TGB,LAPXB
CLR P1.5
SETB P1.4
MOV TGB,#5
;==============================
;Thoi gian cua Do A va Vang B
LAPVB:
CALL DELAY1S
DEC TGA
DJNZ TGB,LAPVB
CLR P1.0
CLR P1.4
SETB P1.2
SETB P1.3
MOV TGA,#18
MOV TGB,#20
;==============================
;Thoi gian cua Do B va Xanh A
LAPXA:
CALL DELAY1S
DEC TGB
DJNZ TGA,LAPXA
CLR P1.2
SETB P1.1
MOV TGA,#2
;==============================
;Thoi gian cua Do B va Vang A
LAPVA:
CALL DELAY1S
DEC TGB
DJNZ TGA,LAPVA
CLR P1.1
CLR P1.3
LJMP MAIN
;=================================================
HIENTHI:
CALL MAHOA
MOV P0,CHUCA
CALL DELAY
MOV P0,DONVIA
CALL DELAY
MOV P0,CHUCB
CALL DELAY
MOV P0,DONVIB
CALL DELAY
RET
;================================================
MAHOA:
MOV A,TGA
MOV B,#10
DIV AB
ADD A,#10110000B
MOV CHUCA,A
MOV A,B
ADD A,#01110000B
MOV DONVIA,A
MOV A,TGB
CHÖÔNG TRÌNH VI ĐIỀU KHIỂN * ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG * CLASS: ĐĐT307. 3
Trang 12
MOV B,#10
DIV AB
ADD A,#11100000B
MOV CHUCB,A
MOV A,B
ADD A,#11010000B
MOV DONVIB,A
RET
;================================================
DELAY1S:
MOV R0,#40
LAPDELAY1S:
CALL HIENTHI
CALL DELAY40MS
DJNZ R0,LAPDELAY1S
RET
;===============================================
DELAY40MS:
MOV TH0,#HIGH(-25000)
MOV TL0,#LOW(-25000)
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
RET
;============================
DELAY:
LOOP1:
MOV R1,#10
LOOP2:
MOV R2,#200
DJNZ R2,$
DJNZ R1,LOOP2
RET
;===================================================
END
**********************************************************
CHƯƠNG TRÌNH HOÀN HIỆN HƠN 1:
;chuong trinh den giao thong 2 che do co hien thi thoi gian ra led 7 doan .
; khi TGA hay TGB nho hon 10 thi chi co LED hang don vi sang
;Nguoi viet :VUONG VAN HUNG
;Ngay viet :20/06/2008
;===================================================
TGA DATA 7CH
CHUCA DATA 2EH
DONVIA DATA 7DH
TGB DATA 7EH
DONVIB DATA 7FH
CHUCB DATA 2FH
CHÖÔNG TRÌNH VI ĐIỀU KHIỂN * ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG * CLASS: ĐĐT307. 3
Trang 13
;===================================================
ORG 0000H
INIT:
MOV TMOD,#01H
MOV P1,#00H
;===================================================
;Chuong trinh chinh
MAIN:
;****************************************************
; Do A va Xanh b sang
;***************************************************
DAXB_AUTO:
CLR P1.3 ;Tat Do B
CLR P1.1 ;Tat Vang A
MOV TGA,#20
MOV TGB,#17
MOV R6,#8
SETB P1.0 ; do a sang
SETB P1.5 ; Xanh B Sang
;==============================
LAPXB:
CALL DELAY1S_1
DEC TGA
DEC TGB
JNB P3.0,DAXB_HANDDY ;||Î Neu p3.0 = 0 thi chay Handdy
DJNZ R6,LAPXB ;||Î con p3.0 = 1 thi chay AUTO
MOV R6,#3
LAPXB1:
JNB P3.0,DAXB_HANDDY
CALL DELAY1S_3
DEC TGA
DEC TGB
DJNZ R6,LAPXB1
LAPXB2:
JNB P3.0,DAXB_HANDDY
CALL DELAY1S_4
DEC TGA
DJNZ TGB,LAPXB2
;=================================================
; Do A va vang B sang
;************************************************
DAVB_AUTO:
CLR P1.5
SETB P1.4
MOV TGB,#3
;=====================================
LAPVB:
JNB P3.0,XADB_HANDDY ;||Î neu p3.0 o muc thap (0) thi chay Auto
CALL DELAY1S_4 ;||Î con p3.0 o muc cao (1) thi chay Handdy
DEC TGA
DJNZ TGB,LAPVB
CALL DELAY1S_4
;=============================================
; Xanh A va Do B sang
CHÖÔNG TRÌNH VI ĐIỀU KHIỂN * ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG * CLASS: ĐĐT307. 3
Trang 14
;*************************************************
XADB_AUTO:
CLR P1.0
CLR P1.4
SETB P1.2
SETB P1.3
MOV TGA,#25
MOV TGB,#30
MOV R6,#16 ; THAY DOI KHI TGB VA TGA THAY DOI R6 = TGA - 9
;==============================
LAPXA:
JNB P3.0,XADB_HANDDY ; ||=>neu p3.0 o muc thap (0) thi chay Handdy
CALL DELAY1S_1 ; ||=>con p3.0 o muc cao (1) thi chay AuTo
DEC TGB
DEC TGA
DJNZ R6,LAPXA
MOV R6,#5 ; Thay Doi Khi TGB Va TGA Thay Doi R6 = TGB - TGA.
LAPXA1:
JNB P3.0,DAXB_HANDDY
CALL DELAY1S_2
DEC TGA
DEC TGB
DJNZ R6,LAPXA1
LAPXA2:
JNB P3.0,DAXB_HANDDY
CALL DELAY1S_4
DEC TGB
DJNZ TGA,LAPXA2
;======================================
;Vang A va Do B sang
;*************************************************
VADB_AUTO:
CLR P1.2
SETB P1.1
MOV TGA,#5
;=============================
LAPVA:
JNB P3.0,DAXB_HANDDY ;||Î neu p3.0 = 1 thi chay Auto
CALL DELAY1S_4 ;||Î con p3.0 = 0 thi chay Handdy
DEC TGB
DJNZ TGA,LAPVA
CALL DELAY1S_4
TIEP:
LJMP MAIN
;************************************************************
HANDDY:
;============================
DAXB_HANDDY:
MOV P0,#0FFH ; Khong cho hien thoi gian
SETB P1.0 ;Do A sang
SETB P1.5 ; Xanh B sang
CLR P1.3 ;Tat Do B
CLR P1.4 ;Tat Vang B
CLR P1.2 ;Tat xanh A
JB P3.0,TIEP ; ||Î neu p3.0 = 0 thi Chay Handdy
JB P3.1,DAXB_HANDDY ; ||Î neu p3.0 = 1 thi chay AUTO
CHÖÔNG TRÌNH VI ĐIỀU KHIỂN * ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG * CLASS: ĐĐT307. 3
Trang 15
; ||=> neu p3.1 = 1 thi nhay DAXB_HANDDY
;||=> neu p3.1 = 0 thi nhay XADB_HANDDY
;====================================================================
XADB_HANDDY:
MOV P0,#0FFH
SETB P1.2 ; Xanh A sang
SETB P1.3 ; Do B sang
CLR P1.1 ;Tat vang A
CLR P1.0 ;Tat do A
CLR P1.5 ; Tat Xanh B
JB P3.0,XADB_AUTO ; ||Î neu p3.0 = 0 thi Chay Handdy
;||Î neu p3.0 = 1 thi chay AUTO
JNB P3.1,XADB_HANDDY ;||=>neu p3.1 = 1 thi nhay DAXB_HANDDY
JMP DAXB_HANDDY ;||=>neu p3.1 = 0 thi nhay XADB_HANDDY
;=============================================
HIEN_THI1:
CALL MAHOA
MOV P0,CHUCA
CALL DELAY
MOV P0,DONVIA
CALL DELAY
MOV P0,CHUCB
CALL DELAY
MOV P0,DONVIB
CALL DELAY
RET
;================================================
HIEN_THI2:
CALL MAHOA
MOV P0,DONVIA
CALL DELAY
MOV P0,CHUCB
CALL DELAY
MOV P0,DONVIB
CALL DELAY
RET
;================================================
HIEN_THI3:
CALL MAHOA
MOV P0,CHUCA
CALL DELAY
MOV P0,DONVIA
CALL DELAY
MOV P0,DONVIB
CALL DELAY
RET
;================================================
HIEN_THI4:
CALL MAHOA
MOV P0,DONVIA
CALL DELAY
MOV P0,DONVIB
CALL DELAY
RET
;================================================
CHÖÔNG TRÌNH VI ĐIỀU KHIỂN * ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG * CLASS: ĐĐT307. 3
Trang 16
MAHOA:
MOV A,TGA
MOV B,#10
DIV AB
ADD A,#10110000B
MOV CHUCA,A
MOV A,B
ADD A,#01110000B
MOV DONVIA,A
MOV A,TGB
MOV B,#10
DIV AB
ADD A,#11100000B
MOV CHUCB,A
MOV A,B
ADD A,#11010000B
MOV DONVIB,A
RET
;================================================
DELAY1S_1:
MOV R0,#40
LAPDELAY1S_1:
CALL HIEN_THI1
CALL DELAY50MS
DJNZ R0,LAPDELAY1S_1
RET
;===============================================
DELAY1S_2:
MOV R0,#40
LAPDELAY1S_2:
CALL HIEN_THI2
CALL DELAY50MS
DJNZ R0,LAPDELAY1S_2
RET
;===============================================
DELAY1S_3:
MOV R0,#40
LAPDELAY1S_3:
CALL HIEN_THI3
CALL DELAY50MS
DJNZ R0,LAPDELAY1S_3
RET
;===============================================
DELAY1S_4:
MOV R0,#40
LAPDELAY1S_4:
CALL HIEN_THI4
CALL DELAY50MS
DJNZ R0,LAPDELAY1S_4
RET
;===============================================
DELAY50MS:
MOV TH0,#HIGH(-25000)
MOV TL0,#LOW(-25000)
SETB TR0
JNB TF0,$
CLR TR0
CHÖÔNG TRÌNH VI ĐIỀU KHIỂN * ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG * CLASS: ĐĐT307. 3
Trang 17
CLR TF0
RET
;=======================================
DELAY:
LOOP1:
MOV R1,#10
LOOP2:
MOV R2,#200
DJNZ R2,$
DJNZ R1,LOOP2
RET
;===================================================
END
;******************************************************
CHƯƠNG TRÌNH HOÀN HIỆN HƠN 2:
;chuong trinh den giao thong 2 che do co hien thi thoi gian ra led 7 doan
;Nguoi viet :VUONG VAN HUNG
;Ngay viet :20/06/2008
;===================================================
TGA DATA 7CH
CHUCA DATA 2EH
DONVIA DATA 7DH
TGB DATA 7EH
DONVIB DATA 7FH
CHUCB DATA 2FH
DOA BIT P1.0
VANGA BIT P1.1
XANHA BIT P1.2
DOB BIT P1.3
VANGB BIT P1.4
XANHB BIT P1.5
;===================================================
ORG 0000H
INIT:
MOV TMOD,#01H
MOV P1,#00H
;===================================================
;Chuong trinh chinh
MAIN:
;****************************************************
; Do A va Xanh b sang
;***************************************************
DAXB_AUTO:
CLR DOB
CLR VANGA
MOV TGA,#20
MOV TGB,#17
MOV R6,#8
SETB DOA
CHÖÔNG TRÌNH VI ĐIỀU KHIỂN * ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG * CLASS: ĐĐT307. 3
Trang 18
SETB XANHB
;==============================
LAPXB:
CALL DELAY1S_1
DEC TGA
DEC TGB
JNB P3.0,DAXB_HANDDY
DJNZ R6,LAPXB
MOV R6,#3
LAPXB1:
JNB P3.0,DAXB_HANDDY
CALL DELAY1S_3
DEC TGA
DEC TGB
DJNZ R6,LAPXB1
LAPXB2:
JNB P3.0,DAXB_HANDDY
CALL DELAY1S_4
DEC TGA
DJNZ TGB,LAPXB2
;=================================================
; Do A va vang B sang
;************************************************
DAVB_AUTO:
CLR XANHB
SETB VANGB
MOV TGB,#3
;=====================================
LAPVB:
JNB P3.0,XADB_HANDDY ; neu p3.0 =1 thi chay Auto
CALL DELAY1S_4 ; con p3.0 =0 thi chay Handdy
DEC TGA
DJNZ TGB,LAPVB
CALL DELAY1S_4
;=============================================
; Xanh A va Do B sang
;*************************************************
XADB_AUTO:
CLR DOA
CLR VANGB
SETB XANHA
SETB DOB
MOV TGA,#25
MOV TGB,#30
MOV R6,#16 ; thay doi khi TGB va TGA thay doi R6 = TGA - 9
;==============================
LAPXA:
JNB P3.0,XADB_HANDDY ;||Î neu p3.0 =0 thi chay Handdy
CALL DELAY1S_1 ; ||Îcon p3.0 =1 thi chay AuTo
DEC TGB
DEC TGA
DJNZ R6,LAPXA
MOV R6,#5 ; thay doi khi TGB va TGA thay doi R6 = TGB - TGA
LAPXA1:
JNB P3.0,DAXB_HANDDY
CHÖÔNG TRÌNH VI ĐIỀU KHIỂN * ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG * CLASS: ĐĐT307. 3
Trang 19
CALL DELAY1S_2
DEC TGA
DEC TGB
DJNZ R6,LAPXA1
LAPXA2:
JNB P3.0,DAXB_HANDDY
CALL DELAY1S_4
DEC TGB
DJNZ TGA,LAPXA2
;======================================
;Vang A va Do B sang
;*************************************************
VADB_AUTO:
CLR XANHA
SETB VANGA
MOV TGA,#5
;=============================
LAPVA:
JNB P3.0,DAXB_HANDDY ;||Î neu p3.0 = 1 thi chay Auto
CALL DELAY1S_4 ; ||Îcon p3.0 = 0 thi chay Handdy
DEC TGB
DJNZ TGA,LAPVA
CALL DELAY1S_4
TIEP:
LJMP MAIN
;************************************************************
;CHE DO HANDDY
;==================================
DAXB_HANDDY:
MOV P0,#0FFH ; Khong cho hien thoi gian
SETB DOA ;Do A sang
SETB XANHB ; Xanh B sang
CLR DOB ;Tat Do B
CLR VANGA ;Tat Vang A
CLR XANHA ;Tat Xanh A
JB P3.0,TIEP ;|=> neu p3.0 = 0 thi Chay Handdy
JB P3.1,DAXB_HANDDY ;|=>neu p3.0 = 1 thi chay AUTO
;|==>neu p3.1 = 1 thi nhay DAXB_HANDDY
;|==> neu p3.1 = 0 thi nhay XADB_HANDDY
;====================================================================
XADB_HANDDY:
MOV P0,#0FFH
SETB XANHA ;XANH A SANG
SETB DOB ; DO B SANG
CLR VANGB ; TAT VANG B
CLR DOA ; DO A TAT
CLR XANHB ; XANH B TAT
JB P3.0,XADB_AUTO ; neu p3.0 = 1 thi chay AUTO
JNB P3.1,XADB_HANDDY ; neu p3.0 = 0 thi Chay Handdy
JMP DAXB_HANDDY ;neu p3.1 = 1 thi nhay DAXB_HANDDY
; neu p3.1 = 0 thi nhay XADB_HANDDY
;=============================================
HIEN_THI1:
CALL MAHOA
MOV P0,CHUCA
CALL DELAY
MOV P0,DONVIA
CHÖÔNG TRÌNH VI ĐIỀU KHIỂN * ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG * CLASS: ĐĐT307. 3
Trang 20
CALL DELAY
MOV P0,CHUCB
CALL DELAY
MOV P0,DONVIB
CALL DELAY
RET
;================================================
HIEN_THI2:
CALL MAHOA
MOV P0,DONVIA
CALL DELAY
MOV P0,CHUCB
CALL DELAY
MOV P0,DONVIB
CALL DELAY
RET
;================================================
HIEN_THI3:
CALL MAHOA
MOV P0,CHUCA
CALL DELAY
MOV P0,DONVIA
CALL DELAY
MOV P0,DONVIB
CALL DELAY
RET
;================================================
HIEN_THI4:
CALL MAHOA
MOV P0,DONVIA
CALL DELAY
MOV P0,DONVIB
CALL DELAY
RET
;================================================
MAHOA:
MOV A,TGA
MOV B,#10
DIV AB
ADD A,#10110000B
MOV CHUCA,A
MOV A,B
ADD A,#01110000B
MOV DONVIA,A
MOV A,TGB
MOV B,#10
DIV AB
ADD A,#11100000B
MOV CHUCB,A
MOV A,B
ADD A,#11010000B
MOV DONVIB,A
RET
;================================================
DELAY1S_1:
MOV R0,#40
LAPDELAY1S_1:
CALL HIEN_THI1
CHÖÔNG TRÌNH VI ĐIỀU KHIỂN * ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG * CLASS: ĐĐT307. 3
Trang 21
CALL DELAY50MS
DJNZ R0,LAPDELAY1S_1
RET
;===============================================
DELAY1S_2:
MOV R0,#40
LAPDELAY1S_2:
CALL HIEN_THI2
CALL DELAY50MS
DJNZ R0,LAPDELAY1S_2
RET
;===============================================
DELAY1S_3:
MOV R0,#40
LAPDELAY1S_3:
CALL HIEN_THI3
CALL DELAY50MS
DJNZ R0,LAPDELAY1S_3
RET
;===============================================
DELAY1S_4:
MOV R0,#40
LAPDELAY1S_4:
CALL HIEN_THI4
CALL DELAY50MS
DJNZ R0,LAPDELAY1S_4
RET
;===============================================
DELAY50MS:
MOV TH0,#HIGH(-25000)
MOV TL0,#LOW(-25000)
SETB TR0
JNB TF0,$
CLR TR0
CLR T
Các file đính kèm theo tài liệu này:
- chuong_trinh_vdk_tong_hop1_2406.pdf