单片机原理及应用课程设计-自动控制的交通指示灯.doc_第1页
单片机原理及应用课程设计-自动控制的交通指示灯.doc_第2页
单片机原理及应用课程设计-自动控制的交通指示灯.doc_第3页
单片机原理及应用课程设计-自动控制的交通指示灯.doc_第4页
单片机原理及应用课程设计-自动控制的交通指示灯.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

课程设计说明书 名称 单片机原理及应用课程设计 2012年9月17日至2011年9月28日共 2 周院 系 机电工程 班 级 姓 名 系主任 教研室主任 指导教师 目录一 课题介绍31.1 课题名称31.2 课题要求41.3 课程设计要求4二 系统设计42.1 系统总体方案设计42.2 系统的整体方案设计图52.3 系统硬件设计52.4 系统软件设计10三、系统仿真143.1工具软件简介143.2系统仿真模型的建立163.3 Keil和Proteus的联合调试203.4 系统仿真结果26附录:31附录1.汇编程序:31附录2.系统原理总图34一 课题介绍1.1 课题名称自动控制的交通指示灯1.2 课题要求 本设计要求用单片机设计一个自动控制交通灯系统,十字路口两个方向的交通指示灯控制,定时时间到后经3秒黄灯后切换交通控制方向。该系统的具体功能如下:(1) 该控制系统能控制东、西、南、北四个路口的红、黄、绿信号灯正常工作。(2) 当东西方向准行,南北方向禁行时,东西方向亮绿灯,南北方向亮红灯。(3) 当南北方向准行,东西方向禁行时,南北方向亮绿灯,东西方向亮红灯。(4) 两垂直方向的准行时间均为30s。(5) 四个道口只用一组由十位和个位组成的数码管显示准行(或禁行)的剩余时间。1.3 课程设计要求(1)根据课题要求,确定设计方案;(2)在Proteus软件中,绘制系统原理图;(3)在keil中编写单片机程序,结合原理图进行系统调试;(4)记录系统运行结果,书写课程设计报告。二 系统设计2.1 系统总体方案设计本系统拟采用AT89C51单片机作为智能交通灯系统的控制核心。从设计所要完成的任务来看,单一路口显示倒计时时间的数码必须用两位,对于七段数码管,考虑到AT89C51单片机所能提供I/O接口的数量,倒计时显示装置中的数码管在本系统中采用的是静态显示;十字路口共需4组红绿灯,加上转换黄灯,一共是12只灯,须用6个端口进行控制,具体I/O接口分配为:P1.0P1.2分别接东西方向的红、绿、黄共6盏信号灯,P1.3P1.5分别接南北方向的红、绿、黄共6盏信号灯;AT89C51单片机的I/O口作为输出时,具有较大的吸收电流能力,因此我们可以选用共阳极数码管,这样由单片机的I/O口就可以驱动,从而简化硬件电路的设计;此外专门设计了监控电路对控制系统进行实时监控,保证系统工作的稳定性和持续性。2.2 系统的整体方案设计图单片机AT89C51时钟电路复位电路红绿灯装置倒计时显示装置图1 系统的整体方案设计图2.3 系统硬件设计2.3.1复位电路图2上电自动复位电路为了确保控制系统能够稳定可靠的工作,复位电路是必不可少的一部分。它可以保证程序从指保证程序从指定处开始执行,即从程序存储器的0000H地址单元开始执行程序。另外当程序运行出错或操作错误使系统处于死机状态时需复位以重新启动。上电自动复位是通过外部复位电路的电容充电实现的。通电时,电容两端相当于短路,于是RST引脚上为高电平,然后电源通过电阻对电容进行麅,RST端电压慢慢降下来,降到一定程度时变为低电平,单片机正常工作。上电自动复位电路如图41所示2.3.2 晶体振荡电路图3 晶体振荡电路单片机必须在时钟的驱动下才能进行工作。AT89C51单片机内部具有一个时钟振荡电路,只需要外接振荡器,即可为各部分提供时钟信号。使用晶振电路时,只要在引脚XTAL1和XTAL2上外接定时反馈回路,振荡器OSC就能自激振荡,产生矩形时钟脉冲序列。定时反馈回路常由石英晶振和微调电容组成,其中石英晶振的频率是单片机的重要性能指标之一,时钟频率越高,单片机控制器的控制节拍就越快,运算速度也就越快。该电路是用12MHz的石英晶振和两个30p的电容器。石英晶振的频率选为典型值12MHz,这样有得于得到没有误差的波特率。电容器C2和C3是起稳定振荡频率、快速起振的作用。2.3.3 AT89S51单片机最小系统设计图4 AT89S51单片机最小系统原理图2.3.4 交通灯电路的设计 南北方向东西方向图5 交通灯电路图单片机的I/O接口直接和交通灯(LED)连接。在十字路口的四组红、黄、绿三色交通灯中,东西方向道路上的两组同色灯连接在一起,南北方向道路上的两组同色灯连接在一起,受单片机P1.0P1.5控制。12个发光二极管采用了共阳极的连接方式,因此I/O口输出低电平时,与之相连的LED会亮,I/O口输出高电平时,与之相连的LED会灭。交通灯电路如图5所示。2.3.5 倒计时显示装置电路图6 倒计时显示电路图 该交通灯控制系统在正常工作情况下,每15s循环变换一次,为方便提示路上的行人及车辆交通灯转换的剩余时间,专门为控制系统设计了一个倒计时显示装置。该显示装置选用七段数码管来显示交通灯的剩余时间。本来根据控制要求,每个路口需要两个数码管,这样四个路口就需要八个数码管,但由于四组显示的倒计时时间都是一样所以只需使用一组数码管即可。由于AT89C51单片机的I/O作为输出时,具有较大的吸收电流能力,因此我们可以选用共阳型数码管,这样由单片机的I/O就可以直接驱动,从而简化硬件电路的设计。而在电路中是用阻值为4.7k的排电路作为上位电路,限流电阻却用阻值为200的电阻。如图6所示。2.3.6 系统原理总图图7 系统原理总图2.4 系统软件设计2.4.1 主程序流程图该智能交通灯控制系统的软件设计采用的是顺序执行并反复循环的方法。智能交通灯控制系统在正常的情况下,每15s循环变化一次。每个循环周期在还剩余5s时,四个路口的黄灯同时点亮并开始闪烁,以提醒行人及车辆,交通灯将发生转换。要程序中定时扫描P3口,若有键按下,则调用键盘子程序进行相应也处理;若无,则程序继续执行。主程序流程图如图51所示。开 始初始化东西通行显示状态30s到?黄灯显示子程序3s到?是是南北通行显示状态否3s到?黄灯显示子程序3s到?否是是图8 主程序流程图2.4.2 主要代码说明:LP: MOV 33H,#1EH ;设置倒计时显示数值 MOV P1,#0F3H ;使交通灯东西绿,南北红 MOV R7,#1BH ;红灯显示时间数值LP1: LCALL DISP ;调用子程序 DJNZ R7,LP1 ; MOV P1,#0E1H ;交通灯东西绿,南北红同时加亮黄灯 MOV 20H,#02H ;黄灯显示次数LP2: LCALL DISP ;调用子程序 DJNZ 20H,LP2 MOV P1,#0DEH ;交通灯南北绿,东西红 MOV R7,#1BH ;红灯显示时间数值LP3: LCALL DISP ;调用子程序 DJNZ R7,LP3 MOV P1,#0CCH ;交通灯南北绿,东西红同时加亮黄灯 MOV 20H,#02H ;黄灯显示次数2.4.3 子程序1 :延时1秒子程序 DEL_1S: MOV R3,#4 ;延时1秒子程序 L3: MOV R2,#250 L2: MOV R1,#250 L1: NOP NOP DJNZ R1,L1 DJNZ R2,L2 DJNZ R3,L3 RET2 :八段数码管倒计时子程序:DISP: DEC 33H ;减1操作 MOV A,33H CJNE A,#01H,DIR1 MOV 33H,#1EH DIR1: MOV B,#0AH DIV AB ;提取出倒计时数值的十位和个位数 MOV DPTR,#TAB ;字形表的入口地址 MOVC A,A+DPTR ;查表获取十位数的字型码 MOV 30H,A MOV A,B MOVC A,A+DPTR ;查表获取个位数的字型码 MOV 31H,A MOV A,30H MOV P0,A ;将十位数字型码送到P0口 MOV A,31H MOV P2,A ;将十位数字型码送到P2口 LCALL DEL_1S RET TAB: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H END三、系统仿真3.1工具软件简介3.1.1 Proteus简介Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。3.1.2 Keil简介 随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。3.2系统仿真模型的建立3.2.1 将所需元器件加入到对象选择器窗口单击对象选择器按钮,弹出“Pick Devices”页面,在“Keywords”输入AT89C51,系统在对象库中进行搜索查找,并将搜索结果显示在“Results”中。在“Results”栏中的列表项中,双击“AT89C51”,则可将“AT89C51”添加至对象选择器窗口。同样,可以添加7SEG-MPX1-CA,AUDIO1OU,CAP-ELEC,CRYSTAL,LED-GREEN,LED-RED,LED-YELLOW,RES,RX8等元器件对象。若单击AT89C51,在预览窗口中,见到AT89C51的实物图,如图:图9 元器件若单击RES,在预览窗口中,见到RES的实物图。此时,我们已注意到在绘图工具栏中的元器件按钮处于选中状态。3.2.2 放置元器件至图形编辑窗口在对象选择器窗口中,选中RES,将鼠标置于图形编辑窗口该对象的欲放位置、单击鼠标左键,该对象被完成放置。同理,将AT89C51等放置到图形编辑窗口中。若对象位置需要移动,将鼠标移到该对象上,单击鼠标右键,此时我们已经注意到,该对象的颜色已变至红色,表明该对象已被选中,按下鼠标左键,拖动鼠标,将对象移至新位置后,松开鼠标,完成移动操作。由于许多电阻的型号和电阻值均相同,因此可利用复制功能作图。将鼠标移到R1,单击鼠标右键,选中R1,在标准工具栏中,单击复制按钮,拖动鼠标,按下鼠标左键,将对象复制到新位置,如此反复,直到按下鼠标右键,结束复制。此时我们已经注意到,电阻名的标识,系统自动加以区分。3.2.3 放置总线至图形编辑窗口单击绘图工具栏中的总线按钮,使之处于选中状态。将鼠标置于图形编辑窗口,单击鼠标左键,确定总线的起始位置;移动鼠标,屏幕出现粉红色细直线,找到总线的终了位置,单击鼠标左键,再单击鼠标右键,以表示确认并结束画总线操作。此后,粉红色细直线被蓝色的粗直线所替代。如图图10 元器件放置图3.2.4 元器件之间的连线Proteus的智能化可以在你想要画线的时候进行自动检测。下面,我们来操作将电阻R13的右端连接到八段数码管的a端。当鼠标的指针靠近R13右端的连接点时,跟着鼠标的指针就会出现一个“”号,表明找到了R13的连接点,单击鼠标左键,移动鼠标(不用拖动鼠标),将鼠标的指针靠近八段数码管的a端的连接点时,跟着鼠标的指针就会出现一个“”号,表明找到了八段数码管的连接点,同时屏幕上出现了粉红色的连接,单击鼠标左键,粉红色的连接线变成了深绿色,同时,线形由直线自动变成了90的折线,这是因为我们选中了线路自动路径功能。Proteus具有线路自动路径功能(简称WAR),当选中两个连接点后,WAR将选择一个合适的路径连线。WAR可通过使用标准工具栏里的“WAR”命令按钮来关闭或打开,也可以在菜单栏的“Tools”下找到这个图标。同理,我们可以完成其它连线。在此过程的任何时刻,都可以按ESC键或者单击鼠标的右键来放弃画线。3.2.5 元器件与总线的连线画总线的时候为了和一般的导线区分,我们一般喜欢画斜线来表示分支线。此时我们需要自己决定走线路径,只需在想要拐点处单击鼠标左键即可。连线如图:图11 元器件连线图3.3 Keil和Proteus的联合调试在Proteus绘制电路图,在Keil uVision3对汇编语言程序进行编译调试,下面首先简单地说明Keil uVision3与Proteus相结合的仿真步骤:1、假若Keil uVision3与Proteus均已正确安装在C:Program Files的目录里,把C:Program FilesLabcenter ElectronicsProteus 6 ProfessionalMODELSVDM51.dll复制到C:Program FileskeilCC51BIN目录中。2、用记事本打开C:Program FileskeilCC51TOOLS.INI文件,在C51栏目下加入:TDRV5=BINVDM51.DLL (Proteus VSM Monitor-51 Driver)。其中“TDRV5”中的“5”要根据实际情况写,不要和原来的重复(步骤1和2只需在初次使用设置)。3、进入Keil uVision3开发集成环境,创建一个新项目(Project),并为该项目选定合适的单片机CPU器件(如:Atmel公司的AT89C51),并为该项目加入Keil uVision3源程序。如图图12 Keil uVision3新建文件图图13 Keil uVision3选择CPU图图14 Keil uVision3选择CPU图点击确定然后点击按键写入程序点击保存,键入*.asm,图15 写入汇编语言程序图4.然后用右键点击左边的“Source Group 1”,在跳出的菜单中选中“Add Files to GroupSource Group 1”。图16 添加文件图5、单击“Project菜单/Options for Target”选项或者点击工具栏的“option for ta rget”按钮,弹出窗口,点击“Debug”按钮。在出现的对话框里在右栏上部的下拉菜单里选中“Proteus VSM Monitor一51 Driver”。并且还要点击一下“Use”前面表明选中的小圆点。再点击“Setting”按钮,设置通信接口,在“Host”后面添上“127.0.0.1”,如果使用的不是同一台电脑,则需要在这里添上另一台电脑的IP地址(另一台电脑也应安装Proteus)。在“Port”后面添加“8000”。设置好后,点击“OK”按钮即可。最后将工程编译,进入调试状态,并运行。图17 生成HEX文件图图18 Use Proteus VSM Monitor一51 Driver图图19 Setting Proteus VSM Monitor一51 Driver图 6、Proteus的设置进入Proteus的ISIS,鼠标左键点击菜单“Debug”, 选中“use romote debuger monitor”。此后,便可实现Keil uVision3与Proteus连接调试。3.4 系统仿真结果在proteus里开始仿真,双击AT89C51单片机跳出编辑元件对话框,在program file一项打开在Keil 中生成的XX.hex文件,点击确定后,在点击proteus主页面的左下方运行开始仿真,本实例仿真结果如下:1. 十字路口东西通行(东西绿灯亮),南北禁行(南北红灯亮)南北方向东西方向图20 交通灯东西通行图2. 十字路口东西南北四个方向黄灯亮3秒,开始换指示灯控制方向(有东西通行,换成南北通行)东西方向南北方向图21 交通灯东西转南北向通行图3. 十字路口东西禁行(东西红灯亮),南北通行(南北绿灯亮)南北方向东西方向图22 交通灯南北通行图4. 十字路口东西南北四个方向黄灯亮3秒,开始换指示灯控制方向(有东西通行,换成南北禁行)南北方向东西方向图23 交通灯南北转东西向通行图附录:附录1.汇编程序: ORG 0000H LJMP MAIN ORG 0300H ;主程序入口MAIN: MOV SP,#60H MOV TMOD,#10H ;定时器T1工作在方式1 MOV TH1,#9EH ;给定时器T1赋初值 MOV TL1,#58H SETB EA ;开中断系统总开关 SETB ET1 ;开定时器T1中断开关 SETB TR1 ;启动定时器T1LP: MOV 33H,#1EH ;设置倒计时显示数值 MOV P1,#0F3H ;使交通灯东西绿,南北红 MOV R7,#1BH ;红灯显示时间数值LP1: LCAL

温馨提示

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

评论

0/150

提交评论