收藏 分销(赏)

汽车速度里程表的设计论文大学论文.doc

上传人:快乐****生活 文档编号:2171509 上传时间:2024-05-21 格式:DOC 页数:26 大小:256.50KB
下载 相关 举报
汽车速度里程表的设计论文大学论文.doc_第1页
第1页 / 共26页
汽车速度里程表的设计论文大学论文.doc_第2页
第2页 / 共26页
汽车速度里程表的设计论文大学论文.doc_第3页
第3页 / 共26页
汽车速度里程表的设计论文大学论文.doc_第4页
第4页 / 共26页
汽车速度里程表的设计论文大学论文.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、汽车里程表课程设计论文班 级:学 号:姓 名:指导老师: 摘要:在车辆高速行驶的过程中,车速里程表是为驾驶员及时提供动态驾驶信息的重要仪表,它的好坏直接影响到车辆行驶安全。而传统的车速里程表存在两大缺陷:一是用软轴驱动的传统车速里程表在车辆高速行驶状态下,软轴高速旋转,由于软轴钢丝应力极限的限制,常常造成钢丝软轴的疲劳断裂,从而使车速里程表失效;二是由于软轴布线过长,出现形变过大和运动迟滞现象,导致动态指示迟钝或指示错误。为了更加及时可靠的为驾驶员提供动态驾驶信息,保证车辆行驶安全,客服传统软轴驱动车速里程表故障率高、动态指示迟钝等问题,运用先进的电子技术、传感器测量技术和计算机智能技术,改进

2、传统的里程表是非常必要的。关键字:单片机,霍尔传感器,车速里程表 II目 录前 言1一 任务设计2二 功能扩展3三 设计电路53.1 转速测量原理53.2 实验电路设计6四 控制方法84.1 汽车速度控制84.2 速度、里程记录控制104.3 速度、里程显示控制10五 程序代码12六 设计中的问题23七 设计总结23前 言 汽车是现代生活中不可或缺的一种重要交通工具,传统的指针式里程表伴随着汽车的诞生就一直为人们喜爱,不过,新生事物不会因传统的存在而停止它前进的步伐。数码科技在今天已渗透到工业,农业,民用等产品的点点滴滴。新概念的车速里程表最直观的变化就是用大屏幕的液晶取代指针式表盘,直接用数

3、字显示速度和里程,以及其他一些诸如油耗、时钟、环境温度等参数,直观的呈现给使用者。同时,它还具有成本低廉,显示清晰,稳定可靠等优点。由于微处理机体积小,可以把它做到产品的内部,取代老式机械零件,缩小产品体积,增强功能,实现智能化。因此被广泛地用在智能产品中。Intel公司的MCS-51系列单片机近年来得到了广泛流行。本文即介绍一种基于ES8086芯片的汽车速度与里程表的设计和实现。本设计ES8086的运算和控制功能,采用串口液晶显示模块实时显示所测汽车的速度和里程设计方案。由于使用了7段数码管显示模块,以及高效快速算法,因而可在节约系统资源和简化程序设计的基础上保证测量精度和系统实时性。本文先

4、对里程表设计中所需设备作详细介绍,再对设计中存在的问题进行了说明,对硬件部分和软件部分的设计和实现作认真的分析。一 任务设计本实验的设计任务是基于试验仪系统中8253,七段LED数码管以及键盘等电路设计一个汽车运动模拟系统,要求如下:(1) 利用键盘模拟汽车运动控制(2) 速度有档可调(3) 七段LED显示汽车速度和里程1. 根据要求得出系统流程图如下开始汽车启动控制速度档位调整(速度加减控制)里程记录速度、里程显示(七段LED)刹车控制结束图1-1 系统流程图2. 8253简介:8253内部有三个计数器,分别称为计数器0、计数器1和计数器2,他们的机构完全相同。每个计数器的输入和输出都决定于

5、设置在控制寄存器中的控制字,互相之间工作完全独立。每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。执行部件实际上是一个16位的减法计数器,它的起始值就是初值寄存器的值,而初始值寄存器的值是通过程序设置的。输出锁存器的值是通过程序设置的。输出锁存器OL用来锁存计数执行部件CE的内容,从而使CPU可以对此进行读操作。顺便提一下,CR、CE和OL都是16位寄存器,但是也可以作8位寄存器来用。图1-2 8253二 功能扩展经过

