• 198.76 KB
  • 2022-04-22 13:37:10 发布

基于交通灯的设计毕业论文.doc

  • 26页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'基于交通灯的设计毕业论文目录第一章设计方案选择……………………………………………………..51.1设计要求………………………………………………….51.2方案的选择…………………………………….................5第二章:硬件电路的原理与分析………………………………..........62.1电源电路………………………………………………….62.2单片机最小系统…………………………………..72.3ULN2803驱动电路…………………………………….82.4LED板接口电路………………………………………….82.5PCB驱动板………………………………………………92.6显示电路图……………………………………………….92.7PCB显示板………………………………………………....10第三章软件设计与分析…………………………………………..113.1流程图设计…………………………………………...............123.2软件编程设计………………………………………………...12第四章调试……………………………………………………………...28第五章总结……………………………………………………………...29第六章参考文献……………………………………………………….3026 第一章:设计方案的选择1.1设计要求1.设计一个十字路口的交通灯控制电路,要求主车道和干道两条交叉路上的车辆交替运行,每次通行时间都设为主道通行25S,次道通行20S;2.要求黄灯先亮5S,才能变换运行车道;3.黄灯亮时,要求每秒钟闪亮一次;4.倒数秒数显示;5.声音提示;6.当有特殊情况需要通行时,可对红绿灯进行认为控制。1.2方案的选择方案一:方案二:对比:26 第二章:硬件电路的原理与分析硬件电路的构成:显示电路时钟部分驱动电路电源部分单片机2.1电源电路26 R2612D1VCC12P5VCC:R26D1构成电源的指示,R26起限流作用,根据公式R=U/I得R26的阻值为100R-500R.P5为插针起电源接口作用2.2单片机最小系统C1C2与Y1构成单片机提供工作的时钟信号,R9电解电容C326 S1构成单片机的复位系统,R1-R9使起P0实现I/O功能。40脚为单片机提供工作电压端,20脚为单片机接地保护端。2.3ULN2803驱动电路ULN2803用来驱动8位数码管及8组1×6LED灯的阴极,其中U2为数码管的驱动芯片,U3为LED灯的阴极驱动芯片;8个三极管Q1~Q8组成的共集电极电路用来驱动8位数码管的段及LED灯的阳极,R10~R25起限流作用。2.4LED板接口电路P1~P4为12pin插排起到驱动板与显示板连接作用。26 2.5PCB驱动板此图为交通灯pcb驱动设计图,设定规则如下:信号线宽为0.8mm,电源和地线宽为1mm.焊盘孔径为1mm,焊盘外围孔径为2mm。过孔没做要求。2.6显示电路图LED板包含两位数码管U1、12个LED灯D1~D12和一个2×6的接口J1。其中12个LED灯构成2×6的连接方式,D1~D6的阴极连接到一个公共段G9上,D7~D12的阴极连接到一个公共段G926 上。当G9为低电平、a为高电平的时候就可以点亮D1;同样,如果要点亮D10,只要使G10为低电平、d为高电平即可。使用时可以直接通过P1口与驱动板连接。2.7PCB显示板此图为交通灯pcb显示设计图,设定规则如下:信号线宽为0.8mm,焊盘孔径为1mm,焊盘外围孔径为2mm。过孔没做要求。26 第三章软件设计与分析3.1流程图设计程序流程图如图所示:Y开始初始化南北红灯亮东西绿灯亮绿灯时间=0?显示信号灯持续时间NY南北红灯亮东西黄灯亮黄灯时间=0?显示信号灯持续时间NY南北绿灯亮东西红灯亮绿灯时间=0?显示信号灯持续时间NY南北黄灯亮东西红灯亮黄灯时间=0?显示信号灯持续时间N26 (此图为简易交通灯流程图,仅供参考)3.2软件编程设计根据原理图和老师给的资料,软件编程设计如下所#include#defineucharunsignedchar#defineuintunsignedintucharcodetaba[]={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE,0xF6};//数码管的段码。ucharcodetabb[]={0x09,0x0c,0x24,0x21,0x09,0x09,0x09,0x0c,//状态一0x09,0x0a,0x12,0x11,0x12,0x0a,0x09,0x0a,//状态二0x09,0x0c,0x09,0x0c,0x24,0x21,0x09,0x09,//状态三0x09,0x0a,0x09,0x0a,0x12,0x11,0x12,0x0a,//状态四0x09,0x09,0x09,0x0c,0x09,0x0c,0x24,0x21,//状态五0x12,0x0a,0x09,0x0a,0x09,0x0a,0x12,0x11,//状态六0x24,0x21,0x09,0x09,0x09,0x0c,0x09,0x0c,//状态七0x12,0x11,0x12,0x0a,0x09,0x0a,0x09,0x0a//状态八};//led灯的段码。sbitG1=P3^0;sbitG2=P3^1;sbitG3=P3^2;sbitG4=P3^3;sbitG5=P3^4;sbitG6=P3^5;sbitG7=P3^6;sbitG8=P3^7;//LED灯的位控;sbitG9=P0^7;sbitG10=P0^6;sbitG11=P0^5;sbitG12=P0^4;sbitG13=P0^3;sbitG14=P0^2;sbitG15=P0^1;sbitG16=P0^0;//数码管的位控;ucharsecond1,second2,second3,second4;uchartcount;ucharsecond1_h,second1_l,second2_h,second2_l,second3_h,second3_l,second4_h,second4_l;uchara;//定义一个全局变量a,显示数码管的数字。ucharoperation_type=1;//定义显示的状态;26 voiddelay(uintcount){uchari,j;for(i=0;i0;j--);}voidinit()//初始化{P3=0X00;P1=0X00;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;//定义50ms的计数。TR0=1;ET0=1;EA=1;second1=0;second2=0;second3=0;second4=0;tcount=0;a=74;}voidt0()interrupt1using2{tcount++;if(tcount==5){tcount=0;a--;}}voiddispcomp(){switch(operation_type){case1:G9=1;P2=taba[a/10];//北面数码管74delay(4);G9=0;26 G10=1;P2=taba[a%10];delay(4);G10=0;G11=1;P2=taba[(a-50)/10];//西面数码管24delay(4);G11=0;G12=1;P2=taba[(a-50)%10];delay(4);G12=0;G13=1;P2=taba[(a-50)/10];//南面数码管24delay(4);G13=0;G14=1;P2=taba[(a-50)%10];delay(4);G14=0;G15=1;P2=taba[(a-25)/10];//东面数码管49delay(4);G15=0;G16=1;P2=taba[(a-25)%10];delay(4);G16=0;G1=1;//北面led灯;P2=tabb[0];delay(4);G1=0;G2=1;P2=tabb[1];delay(4);G2=0;G3=1;//西面led灯;P2=tabb[2];delay(4);G3=0;G4=1;P2=tabb[3];26 delay(4);G4=0;G5=1;//南面led灯;P2=tabb[4];delay(4);G5=0;G6=1;P2=tabb[5];delay(4);G6=0;G7=1;//东面led灯;P2=tabb[6];delay(4);G7=0;G8=1;P2=tabb[7];delay(4);G8=0;if(a==53){operation_type=2;}break;case2:G9=1;P2=taba[a/10];//北面数码管53delay(4);G9=0;G10=1;P2=taba[a%10];delay(4);G10=0;G11=1;P2=taba[(a-50)/10];//西面数码管03delay(4);G11=0;G12=1;P2=taba[(a-50)%10];delay(4);G12=0;G13=1;P2=taba[(a-50)/10];//南面数码管03delay(4);G13=0;26 G14=1;P2=taba[(a-50)%10];delay(4);G14=0;G15=1;P2=taba[(a-25)/10];//东面数码管28delay(4);G15=0;G16=1;P2=taba[(a-25)%10];delay(4);G16=0;G1=1;//北面led灯;P2=tabb[8];delay(4);G1=0;G2=1;P2=tabb[9];delay(4);G2=0;G3=1;//西面led灯;P2=tabb[10];delay(4);G3=0;G4=1;P2=tabb[11];delay(4);G4=0;G5=1;//南面led灯;P2=tabb[12];delay(4);G5=0;G6=1;P2=tabb[13];delay(4);G6=0;G7=1;//东面led灯;P2=tabb[14];delay(4);G7=0;G8=1;P2=tabb[15];delay(4);26 G8=0;if(a==49){operation_type=3;}break;case3:G9=1;P2=taba[a/10];//北面数码管49delay(4);G9=0;G10=1;P2=taba[a%10];delay(4);G10=0;G11=1;P2=taba[(a+25)/10];//西面数码管74delay(4);G11=0;G12=1;P2=taba[(a+25)%10];delay(4);G12=0;G13=1;P2=taba[(a-25)/10];//南面数码管24delay(4);G13=0;G14=1;P2=taba[(a-25)%10];delay(4);G14=0;G15=1;P2=taba[(a-25)/10];//东面数码管24delay(4);G15=0;G16=1;P2=taba[(a-25)%10];delay(4);G16=0;G1=1;//北面led灯;P2=tabb[16];delay(4);G1=0;G2=1;26 P2=tabb[17];delay(4);G2=0;G3=1;//西面led灯;P2=tabb[18];delay(4);G3=0;G4=1;P2=tabb[19];delay(4);G4=0;G5=1;//南面led灯;P2=tabb[20];delay(4);G5=0;G6=1;P2=tabb[21];delay(4);G6=0;G7=1;//东面led灯;P2=tabb[22];delay(4);G7=0;G8=1;P2=tabb[23];delay(4);G8=0;if(a==27){operation_type=4;}break;case4:G9=1;P2=taba[a/10];//北面数码管27delay(4);G9=0;G10=1;P2=taba[(a-1)%10];delay(4);G10=0;G11=1;P2=taba[(a+25)/10];//西面数码管52delay(4);26 G11=0;G12=1;P2=taba[(a+25)%10];delay(4);G12=0;G13=1;P2=taba[(a-25)/10];//南面数码管02delay(4);G13=0;G14=1;P2=taba[(a-25)%10];delay(4);G14=0;G15=1;P2=taba[(a-25)/10];//东面数码管02delay(4);G15=0;G16=1;P2=taba[(a-25)%10];delay(4);G16=0;G1=1;//北面led灯;P2=tabb[24];delay(4);G1=0;G2=1;P2=tabb[25];delay(4);G2=0;G3=1;//西面led灯;P2=tabb[26];delay(4);G3=0;G4=1;P2=tabb[27];delay(4);G4=0;G5=1;//南面led灯;P2=tabb[28];delay(4);G5=0;G6=1;P2=tabb[29];delay(4);26 G6=0;G7=1;//东面led灯;P2=tabb[30];delay(4);G7=0;G8=1;P2=tabb[31];delay(4);G8=0;if(a==24){operation_type=5;}break;case5:G9=1;P2=taba[a/10];//北面数码管24delay(4);G9=0;G10=1;P2=taba[a%10];delay(4);G10=0;G11=1;P2=taba[(a+25)/10];//西面数码管49delay(4);G11=0;G12=1;P2=taba[(a+25)%10];delay(4);G12=0;G13=1;P2=taba[(a+50)/10];//南面数码管74delay(4);G13=0;G14=1;P2=taba[(a+50)%10];delay(4);G14=0;G15=1;P2=taba[a/10];//东面数码管24delay(4);G15=0;G16=1;26 P2=taba[a%10];delay(4);G16=0;G1=1;//北面led灯;P2=tabb[32];delay(4);G1=0;G2=1;P2=tabb[33];delay(4);G2=0;G3=1;//西面led灯;P2=tabb[34];delay(4);G3=0;G4=1;P2=tabb[35];delay(4);G4=0;G5=1;//南面led灯;P2=tabb[36];delay(4);G5=0;G6=1;P2=tabb[37];delay(4);G6=0;G7=1;//东面led灯;P2=tabb[38];delay(4);G7=0;G8=1;P2=tabb[39];delay(4);G8=0;if(a==2){operation_type=6;}break;case6:G9=1;P2=taba[a/10];//北面数码管02delay(4);26 G9=0;G10=1;P2=taba[a%10];delay(4);G10=0;G11=1;P2=taba[(a+25)/10];//西面数码管27delay(4);G11=0;G12=1;P2=taba[(a+25)%10];delay(4);G12=0;G13=1;P2=taba[(a+50)/10];//南面数码管52delay(4);G13=0;G14=1;P2=taba[(a+50)%10];delay(4);G14=0;G15=1;P2=taba[a/10];//东面数码管02delay(4);G15=0;G16=1;P2=taba[a%10];delay(4);G16=0;G1=1;//北面led灯;P2=tabb[40];delay(4);G1=0;G2=1;P2=tabb[41];delay(4);G2=0;G3=1;//西面led灯;P2=tabb[42];delay(4);G3=0;G4=1;P2=tabb[43];delay(4);26 G4=0;G5=1;//南面led灯;P2=tabb[44];delay(4);G5=0;G6=1;P2=tabb[45];delay(4);G6=0;G7=1;//东面led灯;P2=tabb[46];delay(4);G7=0;G8=1;P2=tabb[47];delay(4);G8=0;if(a==0){operation_type=7;a=74;}break;case7:G9=1;P2=taba[(a-50)/10];//北面数码管24delay(4);G9=0;G10=1;P2=taba[(a-50)%10];delay(4);G10=0;G11=1;P2=taba[(a-50)/10];//西面数码管24delay(4);G11=0;G12=1;P2=taba[(a-50)%10];delay(4);G12=0;G13=1;P2=taba[(a-25)/10];//南面数码管49delay(4);G13=0;26 G14=1;P2=taba[(a-25)%10];delay(4);G14=0;G15=1;P2=taba[a/10];//东面数码管74delay(4);G15=0;G16=1;P2=taba[a%10];delay(4);G16=0;G1=1;//北面led灯;P2=tabb[48];delay(4);G1=0;G2=1;P2=tabb[49];delay(4);G2=0;G3=1;//西面led灯;P2=tabb[50];delay(4);G3=0;G4=1;P2=tabb[51];delay(4);G4=0;G5=1;//南面led灯;P2=tabb[52];delay(4);G5=0;G6=1;P2=tabb[53];delay(4);G6=0;G7=1;//东面led灯;P2=tabb[54];delay(4);G7=0;G8=1;P2=tabb[55];delay(4);G8=0;26 if(a==52){operation_type=8;}break;case8:G9=1;P2=taba[(a-50)/10];//北面数码管02delay(4);G9=0;G10=1;P2=taba[(a-50)%10];delay(4);G10=0;G11=1;P2=taba[(a-50)/10];//西面数码管02delay(4);G11=0;G12=1;P2=taba[(a-50)%10];delay(4);G12=0;G13=1;P2=taba[(a-25)/10];//南面数码管27delay(4);G13=0;G14=1;P2=taba[(a-25)%10];delay(4);G14=0;G15=1;P2=taba[a/10];//东面数码管52delay(4);G15=0;G16=1;P2=taba[a%10];delay(4);G16=0;G1=1;//北面led灯;P2=tabb[56];delay(4);G1=0;G2=1;P2=tabb[57];26 delay(4);G2=0;G3=1;//西面led灯;P2=tabb[58];delay(4);G3=0;G4=1;P2=tabb[59];delay(4);G4=0;G5=1;//南面led灯;P2=tabb[60];delay(4);G5=0;G6=1;P2=tabb[61];delay(4);G6=0;G7=1;//东面led灯;P2=tabb[62];delay(4);G7=0;G8=1;P2=tabb[63];delay(4);G8=0;if(a==49){operation_type=1;a=74;}break;}}voidmain(){init();while(1){dispcomp();}}26 第四章调试26 第五章总结在学习单片机理论课时候感觉到内容很多,知识点很杂,很繁琐。在老师的讲解下,在通过自己的努力下也更近一步了解了单片机的内部构造和工作原理,以及接外部电路的具体情况。当然,光有理论知识那只是“纸上谈兵”,还需要实际动手去实践。真正把所学的知识用到日常生活中,理论联系实践,做出实物模型。在这次毕业设计实践中,我选的是基于单片机的交通灯控制系统设计,通过这次设计我感觉到想要做成功一件事,必须花时间去准备,查阅大量资料,认真分析每一部每一个模块要实现的功能,然后分步进行,最后整合为一体。通过这次的毕业设计实践,让我明白,要面对所做的事情有耐心,有信心,多动手多操作。在这次的过程中,经历了多次失败的洗礼,让我明白在以后的学习和工作中,我要努力掌握知识,多动手,多思考,以免在以后的工作中犯同样的错误26 第六章参考文献26'