收藏 分销(赏)

单片机交通灯优秀课程设计.doc

上传人:精**** 文档编号:2687402 上传时间:2024-06-04 格式:DOC 页数:20 大小:870.04KB
下载 相关 举报
单片机交通灯优秀课程设计.doc_第1页
第1页 / 共20页
单片机交通灯优秀课程设计.doc_第2页
第2页 / 共20页
单片机交通灯优秀课程设计.doc_第3页
第3页 / 共20页
单片机交通灯优秀课程设计.doc_第4页
第4页 / 共20页
单片机交通灯优秀课程设计.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、分院信息科学和工程学院专业自动化学生姓名学号设计题目基于单片机交通控制设计设计目标:1. 经过设计了解一个十字路口交通灯基础工作原理;2. 掌握89C52计算器/定时器工作方法和74LS573驱动芯片工作原理;3. 掌握keil软件使用;4. 学会team work团体合作。 设计内容: 设计一个模拟十字路口交通灯控制器,程序运行后,初始状态时东南西北方向红灯全亮5秒,接着程序开始循环以下程序:先东西绿灯和南北红灯亮15秒;然后南北红灯亮和东西黄灯闪5秒;接着南北绿灯和东西红灯亮15秒;最终东西红灯亮和南北黄灯闪5秒。总体设计: 本设计采取单片机89C52作为控制器,通行时间及等候时间使用数码

2、管以倒计时方法显示,单片机P1口控制交通灯(红黄绿三色LCD)替换。 指导老师(签字): 年 月 日分院院长(签字): 年 月 日 摘要 多年来伴随科技飞速发展,单片机应用正在不停深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制单片机应用系统中,单片机往往作为一个关键部件来使用,仅单片机方面知识是不够,还应依据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠就是交通信号灯自动指挥系统。交通信号灯控制方法很多,在学习了单片机相关知识以后,利用相关知识来设计完成交通信号灯。我对单片机很感爱好,所以在听了老师给我

3、们讲解单片机相关知识以后,我自己课后查找资料, 不停学习单片机方面知识。这次课设给了我学以致用机会,我利用自己学单片机知识,做了一个基于单片机模拟交通灯控制设计。 目录1 设计目标12 设计内容13 总体设计24 硬件设计介绍24.1数码管倒计时显示理论分析34.2三极管工作原理34.3二联共阳数码管原理44.4 74LS573驱动芯片原理65 电路图及仿真设计76 源程序87 设计体会及提议13单片机交通灯设计一、 设计目标(一) 经过设计了解一个十字路口交通灯基础工作原理(二) 掌握89C52计数器/定时器工作方法和74LS573驱动芯片工作原理;(三) 掌握keil软件使用(四) 学会t

4、eam work团体合作二、设计内容 设计一个模拟十字路口交通灯控制器,程序运行后,初始状态时东南西北方向红灯全亮5秒,接着程序开始循环以下程序:先东西绿灯和南北红灯亮15秒;然后南北红灯亮和东西黄灯闪5秒;接着南北绿灯和东西红灯亮15秒;最终东西红灯亮和南北黄灯闪5秒。三、 总体设计 本设计采取单片机89C52作为控制器,通行时间及等候时间使用数码管以倒计时方法显示,使用单片机P1口控制交通灯(红黄绿三色LCD)替换。用单片机P1.0-P1.5六个I/O口控制东西南北红黄绿灯,用P0.0P0.7八个I/O口控制数码管段选,用P2.4P2.7四个I/O口控制数码管位选,其中用四个NPN三极管放

5、大数码管位选电流,用驱动芯片74LS573驱动数码管段选。四、硬件设计介绍1. 数码管倒计时显示理论分析利用MCS-51内部定时器/计数器进行,配合软件延时实现倒计时。在工作之前必需经过软件设定它工作方法,即对寄存器TMOD中每位进行设定,格式如表3所表示。表3 TMOD格式 D7 D6 D5 D4 D3 D2 D1 D0CATEC/TM1M0CATEC/TM1M0其中,低四位用于决定T0工作方法,高四位用于决定T1工作方法,M1 和M0 工作方法控制位用以确定 4 种工作方法,以下表4所表示:表4 M1和M0控制4种工作方法M1 M0工作方法说明0 0方法013位计数器 0 1方法116位计

