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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于单片机的交通灯设计.docx

1、基于单片机的交通灯设计单片机技术课程设计说明书单片机控制交通灯专业电气工程及其自动化学生姓名朱宇恒班级电气141学号1410060444指导教师吴冬春完成日期2017年 5 月 19日1.概 述.3 1.1项目设计要求.33.系统方案硬件设计.3 3.1系统总框图.3 3.2各模块原理说明.4 3.2.1 单片机简介.4 3.2.2 单片机最小系统.5 3.3.3 显示模块功能.6 3.3.4 按键模块功能.7 4.系统方案软件设计.8 4.1主程序设计流程.8 4.2子程序设计流程.8 4.3 C语言程序.95.心得体会.9参考文献.10 附 录.12 附录1 程序清单.12 附录2 Pro

2、teus仿真图.20 附录3 元器件清单.211.概 述 当今,红绿灯已经安装在各个道路口上,成为疏导车辆最常见并且最有效的手段。但这一技术在19世纪就已出现了。交通灯的出现改变了交通路况,也在人们日常生活中占据了重要地位。随着经济的发展,人们的生活水平日益上升,汽车数量急剧增加,城市道路日渐拥挤,交通灯更加显示出了它的功能,使得交通得到有效的控制,在交通疏导,提高道路导通能力,减少交通事故方面有显著的效果。近年来,随着单片机芯片的发展,单片机在各个领域的应用越来越多。交通信号灯控制方式很多。本系统采用STC89C52单片机以及单片机最小系统设计一个基于单片机的交通灯设计。设计通过两位一体共阴

3、极数码管显示,并能通过按键对系统进行控制。1.1项目设计要求1、用单片机设计一个交通灯系统,并用数码管显示时间,LED指示通行。2、按键功能:复位功能、夜间模式(黄灯均亮)、紧急通行(东西向南北向均为红灯)。3.系统方案硬件设计3.1 系统设计总框图 单片机 图1.系统设计总框图3.2各模块原理说明单片机是在集成电路芯片上集成了各种元件的微型计算机,这些元件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时/计数器、中断系统、时钟部件的集成和I/O接口电路。由于单片机具有体积小、价格低、可靠性高、开发应用方便等特点,因此在现代电子技术和工业领域应用较为广泛,在智能仪表中单片机是应用

4、最多、最活跃的领域之一。在控制领域中,现如今人们更注意计算机的底成本、小体积、运行的可靠性和控制的灵活性。在各类仪器、仪表中引入单片机,使仪器仪表智能化,提高测试的自动化程度和精度,提高计算机的运算速度,简化仪器仪表的硬件结构,提高其性能价格比。3.2.1单片机简介 图2.STC89C52单片机VCC:STC89C52电源正端输入,接+5V。GND:电源地端。XTAL1: 单芯片系统时钟的反相放大器输入端。XTAL2: 系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一 20PF 的小电容,可以使系

5、统更稳定,避免噪声干扰而死机。其引脚分配如下:P3.0:RXD,串行通信输入。P3.1:TXD,串行通信输出。P3.2:INT0,外部中断0输入。P3.3:INT1,外部中断1输入。P3.4:T0,计时计数器0输入。P3.5:T1,计时计数器1输入。P3.6:WR:外部数据存储器的写入信号。P3.7:RD,外部数据存储器的读取信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。3.2.2单片机最小系统图3.单片机最小系统图AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机

6、存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。单片机最小系统原理说明:4.5V电源:给系统供电。晶振:给单片机运行提供脉冲。EA接高电平:表示运行内部程序存储器下载的程序。主要管脚说明:VCC(40脚):供电电压GND(20脚):接地。 RST:复位输入。/EA/VPP(31脚):当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。只选用偏外存储器,否则单片机上电或复位后选用片内程序存储器。

7、XTAL1(19脚):反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2(18脚):来自反向振荡器的输出。3.2.3显示模块显示,分别由码管显示和LED显示,数码管倒计时显示信号灯颜色发生改变的时间,LED显示信号灯的颜色以传达通行和停止的指令。LED交通灯利用发光二极管来显示不同颜色的信号指示灯。 图4.二极管显示仿真电路图 数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管:按发光二极管单元连接方式分为共阳极数码管和共阴极数码管

