单片机课程设计报告题目:十字路口交通灯的控制设计院(系):物理与电气工程学院专业班级:电子信息科学与技术(4)班学生姓名:高鹏王琨俞俊杰魏有晨学号:080212176080212140080212166080212180指导教师:刘娟设计时间:2014年5月26-6月6号物理与电气工程学院2014年6月6第1页共13页目录1设计任务和设计要求...............................................................................................21.1设计任务......................................................21.2设计要求......................................................22设计方案...................................................................................................................22.1思路分析......................................................22.2方案设计......................................................33系统硬件设计...........................................................................................................43.1AT89C52单片机................................................43.2单片机系统的时钟电路..........................................44系统软件设计...........................................................................................................44.1主程序设计.....................................................54.2中断程序设计...................................................65调试及性能分析.......................................................................................................65.1软件调试......................................................65.2硬件调试......................................................65.3系统功能调试..................................................76仿真............................................................................................................................7参考文献.......................................................................................................................7附录程序……………………………………………….…………………………8第2页共13页1设计任务和设计要求1.1设计任务我们利用单片机设计了简单的交通信号灯模型,该可以模拟实现交通信号灯的红绿黄灯变换,达到引导交通的效果。控制器由一条支干道和一条主干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆在绿灯到红灯的转变之间提供缓冲时间。用红、绿、黄发光二极管作信号灯。1.2设计要求1)主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时主干道亮红灯。2)干道均有车时,两者交替允许通过,主干道每次放行20秒,支干道每次放行15秒;设立20秒、15秒计时、显示电路。3)绿灯亮到红灯亮的转换过程中,要求黄灯先闪亮3秒作为过渡。4)表一红黄绿三灯转换表2设计方案2.1思路分析主干道绿灯20s黄灯3s红灯18s支干道红灯23s绿灯15s黄灯3s第3页共13页模拟交通灯控制器就是使用单片机来控制一些LED灯和数码管,模拟真实交通灯的功能。当主干道通车时绿灯亮,而支干道红灯亮;当20s通车时间到后,主干道绿灯熄灭,黄灯亮,黄灯亮3s后由主干道切换到支干道通车。此时主干道黄灯熄灭,红灯亮,而支干道红灯熄灭,绿灯亮,支干道开始通车;15s通车时间到后,支干道绿灯熄灭,黄灯亮,黄灯亮3s后由支干道切换到主干道通车。此时支干道黄灯熄灭,红灯亮;而主干道红灯熄灭,绿灯亮,如此不断循环。红、黄、绿交替闪亮,利用数码管倒计数显示间隔等,用于管理十字路口的车辆及行人交通。2.2方案设计设计以单片机为核心部件的模拟交通灯,利用8052系列单片机作为断码驱动器,8052作为位码驱动,LED九断数码管作为计时显示用,用发光二极管指示交通的通行,使两个方向都亮红灯,绿灯亮通行,红灯亮停止通行。本设计利用定时器进行定时,配合软件计数器,调用中断程序使定时器定,达到定时的目的,同时调用显示程序,显示到计时的时间,用单片机AT89C52作为核心部件,8路AT89C52总线驱动器作为字形驱动芯片和6路驱动74ls07位选码作为中心器件来设计交通灯控制器,实现了交通灯的控制,显示时间直接通过89C52的P0,P1口输出;交通灯信号通过P0,P1口输出,本交通灯系统简单,实用性强,成本低,使用维护方便,软件功能强,运行稳定可靠等优点。第4页共13页3系统硬件设计3.1AT89C52单片机显示电路采用8个共阳极数码管,P0口作为数码管的输入,P00、P01、P02、P03分别作为东西南北四路数码管的位选端。图一AT89C52单片机3.2单片机系统的时钟电路89C52单片机它是硬件电路的核心部分,时钟电路晶振使用12MHz.图二单片机系统的时钟电路4系统软件设计第5页共13页4.1主程序设计系统程序流程图如图三所示:否是否是是否是否图三系统程序流程图初始化状态1,东西绿灯亮,南北红灯亮,此时P1.0口—P1.7口的高低电平为#0BBH20s到?状态2,东西黄灯亮,南北红灯亮,此时P1.0口—P1.7口的高低电平为#0BDH3s到?状态3,东西红灯亮,南北绿灯亮,此时P1.0口—P1.7口的高低电平为#0DEH15s到?状态4,东西红灯亮,南北黄灯亮,此时P1.0口—P1.7口的高低电平为#0EEH3s到?开始第6页共13页4.2中断子程序:INTT:MOVP1,#0BEHJBP3.4,$RETI5调试及性能分析5.1硬件调试用单片机电路实验板按照设计的电路连接好设计所需的电路进行模拟,模拟成功,实现了预期设计的模拟功能。硬件调试主要是检测硬件电路是否有短路、断路、虚焊等。具体步骤及测试结果如下:检查电源与地线是否全部连接上,用万用表对照电路原理图测试各导线是否完全连接,对未连接的进行修复。参照原理图,检查各个器件之间的连接是否连接正确,是否存在虚焊,经测试,各连接不存在问题。以上两项检查并修复完后,给该硬件电路上电,电源指示灯点亮。5.2软件调试软件调试主要是利用proteus仿真软件完成电路的搭建,运行以发现设计中的错误及时改正。第7页共13页5.3系统功能调试通过软件仿真显示,系统基本能完成了在十字路口帮助控制车辆能够完全,快速的行驶。6仿真图四仿真图参考文献李全利单片机原理及接口技术北京:高等教育出版社,2008李朝青单片机原理及接口技术北京:北京航空大学出版社,2007李学海标准80C51单片机基础教程北京:北京航空大学出版社,2006张毅刚MCS-51单片机应用设计哈尔滨:哈尔滨工业大学出版社,1999第8页共13页附录程序ORG0000HLJMPMAINORG0003HLJMPINTTORG0013HLJMPINTT1ORG001BHLJMPTT1ORG0100HTT1:MOVTH1,#0D8H;定时器1,定时10usMOVTL1,#0F0HDJNZR6,EXITMOVR6,#100;定时器定时100次MOVR1,#0FFHEXIT:RETIINTT:MOVP1,#0BEH;外部中断0JBP3.4,$RETIINTT1:MOVP1,#0BBH;外部中断1JBP3.4,$RETI第9页共13页MAIN:MOVR6,#100;主程序MOVR1,#00HMOVTMOD,#10H;初始化MOVTH1,#0D8HMOVTL1,#0F0HMOVIE,#8DHMOV20H,#20MOV21H,#3MOV22H,#15MOV23H,#23MOV24H,#18SETBTR1S1:MOVP1,#0EBH;第一个状态,主干道亮绿灯、支干道亮红灯CJNER1,#0FFH,M1MOVR1,#00HDEC20HDEC23HM1:MOVR2,20HMOVR3,23HLCALLDISPMOVA,20H第10页共13页CJNEA,#00H,S1MOV20H,#20S2:MOVP1,#0EDH;第二个状态,主干道亮黄灯、支干道亮红灯CJNER1,#0FFH,M2MOVR1,#00HDEC21HDEC23HM2:MOVR2,21HMOVR3,23HLCALLDISP;调用显示子程序MOVA,21HCJNEA,#00H,S2MOV21H,#03MOV23H,#23S3:MOVP1,#0BEH;第三个状态,主干道亮红灯、支干道亮绿灯CJNER1,#0FFH,M3MOVR1,#00HDEC24HDEC22HM3:MOVR2,24HMOVR3,22HLCALLDISP;调用显示子程序第11页共13页MOVA,22HCJNEA,#00H,S3MOV22H,#15S4:MOVP1,#0DEH;第四个状态,主干道亮红灯、支干道亮黄灯CJNER1,#0FFH,M4MOVR1,#00HDEC24HDEC21HM4:MOVR2,24HMOVR3,21HLCALLDISP;调用显示子程序MOVA,21HCJNEA,#00H,S4MOV21H,#03MOV24H,#18LJMPS1;跳转到第一个状态DISP:MOVA,R2;显示子程序MOVB,#10DIVABMOV60H,AMOV61H,BMOVA,R3第12页共13页MOVB,#10DIVABMOV62H,AMOV63H,BMOV40H,#04HMOVR5,#0FEHMOVR0,#60HL1:MOVA,@R0MOVDPTR,#TABLEMOVCA,@A+DPTRMOVP0,AMOVA,R5MOVP2,ALCALLDELAY1MOVP2,#0FFH;令显示器熄灭,以免产生残影RLAMOVR5,AINCR0DJNZ40H,L1RETDELAY1:;延时子程序第13页共13页MOVR4,#12DL2:MOVR7,#12DJNZR7,$DJNZR4,DL2RETTABLE:DB0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8HDB080H,090H,088H,083H,0C6H,0A1H,086H,08EHEND