单片机交通灯说明书

上传人:wu****ei 文档编号:157133557 上传时间:2022-09-28 格式:DOC 页数:35 大小:576.02KB
收藏 版权申诉 举报 下载
单片机交通灯说明书_第1页
第1页 / 共35页
单片机交通灯说明书_第2页
第2页 / 共35页
单片机交通灯说明书_第3页
第3页 / 共35页
资源描述:

《单片机交通灯说明书》由会员分享,可在线阅读,更多相关《单片机交通灯说明书(35页珍藏版)》请在装配图网上搜索。

1、机电一体化强化训练单片机系统设计说明书交通灯控制系统设计学生姓名 指导老师 2011年11月1日 1. 设计题目: 交通灯控制系统 2. 应完成的项目: 课程设计任务书 (1) 查找相关资料,确定设计方案。 (2) 用Altium Designer Winer 09 绘制微机最小系统配置原理图和相关项目的接口原理图,并对其进行封装。 (3) 进行PCB的设计和制作。 (4)用Keil uVision编写有关项目的程序,并进行调试。 (5) 编写课程设计报告。 3. 参考资料及其说明: 微机原理与接口技术课程设计微机原理与接口技术机电一体化强化训练实训 (1)李国栋 汪新中 陆志平 周盛华编著,

2、微机原理与接口技术课程设计,浙江大学出版社,2007; (2)彭虎 周赔玲 傅忠谦编著,微机原理与接口技术,电子工业出版社,2009;(3)机电一体化强化训练实训教材 主编:姚超友 华南理工大 学广州学院实验中心出版,2011;4. 本设计任务书于 2011年11月1日发出,应于 2011年11月4日前完成,然后进行答辩。 专业教研室、研究所负责人 审核 2011 年 11 月 4 日 指导教师 签发 2011 年 11 月 4 日设计评语:设计总评成绩: 设计答辩负责人签字: 年 月 日 摘要 本设计是简单交通灯控制设计,主要能实现系统要求的功能:(1)在LED数码管上显示倒计时秒的时间,(

3、2)采用LED模拟信号灯,信号灯分东西、南北二组,分别有红,黄,绿,三种颜色。其工作状态由单片机程序控制,启动、停止按钮分别控制信号灯的启动和停止。白天/黑夜开关控制信号灯白天/黑夜转换.按下启动按钮开始工作,按下停止按钮停止工作,白天/黑夜开关按下闭合时为黑夜工作状态,这时只有黄灯闪烁,断开时按时序控制图工作。关键词单片机;交通灯;控制器目录第一章 绪论3第二章 方案论证与设计4第三章 系统硬件设计63.1总体设计63.2 单片机的选择63.3 单片机的基本结构73.4 单片机最小系统83.4.1电源引脚.103.4.2时钟电路103.4.3 复位电路113.4.4输入输出引脚123.4.5

4、 数码管显示电路14第四章 系统软件设计164.1软件流程图设计16第五章 系统仿真165.1 PROTUES软件介绍175.2 交通灯系统PROTUES仿真17第六章 调试与功能说明186.1 硬件调试186.2 软件调试问题及解决18结论19 参考文献附件1 程序附件2 电路图附件3 原理图第一章 绪论随着我国社会经济的发展,城市化、城镇化进程的加快,道路交通堵塞问题日趋严重,如何对交通进行合理的管理和调度而尽可能减少堵车现象成为目前我国很多地方尤其是特大城市急需解决的问题,显然交通灯在其中起着不可缺少的作用。 当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一

5、技术在19世纪就已出现了。1858年,在英国伦敦主要街头安装了以燃煤气为光源的红、蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两种旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年开始安装于纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿

6、灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是

7、禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。我国机动车辆发展迅速,而城镇道路建设由于历史等各种原因相对滞后。道路拥挤、阻塞现象及交通事故常有发生。如何利用当今自动控制技术,有效地疏导交通,提高城镇交通路口的通行能力,提高车辆速度,减少交通事故是值得我们研究的新课题。交通灯是城市交通中的重要指挥系统,它与人们日常生活密切相关。随着人们生活水平的提高,对交通管制也提出了更高的要求,因此提供一个可靠、安全、便捷的多功能交通灯控制系统有着现实的必要性,本文介绍的交通灯控制系统除具有一般的红绿

