课程设计(论文)基于STC89C52单片机的交通灯设计.doc

上传人:laozhun 文档编号:3993455 上传时间:2023-03-30 格式:DOC 页数:15 大小:163.50KB
返回 下载 相关 举报
课程设计(论文)基于STC89C52单片机的交通灯设计.doc_第1页
第1页 / 共15页
课程设计(论文)基于STC89C52单片机的交通灯设计.doc_第2页
第2页 / 共15页
课程设计(论文)基于STC89C52单片机的交通灯设计.doc_第3页
第3页 / 共15页
课程设计(论文)基于STC89C52单片机的交通灯设计.doc_第4页
第4页 / 共15页
课程设计(论文)基于STC89C52单片机的交通灯设计.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《课程设计(论文)基于STC89C52单片机的交通灯设计.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)基于STC89C52单片机的交通灯设计.doc(15页珍藏版)》请在三一办公上搜索。

1、目录1 系统设计51.1 设计要求51.2 硬件设计部分51.2.1 交通灯系统电路51.2.2 单片机最小系统电路(见附录1)61.2.3 复位电路61.2.4 晶振电路61.2.5 74HC573的功能(见附录2)71.2.6 发光二极管81.2.7 数码管82 软件设计(见附录3)93 电路原理图的制作93.1电路原理图的设计93.2 PCB的制作10结 论13参 考 文 献14摘要本次设计系统有交通灯设置电路、单片机、显示电路等构成。信号灯控制的实现是通过电路与C语言程序的结合来完成,其中信号灯的模拟采用了发光二极管,发光二极管有熄灭、点亮和闪烁三种信号,其中闪烁信号的产生运用了延时程

2、序来实现,而时间倒数方面引进了LED数字显示,克服了人们在等待时的心急的心情,减少了红灯未灭,闯红灯的现象。电路部分原理图是通过用 Protel 99SE软件绘制设计,C语言程序的设计与调试都在KEIL上完成。 本系统功能设计完善,采用AT89C52单片机为核心,具有实用,方便,灵活的特点。随着电子技术的广泛应用,车辆日益增多将成为一种发展趋势,所以要有一套安全可靠的交通指示灯。单片机AT89S52为控制核心,以红、绿、黄三种LED发光管作为直行和左右拐弯以及行人通行的指示,以LED数码管作为倒计时指示,完成了题目要求的所有功能。在此基础上对系统进行了优化设计,整体性好,人性化强、可靠性高。关

3、键词:单片机;交通灯;显示1 系统设计1.1 设计要求 南北方向红灯与东西方向绿灯同时亮,倒计时30秒,数码管显示;南北方向黄灯与东西方向黄灯亮,倒计时3秒,数码管显示;南北方向绿灯与东西方向红灯亮时,倒计时30秒,数码管显示。 1.2 硬件设计部分根据本设计交通灯的模型和实现的功能,硬件部分可以分为以下两个大的系统:单片机系统、交通灯演示系统。1.2.1 交通灯系统电路根据功能,交通灯的演示系统从功能上则分为:倒计时电路、红绿灯功能电路。交通灯演示系统电路图1.2.1如示。倒计时电路主要是由双位共阴数码管和74HC573N驱动模块组成,控制信号通过单片机的端口P1口进行信号的传输。倒计时电路

4、负责的是显示红绿灯持续显示的时间。当绿灯或者红灯持续显示时,数码管显示该状态的持续时间,在黄灯闪烁显示时,起到倒计时秒数的作用。红绿灯功能电路主要是由各色的发光二极管组成,控制信号通过P1口进行传输。红绿灯电路负责的是各个车行道和人行道通行状态的显示。 图1.2.1交通灯的电路图1.2.2 单片机最小系统电路(见附录1)本设计单片机主要是用于控制交通灯的演示系统,故只需要单片机最小系统即可完成。单片机的最小系统是指能够驱动单片机工作的最小电路。此电路由单片机、显示电路、电源、复位电路4个组成部分组成。单片机最小电路的电路图1.2.3 复位电路单片机复位是使CPU和系统中的其他功能部件都处在一个

5、确定的初始状态,并从这个状态开始工作,例如复位后PC0000H,使单片机从第个单元取指令。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。在复位期间(即RST为高电平期间),P0口为高组态,P1P3口输出高电平;外部程序存储器读选通信号PSEN无效。地址锁存信号ALE也为高电平。图1.2.3为单片机复位电路的电路图 如图1.2.3 复位电路图 如图1.2.4晶振电路图 1.2.4 晶振电路STC89C52引脚XTAL1和XTAL2与晶体振荡器及电容C2、C1按下图2.3所示方式连接。晶振、电容C1C2及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振

6、频率及电容C1、C2的容量有关,但主要由晶振频率决定,范围在033MHz之间,电容C1、C2取值范围在30pF左右。根据实际情况,本设计中采用11.0592MHZ做系统的外部晶振。电容取值为33pF。图1.2.4为单片机晶振电路的电路图1.2.5 74HC573的功能(见附录2)SL74HC573跟 LS/AL573的管脚一样。器件的输入是和标准CMOS输出兼容的;加上拉电阻,他们能和 LS/ALSTTL输出兼容。 当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。 原理说明: M54HC563/74HC563/M5

