1、电子线路课程设计(2) 论文(设计)题目: 其于AT89S52单片机交通灯控制系统设计 系 别: 物理与电子工程系 专 业: 电子信息工程 年 级: 级 学生姓名: 宾 华 指引教师: 邹 清 平 时 间: 6月20日 目 录 摘 要 4 核心词 4 一、设计任务与规定 4 二、方案设计与论证 4 方案一 4 方案二 5 方案三 5 三、硬件单元电路设计与参数计算 5 1. 时钟电路模块 5 2. 复位电路模块 6 3. 主控电路模块 6 4. 交通灯控制模块 7 5. 时间显示电路模块 7 6. 紧急通车电路模块 8 四、软件设计与流程图 9 五、总原电路及元器件清单 10 1总原理图 10
2、 2. PCB制板图 10 3 整体电路仿真图以及仿真成果分析 11 4元件清单 12 六、安装与调试 12 1. 电路安装 12 2. 电路调试 12 3. 软件调试 13 七、性能测试与分析 13 八、结论与心得 13 九、参照文献 14 十、道谢 14 十一、程序清单 14摘要:近年来随着科技飞速发展,单片机应用正在不地走向进一步,同步带动老式控制检测日新月益更新。在实时检测和自动控制单片机应用系统中,单片机往往是作为一种核心部件来使用,单片机方面知识是不够,还应依照详细硬件构造,以及针对详细应用对象特点软件结合,加以完善。交通信号灯浮现,使交通得以有效管制,对于疏导交通流量、提高道路通
3、行能力,减少交通事故有明显效果。本系统采用单片机AT89S52为中心器件来设计交通灯控制器,系统实用性强、操作简朴、扩展性强。核心词:1、单片机最小系统。2、红、黄、绿LED交通灯。3、紧急通车开关。一、设计任务与规定 用AT89S52单片机控制一种交通信号灯系统,晶振采用12MHZ。 设A车道与B车道交叉构成十字路口,A是主道,B是支道。设计规定如下:用发光二极管模仿交通信号灯,用按键开关模仿车辆检测信号。正常状况下,A、B两车道轮流放行,A车道放行50s,其中5s用于警告;B车道放行30s,其中5s用于警告。交通繁忙时,交通信号灯控制系统应有手控开关,可人为地变化信号灯状态,以缓和交通拥挤
4、状况。在B 车道放行期间,若A车道有车而B车道无车,按下开关K1 使 A车道放行15s;在 A车道放行期间,若B车道有车而A车道无车,按下开关K1 使B 车道放行15s。有紧急车辆通过时,按下K2开关使 A、B车道均为红灯,禁行20s。二、方案设计与论证方案一: 交通控制系统重要控制A、B两车道交通,以AT89S52单片机为核心芯片,通过控制三色LED亮灭来控制各车道通行;此外通过2个按键来模仿各车道有无车辆状况和有紧急车辆状况。依照设计规定,制定总体设计思想如下:1、正常状况下运营主程序,采用0.5S延时子程序重复调用来实现各种定期时间。2、一道有车而另一道无车时,采用外部中断1执行中断服务
5、程序,并设立中断为低优先级中断。3、有紧急车辆通过时,采用外部中断0执行中断服务程序,并设立中断为高优先级中断,实现二级中断嵌套。该电路具备电路简朴,设计以便,显示亮度高,耗电较少,也非常可靠等点。总体设计框图如图1所示: AT89S52 单片机 复位电路 晶振电路 按键电路七段数码管倒计 时显示电路 A、B车道LED显示电路 图1 系统整体设计方框图方案二:采用原则AT89S52单片机作为控制器;通行倒计时显示采用3位数码管;主、次通道及行人批示灯采用双色高亮发光二极管;LED显示采用动态扫描,以节约端口。紧急车辆通行采用实时中断完毕,辨认办法采用手动按钮。按以上系统构架设计,单片机端口资源
6、刚好满足规定。该系统具备电路简朴,设计以便,显示亮度高耗电少,可靠性高,但是占用单片机资源太多了。整个电路构成框图如图2所示。 P1 P2INT1 P0 P3南北通行灯东西通行灯3位LED显示屏列扫描驱动上电复位电路 紧急车辆放行电路 图2 方案三:采用AT89C2051单片机作为控制器,通行倒计时、主、次车道及行人通行批示采用单块LCD液晶点阵显示屏。这种方案设计占用单片机端口至少,硬件也至少,耗电也至少;虽然显示图案也很精美,但由于亮度太暗,晚上还得必要开背光灯,因此较少采用。通过以上综合分析可以看出,方案一具备综合设计长处,因而都市道口交通灯控制系统模型采用方案一设计。三、硬件单元电路设
7、计与参数计算1、时钟电路模块时钟电路由一种晶体振荡器12MHZ和两个30pF瓷片电容构成。时钟电路用于产生单片机工作所需要时钟信号,而时序所研究是指令执行中各信号之间互有关系。单片机自身就如一种复杂同步时序电路,为了保证同步工作方式实现,电路应在唯一时钟信 号控制下严格地工作。其电路如图3所示: 图3 时钟电路模块2、复位电路模块 复位电路是使单片机CPU或系统中其她部件处在某一拟定初始状态,并从这状态开始工作,除了进入系统正常初始化之外,当由于程序运营出错或操作错误使系统处在死锁状态时,为挣脱困境,也需按复位电路以重新启动。本设计采用是按键复位电路。其电路如图4所示: 图4 复位电路3、主控
8、制系统模块主控制器采用AT89S52,是ATMEL公司生产一款性能稳定8位单片机。AT89S52具备1个8KBFLASH程序存储器,1个512字节RAM,4个8位双向可位寻址I/O端口,3个16位定期/计数器及1个串行口和6个向量二级中断构造。单片机P0口分别用于控制南北及东西通行灯,P2口和P34-P37口用于4组4位LED计时器控制,紧急车辆通行时使用外中断0(P32)和外中断1(P33),进行手动按键,即可转换。其主控电路如图5所示: 图5 主控制系统模块4、交通灯输出控制模块道口交通灯批示采用高亮度红、黄、绿发光二极管进行提示。其图如图6所示 图6 LED显示模块当R=220欧时,按公
9、式A=(5-1.8)/R计算,电路中电流大小应为A=14.545mA.由于每个路口通行双向批示解决相似,因而每个端口应具备3A吸取电流能力。5、时间显示电路模块 道口通行剩余时间采用高亮红色7段LED发光数码管显示,采用共阳数码管,如用单片机吸取电流驱动,列扫描驱动使用三极管,按每段6mA电流计算,全显示字形“8”时,每个数码需6mA*8=48mA,由于时间显示每个道口相似,共需要电流192mA,因而设计中也采用了中功率三极管8550.其显示电路如图7所示:6、紧急通车电路模块 为了实现此功能,运用单片机中断达到目。运用一种手动按钮开关接至单片机外部中断0,同步在软件设计时将其设定为最高优先级
10、,当其按下时,四方全为红灯,同步将中断位置PSW、ACC进栈保护,当其计时完了之后,回到本来位置进行执行。再运用一种手动按钮接至单片机外部中断1当其按下时,如果是东西道是红灯,而南北道是绿灯,则将其置为东西是绿灯,南北是红灯;如果是东西道是绿灯,而南北道是红灯,则将其置为东西是红灯,南北是绿灯。两种状况都是执行完后,回到断点处继续执行。其电路如图8所示: 图7 数码管显示模块 图8 按键控制电路三、软件设计与流程图1、软件设计 主程序采用查询方式定期,调用0.5S延时子程序次数,从而获取交通灯各种时间。子程序采用定期器1方式1查询式定期,定期器定期50ms,拟定50ms循环20次,从而获得1S
11、延时时间。有车车道放行中断服务程序一方面要保护现场,因而需用到延时子程序,子程序采用定期器0方式1查询式定期,定期器定期50ms,拟定50ms循环20次,从而获得1S延时时间,保护现场时还需关中断,以防止高优先级中断(紧急车辆通过所产生中断)浮现导致程序混乱。开中断,由软件查询外中断1,鉴别哪一道有车,再依照查询状况执行相应服务。待交通灯信号浮现后,保持15S延时,然后,关中断,恢复现场,再开中断返回主程序。紧急车辆浮现时中断服务程序也需要保护现场,但不必关中断(因其为高优先级中断),然后执行相应服务,待交通灯信号浮现后延时20S,保证紧急车辆通过交叉路口,然后,恢复现场,返回主程序。2、程序
12、流程图 主程序 有车车道放行时中断服务程序(外中断1) 中断响应 初始化 开始 A绿灯、B红灯 延时45S A黄灯、B红灯 延时5S A红灯、B绿灯灯 延时25S A红灯、B黄灯 延时5S 关中断 保护现场 开中断 A道有车吗 B道有车吗 A绿灯、B红灯 延时15S A红灯、B绿灯 关中断 恢复现场 返回 开中断 紧急状况时中断服务程序(外中断0) 中断响应 返回 恢复现场 延时20S A红灯、B红灯 保护现场五、总原电路及元器件清单1总原理图如图9所示 图9 总原理图2 PCB制板图如图10所示 图10 PCB板3整体电路仿真图以及仿真成果分析(1)、整体电路仿真图如图11所示图11 仿真图
13、(2)、仿真成果分析 上电或按键复位后数码管无显示,东西、南北灯都为红灯亮;开始工作后主车道绿灯亮次车道红灯亮50S,在这里选定它亮到5S时,主车道绿灯灭,黄灯亮;5S后主车道变为红灯亮次车道绿灯亮30S,在这里选定它亮到5S时,次车道黄灯亮,5S后返回重新执行。按紧急车辆按钮红灯全亮显示时间为20S;有车车道放行按钮按下时,若主车道是绿灯、次车道是红灯,则把主车道变为红灯、次车道变为绿灯,显示15S;若主车道是红灯、次车道是绿灯,则把主车道变为绿灯、次车道变为红灯,显示15S;4、元件清单 如下表所示: 元件名称 型号 数量/个 用途 单片机 AT89S52 1 控制核心晶振 12MHZ 1
14、 晶振电路 电容 30pF 2 晶振电路 电解电容 10uF 1 复位电路 电阻 5.1K 1 复位电路 发光二极管 LED 12 红、黄、绿灯 集成块 74LS08 1 按键电路 电阻 220 13 LED限流 电阻 470 8 数码管电路 电阻 1K 7数码管驱动、按键电路 四位共阳数码管 GC-3461BS 1 显示电路 微动开关 3 按键电路 三级管PNP 8550 4 数码管驱动电路六、安装与调试1. 电路安装打好板后,按照所画PCB板,一一把各个元件焊接到所制板上即可。2. 电路调试电路调试是运用开发系统、基本测试仪器(万用表、示波器等),检查系统硬件中存在故障。其调试可分为静态调
15、试与动态调试两步进行。静态调试是在系统未工作时一种硬件检测。第一步:目测。检查外部各种元件或者是电路与否有断点。第二步:用万用表测试。先用万用表复核目测中有疑问连接点,再检测各种电源与地线之间与否有短路现象。第三步:加电检测。给板加电,检测所有插座或是器件电源端与否符合规定值。第四步:是联机检查。由于只有用单片机开发系统才干完毕对顾客系统调试。动态调试动态调试是在系统工作状况下发现和排除系统硬件中存在器件内部故障、器件连接逻辑错误等一种硬件检查。动态调试普通办法是由近及远、由分到合。由分到合是指一方面按逻辑功能将系统硬件电路分为若干块,当调试电路时,与该元件无关器件所有从系统中去掉,这样可以将
16、故障范畴限定在某个局部电路上。当各块电路无端障后,将各电路逐块加入系统中,在对各块电路功能及各电路间也许存在互相联系进行调试。由分到合调试既告完毕。由近及远是将信号流经各器件按照距离单片机逻辑距离进行由近及分层,然后分层调试。调试时,仍采用去掉无关元件办法,逐级调试下去,就会定位故障元件了。 3.软件调试 软件调试是通过对拥护程序C编程、连接、执行发现程序中存在语法错误与逻辑错误并加以排除纠正过程。运营程序后,编辑,查看程序与否有逻辑错误。七、性能测试与分析 系统做好,进行系统完整调试。按照所设计流程图,用单片机跟踪模式程序进行调试,配合有关硬件动作,可以观测LED变化和数码管显示与否对的。同
17、样明确延时时间长短、跳转位置及调用程序功能。通过观测各检测,我可以看到整个系统功能都能达到我设计规定。八、结论与心得以往每次做课程设计,都会感觉自己收获不少。这次单片机课程设计也不例外。做课程设计是为了让咱们对平时学习理论知识与实际操作相结合,在理论和实验教学基本上进一步巩固已学基本理论及应用知识并加综合提高,学会将知识应用于实际办法,提高和解决问题能力。第一,在编写软件中,在此过程中我更为纯熟得掌握汇编语言各种指令用法,掌握了keil软件使用。第二,在软件调试过程中,使我又一次复习了keil和proteus联合用法。在调试时曾经遇到数码管倒计时显示时间两位不能同步显示,日后通过查找资料不断调
18、试才领悟到本来在显示过程中要循环显示才干使得显示稳定下来。第三,在做原理图和PCB过程中,使我进一步掌握了proteus软件用法。再次熟悉了各种作图工具应用,并且培养了我在设计原理图时某些技巧和好习惯。第四,在做实物过程中,培养了我认真耐心工作态度。我在做板子过程中,一方面由于我布线比较紧密加上孔和焊盘过小使得在打孔是浮现刮断线以及在焊接时候浮现了虚焊和联焊等问题,日后我不得不重新再做一次板;二是由于焊接前没检查断线问题,使得我PCB在加载程序后只有灯亮,而数码管却不亮,日后通过我仔细检查,本来是在给三级管供电线有断,将其连接起来后,就能显示了,从而得以成功。总之,通过这次课程设计,我掌握了用
19、单片机设计交通灯基体办法,增强了我寻找问题,解决问题能力。培养了我设计思维,本次课程设计成功不但协助我更好地掌握课本知识,特别重要是增强了我自信,培养了我独立思考能力。但是本次设计不中之处是不能实现左右弯灯,不有人行道控制灯,不能进行流量控制。九、参照文献 1单片机基本.李广弟、朱月秀、冷祖祁.北京航空航天大学出版社。 2 华成英 童诗白, 模仿电子技术基本(第四版),高等教诲出版社。 3 康华光,电子技术基本 数字某些(第五版),高等教诲出版社。 451单片机C语言惯用模块与综合系统设计实例精讲.于永、戴佳、常江.电子工业出版社。 5单片机课程设计指引.杨居义.清华大学出版社。 6零基本学单
20、片机C语言程序设计.赵建领、薛园国.机械工业出版社。 十、道谢 通过本次毕业设计,我在指引教师邹清平精心指引和严格规定下,获得了丰富理论知识,极大地提高了实践能力,并对当前电子领域研究状况和发展方向有了一定理解,单片机领域这对我此后进一步学习电子方面知识有极大协助。此外,本次毕业设计还获得了咱们同窗大力支持。在此我忠心感谢邹清平以及各位同窗指引和支持。在将来工作和学习中,我将以更好成绩来加报各位教师和同窗。十一 、程序清单 #include #define uchar unsigned char #define uint unsigned int #define time 50000 #def
21、ine on 0 #define off 1sbit RED_ZHU = P00;/南北 红灯 sbit YELLOW_ZHU = P01;/南北 黄灯sbit GREEN_ZHU = P02;/南北 绿灯 sbit RED_ZHI = P03;/东西 红灯sbit YELLOW_ZHI = P04;/东西 黄灯sbit GREEN_ZHI = P05;/东西 绿灯sbit P23 = P34;sbit P22 = P35;/东西方向数码管位选sbit P21 = P36;sbit P20 = P37;/南北方向数码管位选sbit int0_key = P32;sbit int1_key =
22、P33;void display1(uchar,uchar);void display2(uchar,uchar);void delayms(uint k);uchar temp1,temp2,temp3,temp4,temp5,temp6;/*=倒计时=*/uchar N = 50,Y = 45,Z = 50,M = 75,G = 80,U =80;uchar C50ms,t0;uchar seg = 1;uchar flag=0,led_data_temp;void InitialT1(void) TMOD = 0x11;/定期器0,1工作在方式1TH1 = (65536 - time)/
23、256;/相称于(65536-time)/256;TL1 = (65536 - time)%256;/初值为time(50ms)TR1 = 1;/开定期器1中断ET1 = 1;/容许定期器1中断 ET0 = 1;TH0 = (65536 - time)/256;TL0 = (65536 - time)%256; EX0 = 1;/容许外部中断0IE0 = 1;/启动外部中断0PX0 = 1;EX1=1;IE1=1;EA = 1;/开总中断void int0(void) interrupt 0/外中断0 flag = 0;led_data_temp = P0;t0 = 20;if(!int0_k
24、ey) delayms(10);if(!int0_key)while(!int0_key);TH0 = (65536 - time)/256;TL0 = (65536 - time)%256;TR1 = 0; TR0 = 1;EX0 = 0;EX1 = 0;C50ms = 0;void int1(void) interrupt 2/外部中断1 t0=15; flag = 1;led_data_temp = P0;if(RED_ZHU = 0) & (GREEN_ZHI = 0)|(YELLOW_ZHI = 0)&(RED_ZHU = 0) P0 = 0xff; GREEN_ZHU = 0; R
25、ED_ZHI = 0;else /if(RED_ZHI = 0)&(GREEN_ZHU = 0)P0 = 0xff; GREEN_ZHI = 0; RED_ZHU = 0;if(!int1_key) delayms(10);if(!int1_key)while(!int1_key);TH0 = (65536 - time)/256;TL0 = (65536 - time)%256;TR1 = 0; TR0 = 1;EX0 = 0;EX1 = 0;C50ms = 0;void ISRT0(void) interrupt 1/定期器0中断服务子程序 temp1 = N,temp2 = Y,temp
26、3 = Z,temp4 = M,temp5 = G,temp6 = U;TH0 = (65536 - time)/256;TL0 = (65536 - time)%256;/重装初值timeYELLOW_ZHU=1; /如果在黄5S时进行熄灭黄灯YELLOW_ZHI=1;if(!flag)P0 = 0xf6;C50ms+;if(C50ms 19) t0-; C50ms = 0;if(t0 = 0) P0 = led_data_temp;N = temp1,Y = temp2,Z = temp3,M = temp4,G = temp5,U = temp6;TR0 = 0;/禁止定期器1中断TR1
27、 = 1;/开定期器1中EX1 = 1;/EX0 = 1;C50ms = 0;return; void ISRT1(void) interrupt 3 /定期器1中断服务子程序 TH1 = (65536 - time)/256;TL1 = (65536 - time)%256;/重装初值timeC50ms+;if(C50ms 19) N-; M-; Y-; Z-; G-; U-; C50ms = 0;/*=延时=*/void Delay10uS(uchar second)uint i;while(second-) != 0)for(i = 0;i 5;i+)void delayms(uint
28、k) uint i,j; for(i = 0;i k;i+) for(j = 0;j 120;j+);/*=数码管控制=*/uchar code discode=0xC0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/共阳数码管0-9代码 void display1(uchar num1,uchar num2) /控制南数码管显示P2=discodenum1;P21=on;Delay10uS(10);P21=off; /低位 P2=discodenum2;P20=on;Delay10uS(10);P20=off; /高位 void display2
29、(uchar num3,uchar num4) /控制东西数码管显示P2 = discodenum3;P23 = on;Delay10uS(10);P23 = off; /低位P2 = discodenum4;P22 = on;Delay10uS(10);P22 = off; /高位 /*=主函数=*/main()/*=初始状态:东西南北都红灯=*/ RED_ZHU=on; RED_ZHI=on;delayms(1000);RED_ZHU = off;RED_ZHI = off;InitialT1();while(1) / 初始化计时器 /*=状态1:东西绿灯(45s) 南北红灯(40s)=*
30、/*=状态2:东西黄灯(5s) 南北红灯(5s)=*/RED_ZHI = on;GREEN_ZHU = on;while(N != 0) if(TR0 = 1) display2(t0/10,t0%10);/ 当t0=20时东西、南北红灯(20s) display1(t0/10,t0%10);/ 当t0=15时东西、南北红、绿灯互换点亮else if(N = 5)while(Z != 0)if(TR0 = 1) display2(t0/10,t0%10);display1(t0/10,t0%10);else display1(N/10,N%10); / 东西黄灯(5s) display2(Z/
31、10,Z%10); / 南北红灯(5s) GREEN_ZHU = off; YELLOW_ZHU = on; else display1(N/10,N%10); / 东西绿灯(45s) display2(Y/10,Y%10);/ 南北红灯(40s) GREEN_ZHU = off;RED_ZHI = off;YELLOW_ZHU = off; P0 = 0xff;/数码管全关掉Delay10uS(1);/*=状态3:东西红灯(20s) 南北绿灯(25s)=*/*=状态4:东西红灯(5s) 南北黄灯(5s)=*/GREEN_ZHI = on;RED_ZHU = on;while(G != 0)
32、if(TR0 = 1) display2(t0/10,t0%10);display1(t0/10,t0%10);else if(G = 5) while(U != 0) if(TR0 = 1) display2(t0/10,t0%10);display1(t0/10,t0%10);else display2(G/10,G%10);/ 东西红灯(5s) display1(U/10,U%10);/ 南北黄灯(5s) GREEN_ZHI = off; YELLOW_ZHI = on; else display2(G/10,G%10);/ 东西红灯(25s) display1(M/10,M%10);/
33、 南北绿灯(20s) GREEN_ZHI = off;RED_ZHU = off;YELLOW_ZHI = off;P0 = 0xff;Delay10uS(1); /*=重新赋值=*/ N =50,Y = 45,Z = 50,M = 75,G = 80,U =80; 物理与电子工程系软件课程设计成绩评估表专业:电子信息工程 年级: 班级:07电本 2 班 成员: 宾华课题名称基于AT89S52单片机交通灯控制系统设计设计任务与规定 用AT89S52单片机控制一种交通信号灯系统,晶振采用12MHZ。设A车道与B车道交叉构成十字路口,A是主道,B是支道。设计规定如下:用发光二极管模仿交通信号灯,用
34、按键开关模仿车辆检测信号。正常状况下,A、B两车道轮流放行,A车道放行50s,其中5s用于警告;B车道放行30s,其中5s用于警告。交通繁忙时,交通信号灯控制系统应有手控开关,可人为地变化信号灯状态,以缓和交通拥挤状况。在B 车道放行期间,若A车道有车而B车道无车,按下开关K1 使 A车道放行15s;在 A车道放行期间,若B车道有车而A车道无车,按下开关K1 使B 车道放行15s。有紧急车辆通过时,按下K2开关使 A、B车道均为红灯,禁行20s。指引教师评语该生能在教师严格规定下顺利完毕整个课程设计工作和论文撰写。程序能对的运营,达到了所规定所有功能,界面安排合理,论文符合规定。在整个课程设计过程中,态度端正,学习也比较认真,时间安排也很合理,能基本在每个阶段完毕相应任务,做届时间上前紧后松。固然,在这其间也存在某些局限性和需要提高地方。例如,知识面不够广,解决问题和运用知识能力尚有待提高,不能积极积极和教师交流工作进程,但愿该生在后来工作学习中注意这些问题,争取更大提高和进步。 建议成绩: 指引教师: 课程设计指引小组评估 评估成绩:课程设计指引负责人: