原创 【小雨的成长】交通灯的设计

2008-11-29 23:46 2297 6 6 分类: MCU/ 嵌入式

今天,上课。。。在和老师讨论的时候。。他说,你们没事可以做做交通灯!!!


       恩,开始听了!!心里还有点发毛。。。
                  交通灯,感觉有点高级。。。

下午回去就查了点资料!! 上面是用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太好用了。。省掉了好多弄板子的时间。。


点击开大图

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
6
关闭 站长推荐上一条 /3 下一条