8、灯显示功能外,还具有倒计时功能,以方便人们的生活需求。此系统的核心控制器是MCS-51系列单片机中的AT89C51。本次设计对红绿灯显示系统、按键系统都采用keil软件调试程序,并给出了调试过程及全部程序代码。第二章 方案讨论与设计本设计以单片机为核心,以LED数码管作为倒计时指示,根据设计的要求我们考虑了各功能模块的几种设计方案,以求最佳方案,实现实时显示系统各种状态,系统还增设了根据交通拥挤情况可分别设置主干道和次干道的通行时间,以提高效率,缓减交通拥挤。系统总体设计框图如图所示。交通灯控制的框图如下图所示,主要有控制电路、按键电路、晶振电路、复位电路、显示电路、电源电路等电路组成。图12

9、.1课程设计的目的和意义课程设计是在学完单片机原理及接口技术课程之后综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现,从而加深对单片机软硬知识的理解,获得初步的应用经验,为走出校门从事单片机应用的相关工作打下基础.课程设计的要求1)数码管上显示倒计时秒的时间2)LED灯现实交通灯功能,焊接成十字路口模型3)4*4键盘设有启动和停止,并设有白天、黑夜工作状态转换功能键课程设计的内容 绿1 黄1 红1 绿2 黄2 红2 20S 6S 40S 6S 图 2交通灯工作过程这一次课程设计,所设计的是一个模拟交通灯,能控制十字路口的红绿灯的,而且能按要求倒计时,并且可以分白天黑夜工作时段,起

10、到节能的功能。设计的部分分为软件及硬件,软件部分写出控制交通灯的亮灭时间、倒计时以及它是如何工作的,而硬件部分是软件的载体,画出正确的电路图然后在软件的控制下才能使设计的模拟交通灯正常工作。22显示界面方案该系统要求完成倒计时功能。基于上述原因,本次设计考虑了两种方案:方案一:完全采用点阵式LED显示。这种方案功能强大,可方便的显示各种英文字符,汉字,图形等,但实现复杂,且须完成大量的软件工作。方案二:完全采用共阴双8数码管显示。这种方案优点是实现简单,可以完成倒计时功能。缺点是功能较少,只能显示有限的符号和数码字符。根据本设计的要求,方案二已经满足了要求,所以本次设计采用方案二以实现系统的显

11、示功能。23输入方案这里同样讨论了两种方案:方案一:采用8155扩展I/O口、键盘及显示等。该方案的优点是使用灵活可编程,并且有RAM及计数器。若用该方案,可提供较多I/O口,但操作起来稍显复杂。方案二:直接在I/O口线上接上按键开关。因为设计时精简和优化了电路,所以剩余的端口资源还比较多。方案三:串口插口的4*4键盘开关,能组合使用,功能使用多,由于零件选择只有4*4键盘开关,所以选这个、由于该系统是对交通灯及数码管的控制,只需用单片机本身的I/O口就可实现,且本身的计数器及RAM已经够用,故选择方案三。 第三章 系统硬件设计硬件设计是整个系统的基础,要考虑的方方面面很多,除了实现交通灯基本

12、功能以外,主要还要考虑如下几个因素:系统稳定度;器件的通用性或易选购性;软件编程的易实现性;系统其它功能及性能指标;因此硬件设计至关重要。现从各功能模块的实现逐个进行分析探讨。3.1总体设计本设计以单片机为控制核心,采用模块化设计,共分以下几个功能模块:单片机控制系统、键盘及状态显示、倒计时模块等。单片机作为整个硬件系统的核心,它既是协调整机工作的控制器,又是数据处理器。它由单片机振荡电路、复位电路等组成。键盘及状态显示,4*4开关键盘输入交通灯控制信号,通过单片机P2输入到系统。系统采用双8数码管倒计时计数功能,最大显示数字99。友好的人机界面、灵活的控制方式、优化的物理结构是本设计的亮点。

