ImageVerifierCode 换一换
格式:DOCX , 页数:58 ,大小:594.05KB ,
资源ID:9020692      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9020692.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汽车信号灯和里程表单片机模拟系统讲解.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汽车信号灯和里程表单片机模拟系统讲解.docx

1、汽车信号灯和里程表单片机模拟系统讲解单片机原理及接口技术课程设计报告设计题目:汽车信号灯和里程表单片机模拟系统学 号:姓 名:指导教师:张扬 信息与电气工程学院二零一四年六月汽车信号灯和里程表单片机模拟系统随着城市改革开放的进一步深化,汽车行业迅速发展,汽车里程表的市场需求量也大大增加,同时对汽车的性能要求也越来越高。经过了早期的机械齿轮结构和采用手摇计算机与机械结构相结合的半机械半电子化的里程表后,全电子化里程表终于应运而生了。因为单片机兼容性强,性能价格比高,且软件、硬件应用设计资源资料丰富,它以其极高的性能价格比受到人们的重视和关注。单片机以及外围芯片的不断发展促进了里程表的发展,而且随

2、着电子技术的发展以及对里程表的不断改进和完善,也产生了诸多附加功能。因此以单片机为核心的里程表以其体积小,抗干扰能力强,对环境的要求不高,价格低廉,可靠性高,开发较为容易,并可获得较高的经济效益等特点,很快占有了汽车里程表领域的市场。 本课题就如何利用单片机和其他元器件构成汽车信号灯和里程表模拟系统做一些研究。汽车信号灯模拟系统是实现7个开关分别对8个灯的控制,此系统采用多路采集电路,节省了端口的资源;汽车里程表模拟系统是实现里程计算及LCD动态显示,使里程数一目了然。1. 设计任务结合实际情况,基于AT89S52单片机设计一个汽车信号灯和里程表单片机模拟系统。该系统应满足的功能要求为:(1)

3、 远光灯、近光灯、刹车灯、倒车灯、左转向、右转向灯以及双闪灯的控制;(2) 里程表对输入脉冲计数,显示累计里程。主要硬件设备:AT89S52单片机、开关量输入模块、LED输出模块、液晶显示器、8255实验模块2. 整体方案设计汽车信号灯和里程表单片机模拟系统以AT89S52单片机作为整个系统的控制核心,应用其强大的接口功能,构成整个汽车信号灯和里程表单片机模拟系统。该系统通过单片机扩展8255接口,将A口连接开关量模块用以控制各个信号灯的输入,C口连接信号灯显示相应的信号。单片机的P1口作为液晶显示的数据输出口以显示相应的里程数和信号灯,P3口作为液晶显示的控制端口。汽车信号灯和里程表单片机模

4、拟系统的结构图如图2-1所示。图2-1 汽车信号灯和里程表单片机模拟系统结构图本系统硬件主要由开关量、LED灯显示系统、12864液晶显示系统、外部脉冲输入等几部分组成。各模块的主要功能如下:(1) 开关量模块作为信号灯的输入模块,用来实施对远光灯、近光灯、刹车灯、倒车灯、左转向、右转向灯以及双闪灯的控制。8个开关从低位到高位依次定义为远光灯、近光灯、刹车灯、倒车灯、左转向、右转向、双闪灯的控制开关,最高位的开关为复位开关。(2) LED灯显示系统的8个等从低位到高位分别定义为远光灯、近光灯、刹车灯、倒车灯、左转向、右转向灯以及双闪灯,其中双闪灯占用最后两个LED灯。远光灯、近光灯、刹车灯、倒

5、车灯的开关置为高电平时,相应的灯亮;左转向、右转向灯的开关置为高电平时,相应的转向灯闪烁;双闪灯的开关置高电平时,两个双闪灯一起闪烁显示,且其他开关的任何状态均无效。(3) 12864液晶显示系统负责里程数和远光灯、近光灯、左转向、右转向灯及双闪紧急情况的文字显示。双闪灯亮时,停止里程计数,并闪烁“紧急!”字样。其他情况下,以上四个灯哪个亮显示对应的文字,且左右转向为动态显示,远近光灯为动态显示。(4) 外部脉冲输入是由试验箱上的直流电机无极调速产生脉冲,连接到T0计数器,且每计数12次,产生T0中断,而相关的里程计数对应加一。系统的整体设计方案设计图如图2-2所示。图2-2 系统的整体方案设