6、数器1 0方法2自动装载8位计数器1 1方法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溢出中止

7、、定时器/计数器T1溢出中止、串行口中止请求。 MCS-51CPU对中止源开放和屏蔽,是由片内中止许可寄存器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

8、)=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上就用了一个箭头来表示电流方向。三极管放大作用就是:集

9、电极电流受基极电流控制(假设电源 能够提供给集电极足够大电流话),而且基极电流很小改变,会引发集电极电流很大改变,且改变满足一定百分比关系:集电极电流改变量是基极电流变 化量倍,即电流改变被放大了倍,所以我们把叫做三极管放大倍数(通常远大于1,比如几十,几百)。假如我们将一个改变小信号加到基极跟发射 极之间,这就会引发基极电流Ib改变,Ib改变被放大后,造成了Ic很大改变。假如集电极电流Ic是流过一个电阻R,那么依据电压计算公式 U=R*I 能够算得,这电阻上电压就会发生很大改变。我们将这个电阻上电压取出来,就得到了放大后电压信号了。3. 二联共阳数码管原理 静态显示静态显示是当显示器显示某个

10、字符时,对应段恒定地导通或截止,指导显示 另一个字符为止当采取静态显示方法时,各段公共端接地(共阴极)或接电源(共阳极),段选 线和一个8位锁存器输出口相连,显示器各位相互独立静态方法显示器亮度较高,编程轻易,但占用IO口线资源较多,日常生活中比较少用。 动态显示 数码管动态显示接口是单片机中应用最为广泛一个显示方法之一,动态驱动是将全部数码管8个显示笔划a,b,c,d,e,f,g,dp同名端连在一起,另外为每个数码管公共极COM增加位选通控制电路,位选通由各自独立I/O线控制,当单片机输出字形码时,全部数码管全部接收到相同字形码,但到底是那个数码管会显示出字形,取决于单片机对位选通COM端电

11、路控制,所以我们只要将需要显示数码管选通控制打开,该位就显示出字形,没有选通数码管就不会亮。经过分时轮番控制各个数码管COM端,就使各个数码管轮番受控显示,这就是动态驱动。在轮番显示过程中,每位数码管点亮时间为12ms,因为人视觉暂留现象及发光二极管余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描速度足够快,给人印象就是一组稳定显示数据,不会有闪烁感,动态显示效果和静态显示是一样,能够节省大量I/O端口,而且功耗更低。4. 74LS573驱动芯片原理说明: LS573 八个锁存器全部是透明 D 型锁存器,当使能(G)为高时,Q 输出将随数据(D)输入而变。当使能为低时,输出将锁存在已建立

12、数据电平上。输出控制不影响锁存器内部工作,即老数据能够保持,甚至当输出被关闭时,新数据也能够置入。 这种电路能够驱动大电容或低阻抗负载, 能够直接和系统总线接口并驱动总线,而不需要外接口。尤其适适用于缓冲寄存器,I/O 通道,双向总线驱动器和工作寄存器五、电路图及仿真设计 设计完成原理图以下 在电路连接完成后,将写好程序放入单片机,运行。 单片机交通灯控制原理图交通灯实物图 实物图六、源程序#include #define uchar unsigned char#define uint unsigned intsbit red_dongxi=P10; /P1.0东西红灯sbit yellow_

13、dongxi=P11; /P1.1东西黄灯 sbit green_dongxi=P12; /P1.2东西绿灯sbit red_nanbei=P13; /P1.3南北红灯 sbit yellow_nanbei=P14; /P1.4南北黄灯 sbit green_nanbei=P15; /P1.5南北绿灯sbit nbweixuan1=P24; /P2.4南北数码管位选1sbit nbweixuan2=P25; /P2.5南北数码管位选2sbit dxweixuan1=P26; /P2.6东西数码管位选1sbit dxweixuan2=P27; /P2.7东西数码管位选2uint aa,shi1,

14、shi2,ge1,ge2; /定义无符号整型变量uint code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;void delay(uint z); /延时函数申明void display(uint shi1,uint ge1,uint shi2,uint ge2);/数码管显示函数申明 void init1(); /状态函数1申明void init2() /状态函数2申明void init3(); /状态函数3申明void init4(); /状态函数4申明void init5(); /状态函数5申明void main()

