ĐÈN GIAO THÔNG Ở MỘT NGÃ TƯ1.. Bài toán: Viết chương trình cho đèn giao thông ở một ngã tư của đường 2 chiều không ưu tiên 2.. Đặt vấn đề: Do cuộc sống ngày càng phát triển, phương tiện
Trang 1ĐÈN GIAO THÔNG Ở MỘT NGÃ TƯ
1 Bài toán:
Viết chương trình cho đèn giao thông ở một ngã tư của đường 2 chiều không ưu tiên
2 Đặt vấn đề:
Do cuộc sống ngày càng phát triển, phương tiện tham gia giao thông ngày một nhiều hơn, nên vào những giờ cao điểm thường bị kẹt xe ở các ngõ tư, ngõ năm,….và những tai nạn giao thông đáng tiếc có thể xảy ra Chương trình này
có thể giảm bớt những vấn đề trên, do đó có thể tiết kiệm được tài chính và
thời gian đi lại cho người dân
3 Cách thưc hiện:
Để giải quyết yêu cầu của bài toán ta làm như sau:
Đây là chương trình đèn giao thông tại một ngã tư Chương trình này được viết theo nguyên tắc đèn giao thông ở ngã tư với đường 2 chiều không ưu tiên
vi điều khiển 89C51, ngoài ra còn sử dụng IC giải mã 74247
với P0.2
Trang 2- Đèn xanh 2 đ ược nối với P0.5, đèn vàng 2 được nối v ới P0.4, đèn đỏ 2 được nối với P0.3
sáng của các đèn
đỏ 2 sáng ® đèn đỏ1 và đèn xanh 2 sáng® đèn đỏ 1 và đèn vàng 2 sáng Quá trình này sẽ lặp lại tuần hoàn
4 Lưu đồ giải thuật:
Trang 35 Chương trình:
$MOD51
MAIN:
MOV R0,#20H
MOV R1,#25H
REPEAT:
MOVP0,#00H ;XOA P0
DEC R0;GIAM GIA TRI R0
Trang 4DEC R1;GIAM GIA TRI R1
LCALL DELAY1S ;TAO TRE 1S
DJNZR0,REPEAT ;GIAM VA NHAY NEU R0 KHAC 0
MOV R0,#20H ;NAP LAI CHO R0
MOV R1,#25H;NAP LAI CHO R1
AAA: MOV P2,R0;HIEN THI RA LED 7 DOAN
DEC R0;GIAM GIA TRI R0 1 DON VI
DEC R1;GIAM GIA TRI R1 1 DON VI
LCALL DELAY1S
DJNZR1,AAA ;GIAM VA NHAY NEU R1 KHAC 0
MOV R0,#20H ;NAP LAI GIA TRI CHO R0
MOV R1,#25H ;NAP LAI GIA TRI CHO R1
BBB: MOV P2,R0
MOVP3,R1
DEC R0;GIAM R0 1 DON VI
DEC R1;GIAM R1 1 DON VI
LCALL DELAY1S
DJNZR0,BBB ;GIAM VA NHAY NEU R0 KHAC 0
MOV R0,#20H ;NAP LAI CHO R0
MOV R1,#25H ;NAP LAI CHO R1
CCC: MOV P2,R0
MOVP3,R1
DEC R0
DEC R1
LCALL DELAY1S
DJNZR1,CCC ;GIAM VA NHAY NEU R1 KHAC 0
MOV R0,#20H ;NAP LAI CHO R0
MOV R1,#25H ;NAP LAI CHO R1
DDD: MOV P2,R0
MOVP3,R1
DEC R0
DEC R1
LCALL DELAY1S
DJNZR0,DDD ;GIAM VA NHAY NEU R0 KHAC 0
MOV R0,#20H ;NAP LAI CHO R0
MOV R1,#25H ;NAP LAI CHO R1
EEE: MOV P2,R0
MOVP3,R1
DEC R0
DEC R1
LCALL DELAY1S
DJNZR1,EEE ;GIAM VA NHAY NEU R1 KHAC 0
Trang 5MOV R0,#05H ;NAP LAI GIA TRI CHO R0
MOV R1,#20H ;NAP LAI GIA TRI CHO R1
FFF: MOV P2,R0
MOVP3,R1
DEC R1
DEC R0
LCALL DELAY1S
DJNZR0,FFF ;GIAM VA NHAY NEU R0 KHAC 0
MOV R0,#05H ;NAP LAI CHO R0
REPEAT1:
MOVP3,R1
MOVP2,R0
DEC R1
DEC R0
LCALL DELAY1S
DJNZR1,REPEAT1 ;GIAM VA NHAY NEU R1 KHAC 0
MOV R0,#25H ;NAP LAI CHO R0
MOV R1,#20H ;NAP LAI CHO R1
REPEAT2:
MOVP0,#00H
MOVP2,R0
MOVP3,R1
DEC R0;GIAM R0 1 DON VI
DEC R1;GIAM R1 1 DON VI
LCALL DELAY1S
DJNZR1,REPEAT2;GIAM VA NHAY NEU R1 KHAC 0
MOV R1,#20H ;NAP LAI CHO R1
MOV R0,#25H ;NAP LAI CHO R0
AA0: MOV P2,R0
MOVP3,R1
DEC R0
DEC R1
LCALL DELAY1S
DJNZR0,AA0;GIAM VA NHAY NEU R0 KHAC 0
MOV R0,#20H ;NAP LAI GIA TRI CHO R0
MOV R1,#15H ;NAP LAI GIA TRI CHO R1
AA1: MOV P2,R0
MOVP3,R1
DEC R0
Trang 6DEC R1
LCALL DELAY1S
DJNZR1,AA1;GIAM VA NHAY NEU R1 KHAC 0
MOV R0,#25H ;NAP LAI GIA TRI CHO R0
MOV R1,#05H ;NAP LAI GIA TRI CHO R1
AA2: MOV P2,R0
MOVP3,R1
DEC R0
DEC R1
LCALL DELAY1S
DJNZR0,AA2;GIAM VA NHAY NEU R0 KHAC 0
MOV R0,#20H ;NAP LAI GIA TRI CHO R0
MOV R1,#05H ;NAP LAI GIA TRI CHO R1
AA3: MOV P2,R0
MOVP3,R1
DEC R0
DEC R1
LCALL DELAY1S
DJNZR1,AA3 ;GIAM VA NHAY NEU R1 KHAC 0
MOV R1,#05H ;NAP LAI CHO R1
REPEAT3:
MOVP3,R1
MOVP2,R0
DEC R1
DEC R0
LCALL DELAY1S
DJNZR1,REPEAT3 ;GIAM VA NHAY NEU R1 KHAC 0
LJMPMAIN ;LAP LAI
DELAY1S:
PUSH 00H
MOV TMOD,#01H
MOVR0,#100
LOOP:
MOV TH0,#HIGH(-10000)
MOV TL0,#LOW(-10000)
SETBTR0
JNBTF0,$
CLRTF0
CLRTR0
DJNZR0,LOOP
POP 00H
Trang 7END
6 Mô phỏng bằng proteus: