版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要:随着科技的飞速发展,越来越多的控制功能强大的芯片出现在我们生活中,但8051系列单片机,因为其的廉价几成本,在我们生活中依然处于十分重要的地位。在实时检测和自动控制的单片机应用系统中,单片机是作为一个核心部件来使用,但是仅单片机方面知识是不够的,还需要根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。
交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。作为交通控制的重要组成部份单片机。因此,本人选择制作交通灯作为课题加以设计并实现。
交通管制应当以人性化、智能化为目的,做出相应的改善。以此为出发点,本系统采用的单片机控制的交通信号灯。系统具有结构简单、可靠性高、成本低、实时性好、安装维护方便等优点,有广阔的应用前景。关键词:交通灯,51单片机,数码管实习目的和意义1.学习51单片机的最小系统及硬件接口设计与应用
2.熟练掌握电路原理图绘制软件DPX的使用。
3.熟练单片机的程序设计与调试。4.自主设计出具有实际意义的能用于生活的电路系统。5.本次课程设计对以后的毕业设计甚至工作打下了动手自己设计的基础。实习要求1.
完成以8051系列单片机为核心处理器的模拟十字路口交通灯控制的硬件设计(在altiumdesigner下画出硬件原理图)。布线,印制电路板,并焊接原件搭载硬件电路,做出实物。2.
完成交通灯控制系统的软件编程。
3.
软硬件综合调试,模拟实现对交通灯控制系统的控制。
4.
撰写实验报告:报告中给出硬件方案、软件流程图、软件关键代码实习内容设计题目:基于51单片机交通十字路口信号灯设计实现功能:具有红、绿、黄三种颜色彩灯,并有一个数码管进行倒计时显示倒计时时间为三十秒。还应具有按键控制特殊情况下十字路口不需要红绿灯的显示(车流量很少的地段深夜可以不设红绿灯)。系统实现电路设计:51单片机介绍:
本实验使用的51单片机为STC89C52
STC89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的只读程序存储器(PEROM)和128
bytes的随机存取数据存储器(RAM)。
STC89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口。单片机外部引脚图如下:
顾名思义,八段二位共阳极数码管是由8x2个二极管组成的,全部点亮时可以显示为8.8.,第一个8.的八个数码管的阳极是接在一起的,第二个也是如此,他们的共阳极分别为引脚8、7。写程序的时候我们只需要8、7引脚接电源,控制其他八个引脚的信号就可以得到我们想要的数字。元件清单:器件数量STC89C52111.0592MHZ晶振1瓷片电容30pf2八段2位共阳极数码管1自锁/轻触开关1/2电阻1k/10k7/1发光二极管红/绿/黄/3/4/3电解电容10uF2电路设计:单片机最小系统应包含复位电路、外部时钟电路,即单片机能工作的必要条件。设计电路图如下:数码管最小系统Led彩灯电源电路软件流程图:软件设计是红灯亮三十秒,绿灯亮27秒,黄灯亮3秒。组成循环如下表:1-27秒南北绿灯亮,东西方向红灯亮,数码管从30倒数到328-30秒南北黄灯亮,东西方向红灯亮,数码管从3倒数到131-57秒南北红灯亮,东西方向绿灯亮,数码管从30倒数到358-60秒南北黄灯亮,东西方向红灯亮,数码管从3倒数到1程序从1-4往复循环。程序流程图如下:开始开始程序初始化程序初始化time=60判断time的值判断time的值If:33<time<=60If:33<time<=60If:3<time1<=30If:0<time1<=3If:30<time1<=33YYYYYYYY南北红灯亮东西黄南北红灯亮东西黄灯亮Time-1南北红灯亮东西绿灯亮Time-1南北黄灯亮东西红灯亮Time-1南北绿灯亮东西红灯亮time-1If:time=0If:time=0程序调试:调试窗口全速运行调试,观察单片机IO口信号变化,即可模拟观察程序是否正确,哪里出错。编译通过,程序实现功能并把程序下载到单片机中装好,进行调试。实物图:实习总结:经过三个星期的时间,从不会到会,从没思路到想法无限多。终于还是把这个设计给弄出来了。刚开始不知道从何入手,以前都是学一些书本上的知识,还不会灵活应用,而且也没做过什么具体的设计。后来开始动手去做,大量的从网上摄取知识,去图书馆查找资料,复习编程,复习单片机原理。等等。一个小小的电路需要太多的知识,学以致用这个词在这次设计上有了更深刻的体会。通过设计我对原来学过的知识有了更深的理解,原来想着在大学里学不到很多东西,直到做完实习,才知道是自己不会联系实际应用!当设计接近尾声的时候回顾设计的整个流程,才发现有好多东西都需要更深一步的学习。
在调试的过程中遇到了很多问题,有时候是硬件上的错误自己却认为是软件的错误,有时候软件错又认为是硬件出错了。总之我觉得学到知识最多的地方不是去查资料的时候,而是在调试过程中学到了很多东西,焊工技术、编程思想、设计电路铺板等等都会影响整个电路的工作情况。而且到最后的时候发现自己设计的电路上面也有很大的不足,比如直接用P1口接数码管的阳极,由于单片机IO口输出电流都比较小,所以导致数码管的亮度不是很亮,所以在共阳极数码管的阳极与IO口相连是应加三极管或者锁存器提供更大的电流。总之这次设计让我学会了很多东西,最主要的是学会了去查询资料,筛选资料,并大大培养了我的动手能力。参考文献[1]梅丽凤:单片机原理与技术接口第三版,清华大学出版社[2]谭浩强:C语言程序设计第四版,清华大学出版社[3]龙脉工作室:单片机C语言入门,人民邮电出版社[4]杨素行:模拟电子技术基础简明教程第三版,高等教育出版社[4]余孟尝:数字电子技术基础简明教程第三版,高等教育出版社交通灯程序:#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsbitlight_R1=P2^0;sbitlight_G1=P2^1;sbitlight_Y1=P2^2;sbitlight_R2=P2^3;sbitlight_G2=P2^4;sbitlight_Y2=P2^5;sbitD1=P1^0;//十位段选sbitD2=P1^1;//个位段选/******共阳极数码管编码对应0~9~0x3f,~0x06,~0x5b,~0x4f,~0x66,~0x6d,~0x7d,~0x07,~0x7f,~0x6f************************/ucharcodetab[10]={ ~0x3f,~0x06,~0x5b,~0x4f,~0x66, ~0x6d,~0x7d,~0x07,~0x7f,~0x6f };ucharT,shi,ge,s,k,kk; voidmain(void){ uchartime1=60; T=0; k=0;//外部中断0控制变量 kk=0;//外部中断1控制变量 TMOD=0x01;//开定时器中断 TH0=(65536-50000)/256; TL0=(65536-50000)%256; //定时器50ms中断一次 EA=1; //开总中断 ET0=1; TR0=1; IT0=1; //外部中断0选择下降沿触发 EX0=1; //开外部中断0 IT1=1; //外部中断1选择下降沿触发 EX1=1; shi=3; ge=0; while(1) { if(k==1)//判断K1是否按下 { D1=0; D2=0; light_G1=1; light_G2=1; light_R1=1; light_R2=1; light_Y1=0; light_Y2=0; while(k) { if(kk==1)//判断K2是否按下 { time1=60; light_Y1=1; light_Y2=1; kk=0; k=0; } } } if(time1==60)//初始状态 { light_G1=0; light_R2=0; light_Y2=1; light_R1=1; } D1=1; D2=0; P0=tab[shi]; s=50; while(s--); P0=0xff; D1=0; D2=1; P0=tab[ge]; s=50; while(s--); P0=0xff; D2=0; if(T==20) { T=0; time1--; if(time1>30) { shi=(time1-30)/10; ge=(time1-30)%10; } else { shi=time1/10; ge=time1%10; } if((time1-30)==3) { light_G1=1; light_Y1=0; light_R2=0; } elseif(time1==30)//转东西方向 { light_Y1=1; light_R1=0; light_R2=1; light_G2=0; } elseif(time1==3) { light_G2=1; light_Y2=0; light_R1=0; } elseif(time1==0) { time1=60; shi=3; ge=0;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年顺德职业技术学院单招综合素质考试参考题库含详细答案解析
- 2026年浙江建设职业技术学院单招综合素质考试备考题库含详细答案解析
- 2026中国医学科学院北京协和医学院直属学院招聘20人考试重点题库及答案解析
- 2026年新疆应用职业技术学院单招综合素质笔试备考试题含详细答案解析
- 2026年无锡科技职业学院单招综合素质考试备考题库含详细答案解析
- 2026年九江理工职业学院单招综合素质考试模拟试题含详细答案解析
- 2026年江西电力职业技术学院单招职业技能考试模拟试题含详细答案解析
- 2026年三明医学科技职业学院单招职业技能考试备考试题含详细答案解析
- 2026年天府新区信息职业学院单招综合素质笔试参考题库含详细答案解析
- 2026年广安职业技术学院单招职业技能考试备考试题含详细答案解析
- 公共卫生间洗清消毒制度
- 2025-2026学年河北省保定市莲池区九年级(上)期末化学试卷(含答案)
- 2026年广州中考物理创新题型特训试卷(附答案可下载)
- 电梯维保服务质量承诺书
- 2026云南省普洱市事业单位招聘工作人员390人重点基础提升(共500题)附带答案详解
- 2026年辅警招聘考试试题库100道及答案【历年真题】
- 徐州市铜山区法院系统书记员招聘考试真题
- 气穴现象和液压冲击
- GB/T 33598.3-2021车用动力电池回收利用再生利用第3部分:放电规范
- 江苏省泰州市各县区乡镇行政村村庄村名居民村民委员会明细及行政区划代码
- 文言文入门课课件
评论
0/150
提交评论