6、对本课题的分析,发现可以用直流电机来模拟汽车运动,如此便可以通过对直流电机的控制来模拟汽车运动控制。其中可以通过对直流电机的测速来获得“汽车速度”,通过对直流电机输入电压进而来控制电机转速,以此实现对汽车速度变档的模拟。通过光电开关来测量电机转速,在这里简单说明测度。霍耳效应:1879年E.H. 霍尔发现,如果对位于磁场(B)中的导体(d)施加一个电压(v),该磁场的方向垂直于所施加电压的方向,那么则在既与磁场垂直又和所施加电流方向垂直的方向上会产生另一个电压(UH),人们将这个电压叫做霍尔电压,产生这种现象被称为霍尔效应。霍尔效应从本质上讲是运动的带电粒子在磁场中受洛仑兹力作用而引起的偏转。

7、当带电粒子(电子或空穴)被约束在固体材料中,这种偏转就导致在垂直电流和磁场的方向上产生正负电荷的积累,从而形成附加的横向电场。通有电流I 的金属或半导体板置于磁感强度为B 的均匀磁场中,磁场的方向和电流方向垂直,在金属板的第三对表面间就显示出横向电势差 U H 的现象称为霍耳效应。U H 就称为霍耳电势差。实验测定,霍耳电势差的大小和电流I 及磁感强度B成正比,而与板的厚度d 成反比。霍尔转速传感器:霍尔转速传感器的外形图和与磁场的作用关系如图2.1-1所示。磁场由磁钢提供,所以霍尔传感器和磁钢需要配对使用。霍尔传感器检测转速示意图如图2-2所示。在非磁材料的圆盘边上粘贴一块磁钢,霍尔传感器固

8、定在圆盘外缘附近。圆盘每转动一圈,霍尔传感器便输出一个脉冲。通过单片机测量产生脉冲的频率就可以得出圆盘的转速。霍尔电流传感器本身已经存在滤波电路,输出无须再加装滤波,可直接供单片机的05V的 AD采集或直接送到单片机的中断输入引脚,信号非常稳定,而且抗干扰能力很强。霍尔电流传感器反应速度一般在7微妙,所以不用考虑单片机循环判断的时间。若在圆盘上贴上多块磁钢,则圆盘每转一圈,输出的脉冲信号将相应增加,单位时间内测到的脉冲数将增多,测出的转速也将更加精细。图2-1 霍尔转速传感器的外形图图2-2 霍尔传感器检测转速示意图该设计能实时地将所测的速度显示出来,同时也能够累计显示总里程数。该速度里程表能

9、将传感器输入到芯片的脉冲信号的宽度(传感器将车速转变成相应宽度的脉冲信号)实时地测量出来,然后通过单片机计算出速度和里程,再将所得的数据存储到串口数据存储器,并由串口液晶显示模块实时显示出所测速度。本设计用两个按键来控制显示速度或里程。考虑到信号的衰减、干扰等影响,在信号送入单片机前应对其进行放大整形,然后再输入到单片机进行测速。单片机利用定时器T0的控制功能测出输入信号的周期后,再利用单片机的算术运算功能将周期转换成速度,同时每秒钟进行一次里程累计,从而计算出总里程。最后将得出的速度、里程值存储在E2PROM中,并根据两个按键的选择情况来显示速度或里程。为了方便计算要显示数据值的段码,可再将

10、其转换成压缩的BCD码,然后通过查表将要显示的数据值中每一位的压缩BCD码转换成8段码送到显示缓冲区,最后经串口送至液晶显示模块以显示所测的速度或里程。三 设计电路3.1 转速测量原理本转速测量实验采用反射式光电开关,通过计数转盘通断光电开关产生的脉冲,计算出转速(1) 反射式光开关工作原理:光电开关发射光,射到测量物体上,如果强反射,如图1,光电开关接收到反射回来的光,则产生高电平1;弱反射,如图2,光电开关接收不到反射回来的光,则产生弱电平0。(2) 实验方法:本实验转速测量用的转盘在下表面做成如图3样子的转盘,白部分为强反射区,黑部分为弱反射区,转盘每转一圈,产生4个脉冲,每1/4秒计数

