




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机技术课程设计说明书( 2017)单片机技术课程设计说明书单片机控制交通灯专业电气工程及其自动化学生姓名朱宇恒班级电气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 Proteus仿真图.20 附录3 元器件清单.211. 概 述 当今,红绿灯已经安装在各个道路口上,成为疏导车辆最常见并且最有效的手段。但这一技术在19世纪就已出现了。交通灯的出现改变了交通路况,也在人们日常生活中占据了重要地位。随着经济的发展,人们的生活水平日益上升,汽车数量急剧增加,城市道路日渐拥挤,交通灯更加显示出了它的功能,使得交通得到有效的控制,在交通疏导,提高道路导通能力,减少交通事故方面有显著的效果。近年来,随着单片机芯片的发展,单片机在各个领域的应用越来越多。交通信号灯控制方式很多。本系统采用STC89C52单片机以及单片机最小系统设计一个基于单片机的交通灯设计。设计通过两位一体共阴极数码管显示,并能通过按键对系统进行控制。1.1项目设计要求1、用单片机设计一个交通灯系统,并用数码管显示时间,LED指示通行。2、按键功能:复位功能、夜间模式(黄灯均亮)、紧急通行(东西向南北向均为红灯)。3. 系统方案硬件设计3.1 系统设计总框图 STC89C52 单片机红黄绿信号灯8段LED数码管复位电路最小系统外围接口按键控制驱动显示 单片机 图1.系统设计总框图3.2各模块原理说明单片机是在集成电路芯片上集成了各种元件的微型计算机,这些元件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时/计数器、中断系统、时钟部件的集成和I/O接口电路。由于单片机具有体积小、价格低、可靠性高、开发应用方便等特点,因此在现代电子技术和工业领域应用较为广泛,在智能仪表中单片机是应用最多、最活跃的领域之一。在控制领域中,现如今人们更注意计算机的底成本、小体积、运行的可靠性和控制的灵活性。在各类仪器、仪表中引入单片机,使仪器仪表智能化,提高测试的自动化程度和精度,提高计算机的运算速度,简化仪器仪表的硬件结构,提高其性能价格比。3.2.1单片机简介 图2.STC89C52单片机VCC:STC89C52电源正端输入,接+5V。GND:电源地端。XTAL1: 单芯片系统时钟的反相放大器输入端。XTAL2: 系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一 20PF 的小电容,可以使系统更稳定,避免噪声干扰而死机。其引脚分配如下: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的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。单片机最小系统原理说明:4.5V电源:给系统供电。晶振:给单片机运行提供脉冲。EA接高电平:表示运行内部程序存储器下载的程序。主要管脚说明:VCC(40脚):供电电压GND(20脚):接地。 RST:复位输入。/EA/VPP(31脚):当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。只选用偏外存储器,否则单片机上电或复位后选用片内程序存储器。XTAL1(19脚):反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2(18脚):来自反向振荡器的输出。3.2.3显示模块显示,分别由码管显示和LED显示,数码管倒计时显示信号灯颜色发生改变的时间,LED显示信号灯的颜色以传达通行和停止的指令。LED交通灯利用发光二极管来显示不同颜色的信号指示灯。 图4.二极管显示仿真电路图 数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管:按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。 图5.数码管显示仿真图 3.3.4 按键模块 本系统要求的按键控制不多,且I0口足够,所以直接采用独立式按键。按键可以设置系统的运行状态,在此系统中,共有三个按键:紧急状态即南北向东西向均为红灯,为数码管均显示“00”,红灯全亮;复位按键可以将整个系统复位;夜间模式为数码管显示“00”,四个方向黄灯闪烁。通过无数次的实验检测控制,整个系统具有灵活性,实用性、可靠性。 图6.复位按键 图7.夜间模式与紧急模式按键4. 系统方案软件设计4.1主程序设计流程 全部控制程序实际上分为若干模块:键盘设置处理程序,状态灯控制程序,LED显示程序,消抖动延时程序,次状态判断及处理程序,紧停或违规判断程序,中断服务子程序,车流量计数程序,红绿灯时间调整程序等。整个软件程序方面主要分两大部分:按键处理程序和50ms扫描程序。初始化外部中断定义状态数组宏定义设置字型码和字位码,完成显示I/O初始化进入while(1)循环返回while(1)函数定义字位码函数定义共阴极字型编码表进入主函数main()调用显示控制函数void display()定义函数变量并初始化调用Buzzer()函数定时器0初始化 图8.系统设计总流程图4.2子程序设计流程按键模块的控制是调用中断来实现控制的,独立式键盘的实现方法是利用单片机I/O口读取口的电平高低来判断是否有键按下。将常开按键的一端接地,另一端接一个I/O 口,程序开始时将此I/O口置于高电平,平时无键按下时I/O口保护高电平。当有键按下时,此I/O 口与地短路迫使I/O 口为低电平。按键释放后,单片机内部的上拉电阻使I/O口仍然保持高电平。我们所要做的就是在程序中查寻此I/O口的电平状态就可以了解我们是否有按键动作了。 定时中断子程序是本设计的重点,定时器一但启动,它便在原来的数值上开始加1计数,若在程序开始时,我们没有设置TH0和TL0,它们的默认值都是0,假设时钟频率为12MHz,12个时钟周期为一个机器周期,那么此时机器周期为1us,记满TH0和TL0就需要216 -1个数,再来一个脉冲计数器溢出,随即向CPU申请中断。因此溢出一次共需65536us,约等于65.6ms,如果我们要定时50ms的话,那么就需要先给TH0和TL0装一个初值,在这个初值的基础上记50000个数后,定时器溢出,此时刚好就是50ms中断一次,当需要定时1s时,我们写程序时当产生20次50ms的定时器中断后便认为是1s,这样便可精确控制定时时间啦负责完成数码管输出数据刷新和各个状态的处理切换。中断子程序包括数码管输出数据刷新程序和各状态处理程序。中断程序的流程图如图所示。定义1s定时中断入口设置字型码和字位码,完成数码管倒计时显示启动定时器中断 关闭定时器0初始化定时器0 计数变量自加1 图9.定时中断流程图4.3 C语言程序见附录15. 心得体会时光匆匆如流水,转眼两周已经过去。在这次的单片机课程设计中,我学到很多。看似简单的东西,其中还是有很多小细节需要注意,不能马虎。就如焊接单片机板时,要把握好焊锡的量,导线的焊接也要小心不能把绝缘皮烫化,零件正负极的区分尤为重要,这直接影响后面调试的结果。在设计前期我在网上找了大量的资料确定了初步的设计方案,然后在参考书上搜集到所需要的程序,以为这样就能顺利完成任务。然而在调试的过程中我才发现,因为所用的程序的地址会发生冲突,或者那些子程序并不适合我们所选的元件,错误总是不断。在这种情况下,我只得静下心来,重新分析硬件电路的工作原理,直到完全搞懂了各个组成模块的工作原理及工作过程后,才从整体上把握该设计所要实现的功能及其工作方式。一开始我对单片机这门课的认识并不是很深,但是通过这次课程设计,我在实践中学到了许多平时不了解的知识,例如对硬件和软件的设计思想有了深刻的理解。本次课程设计,不仅丰富了我们的理论知识,并且极大地提高了我们的实践能力,单片机领域对我今后学习电气自动化方面有极大的帮助。在设计中遇到了很多编程问题,最后在老师的辛勤指导下,在同学的热情帮助下,终于迎刃而解。最后,感谢老师在本次课程设计中对我的热心帮助与辛勤指导,同时也要感谢给予我帮助的同学们!参考文献1李建忠.单片机原理及应用M.西安电子科技大学出版社2胡辉.单片机原理及应用设计M.中国水利水电出版社3徐爱钧.8051单片机实践教程M.北京电子工业出版社4楼然苗,李光飞.51系列单片机设计实例M.北京航空航天大学出版社5邱关源.电路M.北京:北京高等教育出版社6全国大学生电子设计竞赛组委会.北京:北京理工大学出版社7韩全立.赵德申编著.微机控制技术M.北京:机械工业出版社 8王守中,聂元铭. 51单片机开发入门与典型实例M. 北京:人民邮电出版社9钟富昭,张晨. 8051单片机典型模块设计与应用M. 北京:人民邮电出版社10胡学海. 单片机及应用系统设计M. 北京:北京电子工业出版社11陈小忠,黄宁.单片机接口技术实用子程序M,北京:北京人民邮电出版社12李广弟.单片机基础.北京:北京航空航天大学出版社13何立民.单片机应用技术大全.北京:北京航空航天大学出版社附 录附录1:程序清单#include #define uchar unsigned char#define uint unsigned intuchar 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=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 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(void) if(k1!=1)display(); if(k1!=1) TR0=0; shanruo=0;P2=0x00;TR1=0;if(set=0)set_timedx+; elseset_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;TR1=0;if(set=0)set_timedx-; elseset_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_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;dodisplay(); 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;dodisplay(); while(k5!=1); if(k6!=1) display(); if(k6!=1) TR0=0;P2=0x00;TR1=1;sec_dx=00;sec_nb=00;dodisplay(); 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(1); P1=0xff;P0=0x00;P1=0Xfb; P0=tablebuf3;delay(1);P1=0xff; P0=0x00; P1=0Xf7; P0=tablebuf0;delay(1);void time0(void) interrupt 1 using 1 TH0=0X3C;TL0=0XB0;TR0=1;countt0+;if(countt0=10)if(sec_nb=3)&(dx_nb=0)&(shanruo=1) Green_dx=0;Yellow_dx=0; if(sec_dx=3)&(dx_nb=1)&(shanruo=1) Green_nb=0;Yellow_nb=0;if(countt0=20) countt0=0;sec_dx-;sec_nb-;if(sec_nb=3)&(dx_nb=0)&(shanruo=1) Green_dx=0;Yellow_dx=1; if(sec_dx=3)&(dx_nb=1)&(shanruo=1) Green_nb=0;Yellow_nb=1; if(sec_dx=0&sec_nb=3) sec_dx=3;shanruo=1;if(sec_nb=0&sec_dx=3)sec_nb=3;shanruo=1;if(dx_nb=0&sec_nb=0)P2=0x00;Green_nb=1;Red_dx=1;dx_nb=!dx_nb;shanruo=0;sec_nb=set_timenb;sec_dx=set_timenb+3;if(dx_nb=1&sec_dx=0)P2=0X00;Green_dx=1; Red_nb=1;dx_nb=!
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络游戏开发及版权保护合作合同
- 难忘的语文老师:写人作文(13篇)
- 公交公司树形象活动方案
- 公交精神文明活动方案
- 公众号七夕活动方案
- 快乐是一种态度作文7篇范文
- 公共法律服务活动方案
- 游东方年华游记作文600字(13篇)
- 公司k歌比赛活动方案
- 2025至2030年中国保湿平衡柔肤水行业投资前景及策略咨询报告
- (正式版)JBT 14587-2024 胶体铅酸蓄电池 技术规范
- 《装配式成品支吊架安装验收规程》
- 支付令申请书模板:工程款支付令
- 养殖场消防知识讲座
- 2023年10月自考00533中国古代文学作品选(二)试题及答案含评分标准
- 拖拉机驾驶员培训(课件)
- 媒介发展史概论
- GA 2093-2023公安机关警务辅助人员工作证内卡技术规范
- 2024年6月福建省普通高中学生学业基础会考生物试题
- 第8课《求救信号》课件
- 某公路工程有限公司专项应急预案及某公路项目部安全生产应急预案
评论
0/150
提交评论