今天,上课。。。在和老师讨论的时候。。他说,你们没事可以做做交通灯!!!
恩,开始听了!!心里还有点发毛。。。
交通灯,感觉有点高级。。。
下午回去就查了点资料!! 上面是用74LS161做的。。还要三个。。感觉哪个麻烦 啊。。1!!
下午去图书馆写程序。
我将原题写出来!!!
交通信号灯控制器
功能要求:
1 A,B分别代表两个方向(十字交叉)的道路.
2 A道和B道均有红绿黄三种信号灯。
3 两个方向自动控制交替通行,并要求两个方向每次均通行30s
4 在绿灯转红灯时,先由绿灯转为黄灯,5s后,再由黄灯转为红灯,此时另外一方向才由红灯转为绿灯。
我的思路:
1 s0 状态表示A道绿灯亮,B道红灯亮,30s定时开始计时。
2 s1状态表示A道通车时间已达到30s,此时A道黄灯亮,B道红灯亮,5s定时器开始计时。
3 s2状态表示A道黄灯已超过5s,此时,A道红灯亮,B道绿灯亮,30s定时器开始计时。
4 s3状态表示B道通车时间已超过30s,此时,A道红灯亮,B道黄灯亮,5s定时器开始计时,以后当B道黄灯计时超过5s时,接s0状态。
我觉得,思路很重要。。。只要思路真确。。。做出来只是迟早的事。。
我也希望那些和我一样是新手的人,能先自己写程序..
只有是自己做出来的,才是真真的自己的。。
记得,sunhm说过一句话:我们要做的,只不过是编个程序,控制引脚在适当的时候按我们的意愿去输出高电平或者低电平。。仅此而已。。。
这句话,我觉得很经典。。其实单片机也仅此而已!!!
下面我将我写的程序贴上来。。。希望大家指定下,我来改进改进!!!
P0~P5口分别接 A道红黄绿B道红黄绿。
ORG 0000H
AJMP START
ORG 0030H
START:
MOV DPTR,#TAB ;主程序
MOV A,#0
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV A,#1
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY1
MOV A,#2
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV A,#3
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY1
LJMP START ;程序循环
DELAY: ;延时30s
MOV R0,#30
D1: MOV R1,#100
D2: MOV R2,#20
D3: MOV R3,#248
DJNZ R3,$
DJNZ R2,D3
DJNZ R1,D2
DJNZ R0,D1
RET
DELAY1: ;延时5s
MOV R0,#5
D4: MOV R1,#100
D5: MOV R2,#20
D6: MOV R3,#248
DJNZ R3,$
DJNZ R2,D3
DJNZ R1,D2
DJNZ R0,D1
RET
TAB: DB 0F3H,0F5H,0DEH,0EEH
END
现在做完了 。感觉交通灯真的不难。。 只有自己弄过了才能真正体会道!!!
本程序经过proteus仿真成功!!! 呵呵。发现proteus太好用了。。省掉了好多弄板子的时间。。
文章评论(0条评论)
登录后参与讨论