用单片机做交通灯,这么做

做好

  基于单片机的交通灯设计
  时间:2010-12-08 21:43:12 来源: 作者:
  一、 系统功能要求:
  1. 设计任务在一十字路口设置交通灯,并用单片机对其进行合理的控制。
  时间方向 控制要求
  白天 东西 绿灯 黄灯 红灯 南北 红灯 绿灯 黄灯
  晚上 东西 黄灯 南北 红灯
  2.总体设计方案现在流行的一种设计为两主干线相交的十字路。本设计采用一主干道(南北方向),一从干道(东西方向)的路口,即主干道的通行时间为从干道的2倍。在正常情况下,两干道的交通灯按图1进行转换,并以倒计数的方式将剩余时间显示在每个干道对应的两位LED上;另发挥部分为当出现紧急情况时,路口的交通灯全为红灯,紧急情况解除时,恢复到原来的状态。
  二、 总体设计方案提示:
  1.假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1东西绿灯通车,南北红灯。过一段时间转状态。
  2.东西绿灯灭,黄灯闪烁几次,南北仍然红灯。再转状态。
  3.南北绿灯通车,东西红灯。过一段时间转状态。
  4.南北绿灯灭,闪几次黄灯,延时几秒,东西仍然红灯。最后循环至状态1。
  三.硬件设计
  电路原理图如下:

  四、软件设计
  1、 流程图

  2、程序设计
  ORG 0000H
  MOV P0,#00H ;确保P0为低电位
  lJMP MAIN0
  ORG 0030H
  MAIN0: MOV 30H,#08H
  MOV R6,#00H
  MOV R7,#00H
  MOV DPTR,#TABLE ;取数码管的译码
  MOV TMOD,#01H ;设计定时方式及时间
  MOV TL0,#0CDH
  MOV TH0,#0BH
  SETB TR0
  MOV IE,#00H
  MAIN: MOV P1,#0F3H ;南北绿灯,东西红灯
  MOV R6,#1EH ;红灯30s倒计时
  MOV R7,#19H ;绿灯25s倒计时
  MAIN1:CALL DELAY ;1S延时子程序
  JB P0.1,REL1 ;判断是否有东西方向按钮按下
  CJNE R7,#00H,MAIN1 ;判断绿灯25s是否倒计完
  MOV P1,#0F5H ;南北黄灯,东西红灯
  MAIN2:CALL DELAY
  MOV R7,#00H ;红灯继续倒计时,黄灯闪烁,保持0s
  CPL P1.1 ;黄灯闪烁
  CJNE R6,#00H,MAIN2 ;判断红灯是否倒计时完
  MOV P1,#0DEH ;南北红灯,东西绿灯
  MOV R7,#1EH
  MOV R6,#19H
  MAIN3:CALL DELAY
  JB P0.0,REL2
  CJNE R6,#00H,MAIN3
  MOV P1,#0EEH
  MAIN4:CALL DELAY
  MOV R6,#00H
  CPL P1.4
  CJNE R7,#00H,MAIN4
  JMP MAIN
  REL1:MOV P1,#0F5H ;东西方向按钮按下,南北方向强制由绿灯变成黄灯警告
  MOV R6,#05H
  MOV R7,#00H
  JMP MAIN2
  REL2:MOV P1,#0EEH ;南北方向按钮按下,东西方向强制由绿灯变成黄灯警告
  MOV R7,#05H
  MOV R6,#00H
  JMP MAIN4
  ;1s延时子程序
  DELAY:MOV A,R6 ;进行南北方向倒计时时间的十进制调整
  MOV B,#0AH
  DIV AB
  MOVC A,@A+DPTR ;找寻相应的数码管代码
  MOV P2,#01H
  MOV P3,A ;输出个位
  MOV R4,#4 ;降低动态显示频率
  LOOP2:MOV R3,#125
  LOOP3:DJNZ R3,LOOP3
  DJNZ R4,LOOP2
  MOV A,B
  MOVC A,@A+DPTR
  MOV P2,#02H ;输出十位
  MOV P3,A
  MOV R4,#4
  LOOP4:MOV R3,#125
  LOOP5:DJNZ R3,LOOP5
  DJNZ R4,LOOP4
  MOV A,R7 ;进行东西方向倒计时时间的十进制调整
  MOV B,#0AH
  DIV AB
  MOVC A,@A+DPTR
  MOV P2,#04H
  MOV P3,A
  MOV R4,#4
  LOOP6:MOV R3,#125
  LOOP7:DJNZ R3,LOOP7
  DJNZ R4,LOOP6
  MOV A,B
  MOVC A,@A+DPTR
  MOV P2,#08H
  MOV P3,A
  MOV R4,#4
  LOOP8:MOV R3,#125
  LOOP9:DJNZ R3,LOOP9
  DJNZ R4,LOOP8
  JBC TF0,LOOP ;判断是否计满125ms
  AJMP DELAY
  LOOP:MOV TL0,#0CDH ;计满125ms重新给定时器赋值
  MOV TH0,#0BH
  MOV A,30H
  DEC A
  MOV 30H,A
  JNZ DELAY ;判断是否计满8次125ms,即1s
  DEC R6 ;计满1s,东西倒计时减1,南北倒计时减1
  DEC R7
  MOV 30H,#08H ;重新1s次数,重新计时
  RET
  TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H ;相应数值的数码管代码
  DB 92H,82H,0F8H,80H,90H
  END
