1、单片机控制交通灯控制系统设计所在学院:电气工程和自动化学院 目1摘要2 系统总体方案及硬件设计1 2.1设计要求12.2设计任务12.3总体设计12.4硬件设计13 软件设计6 3.1总体步骤图73.2子程序步骤图83.3循环控制思绪84 Proteus软件仿真94.1正常运行仿真94.2紧急中止仿真 94.3南北强制通行仿真 104.4东西强制通行仿真 105 课程设计体会 116 参考文件127 附录137.1录源程序代码附7.2系统原理图19摘要本设计是单片机控制交通灯控制系统设计伴随社会经济发展,城市交通问题越来越引发大家关注。人、车、路三者关系协调,已成为交通管理部门需要处理关键问题
2、之一。城市交通控制系统是用于城市交通数据监测、交通信号灯控制和交通疏导计算机综合管理系统,它是现代城市交通监控指挥系统中最关键组成部分。所以,怎样采取适宜控制方法,最大程度利用好花费巨款修建城市高速道路,缓解主干道和匝道、城区同周围地域交通拥堵情况,越来越成为交通运输管理和城市计划部门亟待处理关键问题。目前,中国大多数城市正在采取“自动”红绿交通灯,它含有固定“红灯绿灯”转换间隔,并自动切换。它们通常由“通行和严禁时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。现在我们利用“自动控制”控制交通灯方法。将事先编制好程序输入单片机,利用单片机定时、查询、中止功效;能够依据十字路口两个方向上
3、车辆动态情况,采取查询方法,依据具体情况,自动给时间通行,其中利用中止方法来处理特殊情况。这么既方便驾驶员、路人,同时还能够紧急处理部分紧急实况。一样含有红、黄、绿灯显示功效,为驾驶员、路人“照明”。2系统总体方案及硬件设计2.1设计要求:1)南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上车辆交替运行,主干道每次通行时间全部设为30秒、支干道每次通行间为20秒;2)在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道;3)黄灯亮时,要求每秒闪亮一次。4)东西方向、南北方向车道除了有红、黄、绿灯指示外,每一个灯亮时间全部用显示器进行显示(采取计时方法)。5)一道有车而另一道无车(
4、试验时用开关 K0 和 K1 控制),交通灯控制系统能立即让有车道放行。 6)有紧急车辆要求经过时,系统要能严禁一般车辆通行,A、B道均为红灯,紧急车由K2 开关模拟。2.2设计目标:1)东西、南北车辆交替运行。2)绿灯转为红灯时,黄灯闪亮(间隔1秒)。3)能显示剩下时间。4)能对交通运行进行控制。2.3总体设计单片机晶振电路键盘LED数码管显示LED指示灯复位电路2.4硬件设计1)单片机选型:AT89S52和MCS-51单片机产品兼容 、8K字节在系统可编程Flash存放器、 1000次擦写周期、 全静态操作:0Hz33Hz 、 三级加密程序存放器 、 32个可编程I/O口线 、三个16位定
5、时器/计数器 八个中止源 、全双工UART串行通道、 低功耗空闲和掉电模式 、掉电后中止可唤醒 、看门狗定时器 、双数据指针 、掉电标识符 。功效特征描述At89s52 是一个低功耗、高性能CMOS8位微控制器,含有 8K 在系统可编程Flash 存放器。使用Atmel 企业高密度非 易失性存放器技术制造,和工业80C51 产品指令和引脚完 全兼容。片上Flash许可程序存放器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效处理方案。 AT89S52含有以下标准功效: 8k字节Flas
6、h,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中止结构,全双工串行口, 片内晶振立即钟电路。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,许可RAM、定时器/计数器、串口、中止继续工 作。掉电保护方法下,RAM内容被保留,振荡器被冻结, 单片机一切工作停止,直到下一个中止或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash AT89S52 P0 口:P0口是一个8位漏极开路双向I/O口。作为输出口,每位能驱动8个TTL逻 辑电平。对P0端口写“
7、1”时,引脚用作高阻抗输入。 当访问外部程序和数据存放器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0含有内部上拉电阻。 在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验 时,需要外部上拉电阻。 P1 口:P1 口是一个含有内部上拉电阻8 位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时能够作为输入 口使用。作为输入使用时,被外部拉低引脚因为内部电阻原因,将输出电流(IIL)。 另外,P1.0和P1.2分别作定时器/计数器2外部计数输入(P1.0/T2)和时器/计数器2 触发输
8、入(P1.1/T2EX),具体以下表所表示。 在flash编程和校验时,P1口接收低8位地址字节。 引脚号第二功效 P1.0 T2(定时器/计数器T2外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) P2 口:P2 口是一个含有内部上拉电阻8 位双向I/O 口,P2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时能够作为输入 口使用。作为输入使用时,被外部拉低引脚因为内部电阻原因,将输出电流(II
9、L)。 在访问外部程序存放器或用16位地址读取外部数据存放器(比如实施MOVX DPTR) 时,P2 口送出高八位地址。在这种应用中,P2 口使用很强内部上拉发送1。在使用 8位地址(如MOVX RI)访问外部数据存放器时,P2口输出P2锁存器内容。 在flash编程和校验时,P2口也接收高8位地址字节和部分控制信号。 P3 口:P3 口是一个含有内部上拉电阻8 位双向I/O 口,p2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时能够作为输入 口使用。作为输入使用时,被外部拉低引脚因为内部电阻原因,将输出电流(IIL)。 P3口亦作为AT89S
10、52特殊功效(第二功效)使用,以下表所表示。 在flash编程和校验时,P3口也接收部分控制信号。 端口引脚 第二功效P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INTO(外中止0)P3.3 INT1(外中止1)P3.4 TO(定时/计数器0)P3.5 T1(定时/计数器1)P3.6 WR(外部数据存放器写选通)P3.7 RD(外部数据存放器读选通)另外,P3口还接收部分用于FLASH闪存编程和程序校验控制信号。RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG当访问外部程序存放器或数据存放器时,ALE(地址锁存许可)
11、输出脉冲用于锁存地址低8位字节。通常情况下,ALE仍以时钟振荡频率1/6输出固定脉冲信号,所以它可对外输出时钟或用于定时目标。要注意是:每当访问外部数据存放器时将跳过一个ALE脉冲。对FLASH存放器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必需,可经过对特殊功效寄存器(SFR)区中8EH单元D0位置位,可严禁ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。另外,该引脚会被微弱拉高,单片机实施外部程序时,应设置ALE严禁位无效。PSEN程序储存许可(PSEN)输出是外部程序存放器读选通信号,当AT89C52由外部程序存放器取指令(或数据)时,每个机器周期两次P
12、SEN有效,即输出两个脉冲,在此期间,当访问外部数据存放器,将跳过两次PSEN信号。EA/VPP外部访问许可,欲使CPU仅访问外部程序存放器(地址为0000H-FFFFH),EA端必需保持低电平(接地)。需注意是:假如加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则实施内部程序存放器指令。FLASH存放器编程时,该引脚加上+12V编程许可电源Vpp,当然这必需是该器件是使用12V编程电压Vpp。引脚结构图以下所表示:2)复位电路:上电+按钮 复位电路原理图当8051ALE及/PSEN两引脚输出高电平,RST引脚高电平到时,单片机复位。RST/VPD端高电
13、平,若直接由开启瞬间产生,则为开启复位,若经过按动按钮产生高电平复位称手动复位。图中,上电时,接通电源,电容器C相当于瞬间短路,+5V加到了RST/VPD端,该高电平使8051全机复位。若运行过程中,需要程序从头实施,只需按动按钮S,则直接把+5V加到了RST/VPD端,从而复位。显然,该电路即能够上电复位,也能够手动复位,是常见复位电路之一。3)晶振电路 晶振电路原理图4)键盘:独立键盘+中止5)数码管显示:LED7段码6)发光二极管显示3软件设计3.1总体步骤图程序组成:调南北通行子程序调南北黄灯闪烁子程调东西通行子程调东西黄灯闪烁子程是否有中止按键按下?中止处理中止初始化中止返回(到子程
14、序处)NOYES开 始3.2 紧急中止子程序步骤图断点入栈保护状态参数设置送状态字至端口状态响应断点返回开 始开 始3.3循环步骤控制思绪:东西绿灯南北红灯东西黄灯闪南北红灯亮东西红灯南北绿灯东西红灯亮南北黄灯闪4 Proteus软件仿真4.1 正常运行仿真图 4.2 紧急中止仿真图4.3 南北强制通行仿真4.4 东西强制通行仿真图课程设计体会30天单片机课程设计很快就结束了,在这一月当中,即使开始有点困难,不过经过我们们分工合作,合理地进行设计安排,再加上老师耐心指导,我们们最终顺利地完成了此次单片机课程设计,同时也学到了很多东西。在此次课程设计中,我们经过动手实践操作,深入学习和掌握了单片
15、机原理相关知识,尤其是程序编程方面,加深了对单片机原理及应用技术认识,深入巩固了对单片机知识了解,掌握简单单片机应用系统设计、制作、调试方法。在设计时依据课题要求,复习相关知识,查询相关资料。依据试验条件,找到适合方案,找到需要元器件及工具,进行试验。这次单片机课程设计关键是经过实践操作和理论相结合,提升动手实践能力,提升科学思维能力,更在一周时间了解了更多相关单片机知识,使知识愈加丰富,使自己愈加充实。和此同时,我们也对团体分工合作有了深入认识,只有经过合理分工合作,我们们才能够在短短一周时间内完成设计任务,相信这对以后在社会上工作和学习会有很多帮助,让我们能愈加好进入工作状态。最关键是,这
16、次课程设计也增加了我们对问题研究和探讨,们以后学习中会有更多帮助。单片机为我们关键专业课之一,但要做好一个课程设计,就必需做到:在设计程序之前,对所用单片机内部结构有一个系统了解,知道该单片机内有哪些资源;要有一个清楚思绪和一个完整软件步骤图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不停改善是程序设计必经之路;要养成注释程序好习惯,一个程序完美是否不仅仅是实现功效,而应该让人一看就能明白你思绪,这么也为资料保留和交流提供了方便;在设计课程过程中碰到问题是很正常德,但我们们应该将每次碰到问题统计下来,并分析清楚,以免下次再碰到一样问题课程设计结束了,不过从中学到知识会让我们受益终
17、生。在设计过程中发觉了自己不足之处,对以前所学过知识了解得不够深刻,掌握得不够牢靠。我们们经过查阅大量相关资料,并在小组中相互讨论,交流经验和自学,若碰到实在搞不明白问题就会立即请教老师,使自己学到了不少知识,也经历了不少艰辛,但收获一样巨大。经过这次课程设计我们也发觉了本身存在不足之处,即使感觉理论上已经掌握,但在利用到实践过程中仍有意想不到迷惑,经过一番努力才得以处理。 在完成单片机课程设计后,我们们发觉我们们还有很多不足,所学到知识还远远不够,以至于还有部分功效不能被动完成。但经过学习这一次实践,增强了我们们动手能力,提升和巩固了单片机方面知识,尤其是软件方面。从中增强了我们团体合作精神
18、,并让我们们认识到把理论应用到实践中去是多么关键。参考文件1 卢艳军.单片机原理及应用系统. 北京:机械工业出版社,.2 2 余发山,王福忠等.单片机原理及应用. 徐州:中国矿业大学出版社,.5 3 金显贺,王昌长,王忠东等.一个用于在线检测局部放电数字滤波技术.清华大学学报(自然科学版),1993,33(4):62-67 4 刘国钧,陈绍业,王凤翥.图书馆目录.北京:高等教育出版社,1957.15-18 5 王明亮.相关中国学术期刊标准化数据库系统工程进展.6 张洪润.单片机原理及应用系统. 北京:机械工业出版社,.2 7 胡雪梅.单片机原理及应用. 北京:清华大学出版社,.58 穆兰.单片
19、机原理及接口技术. 北京:机械工业出版社,.57附录7.1 源程序代码 ORG 0000H AJMP START ORG 0003H LJMP INT00 ORG 0013H LJMP INT10START: MOV SP,#60H SETB EX0 SETB EX1 SETB EA ;LCALL ST00MAIN: LCALL ST10 LCALL ST20 LCALL ST30 LCALL ST40 LJMP MAINST00: MOV A,#00 MOV P2,AST10:MOV R7,#30ST11:MOV R0,#0DEH MOV P2,R0 LCALL DELAY1S RETST2
20、0:MOV R4,#05ST21:MOV R0,#0DDH MOV P2,R0 MOV R5,#05 L22:LCALL DELAY01S ;延时0.5S DJNZ R5,L22 MOV R0,#0DFH MOV P2,R0 MOV R5,#05 L23:LCALL DELAY01S ;延时0.5S DJNZ R5,L23 DJNZ R4,ST21 RETST30:MOV R7,#20 MOV R0,#0F3H MOV P2,R0 LCALL DELAY1S RETST40:MOV R4,#05ST41:MOV R0,#0EBH MOV P2,R0 MOV R5,#05 L42:LCALL D
21、ELAY01S ;延时0.5S DJNZ R5,L42 MOV R0,#0FBH MOV P2,R0 MOV R5,#05 L43:LCALL DELAY01S ;延时0.5S DJNZ R5,L43 DJNZ R4,ST41 ; JMP ST10 RETDELAY1S: MOV R3,#50 ; R3存循环20ms次数(50次) CLR A DIS0: MOV A,R7 LCALL X0 DJNZ R3,DIS0 DJNZ R7,DELAY1S RETDELAY01S: MOV R7,#05 ; R2存循环20ms次数(5次) CLR A DIS1: MOV A,R4 LCALL X0 DJ
22、NZ R7,DIS1 RETDELAY10MS: MOV R2,#20 ;键扫描10ms子程序 DEL1: MOV R6,#248 DJNZ R6,$ DJNZ R2,DEL1 MOV R6,#00 MOV R2,#00 RET TAB: DB 3FH,06H,5BH,4FH DB 66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH DB 39H,5EH,79H,71H DB 40H,00HX0: MOV R6,A MOV R1,#40H R3,R4,R5, MOV A,R6 MOV B,#10 DIV AB MOV R1,A INC R1 MOV R1,B MOV DPTR
23、,#TAB MOV A,R1 MOVC A,A+DPTR MOV P0,A CLR P3.7 LCALL DELAY10MS SETB P3.7 DEC R1 MOV DPTR,#TAB MOV A,R1 MOVC A,A+DPTR MOV P0,A CLR P3.6 LCALL DELAY10MS SETB P3.6 RETINT00: MOV 36H,R7 PUSH 36H MOV 37H,R0 PUSH 37H MOV 39H,R3 PUSH 39H MOV R7,#10 ;紧急情况按钮,南北停止通行,均为红灯,连续10秒。 MOV P2,#0DBH LCALL DELAY1S POP
24、39H POP 37H POP 36H MOV R7,36H MOV R0,37H MOV P2,R0 MOV R3,39H RETIINT10: MOV 36H,R7 ;R7-XIANSHIMIAOSHU PUSH 36H ;R0-p2 显示灯状态 MOV 37H,R0 ; PUSH 37H MOV 38H,R6 PUSH 38H MOV 39H,R3 PUSH 39H ;JNB P3.4,SV1 ;JNB P3.5,SV2 ; RETSV1: MOV R7,#10 ;南北车流量多,切换成南北方向上运行 MOV R0,#0DEH MOV P2,R0 LCALL DELAY1S AJMP RETNSV2: MOV R7,#10 ;东西车流量多,切换成东西方向上运行 MOV R0,#0F3H MOV P2,R0 LCALL DELAY1S AJMP RETNRETN: POP 39H MOV R3,39H POP 38H MOV R6,38H POP 37H MOV R0,37H POP 36H MOV R7,36H RETI7.2 系统原理图