11、出脉冲数,即得到每秒的转速。(演示程序中,LED显示的是每秒钟转速)图1 强反射图2 弱反射图3转盘图3-1 测速元件3.2 实验电路设计主机连线说明:B3区:CS、A0A3区:CS1、A0B3区:INT、INTAES8688:INTR、INTAC5区:CS、A0、A1A3区:CS2、A0、A1C5区:GATE0、GATE1C1区:VCCC5区:CLK0B2区:31250HzC5区:CLK1B2区:1MC5区:OUT0B3区:IR0F3区:CSA3区:CS3F3区:OUTE2区:IN1E2区:OUT1F1区:CTRLF1区:REVB3区:IR7E5区:CLKB2区:2M E5区:CS、A0A3

12、区:CS5、A0E5区:A、B、C、DG5区:A、B、C、D图3-2 霍尔传感器检测转速示意图图3-3 LED显示模块电路图图3-4 放光管电路原理图JP65:发光管控制接口,0灯亮,1灯灭图3-5 按键电路原理图 图3-6 开关电路原理图JP74:按键控制接口;按下0信号,松开1信号 JP80:开关控制接口;闭合0信号,断开1信号四 控制方法整个程序的设计以STAR系列实验仪和PC机为平台,其中速度和里程的计算都采取了近似处理。本系统软件采用模块化设计方法。整个系统由初始化模块、电机转速控制模块、电机转向显示模块、频率测量模块、速度,里程显示模块其他功能模块组成。4.1 汽车速度控制汽车速度

13、控制实际是对直流电机转速的控制,该模块由按键、8086和DAC0832数模变换芯片组成。通过键盘来调整直流电机的输入电压值,8086输入的数据输出到DAC0832数模变换芯片,通过数模变换,转换成实际的电压驱动直流电机。从而达到对电机转速的控制,进而模拟汽车速度控制。可以通过对转速的控制来实现汽车启动、刹车以及加减档的控制:1) 启动控制实现汽车的启动即给汽车一个初始速度,如下实现:(按下按键0启动)Key0:CMP VOLTAGE,14HJNZ NT4 MOVAL,28H ;给予初始速度JNBKey0_1MOVAL,0FFHKey0_1:MOVVOLTAGE,ALCALLDAC0832;JM

14、PMain22) 刹车控制刹车是通过将电机转速降到0,如下实现:(按下按键0刹车)Key1: CMP AL,1JAKey2 MOVAL,14HJNBKey1_1MOVAL,0FFH;最大Key1_1:MOVVOLTAGE,ALCALLDAC0832;D/AJMPMain23) 加速控制加速控制是通过将转速按一定值增加,如下实现:(按下按键2加速)Key2: CMP AL,2JAKey3 CMPVOLTAGE,14H JE Main2 MOVAL,VoltageOffsetADDAL,VOLTAGECMPAL,VOLTAGEJNBKey2_1MOVAL,0FFH;最大Key2_1:MOVVOLT

15、AGE,ALCALLDAC0832;D/AJMPMain24) 减速控制(按下按键3加速)Key3:CMP AL,3JAKey4 CMP VOLTAGE,14HJNA Main2 MOVAL,VOLTAGESUBAL,VoltageOffsetJNBKey3_1XORAL,AL;最小Key3_1:MOVVOLTAGE,ALCALLDAC0832;D/AJMPMain24.2 速度、里程记录控制本设计中速度和里程是通过中断计时的方式来记录的。其中速度是可以通过键盘来改变,而且在每次中断的时候刷新。而通过每一秒的速度叠加就可以得到里程。实现如下:INChalfsec;记录里程CMPhalfsec,

16、2JNZCountInt1CMPVOLTAGE,14HJBNT3MOVAL,MILEADD AL,VOLTAGESUBAL,14HMOVMILE,AL4.3 速度、里程显示控制本设计中速度和里程的数据由八位七段数码管显示模块显示,其中高4位中三位显示速度,第四位中三位显示里程。-里程显示-PUSH BXPUSHAXMOVAL,MILE;MOVBL,1000;DIVBL ;MOVbuffer+3,ALMOVBL,100DIVBL MOVbuffer+2,ALMOVAL,AHMOVAH,00HMOVBL,10DIVBLMOVbuffer+1,ALMOVbuffer,AH;-转测显示-MOVAL,V

17、OLTAGE;给0832送的数据;PUSH AXMOVAH,00HCMP VOLTAGE,0JNZ NTJMP NT2NT:MOV BL,14HSUB AL,BLNT2:MOVBL,100DIVBL MOVbuffer+6,ALMOVAL,AHMOVAH,00HMOVBL,10DIVBLMOVbuffer+5,ALMOVbuffer+4,AH;MOVbuffer,0;MOVbuffer+1,0;MOVbuffer+2,0;MOVbuffer+3,10HMOVbuffer+7,10H五 程序代码;*数据定义*.MODELTINYEXTRNDisplay8:NEAR,SCAN_KEY:NEAR,G