13、3.2单片机的选择单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机经过1、2、3、3代的发展,正朝着多功能、高性能、低电压、低功耗、低价格、大存储容量、强I/O功能及较好的结构兼容性方向发展。其发展趋势不外乎以下几个方面:1、多功能 单片机中尽可能地把所需要的存储器和I/O口都集成在一块芯片上,使得单片机可以实现更多的功能。比

14、如A/D、PWM、PCA(可编程计数器阵列)、WDT(监视定时器-看家狗)、高速I/O口及计数器的捕获/比较逻辑等。有的单片机针对某一个应用领域,集成了相关的控制设备,以减少应用系统的芯片数量。例如,有的芯片以51内核为核心,集成了USB控制器、SMART CARD接口、MP3解码器、CAN或者I*I*C总线控制器等,LED、LCD或VFD显示驱动器也开始集成在8位单片机中。2、高效率和高性能为了提高执行速度和执行效率,单片机开始使用RISC、流水线和DSP的设计技术,使单片机的性能有了明显的提高,表现为:单片机的时钟频率得到提高;同样频率的单片机运行效率也有了很大的提升;由于集成度的提高,单

15、片机的寻址能力、片内ROM(FLASH)和RAM的容量都突破了以往的数量和限制。由于系统资源和系统复杂程度的增加,开始使用高级语言(如C语言)来开发单片机的程序。使用高级语言可以降低开发 难度,缩短开发周期,增强软件的可读性和可移植性,便于改进和扩充功能。3、低电压和低功耗单片机的嵌入式应用决定了低电压和低功耗的特性十分重要。由于CMOS等工艺的大量采用,很多单片机可以在更低的电压下工作(1.2V或0.9V),功耗已经降低到uA级。这些特性使得单片机系统可以在更小电源的支持下工作更长的时间。4、低价格单片机应用面广,使用数量大,带来的直接好处就是成本的降低。目前世界各大公司为了提高竞争力,在提

16、高单片机性能的同时,十分注意降低其产品的价格。下面大致介绍一下单片机的主要应用领域和特点。(1)家用电器领域 用单片机控制系统取代传统的模拟和数字控制电路,使家用电器(如洗衣机、空调、冰箱、微波炉、和电视机等)功能更完善,更加智能化和易于使用。(2)办公自动化领域单片机作为嵌入式系统广泛应用于现代办公设备,如计算机的键盘、磁盘驱动、打印机、复印机、电话机和传真机等。(3)商业应用领域商业应用系统部分与家用和办公应用系统相似,但更加注重设备的稳定性、可靠性和安全性。商用系统中广泛使用的电子计量仪器、收款机、条形码阅读器、安全监测系统、空气调节系统和冷冻保鲜系统等,都采用了单片机构成的专用系统。与

17、通用计算机相比,这些系统由于比较封闭,可以更有效地防止病毒和电磁干扰等,可靠性更高。(4)工业自动化在工业控制和机电一体化控制系统中,除了采用工控计算机外,很多都是以单片机为核心的单片机和多机系统。(5)智能仪表与集成智能传感器目前在各种电气测量仪表中普遍采用了单片机应用系统来代替传统的测量系统,使得测量系统具有存储、数据处理、查询及联网等智能功能。将单片机和传感器相结合,可以构成新一代的智能传感器。它将传感器变换后的物理量作进一步的变化和处理,使其成为数字信号,可以远距离传输并与计算机接口。(6)现代交通与航空航天领域通常应用于电子综合显示系统、动力监控系统、自动驾驶系统、通信系统以及运行监

18、视系统等。这些领域对体积、功耗、稳定性和实时性的要求往往比商用系统还要高,因此采用单片机系统更加重要。目前,我国生产很多型号的单片机,在此,我们采用型号为AT89C52的单片机。因为:AT89C52是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-52指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C52提供了高性价比的解决方案。AT89C52是一个低功耗高性能单片机,40个引脚,

19、32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。3.3单片机的基本结构 MCS-52单片机内部结构8052单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8

20、位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(RAM)8052内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。图3 单片机8051的内部结构程序存储器(ROM):8052共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。定时/计数器:8052有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。并行

21、输入输出(I/O)口:8052共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。全双工串行口:8052内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。中断系统:8052具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。时钟电路:8052内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。MCS-52的引脚说明:MCS-52系列单片机中的8031、8051及8751均采用40Pin封装的双