6、计图3. 系统硬件电路设计3.1 时钟电路在51单片机XTAL1和XTAL2外接晶振就构成了内部振荡器图3-1 时钟电路 3.2 复位电路 复位方式为上电自动复位。当单片机上电后后,复位动作自动完成。图3-2 复位电路3.3 LED显示电路LED显示电路采用扩展的8255芯片,以其A口作输入C口作输出的方式工作。课程设计中,用试验箱上LED显示模块作为车辆运行的信号灯,以及,试验箱上开关模块中开关的变化作为控制信号灯的信号,并用汇编程序控制信号灯的亮灭状态。8255芯片中,A0-A7为PA口,C0-C7为PC口,D0-D7为数据口,剩下的为其控制端。其与单片机的接口电路如图3-3所示。图3-3

7、 8255电路与信号灯、开关量的连接图3.4 液晶显示与蜂鸣器电路单片机中的P10-P17为12864液晶的数据端口,P3.0-P3.3和P3.5为12864的控制端,蜂鸣器一端接双闪灯的C7口,另一端接地。图3-4 液晶显示器与蜂鸣器电路3.5 单片机控制模块单片机的P0接地址译码芯片,且P3.4为外部计数端口,计外部直流电机产生的脉冲数,计算里程数。图3-5 单片机控制模块4. 系统程序设计4.1 主程序流程图首先进行系统的初始化,LED灯全灭,液晶显示器上显示里程数为0,并开始计数。拨动开关可使相应的灯亮或者闪烁显示。有远光近光左右转向灯亮情况时,在液晶显示器上显示对应的文字,当左右转向

8、灯均开,则俩灯均不亮,为互锁状态,同理远近光灯也是。在12864显示液晶上远近光为静态显示,左右转向为闪烁显示,且其闪烁频率和左右转向等的闪烁频率一致。系统主程序流程图如图4-1所示。图4-1 主程序流程图4.2 LED信号灯子程序流程图LED显示系统的8个灯从低位到高位分别定义为远光灯、近光灯、刹车灯、倒车灯、左转向、右转向灯以及双闪灯,其中双闪灯占用最后两个LED灯。远光灯、近光灯、刹车灯、倒车灯的开关置为高电平时,相应的等亮;左转向、右转向灯的开关置为高电平时,相应的转向灯闪烁;双闪灯的开关置高电平时,两个双闪灯一起闪烁显示,且不理会其他开关的高低电平。图4.2LED信号灯子程序流程图4

9、.3 液晶显示信号灯状态子程序路程图液晶显示信号灯状态子程序流程图如图4-3所示。图4-3 液晶显示信号灯状态子程序路程图4.4 液晶显示里程数子程序流程图通过计数器T0对外部脉冲进行计数,T0工作在方式一。给T0一个初值,使其每计数12个脉冲便产生中断,里程数加一。当双闪灯开启时停止计数,双闪灯灭时继续计数。图4-4 液晶显示里程数子程序流程图5. 系统调试5.1 Proteus软件仿真调试(1)调试过程 首先用Proteus软件结合我们实验箱的资源,绘制出其电路图,并用Keil软件运行汇编程序,产生HEX文件,导入仿真图的单片机中,点击运行按钮,进行软件仿真。其仿真过程图如下: 图5-1

10、整体仿真电路图由于有8个开关,和8个LED灯,故我们将其安排在底部,再由于此系统连线复杂,故我们对其均采用了总线的连接方式,减少了连线复杂带来的视觉疲劳,也避免产生连线错误。图5-2开关处于全关状态,里程表计数上图为程序运行起来后的状况,所有开关均处于关状态,T0一上电,便开始计数,里程数递加。图5-3远光灯,倒车灯,右转向开启,右转向灯闪烁,右转向文字闪烁如上图所示,里程数已经计数到466了,此时打开远光开关,右转向开关,倒车开关,右转LED灯闪烁,12864上面“右转向”文字闪烁,“远光灯”文字静态显示,说明运行正常。图5-4 近光灯,左转向开启,左转向灯闪烁,左转向文字闪烁图5-5 远近

