毕业设计47智能速度里程表的设计_第1页
毕业设计47智能速度里程表的设计_第2页
毕业设计47智能速度里程表的设计_第3页
毕业设计47智能速度里程表的设计_第4页
毕业设计47智能速度里程表的设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计题目:智能速度里程表的设计专业:计算机科学与技术班级:姓名:学号:实验地点:电子系统设计室指导老师:成绩:(2006.6 ) TOC o 1-5 h z HYPERLINK l bookmark14 o Current Document 第1节系统概述1 HYPERLINK l bookmark17 o Current Document 系统组成1 HYPERLINK l bookmark20 o Current Document 1.2系统工作原理1 HYPERLINK l bookmark23 o Current Document 第2节系统硬件设计3 HYPERLINK l bo

2、okmark26 o Current Document 2.1信号预处理电路3 HYPERLINK l bookmark29 o Current Document 单片机的选择3 HYPERLINK l bookmark32 o Current Document 液晶显示电路和数据存储电路4 HYPERLINK l bookmark36 o Current Document 第3节系统软件设计5 HYPERLINK l bookmark39 o Current Document 数据处理过程5 HYPERLINK l bookmark42 o Current Document 软件设计5 HY

3、PERLINK l bookmark53 o Current Document 系统软件框图6液晶显示模块的初始化6第4节结束语8 HYPERLINK l bookmark62 o Current Document 参考文献8 HYPERLINK l bookmark70 o Current Document 附录9智能速度里程表的设计第1节系统概述1.1系统组成本速度里程表由信号预处理电路、AT89C2051单片机、串口液晶显示电路、串口 数据存储电路和系统软件组成。其中信号预处理电路包含信号放大、波形变换和波形 整形。系统硬件框图如图1所示。信号预处理电路中的放大器用于对待测信号进行放 大

4、,以降低对待测信号的幅度要求;波形变换和波形整形电路则用来将放大的信号转 换成可与单片机接口的TTL信号;通过单片机的设置可使INT0引脚能够对内部定时 器T0的工作进行控制,这样能精确地测出加到INT0引脚的正脉冲宽度(即测出脉冲 信号的周期);速度显示部分采用串口液晶显示模块,所得的数据采用I2C总线 并 通过E2PROM来存储,因而节省了所需单片机的口线和外围器件,同时也简化了显示 部分的软件编程。图1.系统硬件框图系统软件包括单片机和液晶模块的初始化模块、液晶模块的写数据/命令子模 块、周期测量模块、速度里程计算模块、数据存储模块、速度和里程显示数据转BCD 码模块、显示数据消多余零模

5、块、数据显示模块以及实时中断服务模块等。1.2系统工作原理该设计能实时地将所测的速度显示出来,同时也能够累计显示总里程数。该速度 里程表能将传感器输入到单片机的脉冲信号的宽度(传感器将车速转变成相应宽度的 脉冲信号)实时地测量出来,然后通过单片机计算出速度和里程,再将所得的数据存 储到串口数据存储器,并由串口液晶显示模块实时显示出所测速度。本设计用两个按 键来控制显示速度或里程。考虑到信号的衰减、干扰等影响,在信号送入单片机前应 对其进行放大整形,然后再输入到单片机进行测速。单片机利用定时器T0的控制功 能测出输入信号的周期后,再利用单片机的算术运算功能将周期转换成速度,同时每 秒钟进行一次里

6、程累计,从而计算出总里程。最后将得出的速度、里程值存储在E2PROM 中,并根据两个按键的选择情况来显示速度或里程。为了方便计算要显示数据值的段 码,可再将其转换成压缩的BCD码,然后通过查表将要显示的数据值中每一位的压缩 BCD码转换成8段码送到显示缓冲区,最后经串口送至液晶显示模块以显示所测的速 度或里程。设计时,应综合考虑测速精度和系统反应时间。本设计用测量脉冲频率来计算速 度,因而具有较高的测速精度。为了保证系统的实时性,系统的速度转换模块和显示 数据转BCD码模块都采用快速算法。另外,还应尽量保证其它子模块在编程时的通用 性和高效性。本设计的速度和里程值采用8位显示,并包含两个小数位

7、。第2节系统硬件设计2.1信号预处理电路系统的信号预处理电路如图2所示。它由二级电路构成,第一级是由开关三极管 组成的零偏置放大器,采用开关三极管可以保证放大器具有良好的高频响应。当输入 信号为零或负电压时,三极管截止,电路输出高电平;而当输入信号为正电压时,三 极管导通,此时输出电压随着输入电压的上升而下降,这使得速度里程表既可以测量 任意方波信号的频率,也可以测量正弦波信号的频率。由于放大器的放大功能降低了 对待测信号的幅度要求,因此,系统能对任意大于0.5V的正弦波和脉冲信号进行测 量。预处理电路的第二级采用带施密特触发器的反相器CT74LS14来把放大器生成的 单相脉冲转换成与COMS