15、 /主函数 P0=0xFF; /P0口初始化 P1=0xFF; /P1口初始化 P3=0xFF; /P3口初始化 EA=1; /打开中止 ET0=1; TR0=0; init1(); while(1) init2(); init3(); init4(); init5(); void init1() /状态函数1 uint temp; 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_dong

16、xi=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); void init2() /状态函数2 uint temp; temp=10; TMOD=0x01; TH0=(65535-50000)/256; TL0=(65535-50000)%256; EA=1; ET0=1; TR0=1; while(1) red_dongxi=1;

17、 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); void init3() /状态函数3 uint temp; temp=5; TMOD=0x01; TH0=(65535-50000)/256; TL0=(65535-5000

18、0)%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); void init4() /状态函数4 uint temp; temp=10; TMOD=0x01; TH0=(65535-50000)/256; TL0=(65535-500

19、00)%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); void init5() /状态函数5 uint temp; temp=5; TMOD=0x01; TH0=(65535-50000)/25

20、6; 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); void display(uint shi1,uint ge1,uint shi

21、2,uint ge2) /数码管显示 dxweixuan1=1; dxweixuan2=0; nbweixuan1=0; nbweixuan2=0; P0=tablege1; delay(5); dxweixuan1=0; dxweixuan2=1; nbweixuan1=0; nbweixuan2=0; P0=tableshi1; delay(5); dxweixuan1=0; dxweixuan2=0; nbweixuan1=1; nbweixuan2=0; P0=tablege2; delay(5); dxweixuan1=0; dxweixuan2=0; nbweixuan1=0; n

22、bweixuan2=1; P0=tableshi2; delay(5); void xtimer0() interrupt 1 /中止函数 TH0=(65535-50000)/256; TL0=(65535-50000)%256;aa+;void delay(uint z) /延时函数 uint x,y; for(x=0;xz;x+) for(y=0;y110;y+); 七设计体会和提议 在此次课程设计中,重新巩固了单片机理论课时,感觉到内容很多,知识点很杂、很繁琐。经过自己努力也更深入掌握了单片机内容结构和工作原理,和接外部电路情况。当然光有理论知识那只是“纸上谈兵”,还需实际动手去实践。真

23、正把所学用到日常生活中,理论联络实际,做出实物模型。这次单片机课程设计,我们设计是简易十字路口交通灯设计,经过这次课程设计我感觉到要想做成功,必需花时间多做准备,查阅大量资料,每个过程全部很繁琐,全部要认真地分析每一步每一个模块要实现大功效,然后分步进行编写调试,最终整合成在一起。在这次课程设计中,让我感到过程决定结果,细节认为成败。过程很艰苦,每个细节全部要认真分析。经过此次课程设计,我们要对所做事情有耐性,在编程时候有困难,也可能变得不一定成功,所以要经过数次调试,分析,更正,反复去做;认真虚心讨教老师和同学。在此次课程设计中,碰到最难问题是倒计时这个模块。从一位静态LED显示开始调试,到

24、2位动态LED显示调试,碰到很多困难。一位一位静态显示全部能够,用动态显示方法时候,就出现乱码,以后一条一条指令测试,知道没犯错为止。这时又有问题了,十位先显示个位要显示数再显示十位要显示数,经过反复调试和老师帮助下,发觉我们把段选和位选分开了(有两个子程序来写)。程序经过更改后,继续调试,又发觉2个数码管只是移位在显示,可且间隔时间很长(这是由延时时间太长引发)。设置延时时间很短时候,就发觉显示很快(很轻易会发生交通意外),经过同学帮助下,查处我们定时有问题,在同学帮助下,重新编写和调试定时,最终成功了。在此次课程设计中,我们用汇编语言编写,认为汇编语言很复杂很麻烦,能用寄存器少,每个参数全部要放在寄存器里,很繁琐,而且格式是固定,编写出来程序很长。在这次课程设计中,经历了数次失败洗礼,我明白在以后学习和实践中,我要努力掌握知识,多动手,多思索,以免在以后学习工作中犯一样错误。

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服