22、列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:MCS-52的引脚说明:MCS-52系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:Pin9:RESET/Vpd复位信号复用脚,当8052通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系

23、统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写图4单片机的引脚图入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8052的初始态。8052的复位方式可以是自动复位,也可以是手动复位,见下图4。此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。Pin30:ALE/当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE端将有一个1

24、/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。 如果单片机是EPROM,在编程其间,将用于输入编程脉冲。Pin29:当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。Pin31:EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不管地

25、址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,EA端必须接地。 3.4单片机最小系统单片机最小应用系统,是指用最少的原件组成的单片机可以工作的系统。对51系列单片机来说,最小系统应包括单片机、晶振电路、复位电路。下面介绍51单片机的最小系统电路图图5单片机的最小系统是由电源、复位、时钟,下面介绍一下每一个组成部分。电源引脚 Vcc40电源端GND20接地端工作电压为5V,另有AT89LV51工作电压则是2.7-6V, 引脚功能一样。图6时钟电路时钟电路XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而

26、XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。AT89单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此

27、系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22F。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。复位电路在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P0P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用

28、来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路。当时钟频率选用6MHz时,C取22F,Rs约为200,Rk约为1K。复位操作不会对内部RAM有所影响。本设计用的复位为上电复位,电路图如下:图7上电复位常用的复位电路34.4输入输出引脚(1) P0端口P0.0-P0.7 P0是一个8位漏极开路型双向I/O端口,端口置1(对端口写1)时作高阻抗输入端。作为输出口时能驱动8个TTL。对内部Flash程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻。在访问外部程序和外部数据存

29、储器时,P0口是分时转换的地址(低8位)/数据总线,访问期间内部的上拉电阻起作用。(2) P1端口P1.0P1.7 P1是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存储器编程时,接收低8位地址信息。(3) P2端口P2.0P2.7 P2是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存储器编程时,接收高8位地址和控制信息。在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。而在访问8位地址的外部数据

30、存储器时其引脚上的内容在此期间不会改变。(4) P3端口P3.0P3.7 P2是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。P3引脚兼用功能P3.0串行通讯输入(RXD)P3.1串行通讯输出(TXD)P3.2外部中断0( INT0)P3.3外部中断1(INT1)P3.4定时器0输入(T0)P3.5定时器1输入(T1)P3.6外部数据存储器写选通WRP3.7外部数据存储器写选通RDP3.7外部数据存储器写选通RD对内部Flash程序存储器编程时,接控制信息。除此之外P3端口还用于一些专门功能,具体请看下表。该系统输入电路采

31、用的是P2口,外接4*4键盘。其图如下:系统的数码管显示采用的是P1口,交通灯led灯采用P0和P3.0、P3.1、P3.2、P3.3管脚。其电路如下图: 图8Led灯数码管的锁存器部分电路Led灯数码管数码管显示电路单片机中通常使用7段LED,LED是发光二极管显示器的缩写。LED显示器由于结构简单,价格便宜,体积小,亮度高,电压低,可靠性高,寿命长,响应速度快,颜色鲜艳,配置灵活,与单片机接口方便而得到广泛应用。LED显示器是由若干个发光二极管组成显示字段的显示部件,当发光二极管导通时,相应的一个点或一个笔划发光,控制不同组合的二极管导通,就能显示出各种字符。LED七段数码显示器由8个发光

32、二极管组成显示字符,根据内部发光二极管的连接形式不同,LED有共阴极和共阳极两种,本系统采用共阴极。LED的结构及连接如图所示LED显示原理当选用共阴极的LED时,所有发光二极管阴极连在一起接地,当某个发光二极管的阳极加入高电平时,对应的二极管点亮。因此要显示某字形就应使此字形的相应段的二极管点亮,实际上就是送一个用不同电平组合代表的数据字来控制LED的显示,此数据为字符的段码或称为字型码。字型码与LED显示器各段的关系为D7D6D5D4D3D2D1D0dpgfedcba表3-1dp为小数点,字符0、1、2F的段码如表所示字符段码(共阴)段码(共阳)03FHCOH106HF9H25BHA4H3