8、电平相兼容的方波信号 同时将输出信号加到单片机的P3.2 口上。图2.信号预处理电路2. 2单片机的选择速度里程测量电路选用AT89C2O51作为频率计的信号处理核心。AT89C2O51包含 2KB闪存、128B的RAM、15根I/O 口线、2个16位定时计数器、5个向量二级中断结 构和1个全双工的串行口,同时还具有加密阵列的二级程序存储器加锁功能。设计中 用到了 AT89C2O51的T0、T1定时器和INT0引脚,以及P1端口的6个口线。由于该 单片机与89C51相兼容,因此在硬件电路设计和软件编程方面更加方便。考虑到 AT89C2O51本身固有的特点,设计时需注意以下几点:首先,它的程序存

9、储器空间为 2KB,因此所有的跳转和分支转移指令都要限制在这个范围内。其次,它没有MOVX 指令,也就是说,它不支持外部存储器操作,这一点设计时一定要考虑到。此外, AT89C2O51自身还有一些其它特点,譬如可以使用命令使其工作在低功耗模式等。单 片机利用T0定时器和INT0引脚来测量输入方波信号的周期,而使用外部中断0来控 制定时器T0是否开始定时。当定时器T0的运行控制位复位时,不管P3.2引脚是何 值,定时器都不工作。只有当定时器T0的运行控制位置位后,才能根据P3.2引脚状 态来决定定时器是否工作。当P3.2引脚出现高电平时,定时器T0开始定时;而在其 出现低电平时,定时器T0停止工

10、作,并将测量信号的周期保存在定时器的16位寄存 器中。系统初始化时,可通过设置使T0和T1定时器工作在模式1方式。T1定时器 主要用于形成1秒钟定时信号,用以为测量里程提供时间条件。3液晶显示电路和数据存储电路本设计的显示部分采用液晶显示模块LCM0825该模块与单片机的接口电路如图3 所示。LCM0825是8位段码式液晶显示模块,它内部集成有LCD控制器、LCD驱动器 和RAM因而可方便显示数据的编程。液晶显示模块采用34线串行数据输入,可直接 与单片机接口。由于串行接口方式节省了所需的口线和系统资源,因而使系统具有较 高的资源利用率。该模块可在2.7V5.2V电压下工作,其低功耗及背光可调

11、特性使得 设计更具有经济性和通用性。LCM0825能够显示8位数据,每一个数据均以8段码的 形式放在其内部显示RAM区,并用模块内RAM的两个存储地址来放置一个数据的8 段码。8位数据共占用内部16个地址。每一个数据位的8段码存放形式及高低地址 存放段码的顺序都和表1所列的第8位数据的8段码存放格式一样,只是段码的存放 地址不同。所以,编程时一定要考虑数据的存放地址和形式。在使用该液晶显示模块 时,VCC与VLCD之间可用一个50KQ的电位器来调整背光。表1第8位数据段码与LCM0825内部RAM的对应关系D3D2D1D0ADDR8A8B8CDP8000008F8G8E8D00001数据存储电

12、路采用C总线的E2PROM存储器24C64。24C64是串行的E2PROM存储 器,其存储容量为8KB。SCL为时钟线,SDA为数据线。里程数据保存在24C64,因此 中可保证掉电时数据不丢失。此外,使用串口也节省了数据口线。图3液晶显示模块与单片机的接口电路第3节系统的软件设计3. 1数据处理过程待测信号经预处理电路后加全单片机的P3.2 (INT0)引脚可为单片机测量信号 周期提供有效的输入信号。单片机通过检测P3.2引脚电平来决定是否启动测量周期 程序。当该引脚为高电平时,系统处于等待状态,要一直到该引脚出现低电平时才开 始测周期。测量时,首先将零赋给TH0、TL0两个寄存器,以将定时器

13、T0的运行控制 位TR0置位,同时也将ET0置位以允许定时器T0中断。然后再判断P3.2引脚是否还 为低电平,如为低电平则等待,直到出现高电平再开始判断P3.2引脚是否为低电平, 当其不是低电平时再等待。一旦出现低电平,则立即复位TR0以终止定时器,以结束 测周期程序。测周期过程中可能会发生定时器T0的中断,每发生一次中断则将R0 寄存器加一,因此R0实际上是周期值的高字节。测出的周期值存储在R0、TH0、TL0 三个寄存器中,然后将其转换成速度。速度是用车轮的周长除以脉冲周期得到的。由 于所测周期的单位是M s,因此在相除转换时应将被除数扩大106倍,以保证得出 正确的速度。每秒进行一次里程