11、光灯都开时,则俩灯都不亮如上图,此时远近光灯均开,则远近光LED灯均不亮,此为其互锁状态,左转向开关接高电平,左转向闪烁显示。图5-6 开双闪当打开双闪开关时,俩个双闪LED灯闪烁,其他6个灯全部灭了,且里程数停止计数,在12864上面显示闪烁的“紧急!”字样。图5-7 开复位开关当打开复位开关后,对12864进行清屏,且把里程数重新置为0,所以的8个LED灯均亮,当把复位开关再掰为低电平时,则退出复位,开始计数。(2)调试时应注意的问题在调试中不应该将开关的名称和LED灯的名称取相同,在使用总线时要小心,注意标号要标清楚,且能表明所在管脚的大概含义。在选择文件时,不知其名字时,可以XX查询,

12、方便快速找到想要的芯片。(3)分析遇到的问题及问题的解决方法1)在给开关和LED灯命名时,命重了,就发现8255的PA口读不了开关量开关的状态,后来经过仔细查看,发现是重名会使开关失去作用,遂改名了。2)由于实验箱上是由P0和P2来控制8255的,但是由于找不到试验箱上译码的芯片,遂查看单片机原理的课本,将电路连成如书上的样式,只用P0口来控制数据和地址,这样每次要把仿真的程序倒到实验箱中进行实物仿真,就必须对8255的PA,PC和控制器地址进行修改。在仿真中,PA,PB.PC,控制器的地址为#0FF7CH,#0FF7DH,#0FF7EH,#0FF7FH,而实验箱中对应的地址分别为#0FF28

13、H,#0FF29H,#0FF2AH,#0FF2BH.5.2 硬件调试(1)调试过程1)LED调试电路由于先编写了液晶显示模块,占用了P1和P3的5个IO口,所以在编灯的程序时,就想用P0口作为输出口,但是程序运行不成功,经过几番波折,终于发现是P0口驱动力不足导致的。由于P0口为双向口,且外部没加上拉电阻,不能将其当做普通的准双向的IO口使用,然后我们翻阅实验箱使用说明,得知P0和P2均连接到82C55的数据端和控制端,又考虑到82C55有PA,PB,PC三个IO口,刚好够我们使用,于是我们用了8255扩展,用PA口作为输入,PC口作为输出。然后再后面编LED灯时,我们误以为其为高电平点亮的,

14、然后发现其实际是为低电平点亮的,遂将输出给PC口的值全部取反后才输出。2)液晶显示电路 最初以为试验箱的12864是有带字库的,后来发现其没带字库,最后上网 用汉字取模软件将所需用的字的字码表导入,才实现了汉字的输出。在后 面调试远近光灯的显示时,一直发现将远光灯关掉时,液晶上仍然显示着, 后才发现要在12个查询语句中那些没显示远近关灯的程序里,给远近光灯 的显示空间上写上空数据,以使其得到消除。在硬件的调试过程中还发现, 在我们没对其写的液晶空间上,有时会出现乱码覆盖,后才发现是由于在 显示过程中由于对累加器ACC赋值不当,导致数据溢出,覆盖到其他未控 制的空间,最终对累加器的赋值进行改进,

15、修复了大部分情况,不过偶尔 也会出现溢出情况(这些乱码大都出现在里程数计数到2000多后),这一 问题仍需要以后慢慢研究。(2)调试时应注意的问题1)每次连接好线路并检查无误后再打开实验箱电源,以免破坏实验箱电路,并注意要保护好仿真器的插口。2)由开关量开关输入给PA口的连线颖看清楚哪个对应的是高位,哪个对应的是低位,以免高低位错乱。3)当发现程序烧不进单片机时,要检查是否将仿真器的开关掰上。(3)分析遇到的问题及问题的解决方法1)遇到程序烧不进去时,我就将单片机重新插一遍,或是将仿真器开关重新打开就好了。2)遇到12864产生乱码,后来发现是因为12864的管脚插松了,紧一紧就又正常了。3)

