1、交通灯课程设计说明书编号: 微机综合实践课程说明书题 目: 交通灯控制系统 学院: 机电工程学院 专 业: 机械设计制造及其自动化 学生姓名: - 学 号: - 指导教师单位: 机械制造教研室 姓 名: 恽 志 东 职 称: 副 教 授 2013年12月20日目录1摘要(1)2前言(1) 2.1设计题目及要求(2)3设计方案论证(2) 3.1、方案选择(2) 3.2、方案确定(2)4系统软件设计(3) 4.2.1、程序设计原理(3) 4.2.2定时器初值计算(5) 4.2.3定时器中断服务子程序(6) 4.2.4数码管显示函数(7)5系统硬件设计(7) 5.1硬件设计原理 5.1.1控制芯片介
2、绍(7) 5.1.2时钟电路(9) 5.1.3 复位电路(10) 5.2制作工具及步骤(10) 5.2.1画原理图及pcb图(11) 5.2.2制版主要工具及流程(11) 5.3 时间显示模块(14) 5.4 原件清单(14)6调试与仿真(15)7设计心得体会(17)8参考文献(18)摘要 红绿灯控制系统是无需人为干预就能独立地驱动交通系统实现交通流的智能控制,减缓交通堵塞问题,优化交通体系的系统。红绿灯控制系统主要实现功能分为自动控制四个阶段如下:阶段一:东西红灯与南北绿灯亮5S。阶段二:东西红灯亮南北黄灯亮3S。阶段三:南北红灯与东西绿灯亮5S。阶段四:南北红灯亮东西灯亮3S。一个完整周期
3、为16S,不断循环。手动部分:阶段一:黄灯与2S周期不断闪烁。阶段二:东南西北红灯全亮(紧急控制)。整个控制系统通过数码管显示时间。关键字: 红绿灯 交通灯 控制系统 数码管 89c51前言设计任务: 1、设计一交通灯控制系统,控制东西方向的红黄绿灯及南北的红绿灯。 2、可以实现手动及自动控制p10=0自动控制p10=1手动控制手动控制时设置一开关(p11)当p11=0时各方向均为红灯。当p11=1时各方向均为黄灯闪烁(周期为2s) 3、自动控制时实现东西红灯与南北绿灯亮5S。东西红灯亮南北黄灯亮3S。南北红灯与东西绿灯亮5S。南北红灯亮东西灯亮3S,不断循环。意义:红绿灯的实现可以解决当今交
4、通拥堵的城市病。手动控制可以给警车、救护车等特种车辆让路。3设计方案论证3.1方案选择 1、显示模块 方案一:采用4个1位数码管显示。 方案二:用液晶屏显示。 方案三:用点阵屏显示。 2、指示模块 方案一:用四组红绿灯在四个路口显示。 方案二:用4个可变彩灯在四个路口,控制其显示颜色进行显示。 方案三:用字体显示 3、控制模块 选用at89s51或者stc89s51 4、时间控制 方案一:用软件延时。 方案二:用单片机内部定时器定时50ms计数20次为1s3.2方案确立 由于只显示0-8,所以选用4个1位数码管,液晶屏价格比较高编程复杂,点阵屏占用io资源比较多,为了更加明显显示我们采用了每个
5、路口3个灯,分别为红绿黄,方便控制,三色彩灯价格比较高,控制不方便,字体显示比较复杂,价格比较贵。软件延时误差比较大,用单片机定时器精度高方便控制。最终选型为,用3个单色灯在每个路口显示,用数码管显示倒计时。采用静态显示,采用单片机定时器计数。4系统软件设计4.1、设计软件 Keil c51、4.2.1、程序设计原理交通灯控制系统软件主要分为主程序、定时器中断服务子程序、特种车中断服务子程序,数码管显示、led显示五部分。其中led显示在中断服务函数中。4.2.1、主函数NYNY设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行
6、禁行方向对换。其具体状态如下图所示。说明:黑色表示亮,白色表示灭。交通状态从状态1开始变换,直至状态6然后循环至状1,周而复始,即如图(图2-1)所示:直至状态6然后循环至状态1,通过具体的路口交通灯状态的演示分析我们可以把这四个状态归纳如下:阶段一东西红灯南北绿灯亮,阶段二东西黄灯南北绿灯亮,阶段三东西绿灯南北红灯亮,阶段四,东西红黄南北红灯亮。 阶段一 阶段二 阶段三 阶段四函数如下:/* * *文件名 : hongludeng.asm* 描述 : 红绿灯的显示,通过数码管显示时间* 作者 : 李波,2013年12月10日*/ LED8 EQU P0 ; /定义数码管 MUN EQU 50
7、H DAB0 BIT P3.0 KEY1 BIT p1.0 /用于控制程序选择 KEY2 BIT p1.1 /控制红黄灯 P22 BIT P2.2 /控制南北绿灯 P23 BIT P2.3 /控制南北黄灯 P24 BIT P2.4 /控制南北红灯 P25 BIT P2.7 /控制东西红灯 P26 BIT P2.6 /控制东西黄灯 P27 BIT P2.5 /控制东西绿灯 ORG 0000H LJMP START /主函数 ORG 000BH LJMP INT_T0 /定时器入口 START: MOV DPTR,#TABLE MOV LED8,#00H /数码管清空 MOV TMOD,#01H
8、/模式一 MOV TH0 ,#4CH MOV TL0 ,#00H /50ms初值 MOV IE ,#82H /开中断 SETB TR0 MOV R2,#00H /计数初始化 MOV R1,#00H /数码管显示初始化 MOV P2 ,#00H /led清零MAIN: MOV A,R1 /循环显示 MOV DPTR,#TABLE /数码管地址归零 MOVC A,A+DPTR /数码管地址 MOV LED8,A /数码管显示 SJMP MAIN /while循环4.2.2定时器初值计算定时周期为50ms,定时20次达到1s,晶振11.0592采用定时器0工作方式150ms初值计算初值高位T0H=(
9、65535-50000)/256初值低位位T0L=(65535-50000)%256也可以采用软件取值4.2.3定时器中断服务子程序在中断函数中进行计数赋值、数码管显示赋值、指示灯显示等判断其函数如下N10: MOV P2,#00H /led清零 JNB KEY2 , N15 /判断key2是否按下(没有按下p11=1执行n15红灯亮) CJNE R1 ,#01H,N11 SETB P23 /key1按下执行手动控制 SETB P26 /黄灯亮 SJMP LOOP /结束中断N11: CLR P23 /黄灯灭 CLR P26 SJMP LOOP /结束中断N15: MOV P2,#00H /l
10、ed全灭 MOV R1,#00H /显示清零 SETB P24 /红灯亮 SETB P27 /红灯亮 JNB KEY2, LOOP/*自动控制*/ N20: JB DAB0 , N25 MOV P2 ,#00H /自动控制 CJNE R1,#03H,N21 /判断是否到达3秒N21: JC N22 /3跳到n21 SETB P24 /控制南北红灯/南北绿灯亮 SETB P25 /控制东西绿灯/东西红灯亮 SJMP LOOPN22: MOV P2 ,#00H SETB P26 /黄灯亮 SETB P24 /红灯继续亮 CLR P25 /绿灯灭 SJMP LOOP N25: MOV P2 ,#00
11、H /自动控制 CJNE R1,#03H,N31 /判断是否到达3秒N31: JC N32 /3跳到n21 SETB P22 /南北绿灯亮 SETB P27 /东西红灯亮 SJMP LOOPN32: MOV P2 ,#00H SETB P23 /黄灯亮 SETB P27 /红灯继续亮 CLR P22 /绿灯灭 SJMP LOOP/*定时函数*/ INT_T0: MOV TL0 ,#00H /50ms初值 MOV TH0 ,#4CH / INC R2 /计数+ CJNE R2,#14H, LOOP1 /不到时间不执行 MOV R2 ,#00H /计数清零 DEC R1 /R1- CJNE R1,
12、#0FFH ,LOOP1 /判断-1 JB KEY1,IN1 /判断key1=1执行in1 MOV R1,#08H /按下直接赋值8 CPL DAB0 /取反 SJMP LOOP1 /判断keyIN1: JB KEY2 , IN2 /判断是否按下key2 SJMP LOOP1IN2: MOV R1,#01H SJMP LOOP1 LOOP1: JB KEY1, N10 /判断按键1没有按下 手动控制 SJMP N20 /判断按键1按下 自动控制LOOP: RETI4.2.4数码管显示函数MAIN: MOV A,R1 /循环显示 MOV DPTR,#TABLE /数码管地址归零 MOVC A,A
13、+DPTR /数码管地址 MOV LED8,A /数码管显示 SJMP MAIN /while循环数码管段显示取值数组 TABLE : DB 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f / 0123456789 5系统硬件设计5.1 控制模块5.1.1控制芯片介绍我们采用的是stc85c51单片机,AT89S52的晶振及复位电路按典型电路设计,元器件参数如图中所示,晶振频率选为11.0592MHz。P0口用于控制数码管显示,P2口用于控制东西南北通行灯。P10P11控制手动及自动控制由交警手动按切换按键实现全路口车辆禁行而行人通行状态。s
14、tc85c51使用片内的8KB的Flash程序存储器,所以片内外程序存储器选择引脚/VPP接5V电源。控制线共有4根:(1)ALE/PROG:地址锁存允许/片内EPROM编程脉冲;ALE功能:用来锁存P0口送出的低8位地址;PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。(2)PSEN:外ROM读选通信号。(3)RST/VPD:复位/备用电源;RST(Reset)功能:复位信号输入端; VPD功能:在VCC掉电情况下,接备用电源。(4)EA/VPP:内外ROM选择/片内EPROM编程电源;EA功能:内外ROM选择端;VPP功能:片内有EPROM的芯片,在EPRO
15、M编程期间,施加编程电源VPP。4.I/O引脚部分(1)stc85c51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。 (2)P3口第二功能:P30 RXD 串行输入口;P31 TXD 串行输出口;P32 INT0 外部中断0;P33 INT1 外部中断1;P34 T0 定时计数器0;P35 T1 定时计数器1;P36 WR 外部数据存储器写选通(低电平有效);P37 RD 外部数据存储器读选通(低电平有效)。单片机内部结构如图3-3所示:图3-3 8051单片机内部结构stc85c51单片机包含中央处理
16、器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:1.中央处理器中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。2.数据存储器(RAM)stc85c51内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的
17、数据,运算的中间结果或用户定义的字型表。 3.程序存储器(ROM)stc85c51共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。4.定时/计数器(ROM)8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。5.并行输入输出(I/O)口8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。5.1.2时钟电路在设计之前,让我们先了解下51单片机上的时钟管脚:XTAL1(19脚):芯片内部振荡电路输入端。XTAL2(18脚):芯片内部振荡电路输出端。XTAL1和XTAL2是独立的输入和输出反相放大器,它们可以被配置为使用石英
18、晶振的片内振荡器,或者是器件直接由外部时钟驱动。图2中采用的是内时钟模式,即采用利用芯片内部的振荡电路,在XTAL1、XTAL2的引脚上外接定时元件(一个石英晶体和两个电容),内部振荡器便能产生自激振荡。一般来说晶振可以在1.212MHz之间任选,甚至可以达到24MHz或者更高,但是频率越高功耗也就越大。在控制板中采用的11.0592M的石英晶振。和晶振并联的两个电容的大小对振荡频率有微小影响,可以起到频率微调作用。当采用石英晶振时,电容可以在2040pF之间选择(本实验套件使用30pF);当采用陶瓷谐振器件时,电容要适当地增大一些,在3050pF之间。通常选取33pF的陶瓷电容就可以了。另外
19、值得一提的是如果读者自己在设计单片机系统的印刷电路板(PCB)时,晶体和电容应尽可能与单片机芯片靠近,以减少引线的寄生电容,保证振荡器可靠工作。检测晶振是否起振的方法可以用示波器可以观察到XTAL2输出的十分漂亮的正弦波,也可以使用万用表测量(把挡位打到直流挡,这个时候测得的是有效值)XTAL2和地之间的电压时,可以看到2V左右一点的电压。5.1.3 复位电路在单片机系统中,复位电路是非常关键的,当程序跑飞(运行不正常)或死机(停止运行)时,就需要进行复位。MCS-5l系列单片机的复位引脚RST(第9管脚)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处
20、于循环复位状态。复位操作通常有两种基本形式:上电自动复位和开关复位。图2中所示的复位电路就包括了这两种复位方式。上电瞬间,电容两端电压不能突变,此时电容的负极和RESET相连,电压全部加在了电阻上,5.2制作工具及步骤5.2.1画原理图及pcb图转印到铜板打印pcb5.2.2制版主要工具及流程腐蚀液铜板转印机打孔机及老铁5.2 通行灯显示模块通行灯显示模块如图所示。二极管每个路口三个,用102排阻驱动,用P2控制,5.3 时间显示模块通行剩余时间显示模块如图所示路口通行剩余时间采用高亮红色7段共阴LED发光数码管显示。也是用排阻驱动电路图如下数码管的使用方法与发光二极管没什么区别,只是把七或八
21、只发光二极管组合在一个模件上组成了个8字和小数点,用以显示数字。为了减少管脚,把各个发光管的其中同一个极接在一起作为共用点,因此就产生了共阳极和共阴极数码之说。共阳管就是把各个发光管的正极接在一起,而共阴管就刚好相反。见下图:一般来说大部分的逻辑IC的吸收电流要强于输出电流。因此,大家都爱使用共阴极的数码管,因为可选的iC多些5.4原件清单序号原件数量1stc51单片机12晶振11.0592613极性电容10uf24按键双引脚55自锁开关16usb母座接口17103排阻9引脚2810k电阻29电容22pf21040p ic插座111led红色112红色led(5mm)413绿色led(5mm)
22、414黄色led(5mm)415共阴数码管1位46、仿真调试仿真软件protues调试程序:/* 文件名 : hongludeng.c* 描述 : 红绿灯的显示,通过数码管显示时间* 作者 : */#include /51头文件#define uchar unsigned char /定义初始化#define uint unsigned int /无符号整形sbit KEY1=P10 ; /用于控制程序选择sbit KEY2=P11 ; /控制红黄灯sbit P22=P22 ; /控制南北绿灯sbit P23=P23 ; /控制南北黄灯sbit P24=P24 ; /控制南北红灯sbit P2
23、5=P25 ; /控制东西红灯sbit P26=P26 ; /控制东西黄灯sbit P27=P27 ; /控制东西绿灯bit fly; /标志位uchar code table11=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/ 123456789 uchar mun=0,n,m;/*名称; delya10ms()功能: 延时函数*/void delay10ms(uint del) uint i,j; for(i=0; idel; i+) for(j=0; j3&mun9) P22=1; /南北绿灯亮 P25=1; /东西红灯亮 if(mun=3)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1