还剩18页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
单片机课程设计课题交通灯目录TOC\o1-3\h\z\u任务书摘要
一、绪论
11.1概述
11.2设计目的
11.3设计要求1
二、总体设计
22.1总框图
22.2电路图
32.3工作原理
32.4所用元件4
三、各部分电路设计
43.1芯片介绍
43.2晶振电路
63.3复位电路
73.4显示电路
83.5数码管
93.6C语言程序10
四、整体电路图15
五、设计总结16
六、致谢17参考文献24摘要本设计是交通信号灯控制系统,随着社会的不断的进步,社会的不断发展交通也日渐复杂,交通的自动化也不断更新,交通的一些指挥系统光靠人来完成是远远不够的,这就需要设计各种交通指挥自动化系统来完成这些复杂的工作从而使交通指挥系统更加有秩序,更加安全至此本人设计了交通信号灯控制系统,来指挥十字路口车辆的停通,使红绿灯指挥系统实现自动化,无人化该交通灯控制系统控制的是A和B两个方向上的车辆通行,系统共采用6个发光二极管来模拟各路交通信号灯,2个LED七段数码管以倒计时的方式显示各个方向上允许通行或禁止通行的信号灯剩余的时间并能通过控制开关的关与断来控制A、B通道上的红绿灯亮的状态,从而可以应付各种特殊情况、关键词STC89C51LED交通灯程序
1、绪论
1.1概述近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果
1.2设计目的1熟练掌握AT89C51开发板的使用方法和注意事项、keil软件编辑、Proteus等对电路的设计和仿真的操作方法及应用编程器烧操作方法2了解简单单片机应用系统的设计方法,进一步理解和消化书本知识,运用所学知识和技能进行简单的设计通过某一电路的综合设计,了解某一电路的综合设计过程、设计要求进而提高应用能力,分析问题和解决问题的能力4通过单片机的控制实现对二极管的控制来模拟交通灯控制系统,并利用开关来模拟几种特殊情况(如要求所述),巩固单片机知识培养查阅资料的习惯训练和提高自学,独立思考的能力,帮助学生养成良好实验习惯
1.3设计要求利用STC89C51单片机为核心,制作一个单片机控制的交通灯控制系统
1、A道和B道上均有车辆要求通过时,A、B道轮流放行A道放行5分钟(调试时改为5秒钟),B道放行4分钟(调试时改为4秒钟);
2、一道有车而另一道无车(实验时用开关K0和K1控制),交通灯控制系统立即让有车道放行;
3、有紧急车辆要求通过时,系统要能禁止普通车辆通行,A、B道均为红灯,紧急车由K2开关模拟;
4、绿灯转换为红灯时黄灯亮1秒钟
二、总体设计
2.1总框图
2.2电路图图1电路原理图
2.3工作原理通过输入的程序控制单片机端口高低电平从而实现对二极管的亮灭的控制,其中也有定时器和中断的综合应用,中断当中断源发出中断请求时,如果允许的话,单片机暂时中止当时正在执行的主程序,转到中断服务处理程序处理中断服务请求,处理完中断服务请求后,再回到原来被中止的程序之处(断点),继续执行被中断的程序;定时器则是相当精确的计时器本设计使用的是定时器1,定时器T0是有特殊功能寄存器TH
0、TH1构成;通过工作方式寄存器TMOD选择定时器的工作方式,计算出初值并写入TH
0、TH1,然后应用中断从而执行中断程序,首先要对IE赋值,开放中断,然后使TR0置位,启动定时器
2.4所用元件STC89C51单片机、IC底座USB接口、八位共阳数码管、复位开关、按钮开关、红黄绿LED灯、排针、12MHZ晶振、10uf电容、30pf电容、
4.7K电阻
三、各部分电路设计
3.1芯片介绍STC89C51单片机引脚图如下图2STC89C51引脚图STC89C51单片机是标准的40引脚双列直插式集成电路芯片,其各引脚功能可分为如下3大类
1.电源引脚电源引脚接入单片机的工作电源
(1)VCC40脚接+5V电源;
(2)VSS20脚接地
2.时钟引脚该引脚外接晶体引线端
3.控制引脚此类引脚提供控制信号,有的引脚还有复用功能
(1)RST9脚复位信号输入端,高电平有效在此引脚加上持续时间大于2个机器周期的高电平,就可以是单片机复位在单片机正常工作时,此引脚应为
0.5V的低电平2/(31脚)为该引脚的第一功能,及外部程序存储器访问允许控制端当引脚接高电平时,在PC值不超出0FFFH时,单片机读片内程序存储器中的程序;当PC值超出时,将自动转向读取片外程序存储器空间中的程序当引脚接高电平时,只读取片外程序存储器空间中的内容,读取的地址范围为0000H~FFFFH片内的4KBFlash程序存储器不起作用为该引脚的第二功能,即在对片内Flash进行编程时,引脚接入编程电压
(3)ALE/30脚ALE为CPU访问外部程序存储器或外部数据存储器提供一个地址锁存信号,将低8位地址锁存在片外地址锁存器中为该引脚的第二功能,即在对片内Flash进行编程时,此引脚作为编程脉冲输入端
(4)(29脚)片外程序存储器的读选通信号低电平有效
3.2晶振电路下图所示为时钟电路原理图,在AT89C51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2而在芯片内部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号图3晶振电路
3.3复位电路单片机复位的条件是必须使RST9脚加上持续两个机器周(即24个振荡周期)的高电平例如,若时钟频率为12MHz,每机器周期为1μs,则只需2μs以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位图4单片机复位电路
3.4显示电路图5数码管显示电路这是一个7位8段的共阳极数码管,把它的八个一脚按一定的顺序分别与单片机P0口的八个脚相连接,然后剩余两个口中的一个与+5v的电源相连接,根据单片机中编写的相应程序可以控制数码管的显示情况,从而达到显示时间的目的
3.5数码管图6数码管引脚图led数码管(LEDSegmentDisplays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型位数有半位,1,2,3,4,5,6,8,10位等等....,led数码管根据LED的接法不同分为共阴和共阳两类,本实验用的是共阳极的数码管了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已
3.6C语言程序#includereg
51.h#defineucharunsignedchar#defineuintunsignedintvoiddelayuintz;uintnum1num2;ucharcodetable[]={~0x3F~0x06~0x5B~0x4F~0x66~0x6D~0x7D~0x07~0x7F};//*********南北方向*****************sbitSN_G=P1^0;sbitSN_Y=P1^1;sbitSN_R=P1^2;//*********东西方向*****************sbitEW_G=P1^3;sbitEW_Y=P1^4;sbitEW_R=P1^5;//*********控制开关*****************sbitSN_K=P3^0;//南北通行sbitEW_K=P3^1;//东西通行sbitSTOP_K=P3^2;//全部都停charT0_50msT_LOOPt_ewt_sn;bitew;//----------------------------------voidinit{TMOD=0x11;TH0=65536-50000/256;//50ms@12MHzTL0=65536-50000%256;TR0=1;ET0=1;EA=1;T_LOOP=0;T0_50ms=0;ew=1;}//----------------------------------voidE_Wvoid{EW_G=0;EW_Y=1;EW_R=1;SN_G=1;SN_Y=1;SN_R=0;}//----------------------------------voidS_Nvoid{EW_G=1;EW_Y=1;EW_R=0;SN_G=0;SN_Y=1;SN_R=1;}//----------------------------------voidSTOPvoid{EW_G=1;EW_Y=1;EW_R=0;SN_G=1;SN_Y=1;SN_R=0;P0=0xFF;P2=0xFF;}//----------------------------------voidmain{init;while1{;}}//----------------------------------voidT0_INTvoidinterrupt1using0{TL0=65536-50000%256;//重新写入初始值TH0=65536-50000/256;//50ms@12MHzT0_50ms++;ifT0_50ms==20{T0_50ms=0;whileSTOP_K==0STOP;whileEW_K==0{E_W;P0=0xFF;P2=0xFF;}whileSN_K==0{S_N;P2=0xFF;P0=0xFF;}ifew{{P0=table[num1++];ifnum1==6{num1=0;P0=0xFF;}}t_ew++;ift_ew=4E_W;ift_ew==5{E_W;EW_Y=0;}ift_ew==6{//时间比要求的大一些,便于观察比较t_ew=0;ew=0;S_N;}}else{P2=table[num2++];ifnum2==5{num2=0;P2=0xFF;}t_sn++;ift_sn=3S_N;//时间ift_sn==4{S_N;SN_Y=0;}ift_sn==5{//B道放行4分钟(调试时改为4秒钟)t_sn=0;ew=1;E_W;}}}}
4、整体电路图
5、设计总结本次设计提供了一个检验我们所学知识的机会,更全面地,综合性运用各种知识的实战经验,为我们接下来的毕业设计打下了一个很好的基础从到图书馆和网上查找资料到对电路的设计对电路的调试再到最后电路的成型,使我对所学知识的结构体系有了一个更加深刻的认识和直接的感觉,同时也增加了对于专业知识的运用掌握能力,对自己以后的工作和学习都是一份不可多得的经历在设计的过程中自己发现了所学的单片机的知识掌握的不牢,对于一些细节把握的不够精准对于一些器件的实际运用不是很熟悉同时在设计的过程中,遇到很多事前没想到的问题,例如开关的使用和线路的布局真自己开始做才发现没有自己想象的那么简单,有了一定的思路,结合在一起的时候,也不是那么的容易仿真的时候由于对软件的不熟悉,以至于花费了很多时间在元器件的寻找上能够根据资料自己设计电路图,不仅是对自己知识的一次检测更是对自己综合能力的一次检验同时在编写程序的时候,更是对自己所学知识的检测,如定时器的使用、中断的使用,同时也加深了自己对一些程序的理解和实际运用过程,这也是单片机学习中最重要的部分通过这次单片机课程设计,使自己在知识和动手能力方面都有了很大提高,使自己对编程和仿真软件的操作能力大大增强,也极大地提高了自己学习单片机的兴趣,对所学的课程有了一个更加深刻的认识和理解,相信这些都对自己以后的生活学习产生很大的帮助
六、致谢这段时间的课程设计的时间里,我要感谢老师和同学对我的帮助还有的设计伙伴,在这里我要特别感谢我的指导老师刘宏老师,没有他们对我的指导和帮助,我不可能在这么短的时间里顺利的完成这次课程设计的全部内容再一次感谢他们对我的无私帮助参考文献《单片机原理及应用》杨恢先《十天学会单片机》郭天祥《单片机的C语言应用程序设计》马忠梅交通灯显示时间部分电源STC89C51时钟电路交通灯复位电路。