基于单片机的交通灯设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

郑州航空工业管理学院单片机课程设计说明书2014级专业班级题目学号姓名指导教师二О一六年十二月十五日一、交通灯的基本原理单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。近年来随着科技的飞速发展,单片机的应用正在不断地走向深入。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。交通灯是城市交通的重要指挥系统,与人们的日常生活密切相关。随着经济的快速发展,城市中的车辆逐渐增多,交通拥堵和堵塞现象日趋严重,引起交通事故频发等一系列问题,因此设计一个灵活、稳定、便捷的多功能交通灯控制系统具有必要性和现实性。本次设计的意义在于通过对具体的控制系统的设计,掌握微机控制系统设计的一般方法和处理问题的思路,特别是一些常用的技术手段。在实践设计过程中,积累设计经验,开拓思维空间,全面提高个人的综合能力。本系统由单片机硬/软件系统,8位8段数码管和LED灯显示系统。和电路控制电路等组成,较好的模拟了交通路面的控制。倒计时电路主要是由双位共阴数码管和74HC573N驱动模块组成,控制信号通过单片机的端口P1口进行信号的传输。倒计时电路负责的是显示红绿灯持续显示的时间。当绿灯或者红灯持续显示时,数码管显示该状态的持续时间,在黄灯闪烁显示时,起到倒计时秒数的作用。红绿灯功能电路主要是由各色的发光二极管和74HC573N驱动模块组成,控制信号跟数码管一样都是通过P1口进行传输。红绿灯电路负责的是各个车行道和人行道通行状态的显示。系统经初始化可以开始自动运行,数码管有倒计时显示功能,即1、具有直行、左转、右转、停止四个指示灯;2、指示灯有倒计时显示功能,直行+右转20秒,左转+右转10秒,停止+右转30秒,按此规律不断循环;3、直行和左转灯灭掉前3秒能够闪烁提示(每秒两次);4、能够调整直行、左转、停止指示灯的时间。二、交通灯的硬件设计本设计单片机主要是用于控制交通灯的演示系统,故只需要单片机最小系统即可完成。此电路由单片机、时钟电路、电源、复位电路4个组成部分组成。下图分别为单片机原理图、交通灯系统电路图。图1单片机系统原理图图2交通灯系统原理图2.1复位电路复位方式有多种,本设计采用按键复位。接线图如图3复位电路,在复位期间(即RST为高电平期间),P0口为高组态,P1-P3口输出高电平;外部程序存储器读选通信号PSEN无效。地址锁存信号ALE也为高电平。在设定的定时时间内必须在RST引脚产生一个由高到低的电平变化,以清内部定时器.图3复位电路图2.2晶振电路选取原则:传统做法,但能够实现所需,即最简单也最是实用。电容选取30pF,晶振为12MHz。图4晶振电路图2.3电源供电电路供电电路由主电源和备用电源组成。主电源主要是由变压器、6A整流桥、4个二极管,2个104pf电容,二个电解电容以及7805三端稳压管组成。这个部分为系统提供主要的供电,输出电压为5V直流。备用电源主要是由4位的5号电池盒组成。这个部分在主电源断电时能够几乎瞬时的为系统提供电源,输出电压也是5V直流。该电源直接接到单片机的电源端。图5主电源和备用电源切换功能电路2.4原件清单三、交通灯的软件设计3.1交通灯程序#includereg51.h#includeintrins.h#defineucharunsignedchar#defineuintunsignedintunsignedcharcodeTab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff,0xce};sbitup=P3^1;sbitdown=P3^2;sbitset=P3^3;sbitS8=P2^0;sbitS7=P2^1;sbitS6=P2^2;sbitS5=P2^3;原件名称数量焊接位置电源部分USB座1USBUSB线1双排针(2)1CONN1跳帽2104电容0.1uF7C2,5,6,7,8,9,11LED灯1D1电阻2K1R2最小系统部分40针座1U1STC89C521晶振12MHz1Y1电容20pF2C3,C4复位键1SW_RST电阻10K1R1蜂鸣器1LS1+三极管90159Q1~Q9电阻3301R3键盘显示、通信部分16针座1U2MAX2321单排针(5)1UART按键16KEY1~KEY16单排针(3)1SWITCH1跳帽14位LED2DIGILED1,2电阻4.7K8R14~R21电阻3308R6~R13sbitS4=P2^4;sbitS3=P2^5;sbitS2=P2^6;sbitS1=P2^7;ucharfenduan1=20,fenduan2=10,fenduan3=3;uchartimes=0;ucharsecond=0;ucharbsecond=0;ucharsss=0;uchardisData[8]={7,12,1,10,11,11,6,7};voidkeydisplay();voiddisplay();voidDelay(){unsignedchari;for(i=0;i255;i++);}voidISR_Timer0(void)interrupt1{TH0=0x3c;TL0=0xb0;times++;if(times==10){bsecond++;times=0;}}voiddisplay(uchar*point){P0=Tab[*(point)];S1=0;//开S1显示Delay();S1=1;//关S1显示P0=Tab[*(point+1)];S2=0;//开S2显示Delay();S2=1;//关S2显示P0=Tab[*(point+2)];S3=0;//开S3显示Delay();S3=1;//关S3显示P0=Tab[*(point+3)];S4=0;//开S4显示Delay();S4=1;//关S4显示P0=Tab[*(point+4)];S5=0;//开S1显示Delay();S5=1;//关S1显示P0=Tab[*(point+5)];S6=0;//开S2显示Delay();S6=1;//关S2显示P0=Tab[*(point+6)];S7=0;//开S3显示Delay();S7=1;//关S3显示P0=Tab[*(point+7)];S8=0;//开S4显示Delay();S8=1;//关S4显示}voiddelayAJ(uchara){uchari;while(a--){for(i=0;i125;i++);{display(disData);}}}voidkey(){if(set==0){delayAJ(10);//消抖//消抖时间可根据实际情况设定if(set==0){sss++;delayAJ(10);}while(!set){delayAJ(10);}}if(sss%4==1){if(up==0){delayAJ(10);if(up==0){fenduan1++;if(fenduan1==100)fenduan1=0;{while(!up)delayAJ(10);}}}if(down==0){delayAJ(10);if(down==0){fenduan1--;if(fenduan1==-1)fenduan1=99;}while(!down)delayAJ(10);}}if(sss%4==2){if(up==0){delayAJ(10);if(up==0){fenduan2++;if(fenduan2==100)fenduan2=0;{while(!up)delayAJ(10);}}}if(down==0){delayAJ(10);if(down==0){fenduan2--;if(fenduan2==-1)fenduan2=99;}while(!down)delayAJ(10);}}if(sss%4==3){if(up==0){delayAJ(10);if(up==0){fenduan3++;if(fenduan3==100)fenduan3=0;{while(!up)delayAJ(10);}}}if(down==0){delayAJ(10);if(down==0){fenduan3--;if(fenduan3==-1)fenduan3=99;}while(!down)delayAJ(10);}}}voidkeydisplay(){bsecond=0;if(sss%4==1){disData[0]=11;disData[2]=1;disData[3]=11;disData[6]=fenduan1/10;disData[7]=fenduan1%10;}if(sss%4==2){disData[0]=7;disData[2]=11;disData[3]=11;disData[6]=fenduan2/10;disData[7]=fenduan2%10;}if(sss%4==3){disData[0]=11;disData[2]=11;disData[3]=10;disData[6]=fenduan3/10;disData[7]=fenduan3%10;}}voidxianshi(){second=bsecond/2;if(secondfenduan1+fenduan2+fenduan3+1)bsecond=0;if(second=fenduan1){disData[0]=11;disData[1]=12;disData[2]=1;disData[3]=11;disData[6]=(fenduan1-second)/10;disData[7]=(fenduan1-second)%10;if((fenduan1-second=3)&&(bsecond%2==0)){disData[0]=11;disData[1]=11;disData[2]=11;disData[3]=11;}}elseif((secondfenduan1)&&(second=fenduan2+fenduan1)){disData[0]=7;disData[1]=12;disData[2]=11;disData[3]=11;disData[6]=(fenduan1+fenduan2-second+1)/10;disData[7]=(fenduan1+fenduan2-second+1)%10;if((fenduan1+fenduan2-second+1=3)&&(bsecond%2==0)){disData[0]=11;disData[1]=11;disData[2]=11;disData[3]=11;}}elseif((secondfenduan2+fenduan1)&&(second=fenduan2+fenduan1+fenduan3)){disData[0]=11;disData[1]=12;disData[2]=11;disData[3]=10;disData[6]=(fenduan1+fenduan2+fenduan3-second+1)/10;disData[7]=(fenduan1+fenduan2+fenduan3-second+1)%10;if((fenduan1+fenduan2+fenduan3-second+1=3)&&(bsecond%2==0)){disData[0]=11;disData[1]=11;disData[2]=11;disData[3]=11;}}if(secondfenduan1+fenduan2+fenduan3+1)bsecond=0;}voidmain

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功