14、数累加时,可用当前的速度值加上一秒前的里程数得 出当前的总里程数,得出的速度和总里程值放到E矛ROM中。通过K1、K2键可显示速 度或里程值,K1键为速度键,K2键为里程键,两个键可以随时设置。要显示的速度 或里程放到R1、R2、R3三个寄存器后即可调用转换BCD代码模块,以将数据值转换 成压缩的BCD代码并显示处理。考虑到对响应时间的要求,BCD代码模块采用快速算 法。数据转变成相应的压缩BCD代码后,可调用显示消多余零和显示数据存储模块, 并将要显示的数据值通过查表转换成相应数据的8段码放到显示缓冲区以备显示。当 然,编程时要把十进制数据的相应8段码放在表格中,这样才能进行查表以得到相应

15、数值的段码。此过程的另一个重要目的是消除最高有效位前面的多余零,以使多余零 的段码处于不显示状态,从而保证数据以正常的格式显示出来。最后,将显示缓冲区 的8位8段码经串口送至液晶显示模块进行显示。2软件设计软件设计包括主程序,行车过程中速度和里程计算子程序,延时子程序,60个记 忆单元后移一单元子程序,T1中断服务程序,显示子程序以及掉电模式中断服务程序 等.主程序设计流程如下:1)清楚9位显示器2)初始化.设定T0工作于计数器方式1,计数器初始值设为0;T1工作于定时器 方式1,定时时间12MS.串行口设置位移位寄存器方式;其他参数设置;开放中 断.3)设置报警速度值.在显示速度状态下,当显

16、示器上出现闪烁的限速值时,按下 P3.3,按一次,报警速度+1公里/小时;当达到26公里/小时,回到初始值,重 新设置.开车自动退出报警速度设置.如果时用在汽车活摩托车上,报警速度 值可设置大些.4)超速设蜂鸣5)去蜂鸣转显示速度6)记忆查询.在停车状态下,按下P3.3,查询记忆速度值(可查询停车前2分钟 内速度值),共60个.退出记忆查询.7)单班里程显示转总里程显示.按下P3.5,6位总里程显示,再按下P3.5,回到 单班里程显示.按下P3.3,可清楚单班里程.3. 3系统软件框图本系统软件采用模块化设计方法。整个系统由初始化模块、周期测量模块、速度 转换模块、里程计算和存储模块、数据转B

17、CD码模块、显示数据处理模块、数据显示 模块、定时器中断服务模块以及其它功能模块组成,图4给出了其软件框图。上电后, 首先进入系统初始化模块,此后系统软件将开始运行,以实时地将所测数值显示在液 品模块上。3.4液晶显示模块的初始化LCM0825是串行8位8段液晶显示模块。使用时,要在上电后对该模块进行初始 化。在初始化之前,应延时200MS以上再送命令。它的初始化工作过程如下:首先 定义液晶模块(当其命令代码为:00101001),其次定义振荡器方式(当其命令代 码为00011000时,将模块定义为内部RC振荡方式,命令代码为00010100时,定 义为外部晶体振荡方式)。然后分别用命令代码0

18、0000001和00000011开振荡器和 开显示器。以上命令送入后,便可以在需要显示数据时将相应的段码直接送入模块 内部的显示RAM中。在送显示数据的段码数据时,要考虑到显示RAM的高和低地址 所对应的数据段码的存放形式。其第8位数据的段码与LCM0825内部的RAM地址的 对应关系见表1。以后随地址的增加依次存放第7位至第1位数据段码。为了正确地 显示数据,应使要显示的8位字符在显示屏幕中为左起第一位,右止第8位。另外,写命令和写数据程序应分别编写,因为它们的命令格式及时序不同,见图 5。由时序图可见,编写传输子程序时,所传数据的高位先移入模块,否则模块不能 正常工作或显示。同样,为了能正

19、确读/写命令或数据,必须在时序中加入相应的延 时;此外,为保证系统的低功耗,每次读/写命令或数据之后,都应将CS、RD、WR、 DATA置高电平。写命夺格式:1011 C7C6C5C4C3C2C1C0 。写皴据格式:川1仙队*2心耕呻。:匡。3模式命令代码结束位模式 R.AM AD.1R DAT1布 n n m 11 tzzi 11 t ii n n m i t 11 iATAXXXIXXXX/XXXXIXIXIXIXXXXZ/EXX命行或故据横丈地址1或数据1帝令或数据模式地,ll. 2或数据1图5写命令/数据时序及格式结束语本设计以AT89C2051为核心,利用单片机的运算和控制功能,并采