16、有次遇到某个LED灯不管开关怎样都不亮,后来发现是连线断了,重新换一根就好了。6. 程序清单/端口定义/OUTPUT EQU P1 ;液晶数据口定义CSA EQU P3.5CSB EQU P3.3RS EQU P3.0 ;液晶控制口定义RW EQU P3.1E EQU P3.2 FUN EQU 01H ;LED灯口定义COM EQU 21HDAT EQU 22HCODES EQU 23HCOLUMN EQU 24HPAGEF EQU 25HCPAGE EQU 26HCCOLUMN EQU 27HCOLUMN2 EQU 28H ;液晶变量定义PAGEF2 EQU 29HCPAGE2 EQU 2A

17、HCCOLUMN2 EQU 2BHCOUNT EQU 2CHCOUNT1 EQU 2DHCOUNT2 EQU 2EHLOAD EQU 2FH ;拨码开关口定义COLUMN1 EQU 30HPAGEF1 EQU 31HCPAGE1 EQU 32HCCOLUMN1 EQU 33HCOLUMN3 EQU 34HPAGEF3 EQU 35HCPAGE3 EQU 36HCCOLUMN3 EQU 37HSECOND EQU 45H MINUTE EQU 46H ;计数器变量定义HOUR EQU 47HSHUJI1 EQU 50HSHUJI2 EQU 51HSHUJI3 EQU 52H ;6位里程数定义SH

18、UJI4 EQU 53HSHUJI5 EQU 54HSHUJI6 EQU 55HBT0 BIT 20H.0BT1 BIT 20H.1BT2 BIT 20H.2 ;标志位定义BT3 BIT 20H.3BT4 BIT 20H.4BT5 BIT 20H.5BT6 BIT 20H.6/ ORG 0000H LJMP START ORG 000BH ;程序地址 LJMP INTP0 ORG 0100H;*主程序开始*START:MOV TMOD,#05H MOV TH0 ,#0FFH ;计数器初值 MOV TL0 ,#0FAH MOV 45H,#00H MOV 46H,#00H MOV 47H,#00H

19、 MOV 50H,#00H ;6位里程数设初值 MOV 51H,#00H MOV 52H,#00H MOV 53H,#00H MOV 54H,#00H MOV 55H,#00H LCALL INT ;调用初始化子程序 LCALL CLEAR ;调用清屏子程序 LCALL DE LCALL DE MOV DPTR,#0FF2BH ;8255控制字初始化 MOV A,#90H ;A输入C输出 MOVX DPTR,A /MAIN: LCALL CHULI LCALL DISPLAY ;调用显示程序 MOV COM,#00 LCALL PRR0 LCALL PRM0 LCALL DISPLAY55 M

20、OV DPTR,#0FF28H ;PA口 MOVX A,DPTR MOV LOAD,A ANL A,#33H MOV FUN,A MOV A,LOAD ANL A,#80H CJNE A,#80H,PXSTART AJMP STARTPXSTART: MOV A,LOAD ANL A,#40H CJNE A,#40H,PX00 CLR EA ;满足只是双闪为高条件 LCALL SETALL LCALL SHAN1O LCALL DISPLAY33 MOV R2,#20H LCALL DELY LCALL SHAN1X LCALL DISPLAY5 LCALL DISPLAY44 MOV R2,

21、#20H LCALL DELY AJMP MAIN SETALL:MOV DPTR,#0FF2AH ;关所有灯的子程序 MOV A,#0FFH MOVX DPTR,A RETSHAN1O:MOV DPTR,#0FF2AH MOV A,#3FH MOVX DPTR,A RETSHAN1X: MOV DPTR,#0FF2AH MOV A,#0FFH MOVX DPTR,A RETPX00: SETB EA SETB ET0 SETB TR0PX01: MOV A,FUN CJNE A,#00H,PX02 LCALL DISPLAY33 LCALL DISPLAY44 ;左右转向灯均关,远近光灯均关