18、etKeyA:NEARIO8259_0EQU0F000HIO8259_1EQU0F001HCon_8253EQU0E003HT0_8253 EQU0E000HT1_8253 EQU0E001HDA0832 EQU0D000HVoltageOffsetEQU2;0832调整幅度.STACK200.DATAbuffer DB8 DUP(0);显示缓冲区,8个字节buffer1DB8 DUP(0);显示缓冲区,8个字节VOLTAGEDB0;转换电压数字量Count DW0;一秒转动次数NowCountDW0;当前计数值kpTimeDW0;保存上一次采样时定时器的值bNeedDisplayDB0;需要

19、刷新显示halfsecDB0;0.5秒计数bFlashDB0;设置时是否需要刷新MILEDB0.CODESTART:MOVAX,DATAMOVDS,AXMOVES,AXNOPMOVbNeedDisplay,1;显示初始值MOVVOLTAGE,14H;输入初始值MOVCount,0;一秒转动次数MOVNowCount,0;当前计数值MOVkpTime,0;保存上一次采样时定时器的值CALLDAC0832;初始D/ACALLInit8253CALLInit8259CALLWriIntverSTI;* *按键控制*MAIN:CALLGetKeyA;按键扫描JNBNT5CMP AL,0JAKey1;-

20、按下0键启动-Key0:CMP VOLTAGE,14HJNZ NT4 MOVAL,28H JNBKey0_1MOVAL,0FFH;最大Key0_1:MOVVOLTAGE,ALCALLDAC0832;D/AJMPMain2;-1号键按下刹车-Key1: CMP AL,1JAKey2 MOVAL,14HJNBKey1_1MOVAL,0FFH;最大Key1_1:MOVVOLTAGE,ALCALLDAC0832;D/AJMPMain2;-2号键按下加速-Key2: CMP AL,2JAKey3 CMPVOLTAGE,14H JE Main2 MOVAL,VoltageOffsetADDAL,VOLTA

21、GECMPAL,VOLTAGEJNBKey2_1MOVAL,0FFH;最大Key2_1:MOVVOLTAGE,ALCALLDAC0832;D/AJMPMain2NT4:JMPMAINNT5: JMPMain1;-3号键按下减速-Key3:CMP AL,3JAKey4 CMP VOLTAGE,14HJNA Main2 MOVAL,VOLTAGESUBAL,VoltageOffsetJNBKey3_1XORAL,AL;最小Key3_1:MOVVOLTAGE,ALCALLDAC0832;D/AJMPMain2;-4号键按下清零-Key4:CMPAL,4JAMain2CMPVOLTAGE,14HJNE

22、Main2MOVMILE,0 ;MOVMILE,ALCALLDAC0832;D/AJMPMain2Main1:CMPbNeedDisplay,0JZNT4MOVbNeedDisplay,0;1s定时到刷新转速Main2:CALLRateTest;计算转速/显示JMPMAIN;循环进行实验内容介绍与测速功能测试;*显示*RateTest: MOVAX,CountMOVBL,10DIVBLCMPAL,0JNZRateTest1MOVAL,10H;高位为0,不需要显示RateTest1: MOVbuffer,AHMOVbuffer+1,AL;-里程显示-PUSH BXPUSHAXMOVAL,MILE

23、;MOVBL,1000;DIVBL ;MOVbuffer+3,ALMOVBL,100DIVBL MOVbuffer+2,ALMOVAL,AHMOVAH,00HMOVBL,10DIVBLMOVbuffer+1,ALMOVbuffer,AH;-转测显示-MOVAL,VOLTAGE;给0832送的数据;PUSH AXMOVAH,00HCMP VOLTAGE,0JNZ NTJMP NT2NT:MOV BL,14HSUB AL,BLNT2:MOVBL,100DIVBL MOVbuffer+6,ALMOVAL,AHMOVAH,00HMOVBL,10DIVBLMOVbuffer+5,ALMOVbuffer+

