ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:975.22KB ,
资源ID:2448577      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2448577.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《微处理器与接口技术》课程设计报告 交通灯.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《微处理器与接口技术》课程设计报告 交通灯.docx

1、微处理器与接口技术课程设计报告 交通灯微处理器与接口技术课程设计报告交通灯 1设计目标课程设计是本专业集中实践环节的主要内容之一。训练正确地应用单片机,培养解决工业控制、工业检测等领域具体问题的能力。学生通过所做课题,熟悉单片机应用系统开发研制的过程,软硬件设计的工作方法、内容及步骤,对学生进行基本技能训练。例如组成系统、编程、调试、绘图等。使学生理论联系实际,提高动手能力和分析问题、解决问题的能力。通过本课程设计,主要完成以下目的:1、包括东、西、南、北四个方向的车辆和行人。2、车辆控制包括红、绿、黄三色灯,行人只需要红和绿。3、每个方向包括倒计时显示,包括有车辆左转弯专用时间。4、每个方向

2、倒计时时间可以独立设置。5、数据的设置带掉电保护功能。2 总体设计2.1硬件系统结构图2.2程序设计组成框图 2.3程序实现流程图 N Y Y N 3.详细设计3.1硬件逻辑图3.2函数功能按键电路设计扫描修改交通灯时间程序keyscan()本设计一共设计了六个按键,其中包括:显示行人交通灯状况、显示行车交通灯状况、开始计数、停止计数并进入数据修改、调整红绿灯时间加减。数码管显示电路数码管显示时间程序display()数码管显示电路,通过P0口和P3口的控制输出,将程序中second在数码管上显示。红绿灯显示电路定时器0中断程序init_timer0()红绿灯设计电路主要是由6盏灯进行控制,此

3、子程序启动定时器0,分别设定东西南北四个方向的交通灯的亮灭情况,以及倒计时时间。区分行人与车辆面对交通灯的功能也在这里实现。掉电保护功能电路读入字节程序read_add()写进字节程序write_add()掉电保护功能旨在实现突发状况时保护数据的存储,在计时中不断将数据记录到外部存储器中。此处能够实现掉电时将红绿灯亮灭情况与计时器时间记录并在之后重新显示出来。3.3函数调用关系主程序调用的程序:(1)定时器0中断程序init_timer0()(2)扫描修改交通灯时间程序keyscan()(3)I2C总线初始化程序init()(4)读入字节程序read_add()(5)写进字节程序write_a

4、dd()(6)数码管显示时间程序display()六段主要程序又包含如下子程序:(1)keyscan():延迟程序delay_1()(2)read_add():启动信号程序start();写字节程write_byte();应答程序response();停止信号程序stop();读字节程序read_byte();(3)write_add():启动信号程序start();写字节程write_byte();应答程序response();停止信号程序stop();(4)display():延时程序delay();4. 调试与测试4.1测试方法首先观察电路初始状态是否符合正确状态。按下begin键,观察

5、红绿灯亮灭状况是否符合设计要求,计时器是否正常显示。在有黄灯出现时,检查行人按键与行车按键是否能够正常显示。按下暂停按键,观察是否暂停。在按下stop1键后,对红绿灯时间进行修改,第一次按下时修改红1绿2时间,第二次按下时修改红1黄2时间,第三次按下时修改红2绿1时间,第四次按下时修改红2黄1时间,再次按下begin键,按照修改后的时间进行倒计时。在修改时间时注意plu按键与div按键的使用状况。4.2主要问题及采取的解决措施对于行人与行车之间红绿灯亮灭情况的切换解决措施:观察这两者亮灭状况的区别,只有在黄灯亮起时有区别,因而想到在独立按键上设置两个键,当红黄等亮起时,将黄灯改为相应的绿灯,从

6、而变为红绿灯亮。此困难迎刃而解。掉电保护功能不熟悉,不会编写经过老师的辅导,在51单片机的说明书中找到了掉电保护的相关章节,经过感受其功能理解其含义,知道了只要设计在掉电前将数据写入一个外部存储器中并在恢复电源时从中读取即可。同时,由于本设计为一秒倒计时,因而设计为每一秒将数据保存一次。5分析及结论第一,本设计系统面对的是东、西、南、北四个方向的车辆和行人,其中东西方向和南北方向的红绿灯情况一致。每个方向的倒计时均可显示。第二,本设计系统还实现了独立设置每个方向倒计时时间的功能。由于车辆控制包括红、绿、黄三色灯,行人只需要红和绿,本系统实现了行人与车辆面对红绿灯不同情况的转化。第三,利用EEP