33、4FHB0H466H99H56DH92H67DH82H707HF8H87FH80H96FH90HA77H88HB7CH83HC39HC6HD5EHA1HE79H86HF71H8EH-40HBFH.80H7FH熄灭00HFFH表3-2第四章 系统软件设计软件在硬件平台上构筑,完成各部分硬件的控制和协调。系统功能是由软件共同实现的,由于软件的可伸缩性,最终实现的系统功能可强可弱,差别可能很大。因此,软件是本系统的灵魂。软件采用模块化设计方法,不仅易于编程和调试,也可减小软件故障率和提高软件的可靠性。同时,对软件进行全面测试也是检验错误排除故障的重要手段。4.1软件流程图设计软件总体设计主要完成各部

34、分的软件控制和协调。本系统主程序模块主要完成的工作是对系统的初始化,发送显示数据,同时对键盘进行扫描,等待外部中断,以及根据所需要的功能进行相应的操作。其流程图如图所示。软件总体流程图第五章 系统仿真5.1 软件介绍Proteus软件是Labcenter Electronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键

35、盘、LED、LCD等等。通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。5.2交通灯系统PROTUES仿真用PROTUES软件,根据交通灯的原理图,画出仿真图,得到的图如下所示仿真图第六章 调试与功能说明单片机应用系统的调试包括硬件和软件两部分,但是他们并不能完全分开。一般的方法是排除明显的硬件故障,再进行综合调试,排除可能的软/硬件故障。第六章 调试与功能说明6.1硬件调试拿到电路板后,首先要检查加工质量,并确保没有任何方面的错误,如短路和断路,尤其要避免电源短路;元器件在安装前要逐一检查,用万用表测其数值,看是否与所用相同;完成焊接后,应先空载上电(芯片

36、座上不插芯片),并检查各引脚的电位是否正确。若一切正常,方可在断电的情况下将芯片插入,再次检查各引脚的电位及其逻辑关系。将万用表的探针放到单片机接电源的引脚上检测一下,看是否符合要求。6.2软件调试问题及解决软件程序的调试一般可以将重点放在分模块调试上,统调是最后一环。软件调试可以采取离线调试和在线调试两种方式。前者不需要硬件仿真器,可借助于软件仿真器即可;后者一般需要仿真系统的支持。本次课题,Keil软件来调试程序,通过各个模块程序的单步或跟踪调试,使程序逐渐趋于正确,最后统调程序。仿真部分采用protus 6 professional软件,此软件功能强大且操作较为简单,可以很容易的实现各种

37、系统的仿真。首先打开protus 6 professional软件,在元件库中找到要选用的所有元件,然后进行原理图的绘制;绘制好后再选择wave6000已经编译好的*.hex文件,选择运行,观察显示结果,根据显示的结果和课题的要求再修改程序,再运行查,直到满足要求。第七章 总结本设计以单片机为核心,以LED数码管作为倒计时指示,该设计很好地完成了设计的各项要求,主要体现如下:该设计的交通灯控制器,实现了能根据实际车流量通过AT89C51芯片的P1口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩6秒时黄灯闪烁警示绿灯时间可通过双位数码管显示。单片机是一门应用性很强的学科,课程设计是培养我们

38、综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对我们实际工作能力的具体训练和考察过程,为自己今后从事与单片机控制系统有关的工作打下了基础。虽然在做课程设计以前已经系统的把单片机课本认真的学习了一下,但是在刚开始时还是有点一头雾水,不知道该从哪里下手。令人欣慰的是经过几周的学习,虽然过程很艰辛,问了很多朋友,但是总算实现了定时闹钟的功能,所有的努力都很值得。这几周的大部分时间都在研究程序怎么处理,在这个过程中加深了我对汇编语言命令的应用,而且也更加了解到软硬件配套的重要性。以下是我本次单片机课程设计的几点心得与体会:1. 在设计程序之前,务必要对所学单片机课程的内容