8、。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。 图5.数码管显示仿真图 3.3.4 按键模块 本系统要求的按键控制不多,且I0口足够,所以直接采用独立式按键。按键可以设置系统的运行状态,在此系统中,

9、共有三个按键:紧急状态即南北向东西向均为红灯,为数码管均显示“00”,红灯全亮;复位按键可以将整个系统复位;夜间模式为数码管显示“00”,四个方向黄灯闪烁。通过无数次的实验检测控制,整个系统具有灵活性,实用性、可靠性。 图6.复位按键 图7.夜间模式与紧急模式按键4.系统方案软件设计4.1主程序设计流程 全部控制程序实际上分为若干模块:键盘设置处理程序,状态灯控制程序,LED显示程序,消抖动延时程序,次状态判断及处理程序,紧停或违规判断程序,中断服务子程序,车流量计数程序,红绿灯时间调整程序等。整个软件程序方面主要分两大部分:按键处理程序和50ms扫描程序。 图8.系统设计总流程图4.2子程序

10、设计流程按键模块的控制是调用中断来实现控制的,独立式键盘的实现方法是利用单片机I/O口读取口的电平高低来判断是否有键按下。将常开按键的一端接地,另一端接一个I/O 口,程序开始时将此I/O口置于高电平,平时无键按下时I/O口保护高电平。当有键按下时,此I/O 口与地短路迫使I/O 口为低电平。按键释放后,单片机内部的上拉电阻使I/O口仍然保持高电平。我们所要做的就是在程序中查寻此I/O口的电平状态就可以了解我们是否有按键动作了。 定时中断子程序是本设计的重点,定时器一但启动,它便在原来的数值上开始加1计数,若在程序开始时,我们没有设置TH0和TL0,它们的默认值都是0,假设时钟频率为12MHz

11、,12个时钟周期为一个机器周期,那么此时机器周期为1us,记满TH0和TL0就需要216 -1个数,再来一个脉冲计数器溢出,随即向CPU申请中断。因此溢出一次共需65536us,约等于65.6ms,如果我们要定时50ms的话,那么就需要先给TH0和TL0装一个初值,在这个初值的基础上记50000个数后,定时器溢出,此时刚好就是50ms中断一次,当需要定时1s时,我们写程序时当产生20次50ms的定时器中断后便认为是1s,这样便可精确控制定时时间啦负责完成数码管输出数据刷新和各个状态的处理切换。中断子程序包括数码管输出数据刷新程序和各状态处理程序。中断程序的流程图如图所示。 图9.定时中断流程图

12、4.3 C语言程序见附录15.心得体会时光匆匆如流水,转眼两周已经过去。在这次的单片机课程设计中,我学到很多。看似简单的东西,其中还是有很多小细节需要注意,不能马虎。就如焊接单片机板时,要把握好焊锡的量,导线的焊接也要小心不能把绝缘皮烫化,零件正负极的区分尤为重要,这直接影响后面调试的结果。在设计前期我在网上找了大量的资料确定了初步的设计方案,然后在参考书上搜集到所需要的程序,以为这样就能顺利完成任务。然而在调试的过程中我才发现,因为所用的程序的地址会发生冲突,或者那些子程序并不适合我们所选的元件,错误总是不断。在这种情况下,我只得静下心来,重新分析硬件电路的工作原理,直到完全搞懂了各个组成模

13、块的工作原理及工作过程后,才从整体上把握该设计所要实现的功能及其工作方式。一开始我对单片机这门课的认识并不是很深,但是通过这次课程设计,我在实践中学到了许多平时不了解的知识,例如对硬件和软件的设计思想有了深刻的理解。本次课程设计,不仅丰富了我们的理论知识,并且极大地提高了我们的实践能力,单片机领域对我今后学习电气自动化方面有极大的帮助。在设计中遇到了很多编程问题,最后在老师的辛勤指导下,在同学的热情帮助下,终于迎刃而解。最后,感谢老师在本次课程设计中对我的热心帮助与辛勤指导,同时也要感谢给予我帮助的同学们!参考文献1李建忠.单片机原理及应用M.西安电子科技大学出版社2胡辉.单片机原理及应用设计

