单片机交通灯课程设计_第1页
单片机交通灯课程设计_第2页
单片机交通灯课程设计_第3页
单片机交通灯课程设计_第4页
单片机交通灯课程设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

分院信息科学与工程学院专业自动化学生姓名学号1003010524设计题目基于单片机的交通控制的设计设计目的:通过设计了解一个十字路口交通灯基本工作原理;掌握89C52计算器/定时器的工作方式和74LS573驱动芯片的工作原理;掌握keil软件的使用;学会teamwork团队合作。设计内容:设计一个模拟十字路口交通灯控制器,程序运行后,初始状态时东南西北方向红灯全亮5秒,接着程序开始循环以下的程序:先东西绿灯和南北红灯亮15秒;然后南北红灯亮和东西黄灯闪5秒;接着南北绿灯和东西红灯亮15秒;最后东西红灯亮和南北黄灯闪5秒。总体设计:本设计采用单片机89C52作为控制器,通行时间及等待时间使用数码管以倒计时的方式显示,单片机P1口控制交通灯(红黄绿三色LCD)的替换。指导教师(签字):年月日分院院长(签字):年月日第三章系统硬件设计-1-表3TMOD格式D7D6D5D4D3D2D1D0CATEC/TM1M0CATEC/TM1M0其中,低四位用于决定T0的工作方式,高四位用于决定T1的工作方式,M1和M0工作方式控制位用以确定4种工作方式,如下表4所示:表4M1和M0控制4种工作方式M1M0工作方式说明00方式013位计数器01方式116位计数器10方式2自动装载8位计数器11方式3定时器0:分为两个8位计数器定时器1:对外部停止计数采用T0方式1,定时1S,系统时钟为6MHZ,所以时钟周期=(12*1/6)us=2us;采用每隔100ms中断一次,中断10次为1S,使时间的计数值减1,实现了倒计时的功能。计算计数初值X:(216-X)*2us=1s,所以X=15536=3CB0H,因此TH0=3CH,TL0=B0H。状态灯显示的理论分析南北通行,东西禁止时利用定时器中断倒计时15S;东西通行,南北禁止时利用定时器中断倒计时15S。中断理论分析MCS-51中断系统有5个中断源,分别是外部中断0、外部中断1、定时器/计数器T0溢出中断、定时器/计数器T1溢出中断、串行口中断请求。MCS-51的CPU对中断源的开放和屏蔽,是由片内的中断允许寄存器IE控制。中断允许控制寄存器IE的格式,如表5所示。位地址AFAEADACABAAA9A8位符号EA//ESET1EX1ET0EX0EA—中断允许总控制位,EA=0,中断总禁止,禁止所有中断。EA=1,中断总允许,总允许位打开后,各中断的允许或禁止由各中断允许控制位设置决定。EX0(EX1)—外部中断允许控制位,EX0(EX1)=0,禁止外部中断。EX0(EX1)=1,允许外部中断。ET0(ET1)—定时/计数中断允许控制位,ET0(ET1)=0,禁止定时/计数中断。ET0(ET1)=1,允许定时/计数中断。ES—串行中断允许控制位,ES=0,禁止串行中断。ES=1,允许串行中断。利用MCS-51内部的中断进行,采用外部中断0,跳沿触发方式;外部中断0的中断入口地址为0003H。2.三极管的工作原理三极管是电流放大器件,有三个极,分别叫做集电极C,基极B,发射极E。分成NPN和PNP两种。我们仅以NPN三极管的共发射极放大电路为例来说明一下三极管放大电路的基本原理。

如上图所示,我们把从基极B流至发射极E的电流叫做基极电流Ib;把从集电极C流至发射极E的电流叫做集电极电流Ic。这两个电流的方向都是流出发射极的,所以发射极E上就用了一个箭头来表示电流的方向。三极管的放大作用就是:集电极电流受基极电流的控制(假设电源能够提供给集电极足够大的电流的话),并且基极电流很小的变化,会引起集电极电流很大的变化,且变化满足一定的比例关系:集电极电流的变化量是基极电流变化量的β倍,即电流变化被放大了β倍,所以我们把β叫做三极管的放大倍数(β一般远大于1,例如几十,几百)。如果我们将一个变化的小信号加到基极跟发射极之间,这就会引起基极电流Ib的变化,Ib的变化被放大后,导致了Ic很大的变化。如果集电极电流Ic是流过一个电阻R的,那么根据电压计算公式U=R*I可以算得,这电阻上电压就会发生很大的变化。我们将这个电阻上的电压取出来,就得到了放大后的电压信号了。

3.二联共阳数码管原理①静态显示静态显示是当显示器显示某个字符时,相应的段恒定地导通或截止,指导显示另一个字符为止当采用静态显示方式时,各段公共端接地(共阴极)或接电源(共阳极),段选线与一个8位锁存器的输出口相连,显示器的各位相互独立静态方式显示器亮度较高,编程容易,但占用的IO口线资源较多,日常生活中比较少用。②动态显示数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

