下载此文档

单片机交通灯课程设计.pdf


文档分类:高等教育 | 页数:约24页 举报非法文档有奖
1/24
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/24 下载此文档
文档列表 文档介绍
该【单片机交通灯课程设计 】是由【青山代下】上传分享,文档一共【24】页,该文档可以免费在线阅读,需要了解更多关于【单片机交通灯课程设计 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..设计题目设计目的:;;。设计内容:设计一个模拟十字路通灯控制器,程序运行后,初始状态时东南西北方向红灯全亮5秒,接着程序开始循环以下的程序:先东西绿灯和南北红灯亮15秒;然后南北红灯亮和东西黄灯闪5秒;接着南北绿灯和东西红灯亮15秒;最后东西红灯亮和南北黄灯闪5秒。总体设计::..89C52作为控制器,通行时间及等待时间使用数码管以倒计时的方式显示,单片机P1口控制交通灯(红黄绿三色LCD)的替换。年月日XXX院长(签字):年月日摘要近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多,在研究了单片机的有关知识之后,运用相关知识来设计完成交通信号灯。我对单片机很感兴趣,所以在听了老师给我们讲解单片机相关知识以后,我自己课后查找资料,不断研究单片机方面的知识。:..做了一个基于单片机的模拟交通灯控制的设计。单片机课程设计目次单片机课程设计单片机交通灯设计一、设计目的一)通过设计了解一个十字路通灯基本工作原理二)把握89C52计数器/定时器的事情方式和74LS573驱动芯片的事情原理;(三)把握keil软件的使用四)学会teamwork团队合作2、设计内容设计一个模拟十字路通灯控制器,步伐运行后,初始状况时东南西北方向红灯全亮5秒,接着步伐开始循环以下的步伐:先东西绿灯和南北红灯亮15秒;然后南北红灯亮和东西黄灯闪5秒;接着南北绿灯和东西红灯亮15秒;最后东西红灯亮和南北黄灯闪5秒。三、总体设计:..89C52作为控制器,通行工夫及等待工夫使用数码管以倒计时的方式表现,使用单片机P1口控制交通灯(红黄绿三色LCD)的交换。-,—,—,个顶用四个NPN三极管放大数码管位选的电流,用驱动芯片74LS573驱动数码管的段选。-51内部的定时器/计数器进行,配合软件延时实现倒计时。在工作之前必须通过软件设定它的工作方式,即对寄存器TMOD中每位进行设定,格式如表3所示。2-:..的事情方式,高四位用于决意T1的事情方式,M1和M0事情方式控制位用以确定4种事情方式,以下表4所示:,东西禁止时利用定时器中断倒计时15S;东西通行,南北禁止时利用定时器中断倒计时15S。中断理论分析MCS-51中断系统有5个中断源,分别是外部中断、外部中断1、定时器/计数器T0溢出中断、定时器/计数器T1溢出中断、串行口中断请求。MCS-51的CPU对中断源的开放和屏蔽,是由片内的中断允许寄存器IE控制。中断允许控制寄存器IE的格式,如表5所示。XXX:..位符号EAEA中断允许总控制位,EA=0,中断总禁止,禁止所有中断。EA=1,中断总1-M1M0CATEC/TM1M0工作方式方式方式1方式2方式313位计数器16位计数器申明自动装载8位计数器定时器:分为两个8位计数器定时器1:对外部截止计数ADAC:..ABET1AAA9A8EX0/EX1ET0答应,总答应位打开后,各截止的答应或禁止由各截止答应控制位设置决意。EX0(EX1)外部截止答应控制位,EX0(EX1)=0,禁止外部截止。EX0(EX1)=1,答应外部截止。ET0(ET1)—定时/计数中断允许控制位,ET0(ET1)=0,禁止定时/计数中断。ET0(ET1)=1,答应定时/计数截止。ES—串行截止答应控制位,ES=0,禁止串行截止。ES=1,答应串行截止。利用MCS-51内部的截止进行,接纳外部截止,跳沿触发方式;外部截止的截止入口地址为0003H。,基极B,发射极E。分红NPN和PNP两种。我们:..NPN三极管的共发射极放大电路为例来讲明一下三极管放大电路的基本原理。B流至发射极E的电流叫做基极电流Ib;把从集电极C流至发射极E的电流叫做集电极电流Ic。这两个电流的方向都是流动身射极的,所以发射极E上就用了一个箭头来表示电流的方向。三极管的放大作用就是:集电极电流受基极电流的控制(假设电源可以提供给集电极足够大的电流的话),并且基极电流很小的变化,会引发集电极电流很大的变化,且变化满足一定的比例干系:集电极电流的变化量是基极电流变化量的倍,即电流变化被放大了β倍,所以我们把β叫做三极管的放大倍数(β一般宏大于1。2-单片机课程设计例如几十,几百)。如果我们将一个变化的小信号加到基极跟发射极之间,这就会引起基极电流Ib的变化,Ib的变化被放大后,导致了Ic很大的变化。如果集电极电流Ic是流过一个电阻R的,那么根据电压计算公式U=R*I可以算得,这电阻上电压就会发生很大的变化。我们将这个电阻上的电压取出来,就得到了放大后的电压信号了。:..静态表现静态显示是当显示器显示某个字符时,相应的段恒定地导通或截止,指导显示另一个字符为止当采用静态显示方式时,各段公共端接地(共阴极)或接电源(共阳极),段选线与一个8位锁存器的输出口相连,显示器的各位相互独立静态方式显示器亮度较高,编程容易,但占用的IO口线资源较多,日常生活中比较少用。②静态表现数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。端,就使各个数:..位数码管的点亮时间为~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。4-,当使能(G)为高时,Q输出将随数据(D)输入而变。当使能为低时,输出将锁存在已建立的数据电平上。输出控制不影响锁存器的内部事情,即老数据可以坚持,甚至当输出被关闭时,新的数据也可以置入。这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。特别适用于缓冲寄存器,I/O通道,双向总线驱动器和工作寄存器5-单片机课程设计:..在电路连接完成后,将写好的程序放入单片机,运行。单片机交通灯控制原理图6-单片机课程设计交通灯实物图实物图六、源程序includedefineucharunsigned。chardefine。uint。unsigned。intsbit。red_dongxi=P1^0.//。yellow_dongxi=P1^1.//。green_dongxi=P1^2.//。red_nanbei=P1^3.//。yellow_nanbei=P1^4.//。green_nanbei=P1^5.//。nbweixuan1=P2^4.//。nbweixuan2=P2^5.//:..dxweixuan1=P2^6.//。dxweixuan2=P2^7.//。aa,shi1,shi2,ge1,ge2.//界说无符号整型变量uint。codetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};void。delay(uintz)。//延时函数声明void。display(uintshi1,uintge1,uintshi2,uintge2);//数码管表现函数声明7-单片机课程设计void。init1()。//状态函数1声明void。init2()。//状态函数2声明void。init3()。//状态函数3声明void。init4()。//状况函数4声明void。init5()。//状态函数5声明void。main()。//主函数P0=0xFF。//P0口初始化P1=0xFF。//P1口初始化P3=0xFF。//P3口初始化EA=1.//打开中断:..TR0=0;init1();while(1)init2();init3();init4();init5();voidinit1()。//状态函数1uinttemp;temp=5;TMOD=0x01;TH0=(-)/256;TL0=(-)%256;EA=1;ET0=1;TR0=1;while(1):..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);8-单片机课程设计void。init2()。//状态函数2uinttemp;:..TMOD=0x01;TH0=(-)/256;TL0=(-)%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;:..if(temp==0)break;display(shi1,ge1,shi2,ge2);voidinit3()//状态函数3uinttemp;temp=5;TMOD=0x01;TH0=(-)/256;TL0=(-)%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()。//状态函数4uinttemp;temp=10;TMOD=0x01;:..TL0=(-)%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()//状况函数5uinttemp;temp=5;TMOD=0x01;10-单片机课程设计TH0=(-)/256;TL0=(-)%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;:..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;:..nbweixuan2=0;P0=table[shi1];delay(5);dxweixuan1=0;dxweixuan2=0;nbweixuan1=1;nbweixuan2=0;P0=table[ge2];delay(5);dxweixuan1=0;dxweixuan2=0;11-单片机课程设计nbweixuan1=0;nbweixuan2=1;P0=table[shi2];delay(5);:..xtimer0()。interrupt。1.//中断函数TH0=(-)/256;TL0=(-)%256;aa++;void。delay(uintz)。//延时函数uintx,y;for(x=0;x<z;x++)for(y=0;y<110;y++);,知识点很杂、很繁琐。通过自己的努力也更进一步掌握了单片机的内容构造和工作原理,以及接外部电路的情况。当然光有理论知识那只是“纸上谈兵”,还需实际动手去实践。真正把所学的用到日常生活中,理论联系实际,做出实物模型。这次单片机课程设计,我们设计的是简易十字路通灯设计,通过这次课程设计我感觉到要想做成功,必须:..都要认真地分析每一步每一个模块要实现大的功能,然后分步进行编写调试,最后整合成在一起。败。过程很艰难,每个细节都要认真的阐发。通过本次课程设计,我们要对所做的事情有耐性,在编程的时候有困难,也可能变得不一定成功,所以要经过多次调试,分析,改正,反复去做;认真虚心求教老师和同学。在本次课程设计中,遇到最难的问题是倒计时这个模块。从一位静态LED显示开始调试,到2位动态LED显示调试,遇到很多困难。一位一位的静态显示12-单片机课程设计都可以,用动态显示方法的时候,就出现乱码,之后一条一条指令的测试,知道没出错为止。这时又有问题了,十位先显示个位要显示的数再显示十位要显示的数,经过反复的调试和老师的帮助下,发现我们把XXX和位选分开了(有两个子程序来写)。程序经过更改后,继续调试,又发现2个数码管只是移位的在显示,可且间隔时间很长(这是由延时时间太长引起的)。设置延时时间很短的时候,就发现显示很快(很容:..问题,在同学的帮助下,重新编写和调试定时,最后成功了。在本次课程设计中,我们用汇编语言编写,觉得汇编语言很复杂很麻烦,能用的寄放器少,每个参数都要放在寄放器里,很烦琐,而且花式是固定的,编写出来的步伐很长。在此次课程设计中,履历了多次失败的洗礼,我认识打听在以后进修和实际中,我要勉力把握常识,多动手,多考虑,以避免在以后的进修事情中犯同样的毛病。在此次课程设计中,履历了多次失败的洗礼,我认识打听在以后进修和实际中,我要勉力把握常识,多动手,多考虑,以避免在以后的进修事情中犯同样的毛病。

单片机交通灯课程设计 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数24
  • 收藏数0 收藏
  • 顶次数0
  • 上传人青山代下
  • 文件大小1.59 MB
  • 时间2024-04-18