14、M.中国水利水电出版社3徐爱钧.8051单片机实践教程M.北京电子工业出版社4楼然苗,李光飞.51系列单片机设计实例M.北京航空航天大学出版社5邱关源.电路M.北京:北京高等教育出版社6全国大学生电子设计竞赛组委会.北京:北京理工大学出版社7韩全立.赵德申编著.微机控制技术M.北京:机械工业出版社 8王守中,聂元铭. 51单片机开发入门与典型实例M. 北京:人民邮电出版社9钟富昭,张晨. 8051单片机典型模块设计与应用M. 北京:人民邮电出版社10胡学海. 单片机及应用系统设计M. 北京:北京电子工业出版社11陈小忠,黄宁.单片机接口技术实用子程序M,北京:北京人民邮电出版社12李广弟.单片

15、机基础.北京:北京航空航天大学出版社13何立民.单片机应用技术大全.北京:北京航空航天大学出版社附 录附录1:程序清单#include #define uchar unsigned char#define uint unsigned int uchar data buf4; uchar data sec_dx=15; uchar data sec_nb=20; uchar data set_timedx=15; uchar data set_timenb=20; int n;uchar data countt0,countt1;sbit k4=P37; sbit k1=P35; sbit k2

16、=P36; sbit k3=P34; sbit k5=P31; sbit k6=P15; sbit Red_nb=P26; sbit Yellow_nb=P25; sbit Green_nb=P24; sbit Red_dx=P23; sbit Yellow_dx=P22; sbit Green_dx=P21; bit set=0; bit dx_nb=0; bit shanruo=0; bit yejian=0; uchar code table11= 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x00 ;void

17、 delay(int ms); void key(); void key_to1(); void key_to2();void key_to3();void display(); void logo(); void Buzzer();void main() TMOD=0X11; TH1=0X3C; TL1=0XB0; TH0=0X3C; TL0=0XB0; EA=1; ET0=1; ET1=1; TR0=1; TR1=0; EX0=1; EX1=1; logo(); P2=0Xc3; sec_nb=sec_dx+3; while(1) key(); display(); void key(vo

18、id) if(k1!=1) display(); if(k1!=1) TR0=0; shanruo=0; P2=0x00; TR1=0; if(set=0) set_timedx+; else set_timenb+; if(set_timenb=100) set_timenb=1; if( set_timedx=100) set_timedx=1; sec_nb=set_timenb ; sec_dx=set_timedx; do display(); while(k1!=1); if(k2!=1) display(); if(k2!=1) TR0=0; shanruo=0; P2=0x00

19、; TR1=0; if(set=0) set_timedx-; else set_timenb-; if(set_timenb=0) set_timenb=99; if( set_timedx=0 ) set_timedx=99; sec_nb=set_timenb ; sec_dx=set_timedx; do display(); while(k2!=1); if(k3!=1) display(); if(k3!=1) TR0=1; sec_nb=set_timenb; sec_dx=set_timedx; TR1=0; if(set=0) P2=0X00; Green_dx=1; Red

20、_nb=1; sec_nb=sec_dx+3; else P2=0x00; Green_nb=1; Red_dx=1; sec_dx=sec_nb+3; if(k4!=1) display(); if(k4!=1) TR0=0; set=!set; TR1=0; dx_nb=set; do display(); while(k4!=1); if(k5!=1) display(); if(k5!=1) TR0=0; P2=0x00; Red_dx=1; Red_nb=1; TR1=0; sec_dx=00; sec_nb=00; do display(); while(k5!=1); if(k6!=1) display(); if(k6!=1) TR0=0; P2=0x00; TR1=1; sec_dx=00; sec_nb=00; do display(); while(k6!=1); void display(void) buf1=sec_nb/10; buf2=sec_nb%10; buf3=sec_dx/10; buf0=sec_dx%10; P1=0xff; P0=0x00; P1=0xfe; P0=tablebuf1; delay(1); P1=0xff; P0=0x00; P1=0xfd; P0=tablebuf2; delay

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

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