单片机课程设计 十字路口交通灯
物理与机电工程学院课程设计报告课程名称: 单片机 系 部: 物理与机电工程学院 专业班级: 09电子信息工程一班 学生姓名: 指导教师: 王清辉 完成时间: 报告成绩: 评阅意见: 评阅教师 日期 一、设计任务与要求1车辆通行繁忙的十字交叉路口,设计一交通灯控制器,设东西方向通行时间为40秒,当剩余3秒时黄灯亮,南北方向通行时间为25秒,当剩余3秒时黄灯亮。2东西、南北方向各用三个绿、黄、红LED表示,并用数码管显示东西、南北方向的剩余时间。3可利用按键修改时间参数。二、方案设计与论证1 对元器件的选择。显示器的选择既可以选择数码管的显示也可以用LCD显示在这里交通灯用数码管显示即可因为它价格低程序和LCD写来比也相对简单些。数码管阳极和阴极的选择,阳极采用的是灌入电流,电流大数码管显示也亮些。单片机那么是选择AT89C52由于单片机管脚多所以直接使用静态显示的方式,这样稳定显示也不用考虑加不加三极管的问题。2 对数码管限流电阻的选择要使数码管显示至少要五毫安以上的电流这里选用1K电阻并联那么电流为5-0.7/500=0.8ma3 AT89C52芯片资料三、硬件电路设计1单片机简介本系统设计采用89C52系列单片机。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。该器件采用ATMEL高密度非意识存储器制造技术制造,与工业标准的MCS-52指令集和输出管脚相兼容由于在微机原理中学过C-52的具体知识,这里不再详细说明。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C52是一种高效的微控制器。(1) 晶体振荡电路MCS-52单片机内部的振荡电路是一个高增益反相器,引线XTAL1和XTAL2分别为反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器。这里,我们选用52单片机12MHz的内部振荡方式,电路如下:电容器C1、C2起稳定振荡频率,快速起振的作用,C1和C2可在20-100PF之间取,这里取30P,接线时要晶体振荡器X1极可能接近单片机。电路图如图3 所示。图3 晶体振荡电路图(2) 复位电路采用上电+按键复位电路,上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使用RST持续一段时间的高电平,从而实现上电加开关复位的操作。这不仅能使单片机复位,而且还能使单片机的外围芯片也同时复位。电路图如图4所示。图4 复位电路2LED介绍 LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的 2个8数码管字样了。如:显示一个“2字,那么应当是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。LED数码管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。 led数码管的结构及工作原理led数码管LED Segment Displays是由多个发光二极管封装在一起组成“8字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1型。位数有半位,1,2,3,4,5,6,8,10位等等.,led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。led数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。下面将介绍常用LED数码管内部引脚图片 10引脚的LED数码管图1 这是一个7段两位带小数点 10引脚的LED数码管 LED数码管引脚定义图2 引脚定义 每一笔划都是对应一个字母表示 DP是小数点. LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。 A、静态显示驱动: 静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O埠进行驱动,或者使用如BCD码二-十进位*器*进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O埠多,如驱动5个数码管静态显示那么需要5×8=40根I/O埠来驱动,要知道一个89S51单片机可用的I/O埠才32个呢。故实际应用时必须增加*驱动器进行驱动,增加了硬体电路的复杂性。 B、动态显示驱动: 数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp "的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制翻开,该位元就显示出字形,没有选通的数码管就不会亮。 透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位元数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O埠,而且功耗更低。 技术参数规格: 有圆形、半圆形、D形; 直径有:30mm、40mm、50mm、80mm、100mm、 110mm 颜色:单红,黄,蓝,绿,白,七彩; 外壳颜色:乳白; 性能:防水,防尘,防紫外线,耐压,耐破裂,耐上下温,耐燃,超强抗冲击老化; 防护等级:IP65级; 工作电压范围:24V-220V; 工作功率:8-12W; 工作环境:-40度-+75度。 正常寿命:>80,000小时 LED数码管分类1、从控制方式上分:分为内控方式内部有单片机,通电自动变色和外控方式需要外接控制器才能变色。 2、从变化方式上分:分为固定色彩的和七彩、全彩的;固定色彩的是用来勾轮廓的,全彩的可以勾轮廓,也可以组成管屏显示文字、视频等; 3、从尺寸上分:有D50的、D30的,这是直径;长度根本上1米的可以定制 从;这个需要根据实际需要进行选择就行了。 4、从内部可控性上分:有1米6段的,有1米8段的和1米12段、1米16段、1米32段的。也就是1米的管子内有几段可以独立受控; 1米段数越多,做视频的效果越好。如果密度低,或者做些追逐效果,做1米6段也就可以了。 5、从led数量上,有1米96颗灯的,有1米144颗灯的;灯越多效果越好。一般做全彩的都是用1米144颗灯的。 6、从供电上分,分为高压供电(直接220V供电)和低压供电(12v供电,220v电源需要加开关电源转换);一般选择低压供电的,比拟可靠稳定,高压供电的容易烧毁。 7、 按像素点分 一米16段灯管 就是1米的灯管有16个像素点。 一般有6段数码管、8段数码管、12段数码管、16段数码管、32段数码管等,16段的比拟多。如6段数码管一般使用在轮廓工程上。 LED的光源和优缺点要是问起LED光源有几种,相信这个问题对大家来说都很陌生! 总的来说,LED光源的来源有两种做法: 一种是使用传统小功率LED作组合,一般多达上百颗甚至数百颗,电源设计复杂。 另一种是使用大功率管作光源,价格比拟贵。 两种方法都不可防止地要将散热设计和工作可靠性作为主要设计考虑因素,国内多应用于政府示范性工程,真正市场化运作的工程很少,国外这方面的应用实例较多,但其最大的缺点依然是可靠性、出光流明数和价格,很多工程由于LED品质低劣,没有很好地表现出寿命长的优点。 还有,从本钱、市场的角度考虑,LED作为照明光源,其是否与太阳能结合使用,在设计上需要走不同的路线,并不是单独作为一种光源来开发就能完成的3系统总体系统整体硬件包括,数码管显示电路,交通灯通行时间上下调整按键。单片机主板电路等。 总原理图中有三个独立铵键可以调整通行时间。当按下P3.0口一次时调束东西方向的时间按P3.1和P3.2分别为时间加和时间减同时在数码管显示。按第二下为调整南北方向时间设置。当按下第三次时那么回到到通行且此时时间为南北方向的时间。假设为东西方向时间通行那么到最后三秒时东西黄灯亮绿灯闪,南北红灯闪黄灯亮。另一方向也是如此。P3.4口为扩展而预留的按键。Reset处的按键为复位按键程序跑飞时可手动复位。十位接P0口个位接P1口。 下列图中图一为原理图。图二为PCB图。图三为仿真调试图。图1图2图三四、软件设计状态0:南北绿灯通车,东西红灯;过一段时间转入状态1:南北绿灯闪几次且黄灯亮,东西红灯闪几次且黄灯亮;再转入状态2:东西绿灯通车,南北红灯;过一段时间转入状态3:东西绿灯闪几次且黄灯亮,南北红灯闪几次且黄灯亮;最后循环至初始状态开 始P3.0被按下P3.0未被按下扫描显示函数关定时器,按P3.1那么num+,P3.2那么num并将num的值赋给SHU1置T0工作方式1,定时器0置T0工作方式1,定时器置初值回到检测P3.0是否被按下再次按下P3.0重新启动定时器重新的开始计时。初始化设置各值aa=0,bb=0,通过P0,P1,P2送初值P3.0再次被按下,按P3.1那么num+,P3.1那么num并将num的值赋给SHU2启动定时器,扫描显示函数中断允许,定时开始进入中断对TTTHO,TL0重装初值定时500MS是否到1S?(Aa的值是否到20)Aa的值清0,num送入显示num的值是否到小于等于三秒且aa的值为1南北黄灯亮绿灯闪,东西黄灯亮红灯闪且bb赋2Num的值是否到小于等于三秒且aa的值为2南北黄灯亮红灯闪,东西黄灯亮绿灯闪且bb值赋1中断返回五、仿真过程