22、 MOV A,LOAD ANL A,#0CH CPL A MOV DPTR,#0FF2AH MOVX DPTR,A LJMP MAIN PX02: MOV A,FUN CJNE A,#01H,PX03 LCALL DISPLAY3 MOV A,LOAD ;左右转向灯均关,远光灯开 ANL A,#0DH CPL A MOV DPTR,#0FF2AH MOVX DPTR,A LJMP MAIN PX03: MOV A,FUN CJNE A,#02H,PX04 LCALL DISPLAY4 MOV A,LOAD ANL A,#0EH ;左右转向灯均关,近光灯开 CPL A MOV DPTR,#0FF

23、2AH MOVX DPTR,A LJMP MAIN PX04: MOV A,FUN CJNE A,#03H,PX05 LCALL DISPLAY33 LCALL DISPLAY44 MOV A,LOAD ANL A,#0CH CPL A MOV DPTR,#0FF2AH MOVX DPTR,A ;左右转向灯均关,远近光灯均开 LJMP MAIN PX05: MOV A,FUN CJNE A,#10H,PX06 LCALL DISPLAY33 LCALL DISPLAY44 MOV A,LOAD ANL A,#1CH CPL A MOV DPTR,#0FF2AH MOVX DPTR,A LCAL

24、L DISPLAY1 ;左转向灯开,远近光灯均关 MOV R2,#20H LCALL DELY MOV A,LOAD ANL A,#0CH CPL A MOV DPTR,#0FF2AH MOVX DPTR,A LCALL DISPLAY11 MOV R2,#20H LCALL DELY LJMP MAIN PX06: MOV A,FUN CJNE A,#11H,PX07 LCALL DISPLAY3 MOV A,LOAD ;左转向灯开,远光灯开 ANL A,#1DH CPL A MOV DPTR,#0FF2AH MOVX DPTR,A LCALL DISPLAY1 MOV R2,#20H LC

25、ALL DELY MOV A,LOAD ANL A,#0DH CPL A MOV DPTR,#0FF2AH MOVX DPTR,A LCALL DISPLAY11 MOV R2,#20H LCALL DELY LJMP MAIN PX07: MOV A,FUN CJNE A,#12H,PX08 LCALL DISPLAY4 MOV A,LOAD ANL A,#1EH CPL A ;左转向灯开,近光灯开 MOV DPTR,#0FF2AH MOVX DPTR,A LCALL DISPLAY1 MOV R2,#20H LCALL DELY MOV A,LOAD ANL A,#0EH CPL A MO

26、V DPTR,#0FF2AH MOVX DPTR,A LCALL DISPLAY11 MOV R2,#20H LCALL DELY LJMP MAIN PX08: MOV A,FUN CJNE A,#13H,PX09 LCALL DISPLAY33 LCALL DISPLAY44 MOV A,LOAD ANL A,#1CH CPL A MOV DPTR,#0FF2AH ;左转向灯开,远近光灯均开 MOVX DPTR,A LCALL DISPLAY1 MOV R2,#20H LCALL DELY MOV A,LOAD ANL A,#0CH CPL A MOV DPTR,#0FF2AH MOVX

27、DPTR,A LCALL DISPLAY11 MOV R2,#20H LCALL DELY LJMP MAIN PX09: MOV A,FUN CJNE A,#20H,PX10 LCALL DISPLAY33 LCALL DISPLAY44 MOV A,LOAD ANL A,#2CH CPL A ;右转向灯开,远近光灯均关 MOV DPTR,#0FF2AH MOVX DPTR,A LCALL DISPLAY2 MOV R2,#20H LCALL DELY MOV A,LOAD ANL A,#0CH CPL A MOV DPTR,#0FF2AH MOVX DPTR,A LCALL DISPLAY

28、22 MOV R2,#20H LCALL DELY LJMP MAIN PX10: MOV A,FUN CJNE A,#21H,PX11 LCALL DISPLAY3 MOV A,LOAD ANL A,#2DH CPL A ;右转向灯开,远光灯开 MOV DPTR,#0FF2AH MOVX DPTR,A LCALL DISPLAY2 MOV R2,#20H LCALL DELY MOV A,LOAD ANL A,#0DH CPL A MOV DPTR,#0FF2AH MOVX DPTR,A LCALL DISPLAY22 MOV R2,#20H LCALL DELY LJMP MAIN PX11: MOV A,FUN CJNE A,#22H,PX12 LCALL DISPLAY4 MOV A,LO

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1