7、4HC573/74HC573的八个锁存器都是透明的D 型锁存器,当使能(G)为高时,Q 输出 将随数据(D)输入而变。当使能为低时,输出将锁存在已建立的数据电平上。输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时, 新的数据也可以置入。这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。特别适用于缓冲寄存器,I/O 通道,双向总线驱动器和工作寄存器。HC573引脚功能表:引脚号符号名称及功能1OE3态输出使能输入(低电平)2, 3, 4, 5, 6, 7, 8, 9D0 to D7数据输入12,13,14,15,16,17,18,19Q0

8、to Q73态锁存输出11LE锁存使能输入10GND接地(0V)20VCC电源电压1.2.6 发光二极管半导体发光器件包括半导体发光二极管(简称LED)、数码管、符号管、米字管及点阵式显示屏(简称矩阵管)等。事实上,数码管、符号管、米字管及矩阵管中的每个发光单元都是一个发光二极管。图1.2.6是发光二管 如图1.2.6 发光二极管图1.2.7 数码管1. LED数码管分类:按其内部结构可分为共阴型和共阳型;导通时正向压降一般为1.52V,额定电流为10mA,最大电流为40mA。 2. 数码管工作原理共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起。通常,公共阳极接高电平(一般接电源)

9、,其它管脚接段驱动电路输出端。当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮。根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。图1.2.7是数码管图如图1.2.7 数码管图2 软件设计(见附录3)相较于C语言,汇编语言的机器代码生成效率很高但可读性却并不强,复杂一点的程序就更是难读懂,而C 语言在大多数情况下其机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,而且C 语言还可以嵌入汇编来解决高时效性的代码编写问题。对于开发周期来说,中大型的软件编写用C 语言的开发

10、周期通常要小于汇编语言很多。综合以上C 语言的优点,本设计在编程的时候选择了C 语言。本设计在编程环境上也选择了Keil Vision 4.0。这款软件支持众多不同公司的MCS51架构芯片,它集编辑、编译、仿真为一体,同时还支持PLM、汇编和C语言的程序设计,界面友好、简单易学,在调试程序。软件仿真方面都有很强大的功能。在初期的软件调试阶段,Keil Vision会提供非常便利的环境。在本次设计中,采用了C语言作为程序编程的语言,程序见附录3。3 电路原理图的制作3.1电路原理图的设计1、设置电路图纸参数及相关信息根据电路图的复杂程度设置图纸的格式、尺寸、方向等参数以及与设计有关的信息,为以后

11、的设计工作建立一个合适的工作平面。2、装入所需要的元件库将所需的元件库装入设计系统中,以便从中查找和选定所需的元器件。3、设置元件将选定的元件放置到已建立好的工作平面上,并对元件在工作平面上的位置进行调整,对元件的序号、封装形式、显示状态等进行定义和设置,以便为下一步的布线工作打好基础。4、电路图布线利用Protel所提供的各种工具、命令进行画图工作,将事先放置好的元器件用具有电气意义的导线、网络标号等连接起来,布线结束后,一张完整的电路原理图基本完成。5、调整、检查和修改利用Protel所提供的各种工具对前面所绘制的原理图做进一步的调整和修改。6、补充完善对原理图做一些相应的说明、标注和修饰

12、,增加可读性和可观性。7、保存和打印输出,电路如图3-1如图3-1 基于STC89C52单片机的交通灯设计原理图 3.2 PCB的制作1得到正确的原理图和网络表绘制原理图是绘制PCB板图的前提,网络表是连接原理图和PCB板图的中介,所以在绘制PCB电路板之前一定要先得到正确的原理图和网络表。2画出自己定义的非标准器件的封装库自己独立绘制的封装一定要在PCB设计之前完成,在制作PCB电路板时,我们会导入这些自己制作的封装。3规划电路板电路板是采用单面板还是多层板,电路板的形状、尺寸等具体的参数以及电路板的安装方式等在这里都要一并考虑。另外,还要考虑电路板与外界的接口形式,选择具体接插件的封装形式

13、。4设置环境参数我们可以根据自己的习惯来设置环境参数。环境参数包括栅格大小、光标捕捉大小、公制英制的转换、工作层面颜色等。5打开所有要用到的库文件后调入网络表文件需要注意的是要先把所有的库文件全都打开后,再导入网络表文件。否则,在导入网络表时会出现元件找不到封装的情况。6设定工作参数主要进行PCB板的图层设定。7元件手工布局应当从机械结构、散热、电磁干扰、将来布线的方便性等方面综合考虑。先布置与机械尺寸有关的器件并锁定这些器件,然后是大的占位置的器件和电路的核心元件,再是外围的小元件。对于同一个器件用多种封装形式的,可以把这个器件的封装改为第二种封装形式并放好后 这个器件用撤消元件组功能,然后

