十字路口交通灯控(单片机课程教学设计)制.doc

收藏

编号:2588308    类型:共享资源    大小:674.02KB    格式:DOC    上传时间:2020-04-22
8
金币
关 键 词:
十字路口 交通灯 单片机 课程 教学 设计
资源描述:
^` 单片机原理 课程结业报告 题目(8):十字路口交通灯控制 学号: 031240YYY 姓名: YYY 一、 设计要求 设计一个十字路口交通灯控制器。用单片机控制LED灯模拟指示。模拟东西方向的十字路口交通信号控制情况。东西向通行时间为80s,南北向通行时间为60s,缓冲时间为3s。 二、 设计原理 利用定时器T0产生每10ms一次的中断,每100次中断为1s。对两个方向分别显示红、绿、黄灯,已经相应的剩余时间即可。值得注意的是,需要意识到,A方向红灯时间=B方向绿灯时间+黄灯缓冲时间这一常识。 三、 设计思路及电路图 1.设计思路 本设计采以用单片机AT89C52作为控制器,通行时间或等待时间通过数码管以倒计时方式显示,同时单片机P1口控制交通灯(红灯、黄灯、绿灯)的正常的替换工作,如果有意外发生(交通事故)就会产生中断,东西南北红灯全亮。系统设计框图1如下: 图1 系统框图 以下四图所示为红黄绿灯规则的状态图: S 图2 状态S1南北通行60S 东西禁止 图3 状态S2南北转黄灯 S S E 图4 状态S3南北禁止 东西通行80S 图5 状态S4东西绿灯转黄灯 共四种状态,分别设定为S1、S2、S3、S42,交通灯以这四种状态为一个周期,循环执行如图6所示。如果有意外发生,去处理中断,红灯全亮,时间10S。 图6 交通灯状态循环 2.电路图 四、 核心代码设计思路及程序流程图 1. 核心代码设计思路 核心代码设计思路流程图 2. 设计流程图 中断子程序 显示子程序 定时器中断子程序 倒计时子程序 五、 Proteus仿真图 用Proteus进行仿真,在仿真过程中达到了预期的要求,东西方向开通是,进行80S的倒计时,然后是3S的缓冲倒计时,最后是60S的南北开通倒计时,依次往复循环。具体的仿真效果图如下: 六、总结 本设计以AT89C51系列单片机为核心,充分利用了AT89C51和8255A芯片的I/O引脚,以LED数码管作为倒计时指示,该设计很好地完成了设计的各项要求,主要体现如下: 主干道和次干道可以分开设置时间功能,使控制更加灵活; 以上所有功能均在城市交道口模型上得到很好地实现,该设计在确保功能实现的基础上,充分考虑了控制系统操作方便、可靠性高、稳定性好等要求。 该设计的交通灯控制器,实现了能根据实际车流量通过AT89C51芯片的P1口设置红、绿灯燃亮时间的功能。设计一个十字路口交通灯控制器。用单片机控制LED灯模拟指示。模拟东西方向的十字路口交通信号控制情况。东西向通行时间为80s,南北向通行时间为60s,缓冲时间为3s。这是由于本身地理位置以及车流量情况所定,如果有需要可以设计扩充原系统来实现。 通过这次课程结业设计,使我得到了一次用专业知识、专业技能分析和解决问题全面的系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计的思路技巧,特别是对汇编语言的掌握方面能向前迈了一大步,为日后成为合格的应用型人才打下了良好的基础。 该课程结业设计虽然结束了,但由于时间、设备、条件和水平等各方面因素,还存在一些不足,还需要不断改进,当然也就需要学习并运用更多相关的知识。 七、Keil核心源代码 #include #define uchar unsigned char #define uint unsigned int sbit dula=P2^6; sbit wela=P2^7; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71 }; uchar num=80,num1=1,num2,num3,num4=60,num5=3,shi,ge; void delay(uint); void display(uchar,uchar); main() { TMOD=0x11; TH0=(65536-45872)/256; TL0=(65536-45872)%256; TH1=(65536-45872)/256; TL1=(65536-45872)%256; EA=1; ET0=1; ET1=1; TR0=1; TR1=1; P1=0x04; while(1) { display(shi,ge); } } void display(uchar shi,uchar ge) { P0=table[shi]; dula=1; dula=0; P0=0xfe; wela=1; wela=0; delay(5); P0=0xff;wela=1;wela=0; P0=table[ge]; dula=1; dula=0; P0=0xfd; wela=1; wela=0; delay(5); P0=0xff;wela=1;wela=0; } void delay(uint x) { uint i,j; for(i=x;i>0;i--) for(j=110;j>0;j--); } void T0_time() interrupt 1 { TH0=(65536-45872)/256; TL0=(65536-45872)%256; num2++; if(num2==20) { num2=0; num--; if(num==0) {num=80;num1++;if(num1%2==0) num=3;} shi=num/10; ge=num%10; } } void T1_time() interrupt 3 { TH1=(65536-45872)/256; TL1=(65536-45872)%256; num3++; if(num3==20) { num3=0; num4--; if(num4==0) {num4=60;num5++; if(num5%2==0) {num4=3;P1=0x08;} if((num5+1)%4==0) P1=0x04; if((num5-1)%4==0) P1=0x10; } } }
展开阅读全文
提示  淘文阁 - 分享文档赚钱的网站所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:十字路口交通灯控(单片机课程教学设计)制.doc
链接地址:https://www.taowenge.com/p-2588308.html
关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

收起
展开