温馨提示:内容为网友见解,仅供参考
无其他回答

c51单片机c语言交通灯的程序
使用C语言为C51单片机编写交通灯控制程序是完全可行的,通过合理地设置定时器、I\/O端口以及逻辑控制,可以实现交通灯的定时切换和状态显示。接下来,我将详细解释如何为C51单片机使用C语言编写交通灯控制程序。首先,我们需要了解C51单片机的基本结构和资源,包括其I\/O端口、定时器\/计数器等。通常,交通灯系...

单片机交通灯程序
首先东西向直行绿灯和行人灯亮1分钟,左转灯亮30秒,黄灯亮5秒(同时南北向红灯亮95秒),然后东西向红灯亮95秒钟(同时首先南北向直行绿灯和行人灯亮1分钟,左转灯亮30秒,黄灯亮5秒),然后东西向的绿灯亮,依次类推。每次绿灯亮的时候,对应的行人灯亮。60S\/30S\/5S\/60S\/30S\/5S 东西道 绿和...

单片机交通灯的设计
(1)开关键盘输入交通灯初始时间,通过8051单片机P1输入到系统 (2) 由8051单片机的定时器每秒钟通过P0口向8255的数据口送信息,由8255的PA 口显示红、绿、黄灯的燃亮情况;由8255的PC口显示每个灯的燃亮时间。(3)8051通过 设置 各个信号等的燃亮时间、通过8031设置,绿、红时间分别为60秒、80秒...

c51单片机c语言交通灯的程序
sbit k5=P3^1;sbit Yellow_nb=P2^5; \/\/南北黄灯标志 sbit Yellow_dx=P2^2; \/\/东西黄灯标志 sbit Green_nb=P2^4;sbit Green_dx=P2^1;sbit Buzz=P3^7;bit Buzzer_Indicate;bit time=0;\/\/灯状态循环标志 bit set=1;\/\/调时方向切换键标志 uchar code table[11]={ \/\/...

如何用c语言编程在单片机上做交通信号灯
(1)电路连接图:三、软件程序(C语言) 以下是整个设计的软件程序,直接可以编译成*。Hex代码。通过以上电路,下载到单片机,可直接运行。\/\/***\/\/\/程序名:十字路口交通灯控制\/\/编写人:黄庭剑\/\/初写时间:2009年1月2日\/\/程序功能:南北为车行道,延时60秒;东西方向为人行道,延时20秒,且在最后...

如何用单片机制作交通灯
源程序中用6行sbit对东西和南北向的红、黄、绿指示灯分别进行定义,这样便于对它们进行单独控制。本例交通指示灯切换时间设置的较短,这样可在调试的时候较快观察到运行效果,可在调试运行本例后修改代码,使指示灯切换过程更接近于实际的交通指示灯切换过程。源程序代码:\/\/--- \/\/ 名称:LED模拟交...

求大神解答,用51单片机汇编语言实现一个红绿灯的程序,不是一个路口的...
;某一方向道路拥挤时,可以人工控制调节东西南北方向通行时间。;紧急情况时,各路口交通灯显示红灯,数码管保持数据不变。;工作寄存器及存储单元分配 ;1.工作寄存器 ;R2设置为定时器定时中断次数,R6、R7用于延时程序中的寄存器 ;2.片内存储单元 ;30H、31H作为两组数码管显示数据存储单元;32H、33H作为...

设计一个以单片机为核心的交通灯控制器。 要求红黄绿灯,各自闪烁时间...
实验内容:用并口实现模拟交通灯;要求:东西向的绿灯亮,接着该方向的黄灯闪烁5次,然后红灯亮;同时南北向的绿灯亮,接着该方向的黄灯闪烁5次,然后红灯亮;如此重复。转向灯可以不需要。include<reg51.h> sbit r1=P2^0;sbit y1=P2^1;sbit g1=P2^2;sbit r2=P2^3;sbit y2=P2^4;sbit g...

用单片机做交通灯,这么做
一、 系统功能要求:1. 设计任务在一十字路口设置交通灯,并用单片机对其进行合理的控制。时间方向 控制要求 白天 东西 绿灯 黄灯 红灯 南北 红灯 绿灯 黄灯 晚上 东西 黄灯 南北 红灯 2.总体设计方案现在流行的一种设计为两主干线相交的十字路。本设计采用一主干道(南北方向),一从干道(东西...

求单片机交通灯控制系统设计的程序(最后有中文解析)
--两路时间虽然不同,数码管显示应该是相同的,完全可以用一组数码管显示。2.紧急通行控制,如某一方向现为红灯,通过按键强行切换为绿灯,而另一路改为红灯,延时若干秒(10S)后,恢复原状态(红灯)继续倒数 --不应恢复原状态。--比如:--东西绿灯、南北红灯,两个方向的数字显示,都是60s...

相似回答