20、用串口液晶显 示模块实时显示所测速度和里程的速度里程表设计方案。由于使用了串口液晶显示模 块和E2PROM,以及高效快速算法,因而可在节约系统资源和简化程序设计的基础上保 证测量精度和系统实时性。该智能速度里程表除用于工矿各类电机车外,只要对有关参数稍加修改,就可用 于各类汽车(包括计程车)、摩托车等机动车辆上。该速度里程表性能稳定,效果好。 由于该仪表具有体积小、功耗低、功能全、性价比高等有点,在汽车仪表、商业、工 业、甚至军事领域都有着广泛的应用前景。参考文献何立民,单片机高级教程M.北京航空航天大学出版社.2000.孙育才,MCS-51系列单片机微型计算机及其应用M.东南大学出版社.19

21、97.徐爱钧.单片机高级语言C51应用程序设计M.电子工业出版社.2002.谢自美.电子线路设计.实验.测试(第二版)M.华中科技大学出版社,2000.江国强.现代数字逻辑电路.电子工业出版社,2002 .附录1.给出部分程序下面给出部分程序:(1)显示子程序:DISPLY:PUSHACCMOVA,#80H;显示第一个数据MOVR1,#LED;显示缓冲区首址送R1DSPY1:MOVSBUF,R1;显示缓冲区内容送SBUFWAIT1:JNBT1,WAIT1;等待内容发送完毕CLRT1;T1 清 0MOVP1,A;A送位选ACALLDELAY05MS;延时0.5msMOVP1,#00H;清除8个数

22、据显示INCR1;缓冲区地址加1CLRC;CY 清 0RRCA;A右移一位JNZDSPY1;8个数据未显示完,继续MOVSBUF,R1;第 9个数据送SBUFWAIT2:JNBT1,WAIT2;等待内容发送完毕CLRT1;Y1 清 0SEIBP3.7;显示第9个数据ACALLDELAY05MS;延时0.5msCLRP3.7;清除第9个数据显示MOVSBUF, #00H;清除显示POPACCRET;返回(2)初始化程序:初始化程序主要功能时将T1设为外部控制定时器方式,外中断INT0及INT1设 为边沿触发方式,将部分内存单元清0,设置车轮周长值,开中断,启动定时器,设 置车轮圈出错处理程序。程

23、序如下:CLEARMEN: MOV TMOD,#90H; T1为16位外部控制定时器MOVSP,#75H;堆栈再75H开始SETBPX0;外中断0优先级为1SETBIT0;外中断0用边沿触发SETBIT1;外中断1用边沿触发MOVA,#00H;清AMOV20H,A;清内存中特定单元MOV6CH,AMOV6DH,AMOV70H,AMOV71H,AMOV72H,AMOV73H,AMOV60H,AMOV61H,AMOV62H,AMOV63H,A;清内存中特定单元DECA;A 为 #0FFHMOV68H,A;内存置数据为#0FFHMOV69H,A;内存置数据为#0FFHMOV6AH,A;内存置数据为#

24、0FFHMOV6BH,A;内存置数据为#0FFHMOVP1,A;P1 口置 1CLEAR1:JBP1.2,KEY1;根据 P1.2,P1.3,P1.6,P1.7 设置状态;在21H地址单元设置自行车周长值MOV21H,#OFH;22英寸自行车周长系数LJMPCLEAR2;转 CLEAR2KEY1:JBP1.3,KEY2MOV21H,#12H;24英寸自行车周长系数LJMPCLEAR2;转 CLEAR2KEY2:JBP1.6,KEY3MOV21H,#14H;26英寸自行车周长系数LJMPCLEAR2;转 CLEAR2KEY3:JBP1.7,ERRMOV21H,#19H;28英寸自行车周长系数CLEAR2:SETBTR1zpp单M些可 T1;开定时器开关11SETBEA;开中断允许SETBEX0;开外中断INT0SETBET1;开定时中断T1SETBP3.1;关报警器LCALL VIICREAD;将E2PROM中原里程数据调入内存RET;子程序返回ERR:CLPP3.1;转周长设置出错,LED灯闪烁提醒LCALLDLSS5;延时LJMPCLEAR1;重新初始化,等待轮周长设置开关合上(3) 里程计数子程序:Z/L r+i 1 业匚 TMTC HP 夕 工口rn r*x宫FH/,rh 44* $

温馨提示

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

评论

0/150

提交评论