39、有一个系统的了解,知道单片机片内片外的内容及其功能。2. 设计程序采用什么编程语言并不是非常重要,关键要有一个清晰的思路和一个完整的软件流程图。模块化的设计思想在程序设计中的作用是十分大的,它可以为你提供一个比较清晰的思路,并且很容易找到头绪,不至于在设想一个程序时感觉到无从下手。3. 在设计程序时,不能妄想一次就将整个程序设计好,反复修改,不断改进是程序设计的必经之路。程序刚开始编好时,一般情况下会存在很多错误,要不断地修改,不断的改进才能达到预期的目的,编写程序的时间并不是很长,主要是修改程序会花很多时间。4. 要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能

40、明白你的思路,这样也为资料的保存和交流提供了方便。刚开始我在编写程序时,很不习惯于写注释,感觉很麻烦,而且没用,但是在修改的过程中我就遇到了较大的麻烦,以至于不得不重新的作了注释,以增加程序的易读性,从而使修改过程变得容易一些。 总之,通过这次课程设计不仅使我巩固了本课程所学的基本知识,还使我具有了撰写设计报告的初步训练能力,我相信这些能力在我以后的工作或者是再学习中一定会起到不小的作用,看到自己几周的小成果,感觉一切的辛苦和艰难都是值得的。参考文献1余发山著.单片机原理及应用技术江苏:中国矿业大学出版社. 2003年.97-1182阎石.数字电子技术基础(第三版). 北京:高等教育出版社,1

41、9893廖常初.现场总线概述J.电工技术,1999.4金显贺,王昌长,王忠东,等.一种用于在线检测局部放电的数字滤波技术.清华大学学报(自然科学版),1993,33(4):62-675刘国钧,陈绍业,王凤翥.图书馆目录.北京:高等教育出版社,1957.15-186康华光.数字电子技术. 北京: 高等教育出版社,20037吴金戌.8051单片机实践与应用. 北京: 清华大学出版社,2003附件1: 交通灯控制程序#include #include #define uchar unsigned char#define uint unsigned int#define scanport P2sbit

42、 yellowled_d=P06;/东西黄灯sbit yellowled_n=P03;/南北黄灯sbit yellowled_x=P00;/东西黄灯sbit yellowled_b=P31;sbit w_sel_1=P34;sbit w_sel_2=P35;sbit w_sel_3=P36;sbit w_sel_4=P37;sbit L1=P30;sbit L2=P32;sbit L3=P33;uchar code table11=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;uchar uca_LineScan4=0xEF,0x

43、DF,0xBF,0x7F;uchar data dig;/位选uchar data led;/偏移量uchar data buf4;uchar data sec_dx=46;/东西数码指示值uchar data sec_nb=26;/南北数码指示值uchar data set_timedx=46;uchar data set_timenb=26;/倒计时设置的键值保存uchar day_flag;uchar data b;/定时器中断次数bit time;/灯状态循环标志void delay(int ms);/延时子程序uchar key_scan();/按键扫描子程序void key_pro

44、cess();/按键处理函数void main()TMOD=0X01;/定时器0选择方式1,16位定时TH0=0X3C;/设定定时初值TL0=0XB0;EA=1; /开中断ET0=1;TR0=1; /开始计时P0=0Xb6;/ 南北通行L2=0;yellowled_b=1;L1=1;L3=1;day_flag=1;/标志位初始化time=0;while(1)key_process();/按键处理函数uchar key_scan() uchar ucTemp=0; /扫描状态暂存。uchar ucRow=0,ucLine=0; /行号,列号。for(ucLine=0;ucLine4;ucLine

45、+)/列扫描scanport=uca_LineScanucLine; /输出扫描电位。ucTemp=scanport&0x0f; /输入扫描电位,并屏蔽高4位。if(ucTemp!=0x0f) /判断该列是否有按键按下 delay(10);if(ucTemp!=0x0f) switch(ucTemp)case 0x0e: ucRow=10;break; /如果有,则判断行号。case 0x0d: ucRow=20;break;case 0x0b: ucRow=30;break;case 0x07: ucRow=40;break;default: ucRow=50;break; break; r

46、eturn ucRow+ucLine+1; /返回按键编码。格式为2位数,高位为行号,低位为列号。void key_process() uchar key_value;key_value=key_scan();if(key_value=11) /停止 EA=0; ET0=0; TR0=0; if(key_value=12) /开始 EA=1; ET0=1; TR0=1; if(key_value=13) /黑夜 day_flag=0;P1=0xff; if(key_value=14) /白天 day_flag=1; P1=0X7c; sec_dx=set_timedx; sec_nb=set_

