单片机交通灯优秀课程设计.doc
《单片机交通灯优秀课程设计.doc》由会员分享,可在线阅读,更多相关《单片机交通灯优秀课程设计.doc(20页珍藏版)》请在咨信网上搜索。
分院 信息科学和工程学院 专业 自动化 学生姓名 学号 设计题目 基于单片机交通控制设计 设计目标: 1. 经过设计了解一个十字路口交通灯基础工作原理; 2. 掌握89C52计算器/定时器工作方法和74LS573驱动芯片工作原理; 3. 掌握keil软件使用; 4. 学会team work团体合作。 设计内容: 设计一个模拟十字路口交通灯控制器,程序运行后,初始状态时东南西北方向红灯全亮5秒,接着程序开始循环以下程序:先东西绿灯和南北红灯亮15秒;然后南北红灯亮和东西黄灯闪5秒;接着南北绿灯和东西红灯亮15秒;最终东西红灯亮和南北黄灯闪5秒。 总体设计: 本设计采取单片机89C52作为控制器,通行时间及等候时间使用数码管以倒计时方法显示,单片机P1口控制交通灯(红黄绿三色LCD)替换。 指导老师(签字): 年 月 日 分院院长(签字): 年 月 日 摘要 多年来伴随科技飞速发展,单片机应用正在不停深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制单片机应用系统中,单片机往往作为一个关键部件来使用,仅单片机方面知识是不够,还应依据具体硬件结构软硬件结合,加以完善。 十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠就是交通信号灯自动指挥系统。交通信号灯控制方法很多,在学习了单片机相关知识以后,利用相关知识来设计完成交通信号灯。我对单片机很感爱好,所以在听了老师给我们讲解单片机相关知识以后,我自己课后查找资料, 不停学习单片机方面知识。这次课设给了我学以致用机会,我利用自己学单片机知识,做了一个基于单片机模拟交通灯控制设计。 目录 1 设计目标 1 2 设计内容 1 3 总体设计 2 4 硬件设计介绍 2 4.1数码管倒计时显示理论分析 3 4.2三极管工作原理 3 4.3二联共阳数码管原理 4 4.4 74LS573驱动芯片原理 6 5 电路图及仿真设计 7 6 源程序 8 7 设计体会及提议 13 单片机交通灯设计 一、 设计目标 (一) 经过设计了解一个十字路口交通灯基础工作原理 (二) 掌握89C52计数器/定时器工作方法和74LS573驱动芯片工作原理; (三) 掌握keil软件使用 (四) 学会team work团体合作 二、设计内容 设计一个模拟十字路口交通灯控制器,程序运行后,初始状态时东南西北方向红灯全亮5秒,接着程序开始循环以下程序:先东西绿灯和南北红灯亮15秒;然后南北红灯亮和东西黄灯闪5秒;接着南北绿灯和东西红灯亮15秒;最终东西红灯亮和南北黄灯闪5秒。 三、 总体设计 本设计采取单片机89C52作为控制器,通行时间及等候时间使用数码管以倒计时方法显示,使用单片机P1口控制交通灯(红黄绿三色LCD)替换。用 单片机P1.0-P1.5六个I/O口控制东西南北红黄绿灯,用P0.0—P0.7八个I/O口控制数码管段选,用P2.4—P2.7四个I/O口控制数码管位选,其中用四个NPN三极管放大数码管位选电流,用驱动芯片74LS573驱动数码管段选。 四、硬件设计介绍 1. 数码管倒计时显示理论分析 利用MCS-51内部定时器/计数器进行,配合软件延时实现倒计时。在工作之前必需经过软件设定它工作方法,即对寄存器TMOD中每位进行设定,格式如表3所表示。 表3 TMOD格式 D7 D6 D5 D4 D3 D2 D1 D0 CATE C/T M1 M0 CATE C/T M1 M0 其中,低四位用于决定T0工作方法,高四位用于决定T1工作方法,M1 和M0 工作方法控制位用以确定 4 种工作方法,以下表4所表示: 表4 M1和M0控制4种工作方法 M1 M0 工作方法 说明 0 0 方法0 13位计数器 0 1 方法1 16位计数器 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溢出中止、定时器/计数器T1溢出中止、串行口中止请求。 MCS-51CPU对中止源开放和屏蔽,是由片内中止许可寄存器IE控制。中止许可控制寄存器IE格式,如表5所表示。 位地址 AF AE AD AC AB AA A9 A8 位符号 EA / / ES ET1 EX1 ET0 EX0 EA — 中止许可总控制位,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> #define uchar unsigned char #define uint unsigned int sbit red_dongxi=P1^0; //P1.0东西红灯 sbit yellow_dongxi=P1^1; //P1.1东西黄灯 sbit green_dongxi=P1^2; //P1.2东西绿灯 sbit red_nanbei=P1^3; //P1.3南北红灯 sbit yellow_nanbei=P1^4; //P1.4南北黄灯 sbit green_nanbei=P1^5; //P1.5南北绿灯 sbit nbweixuan1=P2^4; //P2.4南北数码管位选1 sbit nbweixuan2=P2^5; //P2.5南北数码管位选2 sbit dxweixuan1=P2^6; //P2.6东西数码管位选1 sbit dxweixuan2=P2^7; //P2.7东西数码管位选2 uint aa,shi1,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() //主函数 { 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_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); } } 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; 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-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); } } void init4() //状态函数4 { uint temp; 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); } } void init5() //状态函数5 { uint temp; 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); } } void display(uint shi1,uint ge1,uint shi2,uint ge2) //数码管显示 { 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); } void xtimer0() interrupt 1 //中止函数 { TH0=(65535-50000)/256; TL0=(65535-50000)%256; aa++; } void delay(uint z) //延时函数 { uint x,y; for(x=0;x<z;x++) for(y=0;y<110;y++); } 七.设计体会和提议 在此次课程设计中,重新巩固了单片机理论课时,感觉到内容很多,知识点很杂、很繁琐。经过自己努力也更深入掌握了单片机内容结构和工作原理,和接外部电路情况。当然光有理论知识那只是“纸上谈兵”,还需实际动手去实践。真正把所学用到日常生活中,理论联络实际,做出实物模型。这次单片机课程设计,我们设计是简易十字路口交通灯设计,经过这次课程设计我感觉到要想做成功,必需花时间多做准备,查阅大量资料,每个过程全部很繁琐,全部要认真地分析每一步每一个模块要实现大功效,然后分步进行编写调试,最终整合成在一起。 在这次课程设计中,让我感到过程决定结果,细节认为成败。过程很艰苦,每个细节全部要认真分析。 经过此次课程设计,我们要对所做事情有耐性,在编程时候有困难,也可能变得不一定成功,所以要经过数次调试,分析,更正,反复去做;认真虚心讨教老师和同学。 在此次课程设计中,碰到最难问题是倒计时这个模块。从一位静态LED显示开始调试,到2位动态LED显示调试,碰到很多困难。一位一位静态显示全部能够,用动态显示方法时候,就出现乱码,以后一条一条指令测试,知道没犯错为止。这时又有问题了,十位先显示个位要显示数再显示十位要显示数,经过反复调试和老师帮助下,发觉我们把段选和位选分开了(有两个子程序来写)。程序经过更改后,继续调试,又发觉2个数码管只是移位在显示,可且间隔时间很长(这是由延时时间太长引发)。设置延时时间很短时候,就发觉显示很快(很轻易会发生交通意外),经过同学帮助下,查处我们定时有问题,在同学帮助下,重新编写和调试定时,最终成功了。 在此次课程设计中,我们用汇编语言编写,认为汇编语言很复杂很麻烦,能用寄存器少,每个参数全部要放在寄存器里,很繁琐,而且格式是固定,编写出来程序很长。 在这次课程设计中,经历了数次失败洗礼,我明白在以后学习和实践中,我要努力掌握知识,多动手,多思索,以免在以后学习工作中犯一样错误。- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 交通灯 优秀 课程设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文