毕业设计(论文)-单片机交通控制灯的设计与实现.doc_第1页
毕业设计(论文)-单片机交通控制灯的设计与实现.doc_第2页
毕业设计(论文)-单片机交通控制灯的设计与实现.doc_第3页
毕业设计(论文)-单片机交通控制灯的设计与实现.doc_第4页
毕业设计(论文)-单片机交通控制灯的设计与实现.doc_第5页
免费预览已结束,剩余34页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕 业 设 计 任 务 书专业 通信技术年级 20xxx班级 1姓名 xxx 学号 20xxx0207026 毕业设计指导须知一、毕业设计是高职教学过程中一个十分重要的环节。是锻炼学生运用所学知识正确分析和解决实际问题的一个重要方面,也是高职培养应用型专门人才的要求。二、导教师应为具有讲师以上或相应职称的有关专业人员,且专业对口(指所指导专业应同所聘教师专业职称相一致)。经系、教务处审查同意后,才能指导学生的毕业设计。三、学生应以严肃认真,实事求是的态度完成设计。要独立思考,自己动手,不得抄袭或找人代笔。四、毕业设计选题要符合专业培养目标的要求。论文(任务书)写作要做到论点明确、论据充分,论理透彻,语言准确恰当,书面整洁、字迹工整,图纸应清晰、工整,符合设计要求,符合国家有关标准和部颁标准。字数、图纸数量符合有关要求。并在规定的时间内完成。五、答辩过程中学生要严认真,文明礼貌,谦虚谨慎,认真回答答辩主持人,委员等提出的问题。六、填报有关表格时,应按项目要求逐项填实、填全、填清。学号20xxx0207026姓名xxx学 制三年专业 通信技术年级20xxx 教学班负责人xxx班级1 指导教师姓名xxx职务或职称讲师设 计 题 目单片机交通控制灯的设计与实现指导教师评语:成绩: 指导教师签名: 工作单位 年 月 日系复审意见:成绩: 复审人签名: 职称: 公章 年 月 日教务处终审意见:公章 年 月 日答 辩 情 况 记 录答 辩 题 目答 辩 情 况正确基本正确经提示回 答不正确未回答答辩委员会(或小组)评语:成绩: 主持答辩人签名: 职称: 月 日一、毕业设计的任务和具体要求:1.任务(1)巩固和提高学过的基础理论和专业知识;(2)提高运用所学专业知识进行独立思考和综合分析、解决实际问题的能力;(3)掌握正确的思维方法和利用软件和硬件解决实际问题的基本技能;(4)增强对单片机的认识,掌握分析处理问题的方法,进行调试、计算等基本技能的训练,达到具有一定程度的实际工作能力。(5)掌握科研、资料查询的基本方法以及获取新知识的能力。(6)学习和获取新知识,掌握自我学习的能力。(7)通过参与实际工作,能够了解单片机行业的具体工作。2.具体要求(1)利用单片机、数码管及发光二极管制作成十字路所使用的交通灯,要求a车道和b车道两条交叉道路上的车辆交替运行,a车道车辆行进60s,b车道车辆行进30s.(2)当还有5秒车辆禁止时,绿灯闪3秒,黄灯亮2秒。(3)在十字路口设置时钟来显示a,b道停止和行进的时间 。(4) 当有紧急情况发生时,a,b道红灯同时亮,以让特殊车辆通过。 (5)并对单片机的特点,各部分的工作原理及功能加以阐述。二、毕业设计应完成的图纸:,图2-18051内部结构线路图 ,见3页图2-2 8051内部结构图,见4页图2-3 单片机的引脚图,见5页图2-4 单片机的复位电路图,见6页图3-1 单片机的最小系统图,见7页图3-2 数码管的引脚图,见9页图3-3 max232的电路图,见 页图3-3 交通灯的硬件电路图,见 页表4-1 p1端口的赋值表,见 页表4-2 发光二极管的亮灭时间表,见 页表4-3 中断类型说明表,见 页表4-4 tcon的格式表,见 页表4-5 寄存器ie的格式表,见 页表4-6 tmod的格式表,见 页图5-1 proteus的启动界面,见 页图5-2 元器件库对话框,见 页图5-3 绘制线路举例图,见 页图5-4 连接元器件举例图,见 页图5-5 元器件编辑对话框,见 页三、其他要求:四、毕业设计的期限:自 2008 年 9 月 1 日至 2008 年 10 月 10 日五、毕业设计(论文)进度计划:起 至 日 期工 作 内 容备 注2008.9.12008.9.82008.9.92008.9.112008.9.12008.9.152008.9.12008.9.212008.9.22008.9.252008.9.22008.9.272007.9.22007.9.312007.10.2007.10.32007.10.2007.10.72007.102007.1010设计交通灯的功能和工作情况了解发光二极管和数码管的性能 选择所需的元器件 设计交通灯的电路图交通灯主程序的编写交通灯子程序的编写交通灯中断程序的编写用keil和petues软件对系统进行仿真焊接电路板到电子阅览室些毕业论文交通控制灯摘 要红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口 8051单片机包含中央处理器、程序存储器(rom)、数据存储器(ram)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:中央处理器:中央处理器(cpu)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,cpu负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(ram)8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的ram只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。图2-1程序存储器(rom):8051共有4096个8位掩膜rom,用于存放用户程序,原始数据或表格。定时/计数器(rom):8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。并行输入输出(i/o)口:8051共有4组8位i/o口(p0、 p1、p2或p3),用于对外部数据的传输。全双工串行口:8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。中断系统:8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择时钟电路:8051内置最高频率达12mhz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(princeton)结构。intel的mcs-51系列单片机采用的是哈佛结构的形式,而后续产品16位的mcs-96系列单片机则采用普林斯顿结构。下图是mcs-51系列单片机的内部结构示意图。 图2-2mcs-51的引脚说明:mcs-51系列单片机中的8031、8051及8751均采用40pin封装的双列直接dip结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个i/o口,中断口线与p3口线复用。现在我们对这些引脚的功能加以说明:mcs-51的引脚说明:mcs-51系列单片机中的8031、8051及8751均采用40pin封装的双列直接dip结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个i/o口,中断口线与p3口线复用。现在我们对这些引脚的功能加以说明:如图3 图2-3 pin9:reset/vpd复位信号复用脚,当8051通电,时钟电路开始工作,在reset引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器pc指向0000h,p0-p3输出口全部为高电平,堆栈指针写入07h,其它专用寄存器被清“0”。reset由高电平下降为低电平后,系统即从0000h地址开始执行程序。然而,初始复位不改变ram(包括工作寄存器r0-r7)的状态,8051的初始态。8051的复位方式可以是自动复位,也可以是手动复位,见下图4。此外,reset/vpd还是一复用脚,vcc掉电其间,此脚可接上备用电源,以保证单片机内部ram的数据不丢失。图4pin30:ale/当访问外部程序器时,ale(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ale端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ale会跳过一个脉冲。如果单片机是eprom,在编程其间,将用于输入编程脉冲。pin29:当访问外部程序存储器时,此脚输出负脉冲选通信号,pc的16位地址数据将出现在p0和p2口上,外部程序存储器则把指令数据放到p0口上,由cpu读入并执行。pin31:ea/vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kb的程序存储器,当ea为高电平并且程序地址小于4kb时,读取内部程序存储器指令数据,而超过4kb地址则读取外部指令数据。如ea为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,ea端必须接地。在编程时,ea/vpp脚还需加上21v的编程电压。目 录摘要 第一章 交通信号灯硬件电路的设计1.1 交通信号灯的作用及工作原理1第二章 系统组成2.1 硬件控制线路图32.2器件和原理 32.2.1什么是单片机 42.2.2 什么是单片机系统 52.3 部分电路功能 62.3.1 晶振电路 62.3.2 复位电路 62.3.3 信号灯控制电路 6 2.4 设计流程图 6 第三章 交通信号灯软件的系统编程 3.1 信号灯亮灭的定时功能8 3.1.1 单片机的定时器 8 3.1.2 如何使用mcs_51单片机的定时器呢? 8 3.1.3 定时器数值的设置应该注意的事项 8 3.1.4 定时1ms的程序代码 93.2 51单片机的中断系统 9 3.2.1 中断系统的概念 9 3.2.2 单片机的终端系统的作用 9 3.2.3 如何实现单片机的中断 93.3软件流程图 10第四章 系统仿真4.1 pretues软件的介绍 14第五章 调试及检测 5 .1硬件调试21 5 .11最小系统的调试 21 5 .1.2 故障点的分析 215.2软件调试及问题解决22 第六章 结束语6.1文总结 236.2工作展望 23参考文献 24致谢26单片机交通控制灯的设计与实现第一章 交通信号灯硬件电路的设计1.1交通信号灯的作用及工作原理1.1.1道路交通控制的作用主要表现为以下几个方面: 改善交通秩序,增加交通安全。 减少交通延误,提高经济效益。 降低污染程度,保护生态环境。节省能源和土地消耗。交通信号灯由红灯、绿灯、黄灯组成。红灯表示禁止通行,绿灯表示准许通行,黄灯表示警示。交通信号灯分为机动车信号灯、非机动车信号灯、人行横道信号灯、车道信号灯、方向指示信号灯、闪光警告信号灯、道路与铁路平面交叉道口信号灯。交通信号灯用于道路平面交叉路口,通过对车辆、行人发出行进或停止的指令,使各同时到达的人、车交通流尽可能减少相互干扰,从而提高路口的通行能力,保障路口畅通和安全。 (1)机动车信号灯。由绿黄红三种颜色的灯组成,绿灯亮时,准许车辆通行,但转弯车辆不得妨碍被放行的直行车辆、行人通行;黄灯亮时,已越过停止线的车辆可继续通行;红灯亮时,禁止车辆通行。 (2)车道信号灯。车道信号灯由绿色箭头灯和红色叉形灯或红色箭头灯组成,绿色箭头灯亮时,准许本车道车辆按指示方向通行;红色叉形灯或红色箭头灯亮时,禁止本车道车辆通行。 (3)人行横道信号灯。人行横道信号灯由绿灯和红灯组成,绿灯亮时,准许行人通过人行横道;红灯亮时,禁止行人进入人行横道,但是已经进入人行横道的,可以继续通过或者在道路中心线处停留等候第一章 交通信号灯硬件电路的设计1.1.2 道路交通信号灯的工作原理如下:设计一个十字路口交通灯自动控制电路。设:a-南北方向绿灯接通; b-东西方向绿灯接通; c-南北方向红灯接通; d-东西方向红灯接通;e-南北方向黄灯接通;f-东西方向黄灯接通。 工作顺序为abcda, 要求各状态的工作时间如下图所示。 绿灯-(25s)-黄灯-(5s)-红灯-(30s)-绿灯-(循环)第二章 系统组成2.1 硬件控制线路图2.2 器件和原理所需硬件电路的名称规格数量单片机芯片msc-521晶振12m1电容22pf2电解电容10uf2电阻2206排阻2201共阴数码管共阴4发光二极管红黄绿各两个开关1max2321电容1uf4串口1电阻10k12.2.1什么是单片机单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:cpu、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。单片机也被称为微控制器(microcontroler),是因为它最早被用在工业控制领域。单片机由芯片内仅有cpu的专用处理器发展而来。最早的设计理念是通过将大量外围设备和cpu集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对提及要求严格的控制设备当中。intel的z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。早期的单片机都是8位或4位的。其中最成功的是intel的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了mcs51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。随着intel i960系列特别是后来的arm系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300mhz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的windows和linux操作系统。单片机比专用处理器最适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过pc机和其他计算的综合,甚至比人类的数量还要多。2.2.2 什么是单片机系统单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路.下面给出一个51单片机的最小系统电路图. 图3-1复位电路:由电容串联电阻构成,由图并结合电容电压不能突变的性质,可以知道,当系统一上电,rst脚将会出现高电平,并且,这个高电平持续的时间由电路的rc值来决定.典型的51单片机当rst脚的高电平持续两个机器周期以上就将复位,所以,适当组合rc的取值就可以保证可靠的复位.一般教科书推荐c取10u,r取8.2k.当然也有其他取法的,原则就是要让rc组合可以在rst脚上产生不少于2个机周期的高电平.至于如何具体定量计算,可以参考电路分析相关书籍.晶振电路:典型的晶振取11.0592mhz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12mhz(产生精确的us级时歇,方便定时操作)2.3 部分电路功能2.3.1 晶振电路 2.3.2 复位电路 2.3.3 信号灯控制电路,led及显示接口1发光二极管简称led,采用砷化镓、镓铝砷、和磷化镓等材料制成,其内部结构为一个pn结,具有单向导电性 当在发光二极管pn结上加正向电压时,pn结势垒降低,载流子的扩散运动大于漂移运动,致使p区的空穴注入到n区,n区的电子注入到p区,这样相互注入的空穴与电子相遇后会产生复合,复合时产生的能量大部分以光的形式出现,因此而发光。 当所有二极管都发出光时,大多数都不是很有效的。在普通二极管里,半导体材料本身吸引大量的光能而结束。发光二极管是由一个塑性灯泡覆盖集中灯光在一个特定方向。由于不同材料的禁带宽度不同,所以由不同材料制成的发光二极管可发出不同波长的光。另外,有些材料由于组分和掺杂不同,例如,有的具有很复杂的能带结构,相应的还有间接跃迁辐射等,因此有各种各样的发光二极管。发光二极管在制作时,使用的材料有所不同,那么就可以发出不同颜色的光。 发光二极管的发光颜色有:红色光、黄色光、绿色光、红外光等。 发光二极管的外形有:圆形、长方形、三角形、正方形、组合形、特殊形等。 常用的发光二极管应用电路有四种,即直流驱动电路、交流驱动电路、脉冲驱动电路、变色发光驱动电路。 使用led作指示电路时,应该串接限流电阻,该电阻的阻值大小应根据不同的使用电压和led所需工作电流来选择。发光二极管的压降一led的光学参数与pn结结温有很大的关系。一般工作在小电流if10ma,或者1020 ma长时间连续点亮led温升不明显。因此我们选的二极管颜色为红色,黄色。绿灯是通行信号,面对绿灯的车辆可以直行红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告,信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。2.4 设计流程图 开始初始化a红灯,b绿灯time 20sa红灯,b黄灯time 5sa绿灯,b红灯time 20sa黄灯,b红灯time 5s图2.4.1第三章 交通信号灯软件的系统编程3.1 信号灯亮灭的定时功能3.1.1 单片机的定时器在单片机应用系统中,实现定时的方法一般有以下三种:软件定时:让计算机执行一段程序来进行事件延时。这个程序段本身份没有安排其他的执行目的,只是利用该程序段的执行花费的一个固定时间。通过适当的选择指令和安排循环次数,可调节这段程序执行所需花费的时间的长短。其特点是定时时间精确,不需外加硬件电路,但占用时间。因此软件定时的时间不宜过长。:硬件定时:利用硬件电路实现定时。其特点是不占用时间,通过改变电路元器件参数调来节定时,但使用不够灵活方便。对于时间较长的定时,常用硬件电路来实现。:可编程定时器:通过专用的定时计数器芯片来实现。其特点是通过对系统时钟脉冲进行计数实现定时,定时的时间可通过程序的设定的方法改变,使用灵活方便。也可实现对外部脉冲的计数功能。单片机交通控制器的设计 当定时计数器设置为计数工作方式时,技术器对来自输入引脚t0和t1的外部信号计数,外部信号的下降沿将触发计数。最高检测频率为振荡频率的二十四分之一。计数器对外部输入信号的占空比没有特别的限制,但必须保证输入信号的高电平与低电平的持续时间在一个机器周期以上。 当设置了定时器的工作方式并启动定时器工作后,定时器就安倍设定的工作方式独立工作,不在占用cpu的操作时间,只有在计数器计满溢出时才能中断cpu当前的操作。3.1.2 定时器数值的设置应该注意的事项延时方法可以有两种一中是利用mcs-51内部定时器才生溢出中断来确定1秒的时间,另一种是采用软延时的方法。 定时器工作时必须给计数器送计数器初值,这个值是送到th和tl中的。他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。因此,我们可以把计数器记满为零所需的计数值设定为c和计数初值设定为tc 可得到如下计算通式: tc=m-c式中,m为计数器摸值,该值和计数器工作方式有关。在方式0时m为8196 ;在方式1时m的值为65536;在方式2和3为256。 t=(mtc)t计数 或t计数t计数是单片机时钟周期的倍;为定时初值如单片机的主脉冲频率为,经过分频方式213微秒毫秒方式216微秒毫秒我们在这里采用的是方式1,则初始值tc=65536-50000tho=(65536-50000)%256 tl0=(65536-50000)/256显然秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题我们采用在主程序中设定一个初值为的软件计数器和使定时毫秒这样每当到毫秒时就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,先使软件计数器加,然后判断它是否为20。为20表示秒已到可以返回到输出时间显示程序 3.1.3 定时1ms的程序代码void delay(unsigned int z)unsigned int x,y; for(x=z;x0;x-) for(y=110;y0;y-);3.2 51单片机的中断系统 3.2.1 中断系统的概念计算机在执行正常程序时,如果系统出现某些急需处理的异常情况和特殊请求,cpu会暂时中止正在执行的指令,转去对随机发生的更紧迫事件进行处理;处理完后,cpu会自动返回原来的程序继续执行。 3.2.2 单片机的中断系统的作用cpu响应中断申请时,首先使先级有效位置位,以阻止同级或低级的终端申请;然后把程序计数器pc的内容压入堆饯,再把与中断服务程序入口地址送到程序计数器pc;同时清除某些中断标志。以上过程均由端系统自动完成。 3.2.3 如何实现单片机的中断8052具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。中断源mcs-51单片机的中断源共有5个,分为3类:外部中断源,片内溢出中断源,串行口中断源。外部中断源可以分为由片内p3.2引脚输入的int0中断,以及由p3.3引脚输入的int1中断。片内溢出中断分为定时器t0中断和定时器t1中断。串行口中断只有一个,片内串行数据的接收和发送中断。这5个中断源在程序存储器中各有中断服务程序的入口地址,这个地址也称为矢量地址。在cpu响应中断时,硬件自动形成各自的入口地址,由此进入中断服务程序,从而实现了正确的转移。这些中断源的符号,名称,产生的条件和中断服务入口地址如图所 3.3软件流程图#includeunsigned int i=0,num=0,time=60;unsigned char ge,shi;unsigned int code table10=0x3f,0xxxx,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;void delay(unsigned int);void display();main()tmod=0x01; th0=(65536-50000)/256; tl0=(65536-50000)%256; ea=1; et0=1; tr0=1; ex0=1; it0=1; while(1)while(time!=5) p1=0xf3; if(num=20) time-; num=0; display(); while(time!=2) if(num=10) p1=0xf7; if(num=20) p1=0xf3;num=0; time-; display(); while(time!=0) p1=0xf5; if(num=20) num=0; time-; display(); time=30; while(time!=5) p1=0xde; if(num=20) num=0; time-; display(); while(time!=2) if(num=10) p1=0xfe; if(num=20) p1=0xde;num=0; time-; display(); while(time!=0) p1=0xee; if(num=20) num=0; time-; display(); time=60; void display() shi=time/10; ge=time%10; p2=0xfe; p0=tablege; delay(5); p2=0xfd; p0=tableshi; delay(5); p2=0xfb; p0=tablege; delay(5); p2=0xf7; p0=tableshi; delay(5);void delay(unsigned int z)unsigned int x,y; for(x=z;x0;x-) for(y=110;y0;y-);void exter0() interrupt 0 num=0;time=20;/*数码管计时显示*/ p1=0xf6;while(time!=0)if(num=20)num=0;time-disply();void time0() interrupt 1num+; th0=(65536-50000)/256; tl0=(65536-50000)%256; 第四章 系统仿真 4.1 proteus软件介绍proteus软件是labcenter electronics公司的一款电路设计与仿真软件,它包括isis、ares等软件模块,ares模块主要用来完成pcb的设计,而isis模块用来完成电路原理图的布图与仿真。proteus的软件仿真基于vsm技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如mcs-51系列、pic系列等等,以及单片机外围电路,比如键盘、led、lcd等等。通过proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。本文中由于我们主要使用proteus软件在单片机方面的仿真功能,所以我们重点研究isis模块的用法,在下面的内容中,如不特别说明,我们所说的proteus软件特指其isis模块。 在进行下面的操作前,我先说明一点:我的proteus版本是7.1,如果你使用的是6.9以前的版本,可能你发现在鼠标操作上会略有不同。这主要表现在6.9以前的版本鼠标左右键的作用与一般软件刚好相反,而7.0以后已经完全改过。下面我们首先来熟悉一下proteus的界面。proteus是一个标准的windows窗口程序,和大多数程序一样,没有太大区别,其启动界面如下图所示:图 4-1如图中所示,区域为菜单及工具栏,区域为预览区,区域为元器件浏览区,区域为编辑窗口,区域为对象拾取区,区域为元器件调整工具栏,区域为运行工具条。下面我们就以建立一个和我们在keil简介中所讲的工程项目相配套的proteus工程为例来详细讲述proteus的操作方法以及注意事项。首先点击启动界面区域中的“p”按钮(pick devices,拾取元器件)来打开“pick devices”(拾取元器件)对话框从元件库中拾取所需的元器件。对话框如下图所示: 图4-2在对话框中的“keywords”里面输入我们要检索的元器件的关键词,比如我们要选择项目中使用的at89c51,就可以直接输入。输入以后我们能够在中间的“results”结果栏里面看到我们搜索的元器件的结果。在对话框的右侧,我们还能够看到我们选择的元器件的仿真模型、引脚以及pcb参数。这里有一点需要注意,可能有时候我们选择的元器件并没有仿真模型,对话框将在仿真模型和引脚一栏中显示“no simulator model”(无仿真模型)。那么我们就不能够用该元器件进行仿真了,或者我们只能做它的pcb板,或者我们选择其他的与其功能类似而且具有仿真模型的元器件。搜索到所需的元器件以后,我们可以双击元器件名来将相应的元器件加入到我们的文档中,那么接着我们还可以用相同的方法来搜索并加入其他的元器件。当我们已经将所需的元器件全部加入到文档中时,我们可以点击“ok”按钮来完成元器件的添加。添加好元器件以后,下面我们所需要做的就是将元器件按照我们的需要连接成电路。首先在元器件浏览区中点击我们需要添加到文档中的元器件,这时我们就可以在浏览区看到我们所选择的元器件的形状与方向,如果其方向不符合你的要求,你可以通过点击元器件调整工具栏中的工具来任意进行调整,调整完成之后在文档中单击并选定好需要放置的位置即可。接着按相同的操作即可完成所有元器件的布置,接下来是连线。事实上proteus的自动布线功能是如此的完美以至于我们在做布线时从来都不会觉得这是一项任务,而通常像是在享受布线的乐趣。布线时我们只需要单击选择起点,然后在需要转弯的地方单击一下,按照你所需走线的方向移动鼠标到线的终点单击即可。本例我们布线的结果如下图所示(仿真我们在上面的keil操作介绍中的简单例子)。 图4-3因为该工程十分简单,我们没有必要加上复位电路,所以这点在图中予以忽略,请大家注意。除此以外,你可能还发现,单片机系统没有晶振,这一点你需注意。事实上在proteus中单片机的晶振可以省略,系统默认为12mhz,而且很多时候,当然也为了方便,我们只需要取默认值就可以了。下面我们来添加电源。先说明一点,proteus中单片机芯片默认已经添加电源与地,所以我们可以省略。然后在添加电源与地以前,我们先来看一下上面第一个图中区域的对象拾取区,我们在这里只说明本文中可能会用得到的以及比较重要的工具。l:(selection mode)。选择模式,通常情况下我们都需要选中它,比如布局时和布线时。l :(component mode)。组件模式,点击该按钮,能够显示出区域中的元器件,以便我们选择。l :(wire label mode)。线路标签模式,选中它并单击文档区电路连线能够为连线添加标签。经常与总线配合使用。l :(text script mode)。文本模式,选中它能够为文档添加文本。l :(buses mode)。总线模式,选中它能够在电路中画总线。关于总线画法的详细步骤与注意事项我们在下面会进行专门讲解。l :(terminals mode)。终端模式,选中它能够为电路添加各种终端,比如输入、输出、电源、地等等。l :(virtual instruments mode)。虚拟仪器模式,选中它我们能够在区域中看到很多虚拟仪器,比如示波器、电压表、电流表等等。关于它们的用法我们会在后面的相应章节中详细讲述。好了,下面我们就来添加电源。首先点击,选择终端模式,然后在元器件浏览区中点击power(电源)来选中电源,通过区域中的元器件调整工具进行适当的调整,然后就可以在文档区中单击放置电源了。放置并连接好线路的电路图一部分如下图: 图4-4连接好电路图以后我们还需要做一些修改。由上图我们可以看出,图中的r1电阻值为10k,这个电阻作为限流电阻显然太大,将使发光二极管d1亮度很低或者根本就不亮,影响我们的仿真结果。所以我们要进行修改。修改方法如下:首先我们双击电阻图标,这时软件将弹出“edit component”对话框(见下图所示的对话框),对话框中的“component referer”是组件标签之意,可以随便填写,也可以取默认,但要注意在同一文档中不能有两个组件标签相同;“resistance”就是电阻值了,我们可以在其后的框中根据需要填入相应的电阻值。填写时需注意其格式,如果直接填写数字,则单位默认为;如果在数字后面加上k或者k,则表示k之意。这里我们填入270,表示270。修改好各组件属性以后就要将程序(hex文件)载入单片机了。首先双击单片机图标,系统同样会弹出“edit component”对话框,如下图。在这个对话框中我们点击“program files”框右侧的,来打开选择程序代码窗口,选中相应的hex文件后返回,这时,按钮左侧的框中就填入了相应的hex文件,我们点击对话框的“ok”按钮,回到文档,程序文件就添加完毕了。 图4-5装载好程序,我们就可以进行仿真了。第五章:调试功能说明5.1 硬件调试5.1.1最小系统调试首先应该确认电源电压是否正常。用电压表测量接地引脚跟电源引脚之间的电压,看是否是电源电压,我们所用的电源电压是5v。接下来就是检查复位引脚电压是否正常。分别测量按下复位按钮和放开复位按钮的电压值,看是否正确。然后再检查晶振是否起振了,一般用示波器来看晶振引脚的波形,注意应该使用示波器探头的“x10”档。另一个办法是测量复位状态下的io口电平,按住复位键不放,然后测量io口(没接外部上拉的p0口除外)的电压,看是否是高电平,如果不是高电平,则多半是因为晶振没有起振。另外还要注意的地方是,要将ea引脚拉高,因为我们用的是片内rom,否则会出现程序乱跑的情况。有时用仿真器可以,而烧入片子不行,往往是因为ea引脚没拉高的缘故(当然,晶振没起振也是原因只一)。经过上面几点的检查,一般即可排除故障了。如果系统不稳定的话,有时是因为电源滤波不好导致的。在单片机的电源引脚跟地引脚之间接上一个0.1uf的电容会有所改善。如果电源没有滤波电容的话,则需要再接一个更大滤波电容,例如220uf的。遇到系统不稳定时,就可以并上电容试试。5.1.2 故障点分析检测故障点的方法如下:测量电压法。首先要确认的是各芯片电源引脚的电压是否正常,其次检查各种参考电压是否正常,另外还有各点的工作电压是否正常等。信号注入法。将信号源加至输入端,然后依次往后测量各点的波形,看是否正常,以找到故障点。有时我们也会用更简单的办法,例如用手握一个镊子,去碰触各级的输入端,看输出端是否有反应,当然,还有很多其它的寻找故障点的方法,例如看、听、闻、摸等。“看”就是看元件有无明显的机械损坏,例如破裂、烧黑、变形等;“听”就是听工作声音是否正常,例如一些不该响的东西在响,该响的地方不响或者声音不正常等;“闻”就是检查是否有异味,例如烧焦的味道、电容电解液的味道等,对于一个有经验的电子维修人员来说,对这些气味是很敏感的;“摸”就是用手去试探器件的温度是否正常,例如太热,或者太凉。一些功率器件,工作起来时会发热,如果摸上去是凉的,则

温馨提示

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

评论

0/150

提交评论