24、4,AH;MOVbuffer,0;MOVbuffer+1,0;MOVbuffer+2,0;MOVbuffer+3,10HMOVbuffer+7,10HLEASI,bufferLEADI,buffer1MOVCX,8REPMOVSBLEASI,bufferCALLDisplay8;显示转换结果POPAXPOPBXANDAL,0FHMOVbuffer+4,ALMOVAL,VOLTAGEANDAL,0F0HRORAL,4MOVbuffer+5,ALMOVbuffer+6,0RETTimer0Int: PUSHAXPUSHDXINChalfsec;记录里程CMPhalfsec,2JNZCountInt

25、1CMPVOLTAGE,14HJBNT3MOVAL,MILEADD AL,VOLTAGESUBAL,14HMOVMILE,ALNT3:MOVbNeedDisplay,1MOVhalfsec,0;MOVbNeedDisplay,1MOVAX,NowCountSHRAX,1SHRAX,1MOVCount,AX;转一圈产生4个脉冲,Count=NowCount/4MOVNowCount,0MOVDX,IO8259_0;JMPTimer0Int2MOVAL,20HOUTDX,ALPOPDXPOPAXIRETCountInt: PUSHAXPUSHDXMOVDX,Con_8253MOVAL,40HOUT

26、DX,AL;锁存MOVDX,T1_8253INAL,DXMOVAH,ALINAL,DXXCHGAL,AH;T1的当前值XCHGAX,kpTimeSUBAX,kpTimeCMPAX,100JBCountInt1;前后二次采样时间差小于100,判断是干扰INCNowCountTimer0Int2:PUSH AXPUSHBXPUSH DXMOV AL,00HADDAL,VOLTAGEMOVBL,100DIVBL MOVbuffer+2,ALMOVAL,AHMOVAH,00HMOVBL,10DIVBLMOVbuffer+1,ALMOVbuffer,AHCMP AH,0JBCountInt1CountI

27、nt1: MOVDX,IO8259_0MOVAL,20HOUTDX,ALPOPDXPOPAXIRET;*初始化*Init8253PROCNEARMOVDX,Con_8253MOVAL,34HOUTDX,AL;计数器T0设置在模式2状态,HEX计数MOVDX,T0_8253MOVAL,12HOUTDX,ALMOVAL,7AHOUTDX,AL;CLK0=31250Hz,1s定时MOVDX,Con_8253MOVAL,74HOUTDX,AL;计数器T1设置在模式2状态,HEX计数MOVDX,T1_8253MOVAL,0FFHOUTDX,ALMOVAL,0FFHOUTDX,AL;作定时器使用RETIn

28、it8253ENDPInit8259PROCNEARMOVDX,IO8259_0MOVAL,13HOUTDX,ALMOVDX,IO8259_1MOVAL,08HOUTDX,ALMOVAL,09HOUTDX,ALMOVAL,0FCHOUTDX,ALRETInit8259ENDPWriIntverPROCNEARPUSHESMOVAX,0MOVES,AXMOVDI,20HLEAAX,Timer0IntSTOSWMOVAX,CSSTOSWLEAAX,CountIntMOVDI,3CHSTOSWMOVAX,CSSTOSWPOPESRETWriIntverENDP;*数模转换*DAC0832PROCNE

29、ARMOVDX,DA0832MOVAL,VOLTAGEOUTDX,ALRETDAC0832ENDPENDSTART六 设计中的问题1. 在实现里程表的设计时,对于速度和里程的控制不够灵活。比如里程无法根据速度的变化来自行刷新,在经过对代码的调整后,将里程在每次中断的时候,把新的速度加载进去,再刷新里程显示。2. 由于在进行设计的时候临近期末考试,所以时间非常紧张,在做设计的时候难免心急有些功能实现的并不好,比如里程的显示上限比较小。七 设计总结这次课程设计实现了汽车模拟的基本功能,通过8253计时和8259中断控制实现了对“汽车”速度和里程的操作。更加深化了对这两个芯片认识和理解,基本掌握了8253和8359的运用。同时在对键盘控制和LED显示方面也有了自己的理解和看法。对于不同的操作,自己也能有一个清晰的想法,能够自己通过键盘来实现各种控制操作,还可已将其与七段数码管相联系。对我来说这是一个很大的提升。然而,在实验中还是遇到不少的问题,有的自己能够解决,有的问题还没能够解决,所以这个课程设计还是有一些缺憾。不过在我看来,这只是一个开始,在以后的实践中我会用到这次设计中的经验,以此来让自己不断的完善和提升。24

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服