4.74LS573驱动芯片原理说明:LS573的八个锁存器都是透明的D型锁存器,当使能(G)为高时,Q输出将随数据(D)输入而变。当使能为低时,输出将锁存在已建立的数据电平上。输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。特别适用于缓冲寄存器,I/O通道,双向总线驱动器和工作寄存器五、电路图及仿真设计设计完成原理图如下在电路连接完成后,将写好的程序放入单片机,运行。单片机交通灯控制原理图交通灯实物图实物图六、源程序#include<reg51.h> #defineucharunsignedchar#defineuintunsignedintsbitred_dongxi=P1^0;//P1.0东西红灯sbityellow_dongxi=P1^1;//P1.1东西黄灯sbitgreen_dongxi=P1^2;//P1.2东西绿灯sbitred_nanbei=P1^3;//P1.3南北红灯sbityellow_nanbei=P1^4;//P1.4南北黄灯sbitgreen_nanbei=P1^5;//P1.5南北绿灯sbitnbweixuan1=P2^4;//P2.4南北数码管位选1sbitnbweixuan2=P2^5;//P2.5南北数码管位选2sbitdxweixuan1=P2^6;//P2.6东西数码管位选1sbitdxweixuan2=P2^7;//P2.7东西数码管位选2uintaa,shi1,shi2,ge1,ge2;//定义无符号整型变量uintcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};voiddelay(uintz);//延时函数声明voiddisplay(uintshi1,uintge1,uintshi2,uintge2);//数码管显示函数声明voidinit1();//状态函数1声明voidinit2()//状态函数2声明voidinit3();//状态函数3声明voidinit4();//状态函数4声明voidinit5();//状态函数5声明voidmain()//主函数{P0=0xFF;//P0口初始化P1=0xFF;//P1口初始化P3=0xFF;//P3口初始化EA=1;//打开中断ET0=1;TR0=0;init1();while(1){init2();init3();init4();init5();}}voidinit1()//状态函数1{uinttemp;temp=5;TMOD=0x01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;ET0=1;TR0=1;while(1){red_dongxi=0;red_nanbei=0;green_dongxi=1;green_nanbei=1;yellow_nanbei=1;yellow_dongxi=1;if(aa==20){aa=0;temp--;}shi1=shi2=temp/10;ge1=ge2=temp%10;if(temp==0)break;display(shi1,ge1,shi2,ge2);}}voidinit2()//状态函数2{uinttemp;temp=10;TMOD=0x01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;ET0=1;TR0=1;while(1){red_dongxi=1;red_nanbei=0;green_dongxi=0;green_nanbei=1;yellow_nanbei=1;yellow_dongxi=1;if(aa==20){aa=0;temp--;shi1=(temp+5)/10;ge1=(temp+5)%10;shi2=temp/10;ge2=temp%10;}if(temp==0)break;display(shi1,ge1,shi2,ge2);}}voidinit3()//状态函数3{uinttemp;temp=5;TMOD=0x01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;ET0=1;TR0=1;while(1){red_nanbei=0;green_dongxi=1;if(aa==20){aa=0;temp--;yellow_dongxi=~yellow_dongxi;shi1=temp/10;shi2=shi1;ge1=temp%10;ge2=ge1;}if(temp==0)break;display(shi1,ge1,shi2,ge2);}}voidinit4()//状态函数4{uinttemp;temp=10;TMOD=0x01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;ET0=1;TR0=1;while(1){red_dongxi=0;red_nanbei=1;yellow_dongxi=1;green_nanbei=0;if(aa==20){aa=0;temp--;shi1=temp/10; ge1=temp%10;shi2=(temp+5)/10;ge2=(temp+5)%10;}if(temp==0)break;display(shi1,ge1,shi2,ge2);}}voidinit5()//状态函数5{uinttemp;temp=5;TMOD=0x01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;ET0=1;TR0=1;while(1){red_nanbei=1;red_dongxi=0;green_dongxi=1;green_nanbei=1;if(aa==20){aa=0;temp--;yellow_nanbei=~yellow_nanbei;shi1=temp/10;shi2=shi1;ge1=temp%10;ge2=ge1;}if(temp==0)break;display(shi1,ge1,shi2,ge2);}}voiddisplay(uintshi1,uintge1,uintshi2,uintge2)//数码管显示{dxweixuan1=1;dxweixuan2=0;nbweixuan1=0;nbweixuan2=0;P0=table[ge1];delay(5);dxweixuan1=0;dxweixuan2=1;nbweixuan1=0;nbweixuan2=0;P0=table[shi1];delay(5);dxweixuan1=0;dxweixuan2=0;nbweixuan1=1;nbweixuan2=0;P0=table[ge2];delay(5);dxweixuan1=0;dxweixuan2=0;nbweixuan1=0;nbweixuan2=1;P0=table[shi2];delay(5);}voidxtimer0()interrupt1//中断函数{TH0=(65535-50000)/256;TL0=(65535-50000)%256;aa++;}voiddelay(uintz)//延时函数{uintx,y;for(x=0;x<z;x++)for(y=0;y<110;y++);}七.设计体会与建议

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论