14、再调入一次网络表并放好新调入的这个器件,有更多种封装形式时依此类推。放好后可以用VIEW3功能查看一下实际效果.如果不甚满意的话可以根据实际情况再作适当调整,然后将全部器件锁定。假如板上空间允许,则可在板上放上一些类似于实验板的布线区。对于大板子应在中间多加固定螺丝孔,板上有重的器件或较大的接插件等受力器件边上也应加固定螺丝孔。有需要的话,可在适当位置放上一些测试用焊盘。将过小的焊盘过孔改大,将所有固定螺丝孔焊盘的网络定义到地或保护地等。8制订详细的布线规则布线规则包括使用层面、各组线宽、过孔间距、布线的拓朴结构等,我们要根据所设计的板子的实际情况来进行设定。另外,还要在不希望有走线的区域内放

15、置FILE填充层9对线路进行手工布线电路需要自己手动布线,必须要按照指定路线布线的电路也要进行手工布线。10布线完成后的调整布通之后,对布线进行手工初步调整。调整的内容有:需加粗的地线、电源线、功率输出线等进行手动加粗;某几根绕得太多,太过繁琐的线重布;消除部分不必要的过孔。另外,我们还要切换到单层显示模式下将每个布线层的线拉整齐和美观。手工调整时应经常进行DRC,因为有时有些线会断开。快完成时可将每个布线层单独打印出来以方便改线。调整完毕后用VIEW3D功能查看实际效果,满意后进行下一步。11印制板文件的保存和导出ProtelDXP绘制PCB电路板的设计完成后,我们还要完成印制板文件整理并存

16、档,打印出图纸等工作。可以导出元件明细表,生成电子表格文档作为元件清单等。最后,我们还要说明电路板上有特殊要求的地方,然后提交给制板加工厂进行电路板的加工其PCB图,图3.2PCB图图3.2 基于STC89C52单片机的交通灯设计PCB图结 论本文探究了单片机在当今智能交通方面的应用。相对于其他解决方案来说,单片机具有成本低廉,通用性高,维护简单,软件灵活,成熟度高等优势。但是,单片机发展到现在也有存储空间较小、下游方案较少等局限性。本设计在实现相应功能的时候主要是考虑到现有的条件,采用成熟度高的STC89C52作为CPU的解决方案,同时用LED灯和双位数码管作为显示模块,软件则使用了移植性好

17、的C语言。从功能需求上来看,已经能够满足实际需要,对提高交通运输系统的运行效率也有很大的帮助。参 考 文 献谭浩强.2005.C程序设计(第三版).北京:清华大学出版社.95-104肖金球.2004.单片机原理与接口技术.北京:清华大学出版社.210-230彭冬明,韦友春.2007.单片机实验教程.北京:北京理工大学出版社.58-65 范立南.1996.单片微机接口与控制技术.沈阳:辽宁大学出版社.110-135李华.1993.MCS-51系列单片机实用接口技术.北京:北京航空航天大学出版社.36-56张伟,王丽,赵晶.2003.电路设计与制作Protel DXP入门与提高.北京:人民邮电出版

18、社.300-320附录1 单片机最小系统附录2 74HC573的功能引脚图 附录3 软件程序/基于STC89C52单片机的交通灯设计 徐梅#include#includevoid main() /主函数(调用xianshi.h文件中的函数 ) init(); /中断初始化while(1) xianshi(); /循环显示函数#ifndef _XIANSHI_H_#define _XIANSHI_H_#include#define uchar unsigned char#define uint unsigned intuchar code shuzhu=0x3f,0x06,0x5b,0x4f,

19、0x66,0x6d,0x7d,0x07,0x7f,0x6f; /数码管显示数组void delay (uint x) /延时 uint i,j; for(i=x;i0;i-) for(j=110;j0;j-); sbit dula=P26;sbit wela=P27;uchar n,s,g,w=30,num=0,deng=0xf5;/定义变量 /定义变量deng并赋初值0xf5bit flag=0; /标志位 void init() /初始化定时时器中断 TMOD=0x01;TL0=(65536-45872)/256;TH0=(65536-45872)%256;EA=1;ET0=1;TR0=1

20、; void xianshi() /显示 g=w%10;/数据分离取得个位上的数 s=w/10;/数据分离取得十位上的数wela=1;P0=0xdf;wela=0;dula=1;P0=shuzhug;dula=0;delay(5);wela=1;P0=0xef;wela=0;dula=1;P0=shuzhus;dula=0;delay(5);void timer0() interrupt 1 /中断函数 TL0=(65536-45872)/256;TH0=(65536-45872)%256;n+;if(n=20)n=0;w-; P1=deng;if(w=0)/判断第一次m是否减到零 num+;/让a加1 if(num=1) /判断a=1 deng=0xcf; /让黄亮 w=5; /给m赋值 if(num=2) /判断a=2 flag=flag; /标志位取反 if(flag=1) /判断标志位 deng=0xfa; /红一绿一亮 else deng=0xf5;/红二绿二亮 w=30;/给m赋值 if(num=3) /判断a=3 num=0; /a清零deng=0xcf; /黄亮w=5; #endif

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号