首页 汽车速度里程表的设计

汽车速度里程表的设计

举报
开通vip

汽车速度里程表的设计四川师范大学成都学院电子工程学院课程设计报告 汽车速度里程表的设计 摘要:在车辆高速行驶的过程中,车速里程表是为驾驶员及时提供动态驾驶信息的重要仪表,它的好坏直接影响到车辆行驶安全。而传统的车速里程表存在两大缺陷:一是用软轴驱动的传统车速里程表在车辆高速行驶状态下,软轴高速旋转,由于软轴钢丝应力极限的限制,常常造成钢丝软轴的疲劳断裂,从而使车速里程表失效;二是由于软轴布线过长,出现形变过大和运动迟滞现象,导致动态指示迟钝或指示错误。为了更加及时可靠的为驾驶员提供动态驾驶信息,保证车辆行驶安全,客服传统软轴驱动车速里...

汽车速度里程表的设计
四川师范大学成都学院电子工程学院课程设计报告 汽车速度里程 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 的设计 摘要:在车辆高速行驶的过程中,车速里程表是为驾驶员及时提供动态驾驶信息的重要仪表,它的好坏直接影响到车辆行驶安全。而传统的车速里程表存在两大缺陷:一是用软轴驱动的传统车速里程表在车辆高速行驶状态下,软轴高速旋转,由于软轴钢丝应力极限的限制,常常造成钢丝软轴的疲劳断裂,从而使车速里程表失效;二是由于软轴布线过长,出现形变过大和运动迟滞现象,导致动态指示迟钝或指示错误。为了更加及时可靠的为驾驶员提供动态驾驶信息,保证车辆行驶安全,客服传统软轴驱动车速里程表故障率高、动态指示迟钝等问题,运用先进的电子技术、传感器测量技术和计算机智能技术,改进传统的里程表是非常必要的。 关键字:单片机,霍尔传感器,车速里程表Abstract:Intheprocessofhigh-speedvehicles,vehiclespeedodometerisimportantinstrumentdrivertoprovidedynamicdrivinginformation,whichdirectlyaffectstherunningsafetyofvehicles.Thespeedometertraditionhastwodefects:oneisthetraditionalspeedometerflexibleshaftdrivingthevehiclehighspeedrunningcondition,theshaftrotatingspeed,theflexibleshaftsteelwirestresslimit,oftenresultinginfatiguefractureofthewireflexibleshaft,sothatthespeedometerfailure;twoisaflexiblewiringistoolongduetodeformation,appeartoolargeandthemotionlag,leadtodynamicindicatingsloworindicationerror.Inordertobemorereliableandtimelytothedriver'sdrivingdynamicinformation,guaranteethedrivingsafety,theproblemofhighfailurerate,thespeedometerdynamicindicatingslowservicetraditionalflexibleshaftdriving,theuseofelectronictechnology,sensortechnologyandcomputerintelligencetechnologyadvanced,theimprovementofthetraditionalodometerisverynecessary. Keywords:Themicrocontroller,hallsensors,memory,Thespeedometer I 四川师范大学成都学院电子工程学院课程设计报告 目录 前言............................................................................................................11系统概述...............................................................................................22基本原理与设计 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ...........................................................................2 2.1霍尔传感器简介...........................................................................................3 2.2AT89C2051芯片简介....................................................................................4 2.3液晶显示模块SED1520芯片介绍...............................................................5 2.3.1SED1520芯片介绍.............................................................................5 2.3.2SED1520的特性.................................................................................6 2.3.3SED1520指令与显示RAM结构.........................................................6 2.4定时器/计数器的结构.................................................................................7 2.5定时计数器的原理.......................................................................................7 2.6频率测量.......................................................................................................83系统硬件设计.......................................................................................8 3.1信号预处理电路...........................................................................................8 3.2施密特触发器...............................................................................................9 3.3液晶显示电路和数据存储电路.................................................................104系统软件设计.....................................................................................11 4.1电机转速控制模块程序设计.....................................................................12 4.2频率测量模块程序设计.............................................................................12 4.3液晶显示程序的设计.................................................................................15 4.4速度、里程显示程序的设计.....................................................................15 4.5模块程序设计.............................................................................................185软件调试.............................................................................................20 5.1程序的查错手段.........................................................................................20 5.2源程序的 检测 工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训 .............................................................................................21 5.3源程序的调试.............................................................................................216设计总结.............................................................................................22参考文献....................................................................................................23 II 四川师范大学成都学院电子工程学院课程设计报告 前言 汽车是现代生活中不可或缺的一种重要交通工具,传统的指针式里程表伴随着汽车的诞生就一直为人们喜爱,不过,新生事物不会因传统的存在而停止它前进的步伐。数码科技在今天已渗透到工业,农业,民用等产品的点点滴滴。新概念的车速里程表最直观的变化就是用大屏幕的液晶取代指针式表盘,直接用数字显示速度和里程,以及其他一些诸如油耗、时钟、环境温度等参数,直观的呈现给使用者。同时,它还具有成本低廉,显示清晰,稳定可靠等优点。 由于单片机体积小,可以把它做到产品的内部,取代老式机械零件,缩小产品体积,增强功能,实现智能化。因此被广泛地用在智能产品中。Intel公司的MCS-51系列单片机近年来得到了广泛流行。本文即介绍一种基于AT89C2051单片机的汽车速度与里程表的设计和实现。 本设计以AT89C2051为核心,利用单片机的运算和控制功能,采用串口液晶显示模块实时显示所测汽车的速度和里程设计方案。由于使用了串口液晶显示模块和E2PROM,以及高效快速算法,因而可在节约系统资源和简化程序设计的基础上保证测量精度和系统实时性。本文先对里程表设计中所需设备作详细介绍,再对设计中存在的问题进行了说明,对硬件部分和软件部分的设计和实现作认真的分析。 1 四川师范大学成都学院电子工程学院课程设计报告 1系统概述 本系统由信号采集处理模块、单片机AT89C2051、系统化LCD显示模块、系统软件组成。系统软件包括单片机和液晶模块的初始化模块、液晶模块的写数据/命令子模块、周期测量模块、速度里程计算模块、数据存储模块、速度和里程显示数据转BCD码模块、显示数据消多余零模块、数据显示模块以及实时中断服务模块等。 其中,信号采集处理模块以霍尔传感器为核心器件,将不同的转速信号转换成相应的脉冲信号,并送到单片机的T1引脚;对单片机进行设置,使内部的定时器/计数器timer0工作在定时状态,timer1工作在计数状态,利用内部定时器T0对脉冲输入引脚T1进行控制,这样就能精确地检测到设定时间内加到T1引脚的脉冲数,一个脉冲即代表着车子前进一个轮长,对脉冲数进行处理就可得到里程和速度的数据;将数据送到LCD显示模块进行显示。 速度显示部分采用串口液晶显示模块,所得的数据采用I2C总线并通过E2PROM来存储,因而节省了所需单片机的口线和外围器件,同时也简化了显示部分的软件编程。汽车速度与里程表系统原理框图如图1-1所示。 脉冲信号单片机LCD 图1-1汽车速度与里程表系统原理框图 2基本原理与设计方案 该设计能实时地将所测的速度显示出来,同时也能够累计显示总里程数。该速度里程表能将传感器输入到单片机的脉冲信号的宽度(传感器将车速转变成相应宽度的脉冲信号)实时地测量出来,然后通过单片机计算出速度和里程,再将所得的数据存储到串口数据存储器,并由串口液晶显示模块实时显示出所测速度。本设计用两个按键来控制显示速度或里程。考虑到信号的衰减、干扰等影响,在信号送入单片机前应对其进行放大整形,然后再输入到单片机进行测速。单片机利用定时器T0的控制功能测出输入信2 四川师范大学成都学院电子工程学院课程设计报告 号的周期后,再利用单片机的算术运算功能将周期转换成速度,同时每秒钟进行一次里程累计,从而计算出总里程。最后将得出的速度、里程值存储在E2PROM中,并根据两个按键的选择情况来显示速度或里程。为了方便计算要显示数据值的段码,可再将其转换成压缩的BCD码,然后通过查表将要显示的数据值中每一位的压缩BCD码转换成8段码送到显示缓冲区,最后经串口送至液晶显示模块以显示所测的速度或里程。 2.1霍尔传感器简介 霍耳效应:1879年E.H.霍尔发现,如果对位于磁场(B)中的导体(d)施加一个电压(v),该磁场的方向垂直于所施加电压的方向,那么则在既与磁场垂直又和所施加电流方向垂直的方向上会产生另一个电压(UH),人们将这个电压叫做霍尔电压,产生这种现象被称为霍尔效应。 霍尔效应从本质上讲是运动的带电粒子在磁场中受洛仑兹力作用而引起的偏转。当带电粒子(电子或空穴)被约束在固体材料中,这种偏转就导致在垂直电流和磁场的方向上产生正负电荷的积累,从而形成附加的横向电场。通有电流I的金属或半导体板置于磁感强度为B的均匀磁场中,磁场的方向和电流方向垂直,在金属板的第三对表面间就显示出横向电势差UH的现象称为霍耳效应。UH就称为霍耳电势差。实验测定,霍耳电势差的大小和电流I及磁感强度B成正比,而与板的厚度d成反比。 霍尔转速传感器:霍尔转速传感器的外形图和与磁场的作用关系如图2.1-1所示。磁场由磁钢提供,所以霍尔传感器和磁钢需要配对使用。霍尔传感器检测转速示意图如图2.1-2所示。在非磁材料的圆盘边上粘贴一块磁钢,霍尔传感器固定在圆盘外缘附近。圆盘每转动一圈,霍尔传感器便输出一个脉冲。通过单片机测量产生脉冲的频率就可以得出圆盘的转速。 霍尔电流传感器本身已经存在滤波电路,输出无须再加装滤波,可直接供单片机的0~5V的AD采集或直接送到单片机的中断输入引脚,信号非常稳定,而且抗干扰能力很强。霍尔电流传感器反应速度一般在7微妙,所以不用考虑单片机循环判断的时间。若在圆盘上贴上多块磁钢,则圆盘每转一圈,输出的脉冲信号将相应增加,单位时间内测到的脉冲数将增多,测出的转速也将更加精细。 3 四川师范大学成都学院电子工程学院课程设计报告 图 2.1-1霍尔转速传感器的外形图 图2.1-2霍尔传感器检测转速示意图 2.2AT89C2051芯片简介 AT89C2051是一个低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的Flash只读程序存储器和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C2051提供了高性价比的解决方案。 AT89C2051是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出 (I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C2051可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。 AT89C2051具有如下功能特性: ★兼容MCS—51指令系统; ★32个双向I/O口; 4 四川师范大学成都学院电子工程学院课程设计报告 ★两个16位可编程定时/计数器; ★1个串行中断; ★两个外部中断源; ★4k可反复擦写(>1000次)FlashROM; ★128x8bit内部RAM; ★6个中断源; ★低功耗空闲和掉电模式; ★软件设置睡眠和唤醒功能。 2.3液晶显示模块SED1520芯片介绍 SED1520液晶显示驱动器是一种点阵图形式液晶显示驱动器,它可直接与8位微处理器相连,集行、列驱动器于一体,因此使用起来十分方便,作为内藏式控制器被广泛应用于点阵数较少的液晶显示模块。 2.3.1SED1520芯片介绍 本设计仿真实验系统采用的液晶显示屏内置控制器为SED1520,点阵为122x32,需要两片SED1520组成,由E1、E2分别选通,以控制显示屏的左右两半屏。图形液晶显示模块有两种连接方式。一种为直接访问方式,一种为间接控制方式。本设计采用直接控制方式。直接控制方式就是将液晶显示模块的接口作为存储器或I/O设备直接挂在计算机总线上。计算机通过地址译码控制E1和E2的选通;读/写操作信号R/W由地址线A1控制;命令/数据寄存器选择信号AO由地址线A0控制。实际电路如图 2.3.1-1所示。地址映射如表2.3.1-1所示(地址中的X由LCDCS决定,可参见地址译码部分说明)。 表2.3.1-1地址映射0X000H 写E1指令0X001H写E1数据0X002H读E1状态0X003H读E1数据0X004H写E2指令0X005H写E2数据0X006H读E2状态0X007H读E2数据 5 四川师范大学成都学院电子工程学院课程设计报告 图2.3.1-1液晶屏显示控制电路 2.3.2SED1520的特性 内置显示RAM区RAM容量为2560(32行80列)位。RAM中的1位数据控制液晶屏上一个点的亮灭状态:“1”表示亮,“0”表示暗。它具有16个行驱动口和16个列驱动口,并可级联两个SED1520实现32行驱动。还可直接与80系列微处理器相连,亦可直接与68系列微处理器相连。其驱动占空比为1/16或1/32。并可以与SED1520配合使用,以便扩展列驱动口数目。 2.3.3SED1520指令与显示RAM结构 SED1520指令系统比较简单,共13条,除读状态指令、读显示RAM数据指令外,其他指令均为写操作,并且读写指令均为单字节指令。在送出每条指令时,必须进行控制器状态检测,状态字节的含义如下: D7:1/0,模块忙/准备就绪; D5:1/0,模块显示关/开; D4:1/0,模块复位/正常; D3-D0:未用。 在指令使用中,关键要分清显示行、列设置和显示页面设置的关系。单片SED1520可驱动61×16液晶屏,其内部显示RAM相对于COM0每8行为一个显示页面。本设 6 四川师范大学成都学院电子工程学院课程设计报告 计所用的字符液晶模块由两块SED1520级联驱动,其中一个工作在主工作方式下,另一个工作在从方式下,主工作方式SED1520负责上半屏16行的驱动和左半屏的61列驱动,从工作方式的SED1520则负责下半屏16行的驱动和右半屏的61列驱动,使能信号E1、E2用来区分具体控制的是那一片SED1520。这样两片SED1520级联可驱动122×32图形点阵液晶显示屏,可完成图形显示,也可显示七个半(16×16点阵)汉字。 2.4定时器/计数器的结构 16位的定时/计数器分别由两个8位专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1构成。其访问地址依次为8AH-8DH。这些寄存器是用于存放定时或计数初值的。此外,其内部还有一个8位的定时器方式寄存器TMOD和一个8位的定时控制寄存器TCON。这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。TMOD主要是用于选定定时器的工作方式;TCON主要是用于控制定时器的启动停止,此外TCON还可以保存T0、T1的溢出和中断标志。当定时器工作在计数方式时,外部事件通过引脚T0(P3.4)和T1(P3.5)输入。定时器/计数器的结构原理图如图2.4-1 所示。 图2.4-1定时器/计数器的结构原理图 2.5定时计数器的原理 16位的定时器/计数器实质上就是一个加1计数器,其控制电路受软件控制、切换。当定时器/计数器为定时工作方式时,计数器的加1信号由振荡器的12分频信号产生,即每过一个机器周期,计数器加1,直至计满溢出为止。显然,定时器的定时时间与系统的振荡频率有关。因一个机器周期等于12个振荡周期,所以计数频率fcount=1/12osc。如果晶 7 四川师范大学成都学院电子工程学院课程设计报告 振为12MHz,则计数周期为:T=1/(12×106)Hz×1/12=1μs。这是最短的定时周期。若要延长定时时间,则需要改变定时器的初值,并要适当选择定时器的长度(如8位、13位、16位等)。当定时器/计数器为计数工作方式时,通过引脚T0和T1对外部信号计数,外部脉冲的下降沿将触发计数。计数器在每个机器周期的S5P2期间采样引脚输入电平。若一个机器周期采样值为1,下一个机器周期采样值为0,则计数器加1。此后的机器周期S3P1期间,新的计数值装入计数器。所以检测一个由1至0的跳变需要两个机器周期,故外部事件的最高计数频率为振荡频率的1/24。例如,如果选用12MHz晶振,则最高计数频率为0.5MHz。虽然对外部输入信号的占空比无特殊要求,但为了确保某给定电平在变化前至少被采样一次,外部计数脉冲的高电平与低电平保持时间均需在一个机器周期以上。 当CPU用软件给定时器设置了某种工作方式之后,定时器就会按设定的工作方式独立运行,不再占用CPU的操作时间,除非定时器计满溢出,才可能中断CPU当前操作。CPU也可以重新设置定时器工作方式,以改变定时器的操作。由此可见,定时器是单片机中效率高而且工作灵活的部件。 2.6频率测量 本设计所采用的霍尔传感器是由一个磁钢和一个霍尔器件组成的。磁钢被贴在非磁性圆盘上,跟着圆盘一起旋转。此霍尔器件就固定在圆盘的附近,工作时,圆盘每转动一圈,霍尔器件就会产生一个脉冲。这里的一个脉冲就代表了一个圆盘的周长。在本设计中,霍尔传感器产生的脉冲将被送到单片机的内部定时计数器timer1的T1口。内部的定时计数器Timer0工作在定时状态,Timer1工作在计数状态。Timer0和Timer1均工作在模式1。本设计中,Timer0所产生的是0.5秒的定时。Timer1将对0.5秒内对加到T1脚的脉冲进行计数。假设0.5秒内timer1计数到N个脉冲,则圆盘的转动频率为N/0.5=2N。若是将磁钢贴于汽车的轮轴上,则汽车轮子每转一圈,霍尔器件产生一个脉冲。对脉冲频率进行处理,即可转化为车速。对脉冲数进行累加再乘以轮子的长度,即可得到里程数据。本设计中开辟了两个字节的数据区存储累加脉冲数据,最多能计数65536个脉冲,也即131072米(假设车轮周长2m)。 3 3.1信号预处理电路系统硬件设计 它由二级电路构成,第一级是由开关三极管组成的零偏置放大器,采用开关三极管可以保证放大器具有良好的高频响应。当输入信号为零或负电压时,三极管截止,电路 8 四川师范大学成都学院电子工程学院课程设计报告 输出高电平;而当输入信号为正电压时,三极管导通,此时输出电压随着输入电压的上升而下降,这使得速度里程表既可以测量任意方波信号的频率,也可以测量正弦波信号的频率。由于放大器的放大功能降低了对待测信号的幅度要求,因此,系统能对任意大于0.5V的正弦波和脉冲信号进行测量。预处理电路的第二级采用带施密特触发器的反相器CT74LS14来把放大器生成的单相脉冲转换成与COMS电平相兼容的方波信号同时将输出信号加到单片机的P3.2口上。系统信号预处理电路如图3.1-1所示。 图3.1-1系统信号预处理电路 3.2施密特触发器利用施密特触发器状态转换过程中的正反馈,可以把边沿变化缓慢的周期性信号变换为边沿很陡的矩形脉冲信号。输入的信号只要幅度大于VT+,即可在施密特触发器的输出端得到同等频率的矩形脉冲信号。从传感器得到的矩形脉冲经传输后往往发生波形畸变。当传输线上的电容较大时,波形的上升沿将明显变坏;当传输线较长,而且接收端的阻抗与传输线的阻抗不匹配时,在波形的上升沿和下降沿将产生振荡现象;当其他脉冲信号通过导线间的分布电容或公共电源线叠加到矩形脉冲信号时,信号上将出现附加的噪声。无论出现上述的那一种情况,都可以通过用施密特反相触发器整形而得到比较理想的矩形脉冲波形。只要施密特触发器的VT+和VT-设置得合适,均能受到满意的整形效果。施密特触发器对脉冲整形图如图3.2-1所示。 9 四川师范大学成都学院电子工程学院课程设计报告 图3.2-1施密特触发器对脉冲整形图 3.3液晶显示电路和数据存储电路本设计的显示部分采用液晶显示模块LCM0825,液晶显示模块与单片机接口电路图如图3.3-1所示。 LCM0825是8位段码式液晶显示模块,它内部集成有LCD控制器、LCD驱动器和RAM,因而可方便显示数据的编程。液晶显示模块采用3-4线串行数据输入,可直接与单片机接口。由于串行接口方式节省了所需的口线和系统资源,因而使系统具有较高的资源利用率。该模块可在2.7V-5.2V电压下工作,其低功耗及背光可调特性使得设计更具有经济性和通用性。LCM0825能够显示8位数据,每一个数据均以8段码的形式放在其内部显示RAM区,并用模块内RAM的两个存储地址来放置一个数据的8段码。8位数据共占用内部16个地址。每一个数据位的8段码存放形式及高低地址存放段码的顺序都和表1所列的第8位数据的8段码存放格式一样,只是段码的存放地址不同。所以,编程时一定要考虑数据的存放地址和形式。在使用该液晶显示模块时,VCC与VLCD之间可用一个50KΩ的电位器来调整背光。 图3.3-1液晶显示模块与单片机接口电路图 10 四川师范大学成都学院电子工程学院课程设计报告 4系统软件设计整个程序的设计以GX-ARM-S3C2410试验箱为平台,其中速度和里程的计算都采取了近似处理。本系统软件采用模块化设计方法。整个系统由初始化模块、电机转速控制模块、电机转向显示模块、频率测量模块、速度,里程显示模块、汉字显示模块以及其他功能模块组成。系统程序流程总框图如图3-1所示。 程序设计中,以60H、61H、62H三个地址为数据缓冲区,60H(DATA1)用于存储每0.5s计数到的脉冲数,用于计算速度;61H(DATA2)、62H(DATA3)两个地址用于存储计数到的脉冲的累加数据,用于计算里程。开始 初始化 显示汉字 延时 清屏 显示汉字 电机控制 方向显示 计数脉冲 速度里程显示 3-1系统程序流程总框图 11 四川师范大学成都学院电子工程学院课程设计报告 4.1电机转速控制模块程序设计电机转速的控制模块由指拨开关、单片机、DAC0832数模变换芯片组成。指拨开关K0-K7接单片机的P10-P17(P1口),通过指拨开关可输入数据0-255,单片机将指拨开关输入的数据输出到DAC0832数模变换芯片,通过数模变换,转换成-8V-+8V的电压驱动直流电机。从而达到对电机转速的控制。输入数据等于128时,输出电压为0V;数据大于128时,输出电压大于0V;输入数据小于128时,输出电压小于0V。电机转速控制模块程序设计如下: mov mov mov movxp1,#0ffhdptr,#cs0832A,p1@dptr,A;设置P1口为输入口 4.2频率测量模块程序设计霍尔传感器产生的脉冲被送到单片机的内部定时/计数器timer1的T1口。内部定时/计数器Timer0工作在定时状态,Timer1工作在计数状态。Timer0和Timer1均工作在模式1。本设计中Timer0产生0.5秒的定时。Timer1将对0.5秒内对加到T1脚的脉冲进行计数。我们假设0.5秒内timer1计数到了第N个脉冲。这时,圆盘的转动频率就为为N/0.5=2N。频率测量模块程序设计如下: JISHU:MOV MOV MOV MOV MOV MOV SETB AA:CLR MOV MOV SETB JNB INC MOVIE,#10001010B;打开中断开关TMOD,#MODESP,#70H40H,#00HTH1,#00HTL1,#00HTR1F1TH0,#03CHTL0,#0B0HTR0F1,$40HA,40H 12;设定内部定时器/计数器的工作模式;将timer1的计数寄存器赋初值0;将timer1的计数寄存器赋初值0;启动timer1;标志位赋0;定时器写入初值;打开定时器timer0;等待50ms 四川师范大学成都学院电子工程学院课程设计报告 CJNE CLR MOV MOV ADD MOV JNC INC BB:RETA,#09H,AATR1DATA1,TL1A,DATA1A,DATA2DATA2,ABBDATA3;定时中断重复10次;关闭计数器timer1;取出timer1计数值给DATA1;将计数值累加到DATA2;检查计数是否溢出;有溢出则DATA3加1 ;-----------------------------定时中断子程序 TIMER:CLR SETB RETI 当Timer0工作在模式1时,TLO、THO计数寄存器各使用8位,从计算式28=256,可以得出在设置计数初值时,把计数起点的值除以256,再将其余数放入TLO计数寄存器,将商数放入THO计数寄存器。这个实验系统所采用的是12MHz的晶振,定时器所计数的脉冲的周期为1us。由此,我们将这样设计:每50ms产生一次定时中断,就需要计数50000个脉冲,则装入计数寄存器的计数初值就为65536–50000=15536,这时,装入THO计数寄存器的初值就为15536/256=60(03CH),装入TLO计数寄存器的初值为176(0B0H)。 Timer0中断子程序流程图如图3.2-1所示。TR0F1 Timer 关闭定时器 F1=1 返回 13 四川师范大学成都学院电子工程学院课程设计报告 图3.2-1Timer0中断子程序流程图 主程序流程图如图3.2-2所示。开始 初始化 设定计数器初 值,并启动 F1=0 定时器赋初值, 并启动 yesF1=0? 40H加1 No40H=9? 停止计数, 取出计数值 将计数值累 加到DATA2 YESCY=0? DATA3加1 返回主程序 图3.2-2主程序流程图 14 四川师范大学成都学院电子工程学院课程设计报告 4.3液晶显示程序的设计本设计中速度和里程的数据由液晶显示模块显示,所用的液晶显示模块由SED1520芯片驱动,首先必须对液晶显示模块进行初始化,编写相应的字库,编写读写程序等。液晶显示程序的设计包括了初始化程序、清屏程序、写指令代码子程序、写显示数据子程序、读显示数据子程序、中文显示子程序、数字显示程序以及中文字库和数字字库的编写。 4.4速度、里程显示程序的设计本设计中霍尔传感器产生的脉冲被送到单片机的内部定时计数器timer1的T1口。内部定时计数器Timer0工作在定时状态,Timer1工作在计数状态。Timer0和Timer1均工作在模式1。本设计中Timer0产生0.5秒的定时。Timer1将对0.5秒内对加到T1脚的脉冲进行计数。假设0.5秒内timer1计数到N个脉冲。则圆盘的转动频率为N/0.5=2N。若是将磁钢贴于汽车的轮轴上,则汽车轮子每转一圈,霍尔器件产生一个脉冲。对脉冲频率进行处理,即可转化为车速。对脉冲数进行累加再乘以轮子的长度,即可得到里程数据。 本程序对汽车运行的实际情况进行模拟。设计程序时假设汽车轮子的周长约为2m,最后在显示屏显示的速度单位是km/h,里程单位是km。 速度的计算如下: 若0.5秒计数到N个脉冲,则轮子的转动频率为2N,车速为2N×2m/s,也即2N×2×3.6km/h。设计中作近似处理,处理为14Nkm/h。 显示时先显示百位,再依次显示十位、个位。程序如下: ;--------------------------------速度处理显示子程序 SPEED:PUSH MOV MOV MUL MOV DIV MOV MOVAA,DATA1B,#0EHABB,#64HABCODE_,AA,B ;调用速度写显示数据程序 15;计数值乘以14;除数赋值100;得到百位显示数据代码;百位显示字库代码LCALLBB1 四川师范大学成都学院电子工程学院课程设计报告 MOV DIV MOV MOV MOVB,#0AHABCODE_,ACTEMP,#08HA,B;除数赋值10;得到十位显示数据代码;十位显示字库代码;显示后移8列 LCALLBB1 MOV MOVCODE_,ACTEMP,#10H;调用速度写显示数据程序;个位显示字库代码 LCALLBB1 MOV POP RET DATA2,DATA3存储计数到的脉冲总数,DATA2能存储255个脉冲,每次计数溢出,则DATA3加1,DATA3里的数据权重为256.这样两个字节的数据能计数最多65536个脉冲,也即131072米。130多公里。实际制作里程表时只要适当增加数据缓冲区的数量,即可对最大显示里程进行扩充。 程序设计过程中,对里程数据的显示作了近似处理。程序如下: ;---------------------------------里程处理显示子程序 MILAGE:PUSH MOV MOV DIV MOV MOV MOVAA,DATA3B,#0C8HABCODE_,ACTEMP,#00HA,B;除以200显示百位里程数据DATA1,#00HA;数据缓冲区清零 LCALLBB2 MOV DIV MOV MOV MOVB,#014HABCODE_,ACTEMP,#08HA,B 16;显示十位里程数据 四川师范大学成都学院电子工程学院课程设计报告 LCALLBB2 MOVB,#02H;显示个位里程数据 DIVAB MOVCODE_,A MOVCTEMP,#10H MOVA,B LCALLBB2 MOVCODE_,#0AH MOVCTEMP,#17H;显示小数点 LCALLBB2 CJNEA,#00H,M1 MOVA,DATA2;DATA2除以50得到小数点MOVB,#032H后第一位 DIVAB MOVCODE_,A MOVCTEMP,#1EH MOVA,B LCALLBB2 MOVB,#05H;余数再除以5得到小数点后第二位DIVAB MOVCODE_,A MOVCTEMP,#26H LCALLBB2 POPA RET M1:MOVA,DATA2 MOVB,#032H DIVAB ADDA,#05H;显示大于0.50公里时代码加5 17 四川师范大学成都学院电子工程学院课程设计报告 MOV MOV MOVCODE_,ACTEMP,#1EHA,B LCALLBB2 MOV DIV MOV MOVB,#05HABCODE_,ACTEMP,#26H LCALLBB2 POP RET ;---------------------------------第二行速度数据显示调用子程序 BB1:PUSH MOV MOV ADD MOVAPAGE_,#00HA,CTEMPA,#3CHCOLUMN,AA LCALLDIW_PR POP RET ;---------------------------------第一行里程数据显示调用子程序 BB2:PUSH MOV MOV ADD MOVAPAGE_,#02HA,CTEMPA,#3CHCOLUMN,AA LCALLDIW_PR POP RETA 4.5模块程序设计 该程序对从指拨开关输入的数据作出反应,若输入的数据为128,则在LCD显示屏 18 四川师范大学成都学院电子工程学院课程设计报告 上显示“停止”的标志,若输入的数据大于128,则显示“正转”的标志,若输入的数据小于128,则显示“反转”的标志。模块程序如下: fxb:MOVCTEMP,#00H CJNEA,#80h,fx MOVPAGE_,#00H MOVA,CTEMP ADDA,#2AH MOVCOLUMN,A MOVCODE_,#09H LCALLCCW_PR MOVPAGE_,#00H MOVA,CTEMP ADDA,#3CH MOVCOLUMN,A MOVCODE_,#00H LCALLDIW_PR MOVPAGE_,#00H MOVA,CTEMP ADDA,#44H MOVCOLUMN,A MOVCODE_,#00H LCALLDIW_PR MOVPAGE_,#00H MOVA,CTEMP ADDA,#4CH MOVCOLUMN,A MOVCODE_,#00H LCALLDIW_PR RET fx:ANLa,#80h CJNEa,#80h,fx1;停止;显示“0”;显示“0”;显示“0” 19 四川师范大学成都学院电子工程学院课程设计报告 MOV MOV ADD MOV MOVPAGE_,#00HA,CTEMPA,#2aHCOLUMN,ACODE_,#07H;正转 LCALLCCW_PR RET fx1:MOV MOV ADD MOV MOVPAGE_,#00HA,CTEMPA,#2aHCOLUMN,ACODE_,#08H;反转 LCALLCCW_PR RET 5软件调试 程序的调试过程是一个比较复杂的过程,有些需要高度的技巧和一定的方法。一般的编程软件都提供单步、单步越过、断点、运行到光标处等基本方法,一般掌握这几种基本方法就可以解决绝大部分问题。经过长时间的调试实践之后自然就可以掌握一定的调试技巧,即熟能生巧。 5.1程序的查错手段 单片机的应用系统均需借助对应的开发系统(或装置)进行在线仿真,对应用系统的软、硬件进行全面地检测与调试。各种开发系统或装置均提供以下查错手段。首先有单步执行。采用单步执行操作可对应用程序每步执行一条指令,可逐条检查这一段程序的执行过程是否符合原设计要求。可直接查出错误所在。宏单步可执行一段程序,如一步就可执行完整个循环程序段。再次,有断点设置全速运行可在程序有疑虑的地方设置断点,从设置的起始地址开始,以全速或非全速方式向设定的断点处运行。如果这段程序无语法或逻辑上的错误,则连续运行到设置的断点处停止运行,返回监控状态。如果有错误,则在错误处停止运行,如果进入死循环或者程序跑飞,就永远不会停止运行。 20 四川师范大学成都学院电子工程学院课程设计报告 全速断点运行为检查实时性及中断响应处理等提供了方便。另外,还有显示器窗口检查和实时跟踪记录等。除上述之外,还有以下功能: ★符号化调试 ★程序的运行。 ★自动生成目标代码和固化 5.2源程序的检测 在源程序进行调试之前,硬件系统必须基本正确,重点对源程序进行检测。首先是对照程序流程图,先对相对独立的功能模块,子程序,中断服务程序等进行仔细地检查,然后对整个主程序按其功能划分成若干程序段进行分段检查,逐步扩大到整个程序系统。检查时重点检查程序的逻辑功能、结构和算法,有关参量和初始值是否完善,正确,关键性指令的选择是否合理,特别是借助开发系统也较难调试正确的隐患,只有通过细心的检查加以排除。再次是硬件系统检查,硬件系统必须排除电源短路和碰线故障,然后空板(没有插上芯片等器件)进行上电检查各电源点是否正确,有关逻辑电平及信号是否正确。确认无误之后逐次插上芯片等器件,借助开发系统可检查出是否有硬件故障。一旦有故障时,开发系统的监控程序将出现不能正常工作的现象。故可采用此法排除硬件系统的一般性故障。有些故障只有通过软件调试才能排除,有时还需通过软件调试修改硬件设计。 5.3源程序的调试 源程序的调试一般可分为分调,联调和考机3步进行。 首先,分调;将基本独立的子程序调试正确,符合原设计要求,用模拟的方法将中断服务程序初调,然后将主程序按相对独立的功能程序段,遵照应用系统运行的逻辑顺序逐段进行调试。设置并输入一组符合要求的参量,启动程序段运行,观察运行情况或故障的影响及现象。对出现的问题进行仔细地分析,合理推测,借助开发系统的调试手段,逐步缩小疑点范围,直至找出问题所在进行修改。分析故障原因。再次是联调;在分调基本完成的基础上进行联调,它将与整个系统的硬件,软件,环境密切相关,必须联合在线调试。调试的重点在于主程序与各功能模块程序段之间的连接处,按照整个软件系统的执行顺序,逐个相连进行调试。最后一个环节是考机。 21 四川师范大学成都学院电子工程学院课程设计报告 6 件的设计。总结可得一下结论。设计总结本设计的车速里程表是以AT89C2051为核心的智能化仪器,主要工作包括硬件和软 1)该仪表的原理简单,系统设计和PCB设计中充分考虑了电磁的兼容性问题。 2)该仪表的显示采用液晶显示器,人的视觉不容易引起疲劳。 3)采用集成芯片,使仪表的结构简单,降低了成本,并增加了系统的可靠性。在设计与调试过程中,我自己查找了相关资料,拟订了设计思路和方案,在硬件与软件联调时出现的不少问题,经过研究讨论,不断排除各方面的困难,最后解决了这些问题。最后完成了该设计。经过这次课程设计,我接触到了更多平时没有接触到的仪器设备、元器件以及相关的使用调试经验,学会了怎样查阅资料和利用工具 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 。这次课程设计对以前学过的理论知识起到了回顾复习作用,并对其加以进一步消化和巩固。 在此,我要向梁老师致以我真诚的感谢。并感谢我所有的老师对我的教育培养。最后,向诸位老师深深地鞠上一躬,聊表谢意。 22
本文档为【汽车速度里程表的设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_594886
暂无简介~
格式:doc
大小:145KB
软件:Word
页数:25
分类:金融/投资/证券
上传时间:2017-06-03
浏览量:26