7、ROM AT24C02,本设计系统实现了掉电保护功能。不足:不具备车流量检测模拟,不能根据车流量自动调整各个方向的红绿灯时间。6运行结果7.结束语 通过本次课程设计,我发现了许多学习这门课程的不足之处,所学有关c语言的有关内容大部分已经忘记,编写程序的过程中举步维艰,只能看着课本一步一步的慢慢编写。这次课程设计涉及到了很多这学期学习的几个比较重要的部分,例如中断、定时器、延时程序等,体会到了单片机设计程序的趣味以及在现实生活中的实用性,是一次很有价值的体验!在编程过程中,我们的设计内容包括许多小的部分,比如行人交通灯、车辆交通灯,当把这些小部分做好时,怎样把这些零散的小程序连接起来成了一大问题

8、,是在老师和同学的帮助下才最终完成的。编程中,程序很多容易混乱,这需要我们深刻了解所学的知识,这样的话,不管多复杂的程序,只要知道它的基本原理,将复杂的程序分解,所有问题将会迎刃而解。最终,我们小组完成了这次课程设计,在单片机上演示出来自己想要的结果后,感觉一切努力都是值得的,学习到了许多的东西,希望以后的学习中,还可以多接触一些这种类型的课程。8.参考文献1 增强型51单片机与仿真技术 肖金球、冯翼 清华大学出版社2 C语言程序设计教程 张宗杰 电子工业出版社3 郭天祥. 51单片机C语言教程.电子工业出版社9附录/*- 名称:红绿灯 内容:1、程序目的:使用定时器学习 倒计时 红绿灯原理

9、主要程序与倒计时相同 2、硬件要求:数码管、晶振12M,AT24C02 3、P1口连接至LED用于显示红绿灯,P0口送入数码管段选数 4、数码管用于显示时间-*/#include#define uchar unsigned char#define uint unsigned intsbit key1=P30;sbit key2=P31;sbit begin=P32;sbit stop1=P33;sbit plu=P34;sbit div=P35;sbit LACTCH1=P26;sbit LACTCH2=P27;sbit sda=P20;sbit scl=P21;/*- 全局变量-*/code

10、 unsigned char tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /共阴数码管 0-9 bit red,green,yellow,turnyellow,turngreen,shunxu,xingche,chexing;/定义红绿黄灯标志位uchar s1num;unsigned char a=25,b=5,c=25,d=5,SHI,GE,count,e;uchar second,write;/*- 延时程序-*/void delay(unsigned int cnt) while(-cnt);/*- 延时程序-*/voi

11、d delay_1(uint z) uchar x,y; for(x=z;x-;x0) for(y=110;y-;y0);/*- IIC总线的开始,停止,应答信号-*/void start() sda=1; delay(2); scl=1; delay(2); sda=0; delay(2); void stop() sda=0; delay(2); scl=1; delay(2); sda=1; delay(2);void response() uchar i; scl=1; delay(2); while(sda=1)&(i250) i+; scl=0; delay(2);void ini

12、t() sda=1; delay(2); scl=1; delay(2);void write_byte(uchar date) uchar i,temp; temp=date; for(i=0;i8;i+) temp=temp1; scl=0; delay(2); sda=CY; delay(2); scl=1; delay(2); scl=0; delay(2); sda=1; delay(2);uchar read_byte() uchar i,k; scl=0; delay(2); sda=1; delay(2); for(i=0;i8;i+) scl=1; delay(2); k=(

13、k1)|sda; scl=0; delay(2); return k;void write_add(uchar address,uchar date) start(); write_byte(0xa0); response(); write_byte(address); response(); write_byte(date); response(); stop(); uchar read_add(uchar address) uchar date; start(); write_byte(0xa0); response(); write_byte(address); response(); start(); write_byte

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1