单片机交通灯课程设计.doc
《单片机交通灯课程设计.doc》由会员分享,可在线阅读,更多相关《单片机交通灯课程设计.doc(25页珍藏版)》请在咨信网上搜索。
课程设计 课程名称: 交通信号灯设计 学 院: 专 业: 姓名: 学 号: 年 级: 任课教师: 2023年 7 月 8日 目录 一、 摘要..........................................................................1 二、 任务分析与设计思绪..............................................2 三、 总体设计 ................................................................3 四、 具体设计..................................................................4 1、 设计电路....................................................................4 2、 交通灯连接电路........................................................4 3、 倒计时电路................................................................5 4、 仿真电路及效果图....................................................6 5、元件清单....................................................................7 6、软件框图....................................................................8 7、程序及其清单............................................................9 五、调试与运营.............................................................11 六、参考资料及参考文献.............................................11 七、心得体会.................................................................12 一、摘要 在平常生活中,交通灯作为管理交通、调协车辆的一个便捷的手段,起着很大的作用。各种交通工具、行人都要根据交通灯的变化来决定是否前行,通行的时间的规定协调了它们的步伐,极大的减少了由于交通混乱引起的各种事故的发生。因此,一个完善的交通系统中,交通灯是必不可少的设备,一个完善的交通灯程序会更有效的管理当前道路中出现的实际情况,使车辆、行人的行进变得更顺畅、更和谐。 信号灯的出现,使交通是得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1986年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义做了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯。左右转弯的车辆都必须让合法的正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号。近年来随着科技的发展,单片机的应用正在不断地走向进一步。 二、任务分析与设计思绪 1、任务分析: 本次设计规定:运用所学单片机原理、模拟和数字电路等方面的知识,设计出一台交通信号灯,模拟路口交通信号。交通灯规定如下: 1)交通信号灯可以控制东西、南北两个方向的交通,红绿黄灯用相应颜色的发光二极管代替; 2)用四个2位数码管分别显示东、南、西、北方向的通行时间,东西或南北通行时间为25秒,红绿灯切换中间黄灯闪烁5秒。 目前,我们接触到的交通灯都位于十字路口,假设实际情况为东西南北走向的十字路口,如下图: 东西南北各三盏灯,每三盏分别为红、黄、绿三种颜色,总共十二盏灯,而实际情况下,东西方向灯亮灭一致,南北方向灯亮灭一致,故只需要按东西为一组,南北为一组,两组交错亮灭来设计控制系统,即可达成交通灯系统的控制目的。根据以上分析那么只需要控制东南或者西北六盏灯亮灭规律就能实现控制,此外两组相应一致就行了。根据设计规定,规定东西或者南北通行25秒,红绿灯切换中间黄灯闪烁5秒。那么规定绿灯亮放行,放行线,绿灯连续亮(通行时间)25秒,黄灯亮(警告提醒时间)5秒,红灯亮严禁通行,严禁线,为了简化设计,也为25秒。切换过程东西南北均为黄灯闪烁。 2、设计思绪 基于完毕以上任务分析,结合所学有关知识,特别是本学期所学关于单片机的中断系统和定期/计数器的相关知识及应用,我们知道对于红、绿、黄两组各三盏灯的控制,可以通过把这六盏灯分别接到单片机的六个输出引脚,若用P1口进行输出,则分派如下: AT89C51 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 L1 L2 L3 L4 L5 L6 (东西红) (东西黄) (东西绿) (南北红) (南北黄) (南北绿) LED显示分布 通过对P1口P0~P5编程从而实现控制。而时间的各盏灯的熄灭时间的延时情况,则用定期/计数和中断结合应用实现控制。 而输出的时间显示则每个方向分别用两个发光二极管显示,十位接在P0口,个位接在P2口,对P0口P2口编程即可实现控制。 三、总体设计 1、单片机内部资源分布图: 2、硬件原理框图: 交 通 灯 AT89C51 时 钟 电 路 LED 数 码 管 振 荡 电 路 上 电 复 位 电 路 3、软件结构图: 3、软件结构框图: 主 程 序 显示子程序调用 实现 功能模块 4、软硬件分工 硬件实现实物连接,软件与硬件连接相相应,通过编写程序,使硬件实现盼望的功能。说的形象些,软件相称于其内在本质功能,而硬件是将该功能表现出来,让人们可见罢了。 三、 具体设计 本设计使用的单片机为AT89C51。AT89C51是带有4K字节闪存的低电压高性能微解决器。其重要特性:与MCS-51 兼容 1、工作电压5V 2、工作频率范围:0~24MHZ 3、应用程序空间:4K字节 4、RAM:256字节 5、4个8位并行I/O接口 6、2个16位定期器/计数器 7、5个中断源 8、用单一+5v电源 9、片内振荡器和时钟电路 10、低功耗的闲置和掉电模式 1、设计电路: 设计电路重要由两部分组成,一部分为P1口与十二个发光二极管连接电路,另一部分是P0、P2口与八个七段显示器相连的电路,下面分别具体说明。 2、交通灯电路: 设计中采用发光二极管作为交通灯来使用,单片机的I/O接口直接和交通灯(发光二极管)连接。在十字路口的四组红、黄、绿三色交通灯中,东西方向道路上的两组同色灯连接在一起,南北方向道路上的两组同色的灯也彼此连接在,受单片机P1.0~P1.5控制。单片机的I/O接口与交通灯电路的具体连接方式为:P1.0~P1.2分别接东西方向的红、黄、绿共6个放光二极管,P1.3~P1.5分别接南北方向的红、黄、绿共6个发光二极管。12个发光二极管采用了共阳极的连接方式,因此I/O口输出低电平时,与之相连的发光二极管会亮,I/O口输出高电平时,相应的发光二极管会灭。交通灯电路如图所示 3、倒计时显示电路: 该显示装置选用七段数码管来显示交通灯转换的剩余时间,根据控制规定,每个路口需要两个数码管,这样四个路口就规定八个数码管。有序AT89C51单片机的I/O作为输出时,具有较强吸取电流能力,因此我们可以选用共阳型数码管,这样由单片机的I/O就可以直接驱动,从而简化硬件电路的设计。四个路口倒计时显示被置在同一时刻显示相同的数字,期中P0口用来显示时间的十位,P2口用来显示时间的个位。电路如下图所示 4、仿真电路及效果图: (1)仿真电路: (2)仿真效果: 5、元件清单: 名称 件数 参数 选择理由 电阻 8 10K 限流,以免烧坏数码管 发光二极管 12 3色 便于仿真显示 AT89C51 1 4K闪存 低电压,高性能八位微解决器 七段显示数码管 8 常用数字显示,便于仿真 开关 3 特殊情况使用 6、软件框图 (1)主程序流程图: 开始 初始化,所有为黄灯并按照初始化运营 东西红灯亮,南北绿灯亮 调用显示程序,将时间送显示 东西黄灯闪烁,南北黄灯烁 调用显示程序,将时间送显示 东西绿灯亮,南北红灯亮 调用显示程序,将时间送显示 东西黄灯闪烁,南北黄灯闪烁 调用显示程序,将时间送显示 (2)显示子程序流程图:提取倒计时数据的十位数 调用延时子程序 获取十位数字型码并送到P0口 取倒计时数值 获取个位数字型码并送到P2口 提取倒计时数据的个位数 开始 返回 7、程序及注释 主程序: #include<reg52.h> #include<intrins.h> #include<absacc.h> #define uchar unsigned char sbit k1=P3^2; //按键 sbit k2=P3^3; sbit k3=P3^4; sbit k4=P3^5; void display(uchar m,uchar f,uchar F1); void keyscan(); uchar t,m,G1,g,o,f,M1,i,c,k1num,k2num; unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void Delay(unsigned char a) { unsigned char i; while(--a!=0) { for(i=0;i<125;i++) ; } } void init()//初始化函数 { TMOD=0x01; //设定定期器0工作方式为1 TH0=(65536-46083)/256; //高8位赋值 TL0=(65536-46083)%256;//低8位赋值 EA=1; //开总中断 ET0=1;//开定期器0中断 TR0=1;//启动定期器0 } void main() { init(); G1=20;g=10;o=5;M1=0;c=0 ; while(1) { keyscan(); } } void keyscan() // K1键盘扫描函数 { if(k2==0) { Delay(5); if(k2==0) { k2num++; while(!k2); } } if(k2num!=0) { switch(k2num) { case 1: { TR0=0; P1=0xee; P2=0x00; };break; case 2: { TR0=1; k2num=0; };break; } } else{ if(k1==0) { Delay(5); if(k1==0) { k1num++; while(!k1); } } if(k1num!=0) { switch(k1num) { case 1: //南北绿灯通行显示时间 { TR0=0; //允许计时器T0工作位,0停止工作 ,可以设立南北方向绿灯通行时间 if(k4==0) //可以设立南北方向绿灯通行时间 { Delay(5); if(k4==0) { while(!k4); g++; } } if(k3==0) { Delay(5); if(k3==0) { while(!k3); g--; } } P1=0xfd; P2=0x22; P0=tab[g%10]; Delay(5); P2=0x11; P0=tab[g/10]; Delay(5); } ;break; case 2: //东西绿灯通行时间 { if(k4==0) { Delay(5); if(k4==0) { while(!k4); G1++; } } if(k3==0) { Delay(5); if(k3==0) { while(!k3); G1--; } } P1=0xdf; P2=0x88; P0=tab[G1%10]; Delay(5); P2=0x44; P0=tab[G1/10]; Delay(5); };break; case 3: //可以设立黄灯时间 { if(k4==0) { Delay(5); if(k4==0) { while(!k4); o++; } } if(k3==0) { Delay(5); if(k3==0) { while(!k3); o--; } } if(o==10) o=0; P1=0xbd; P2=0x88; //黄灯显示时间 P0=tab[o]; Delay(5); };break; case 4: { TR0=1; k1num=0; };break; } } else display(m,f,M1); } } void exter() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; t++; if(t==20) { t=0; c--; } if(c==-1) { c=g+G1+2*o; } } void display(uchar m,uchar f,uchar F1) { //东西灯 南北灯 //7 6 5 4 3 2 1 0 // 黄 绿 红 黄 绿 红 if(c>=0) //绿灯计时到0,黄灯闪烁o秒,红灯保持 { if(c>=o) { if(c>=(G1+o)) // { if(c>=(G1+2*o)) { m=c-G1-o; f=m-o; P1=0xed;//东西红灯: 1110 南北绿灯: 1101 P2=0x22; //南北绿灯显示时间 P0=tab[f%10]; Delay(5); P2=0x11; P0=tab[f/10]; Delay(5); P2=0x88; //东西红灯显示时间 P0=tab[m%10]; Delay(5); P2=0x44; P0=tab[m/10]; Delay(5); } else{ f=c-G1-o; P1=0xeb;//东西红灯: 1110 南北黄灯: 1101 P2=0x22; //南北灯显示时间 P0=tab[f%10]; Delay(5); P2=0x11; P0=tab[f/10]; Delay(5); P2=0x88; //东西灯显示时间 P0=tab[f%10]; Delay(5); P2=0x44; P0=tab[f/10]; Delay(5); } } else{ m=c-o; P1=0xde;//东西绿灯: 1101 南北红灯: 1110 P2=0x22; //南北灯显示时间 P0=tab[c%10]; Delay(5); P2=0x11; P0=tab[c/10]; Delay(5); P2=0x88; //东西灯显示时间 P0=tab[m%10]; Delay(5); P2=0x44; P0=tab[m/10]; Delay(5); } } else{ P1=0xbe; // 东西黄灯: 1011 南北红灯: 1110 P2=0x22; //南北灯显示时间 P0=tab[c%10]; Delay(5); P2=0x11; P0=tab[c/10]; Delay(5); P2=0x88; //东西灯显示时间 P0=tab[c%10]; Delay(5); P2=0x44; P0=tab[c/10]; Delay(5); } } } 五、调试与运营 1、按照硬件连接图,相应的,P1.0接红灯,P1.1接黄灯,P1.2接绿灯,P1.3接红灯,P1.4接黄灯,P1.5接绿灯 2、从0100H单元开始连续运营,观测六个LED灯是否与交通显示情况相应,假如有偏差,则单步运营或断点运营,进行调试,直至满足设计规定。 3、调试完灯的显示后,从0100H开始连续运营,观测数码管显示的是否正常,假如不正常,则运用单步运营或断点运营进行分析和调试,直至满足规定。 4、整体运营,观测灯显示和时间显示是否都符合规定,假如不符合,则再调试。直至满足规定。 六、设计资料及参考文献 1.高惠芳.单片机原理与应用技术.科学出版社,2023.4 2.胡汉才.单片机原理及其接口技术.清华大学出版社,2023 3.吴飞青等.单片机原理与应用实践指导.机械工业出版社 2023.2 4.Proteus帮助文档 5.Keil C51帮助文档 七、心得体会 通过一个星期的交通灯课程设计,我对单片机相关知识有了更深的了解。对于管脚及相关的控制寄存器,有了更进一步的巩固和了解,特别是I/O口的实用及编程,相称于重新细细温习了一遍。特别对protues软件画电路图及仿真的过程,我几乎是从零开始学习并使用的。说到这里,得感谢小组里同学们的指导,同时也幸好大家都很繁忙,让我有更多的独立探索学习和思考的空间,将这些东西变成自己的。这次课程设计的任务是通过单片机的I/O口来控制交通灯。重要完毕两大项任务,第一就是硬件连接图;第二是编写相应的程序来实现硬件功能。看似简朴,事实上需要过硬的知识作为基础,平时看看书考试那样的过程,是难以完毕这样的任务的。 这次设计过程中,碰到了很多棘手的问题,很多东西,动起手来束手无策,大多都只得先通过查阅资料或者参考别人做类似课题,才干自己动手设计画图,编程调试。过程中还错误不少,就这个程序吧,我写了改,改了写,花了很长时间。尚有就是protues软件仿真本来及整个过程,虽然并不太难,但是我是通过这次才真正弄明白的。通过这次课程设计,关于单片机的知识进一步了解了更多,但更多是让我知道了知识的欠缺,很多环节,都慢慢翻书或者查找资料才干完毕。让我明白,在以后的学习中,应更注重知识的应用,更注重实质的掌握。 当然这次课程设计,提高了知识的应用能力和和实践能力,同时提高了独立思考独立完毕任务的能力,当然同组之间,碰到了实在没办法解决的问题,也互相的征询和讨论,加强了大家的合作精神和团结能力。这对以后的学习和工作都有重要意义。- 配套讲稿:
如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。
关于本文