47、timenb; void display()if(time=0) buf1=sec_nb/10; /第1位 东西秒十位 buf2=sec_nb%10; /第2位 东西秒个位 buf3=sec_nb/10; /第3位 南北秒十位 buf0=sec_nb%10; /第4位 南北秒个位else buf1=sec_dx/10; /第1位 东西秒十位 buf2=sec_dx%10; /第2位 东西秒个位 buf3=sec_dx/10; /第3位 南北秒十位 buf0=sec_dx%10; /第4位 南北秒个位 w_sel_4=0;w_sel_4=1;w_sel_4=1;w_sel_4=1;P1=tabl

48、ebuf0;delay(2);w_sel_4=1;w_sel_4=0;w_sel_4=1;w_sel_4=1;P1=tablebuf1;delay(2);w_sel_4=1;w_sel_4=1;w_sel_4=0;w_sel_4=1;P1=tablebuf2;delay(2);w_sel_4=1;w_sel_4=1;w_sel_4=1;w_sel_4=0;P1=tablebuf3;delay(2); void time0(void) interrupt 1 using 1 /定时中断子程序b+;if(b=10) / 定时器中断次数。b=0;if(day_flag=1) /如果是白天 if(ti

49、me=0) sec_nb-;elsesec_dx-; else/如果是晚上 sec_dx=8; sec_nb=8; if(day_flag=1) if(sec_dx=6&time=1) yellowled_n=1;/南北黄灯亮 yellowled_b=1; delay(300); yellowled_n=0; yellowled_b=0;if(sec_dx=5&time=1) yellowled_n=1;/南北黄灯亮 yellowled_b=1; delay(300); yellowled_n=0; yellowled_b=0; if(sec_dx=4&time=1) yellowled_n=

50、1;/南北黄灯亮 yellowled_b=1; delay(300); yellowled_n=0; yellowled_b=0; if(sec_dx=3&time=1) yellowled_n=1;/南北黄灯亮 yellowled_b=1; delay(300); yellowled_n=0; yellowled_b=0;if(sec_dx=2&time=1) yellowled_n=1;/南北黄灯亮 yellowled_b=1; delay(300); yellowled_n=0; yellowled_b=0; if(sec_dx=1&time=1) yellowled_n=1;/南北黄灯

51、亮 yellowled_b=1; delay(300); yellowled_n=0; yellowled_b=0; if(sec_nb=6&time=0) yellowled_d=1;/东西黄灯亮 yellowled_x=1; delay(300); yellowled_d=0; yellowled_x=0;if(sec_nb=5&time=0) yellowled_d=1;/东西黄灯亮 yellowled_x=1; delay(300); yellowled_d=0; yellowled_x=0; if(sec_nb=4&time=0) yellowled_d=1;/东西黄灯亮 yello

52、wled_x=1; delay(300); yellowled_d=0; yellowled_x=0; if(sec_nb=3&time=0) yellowled_d=1;/东西黄灯亮 yellowled_x=1; delay(300); yellowled_d=0; yellowled_x=0;if(sec_nb=2&time=0) yellowled_d=1;/东西黄灯亮 yellowled_x=1; delay(300); yellowled_d=0; yellowled_x=0; if(sec_nb=1&time=0) yellowled_d=1;/东西黄灯亮 yellowled_x=

53、1; delay(300); yellowled_d=0; yellowled_x=0; if(sec_dx=0|sec_nb=0) /东西或南北先到达1S时即开始重新计时 sec_dx=set_timedx;sec_nb=set_timenb; /第一次循环结束重置 if(time=0)P0=0Xdb; /东西通行L1=0;yellowled_b=1;L2=1;L3=0;elseP0=0Xb6;/ 南北通行 L2=0; yellowled_b=1; L1=1; L3=1; /南北通行time=!time; /取反 else yellowled_n=1; yellowled_b=1; yellowled_d=1; yellowled_x=1; delay(300); yellowled_n=0; yellowled_b=0; yellowled_d=0; yellowled_x=0

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!