




已阅读5页,还剩81页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机速度里程表设计毕业论文目 录摘要Abstract.第1章 绪论.11.1选题目的.11.课题背景1.3本文的内容安排.31.4本章小结.4第2章 设计原理及硬件设计.42.1系统设计原理概述.42.1.1系统组成.42.1.2系统工作原理.422系统硬件设计72.2.1 信号预处理电路.72.2.2单片机的选择.82.2.3液晶显示电路. 162.2.4数据存储电路.232.3 本章小结.25第3章 系统软件设计.263.1数据处理过程.263.2系统软件框图.273.3液晶显示模块的初始化.273.4实现设计功能程序283.4.1初始化程序.283.4.2轮圈设置出错出理程序.293.4.3 主程序里程显示或速度显示.313.4.4外中断1服务程序.333.5本章小结33第4章 调试过程与结果.344.1设计的安装与调试344.1.1调试过程344.2设计调试中的故障排除354.2.1故障排除354.3本章小结35第5章 展望与评价.36第6章 总结和体会.37结论.38致 谢.39参考文献.40附录1.41附录2.48附录3.58附录4.60附录5.61附录6.6384第1章 绪论1.1选题目的为了更熟练地掌握学习到的单片机知识,更敏锐地抓住电子元件的发展方向,培养学生的动手实操能力,本设计以AT89C2051为核心,利用单片机的运算和控制功能,并采用LCM0825串口液晶显示模块实时显示所测速度和里程的速度里程表设计方案。该方案由于使用了串口液晶显示模块和E2PROM,以及高效快速算法,因而可在节约系统资源和简化程序设计的基础上保证。1. 课题背景传统的汽车转速里程表的功能有两个,一是用指针指示汽车行驶的瞬时车速,二是用机械计数器记录汽车行驶的累计里程。现代汽车正向高速化方向发展,随着车速的提高,用软轴驱动的传统车速里程表受到前所未有的挑战,这是因为软轴在高速旋转时,由于受钢丝交变应力极限的限制而容易断裂,同时,软轴布置过长会出现形变过大或运动迟滞等现象,而且,对于不同的车型,转速里程表的安装位置也会受到软轴长度及弯曲度的限制。凡此种种,使得基于非接触式转速传感器的电子式转速里程表得以迅速发展。单片机速度里程表设计,能自动显示自行车行驶的总里程数及行车速度,具有超信响的提醒功能,里程数据自动记忆,也可以应用于电动自行车,摩托车,汽车机动车仪表上。仪表板总成似一扇窗户,随时反映出车子内部机器的运行状态,同时它又是部分设备的控制中心和被装饰的对象,是轿车车厢内最引人注目的部件。可以这样说,仪表板总成既有技术的功能又有艺术的功能,它反映出各国轿车制作工艺和风格上的差异,是整车的代表作之一。 现代轿车的仪表板总成一般分成两部分,一部分是指方向盘前的仪表板和仪表罩及平台,另一部分是指司机旁通道上的副仪表板。其中仪表板是安装指示器的主体,集中了全车的监察仪表,通过它们揭示出发动机的转速、油压、水温和燃油的储量,灯光和发电机的工作状态,车辆的现时速度和里程积累。有些仪表还设有变速档位指示,计时钟,环境温度表,路面倾斜表和地面高度表等。按照现时流行的款式,现代轿车多数将空调,音响等设备的控制部件安装在副仪表板上,以方便驾驶者的操作,同时也显得整车布局紧凑合理。 随着现代科学技术的发展,轿车仪表板用电子显示技术代替传统的机电式模拟仪表已成为发展的趋向。电子显示技术也就是薄型平面电子显示器技术,利用这种技术做成的汽车平面仪表板显示数字及信息,十分清晰明了,使驾驶者在开车的同时,仍然可以清楚地看到仪表数字及其它信息的变动。目前,平面仪表板主要采用真空萤光管显示、液晶显示、电致发光显示和高压驱动器集成电路等技术,具有测试反应速度快、指示准确、图形设计灵活、数字清晰、可视性能好、集成化程度高、可靠性强、功耗率低等优点。例如有些平面仪表板的速度里程表采用全数字集成电路,既提高了测试精度,又可将数字信息输入计算机内,实现了车速与里程的数据分析,使汽车具有更多的自控功能。其它如转速表、电压表、燃油表、油压表和水温表均采用线性集成电路,方便配接各类电子传感器件。 轿车仪表板总成在车厢里处于中心的位置,非常引人注目,它的任何疵点都会令人感到浑身不舒服,因此汽车制造商是非常重视轿车仪表板总成的制作水平,从制作工艺上可以表现出制造公司的设计与工艺水平,从装饰风格上可以表现出这个国家或地区的文化传统。一种成功的轿车仪表板总成,既要融入轿车的整体,体现出它是轿车不可分割的一部分;又要体现出轿车的个性,使人看到仪表板就会想到车子的形象。正因如此,轿车仪表板总成的装饰材料是比较讲究的,一般轿车的仪表板总成是用PP(聚丙烯)材料做蒙皮,有些高级轿车的仪表板则是用真皮做蒙皮,令人感觉到一种华贵的气派。1.3 本文的内容安排第一章 研究了单片机速度里程表的原理,并介绍了现有的里程表的技术特点和发展方向。第二章 分析了主要元器件的功能,根据系统需求,选择了芯片AT89C2051和液晶显示模块LCM0825,详细分析了这些芯片的功能。分别具体讲解了各个部份的元件、功能和设计图。第三章 设计原理及软硬件设计。第四章 本章分析了在制板,调试的过程和碰到的问题,计论了解决方案。第五章 给出了对本设计的展望和改进方案。第六章 总结设计过程中的经验和心得体会。1.4本章小结本章简单地讲述了选择这个课题的目的,是为了巩固自己学习的知识和锻炼加强自身的动手能力。同时,讲述了有关这个课题与当今时代的发展背景与发展趋势。尽管单片机速度里程表设计看上去硬件真的比较简单,但是只要核心原理一致,硬件上不断地更新,丰富,就能够演变发展出各式各样的新的多功能产品。本章分为6章,分别从不同的内容角度对本文进行分析说明。第2章 设计原理及硬件设计2.1系统设计原理概述2.1.1系统组成本速度里程表由信号预处理电路、单片机、串口液晶显示电路、串口数据存储电路和系统软件组成。其中信号预处理电路包含信号放大、波形变换和波形整形。系统硬件框图如图所示。信号预处理电路中的放大器用于对待测信号进行放大,以降低对待测信号的幅度要求;波形变换和波形整形电路则用来将放大的信号转换成可与单片机接口的信号;通过单片机的设置可使引脚能够对内部定时器的工作进行控制,这样能精确地测出加到引脚的正脉冲宽度(即测出脉冲信号的周期);速度显示部分采用串口液晶显示模块,所得的数据采用总线并通过来存储,因而节省了所需单片机的口线和外围器件,同时也简化了显示部分的软件编程。系统软件包括单片机和液晶模块的初始化模块、液晶模块的写数据命令子模块、周期测量模块、速度里程计算模块、数据存储模块、速度和里程显示数据转码模块、显示数据消多余零模块、数据显示模块以及实时中断服务模块等。2.1.2系统工作原理2.1.2.1工作原理该设计能实时地将所测的速度显示出来,同时也能够累计显示总里程数。该速度里程表能将传感器输入到单片机的脉冲信号的宽度(传感器将车速转变成相应宽度的脉冲信号)实时地测量出来,然后通过单片机计算出速度和里程,再将所得的数据存储到串口数据存储器,并由串口液晶显示模块实时显示出所测速度。本设计用两个按键来控制显示速度或里程。考虑到信号的衰减、干扰等影响,在信号送入单片机前应对其进行放大整形,然后再输入到单片机进行测速。单片机利用定时器的控制功能测出输入信号的周期后,再利用单片机的算术运算能将周期转换成速度,同时每秒钟进行一次里程累计,从而计算出总里程。最后将得出的速度、里程值存储在中,并根据两个按键的选择情况来显示速度或里程。系统硬件框图如下图放大器波形变换波形整形单片机液晶显示电路数据存储电路2-1示: 图2-1 2.1.2.2(1)原理图如图2-2示: 图2-2 在输入端输入信号,经过信号预处理之后,在上拉电阻和三极管的影响下对输入波型进行整型,转换,最终在单片机的输入端形成带有一顶带宽的规则方波。AT89C2051单片机在运行程序的驱动下,对输入波型进行处理换算,将换算得到的数据传输到EEPROM里面,同时,再将所得到的实时速度数据向LCM0825里输送,并做出显示。2.1.2.2(2)pcb图如图2-3示: 图2-3为了方便计算要显示数据值的段码,可再将其转换成压缩的码,然后通过查表将要显示的数据值中每一位的压缩码转换成段码送到显示缓冲区,最后经串口送至液晶显示模块以显示所测的速度或里程。设计时,应综合考虑测速精度和系统反应时间。本设计用测量脉冲频率来计算速度,因而具有较高的测速精度。为了保证系统的实时性,系统的速度转换模块和显示数据转码模块都采用快速算法。另外,还应尽量保证其它子模块在编程时的通用性和高效性。本设计的速度和里程值采用位显示,并包含两个小数位。22系统硬件设计221 信号预处理电路系统的信号预处理电路如图2-4所示。它由二级电路构成,第一级是由开关三极管组成的零偏置放大器,采用开关三极管可以保证放大器具有良好的高频响应。当输入信号为零或负电压时 ,图2-4 三极 管截止,电路输出高电平;而当输入信号为正电压时,三极管导通,此时输出电压随着输入电压的上升而下降,这使得速度里程表既可以测量任意方波信号的频率,也可以测量正弦波信号的频率。由于放大器的放大功能降低了对待测信号的幅度要求,因此,系统能对任意大于的正弦波和脉冲信号进行测量。预处理电路的第二级采用带施密特触发器的反相器来把放大器生成的单相脉冲转换成与电平相兼容的方波信号同时将输出信号加到单片机的口上。速度里程测量电路选用作为频率计的信号处理核心。包含闪存、的、根口线、个位定时计数器、个向量二级中断结构和个全双工的串行口,同时还具有加密阵列的二级程序存储器加锁功能。设计中用到了的、 定时器和引脚,以及1端口的6个口线。由于该单片机与相兼容,因此在硬件电路设计和软件编程方面更加方便。考虑到本身固有的特点,设计时需注意以下几点:首先,它的程序存储器空间为,因此所有的跳转和分支转移指令都要限制在这个范围内。其次,它没有指令,也就是说,它不支持外部存储器操作,这一点设计时一定要考虑到。此外,自身还有一些其它特点,譬如可以使用命令使其工作在低功耗模式等。单片机利用定时器和引脚来测量输入方波信号的周期,而使用外部中断来控制定时器是否开始定时。当定时器的运行控制位复位时,不管引脚是何值,定时器都不工作。只有当定时器的运行控制位置位后,才能根据引脚状态来决定定时器是否工作。当引脚出现高电平时,定时器开始定时;而在其出现低电平时,定时器停止工作,并将测量信号的周期保存在定时器的位寄存器中。系统初始化时,可通过设置使 和定时器工作在模式方式。1定时器主要用于形成秒钟定时信号,用以为测量里程提供时间条件。液晶显示模块与单片机的接口电路如图2-5所示: SCLSAD(INT0)P1.7P3.2 P1.6 P1.5P1.4P1.2 P1.3 /CS VDD/RD VLCD/WR INTDATA +BZGND BZ电位器50K24C64AT89C2051LCM0825方波信号图2-5 2.2.2单片机的选择2.2.2.1 AT89C2051单片机介绍(1)电路接线图2-6示:图2-6(2) 内部结构框图如2-7示: 图2-72.2.2.2功能介绍: AT89C2051是一个低电压,高性能CMOS 8位单片机,片内含2k bytes的可反复擦写的只读Flash程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大AT89C2051单片机可为您提供许多高性价比的应用场合。AT89C2051是一个功能强大的单片机,但它只有20个引脚,15个双向输入/输出(I/O)端口,其中P1是一个完整的8位双向I/O口,两个外中断口,两个16位可编程定时计数器,两个全双向串行通信口,一个模拟比较放大器。同时AT89C2051的时钟频率可以为零为即具备可用软件设置的睡眠省电功能,系统的唤醒方式有RAM、定时/计数器、串行口和外中断口,系统唤醒后即进入继续工作状态。省电模式中,片内RAM将被冻结,时钟停止振荡,所有功能停止工作,直至系统被硬件复位方可继续运行。其主要功能特性:表 21(1)封装信息如图2-8示:图2-8(2)编程信息:AT89C2051Flash闪速编程方式: 表 22注:1,内部PELOM地址计数器在LST的上升沿复位到000H并由XTAL1引脚正脉冲进行计数. 2,片擦除需要10ms的/PROG脉冲.编程期间P3.1被拉低来指示RDY/BSY.2.2.2.3注意事项:AT89C2051是爱特美尔微控制器家族中经济划算的一款产品。它包含2K字节的闪速程度存储器。它与MCS-51架构完全兼容,并且可以使用MCS-51指令组来编程。但是当使用有些特定指令编程的时候,有几点必须注意。与跳转和分支相关的所有指令应该被限制,使得目标地址落在该单片机的物理内存范围之内,对AT89C2051来说是2K。程序员应对此负责。例如,对AT89C2051(带2K内存)来说,LJMP 7E是一个正确的指令,而LJMP 900H却是错误的。(1).分支程序指令: LCALL,LJMP,ACALL,AJMP,SJMP,JMP A+DPTR只要编程者注意使这些指令的目标地址落在程序存储器大小(对89C2051来说是00H到7FFH)的物理界限内,这些无条件分支指令将正确执行。超出物理空间界限会导致未知的程度行为。CJNE,DJNZ,JB, JNB, JC, JNC, JBC, JN, JNZ这些条件分支指令也适合上面的规则。同样,超出内存界限,会导致不正确的执行结果。对于包括中断的应用,80C51家族架构的正常中断服务线程地址位置已被保留。(2). MOVX相关指令,数据内存: AT89C2051包含128字节的内部数据存储器。于是,AT89C2051的堆栈深度被限制为128字节,可用RAM的大小。该单片机不支持外部数据存储器的存取,也不支持外部程序存储器的执行。所以,在程度中不应该包含MOVX指令。典型的80C51汇编程度仍可用于汇编指令,即便它们违反了上面提到的限制条件。了解所用单片机的物理特性和限制,并对指令做相应的调整是控制器使用者的责任。(3):程序存储器加密 芯片上有两个锁位(加密位),可以不对它们编程(U),也可以对它们编程(P)来获得如下表所列的附加特性:锁存位保护模式(1)程序锁存位-加密模式-LB1-LB2-加密类型1-U-U-无程序加密特性2-P-U-禁止再对闪存编程3-P-P-同模式2,同时禁止检验闪存注意:1.加密位只能用芯片擦除操作来清除。表 23注:加密位只能用片檫除操作进行檫除.(4):空闲模式 在空闲模式下,CPU自己转入睡眠状态,而芯片上其余所有的外围单元保持活动状态。该模式由软件调用。在该模式中,芯片级RAM和所有特殊功能寄存器的内容保持不变。空闲模式可以由任意有效的中断或硬件复位来终止。如果未使用外部上拉电阻,P1.0和P1.1应该被置为“0”,而如果用了外部上拉电阻,它们应该被置为“1”。应该注意,当空闲模式被硬件复位终止时,单片机从它转入睡眠前的状态恢复到正常的程序执行状态,比内部复位算法获得控制权提前两个机器周期。在这种场合,芯片内的硬件禁止访问内部RAM,但访问端口引线是允许的。为了消除当空闲模式被复位终止时可能往端口作不希望发生的写入操作,调用空闲模式指令后面紧跟的那条指令不应该是写端口或写外部内存的指令。(5):低功耗模式 在低功耗模式下,振荡器被停止,调用低功耗模式的指令是被执行的最后一条指令。芯片级RAM和特殊功能寄存器保持它们的值,直到低功耗模式终止。终止低功耗模式的唯一方法硬件复位。复位操作重定义SFR,但是不会改变芯片级RAM。复位动作应在Vcc恢复到正常工作电平时进行,而且必须保持足够长的时间,以使振荡器重启动并趋于稳定。如果未使用外部上拉电阻,P1.0和P1.1应该被置为“0”,而如果用了外部上拉电阻,它们应该被置为VCC 电源电压GND 地。(6):端口1(Port 1) 端口1是一个8位双向I/O口。端口引线P1.2到P1.7提供内部上拉电阻。P1.0和P1.1需要外接上拉电阻。P1.0和P1.1也分别作为芯片级精准模拟比较器的正输入(AIN0)和负输入(AIN1)。端口1输出缓冲器可吸收20mA的电流,可以直接驱动LED显示器。当向端口1写入1的时候,它们可以作为输入。当引线P1.2到P1.7用作输入并被外部拉低时,由于内部上拉电阻,它们将输出电流(IIL)。当对闪存编程和检验时,端口1也接收代码数据。(7):端口(Port 3)端口3引线P3.0至P3.5,P3.7是7个双向I/O口,带内部上拉电阻。P3.6是一个硬接线的输入,它接到芯片级比较器的输出端,不能当作通用的I/O口使用。端口3的输出缓冲器能吸收20mA的电流。当端口3的引线被写入1时,它们由内部上拉电阻拉为高电平,可以用作输入。作为输入时,如果端口3的引线被外部拉低,由于内部上拉电阻的作用,它们将输出电流(IIL)。端口3也为AT89C2051的许多特殊功能服务,如下表:端口号替代功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0 (外部中断0)P3.3INT1 (外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)当对闪存编程和检验时,端口3也接收一些控制信号。(8):RST 复位输入。当RST引线被置为高电平时,所有的I/O口复位为1。当振荡器工作的时候,保持RST的高电平两个机器周期,将使单片机复位。每个机器周期为12个振荡器或时钟周期。(9):XTA2内部反向振荡放大器的输出。(10):XTA1 反向振荡放大器和内部时钟工作电路的输入。(11):振荡器的特性图2-9示XTAL2XTAL1GND石英晶时:C1,C2=30pF+/-10pF陶瓷滤波器:C1,C2=40pF+/-10pF 内部振荡电路 XTAL2XTAL1外部振荡信号输入GND外部时钟驱动电路图2-9 XTAL1和XTAL2分别是反向放大器的输入和输出,该放大器可设置用作芯片级的振荡器,如图1所示。石英晶振和陶瓷谐振器均可使用。要使用外部时钟源来驱动单片机,XTAL2应该被留空,而从XTA1接入时钟信号,如图2所示。由于通过一个两分频触发器输入到内部时钟电路,所以对外部时钟的占空比不作要求,但是必须注意最小和最大电压的高低时间规格。2.2.3液晶显示电路.2.2.3.1 LCM0825 8位液晶显示模块技术说明(1)简要说明:本设计的显示部分采用液晶显示模块该模块与单片机的接口电路如图所示。是位段码式液晶显示模块,它内部集成有控制器、驱动器和,因而可方便显示数据的编程。液晶显示模块采用线串行数据输入,可直接与单片机接口。由于串行接口方式节省了所需的口线和系统资源,因而使系统具有较高的资源利用率。该模块可在电压下工作,其低功耗及背光可调特性使得设计更具有经济性和通用性。能够显示位数据,每一个数据均以段码的形式放在其内部显示区,并用模块内的两个存储地址来放置一个数据的段码。位数据共占用内部个地址。每一个数据位的段码存放形式及高低地址存放段码的顺序都和表所列的第位数据的段码存放格式一样,只是段码的存放地址不同。所以,编程时一定要考虑数据的存放地址和形式。在使用该液晶显示模块时,与之间可用一个的电位器来调整背光。第8位数据段码与LCM0825内部RAM的对应关系表 24数据存储电路采用总线的存储器。是串行的存储器,其存储容量为为时钟线,为数据线。里程数据保存在,因此中可保证掉电时数据不丢失。此外,使用串口也节省了数据口线。(2)设计电路图接线情况如图2-10示:图2-102.2.3.2结构介绍:(1)特点及功用:LCM0825 为 8 位 8 段液晶显示模块 3-4 线串行接口 可与任何单片机接口, IC接口。其低功耗特性,显示状态50A,典型值省电模式3.3V时VLCD脚与VDD间接一电位器SOK S2调节,参考值:5 V/36K o(d)模块掉电再上电时,应上电延时后,对/CS进行几个10s以上的高电平脉冲,让模块复位。(e)模块安装时应使用PCB定位孔固定,并保持平整不变形,不应使LCD玻璃受力变形,模块不得摔碰,严格禁止模块带电焊接,且要将焊接工具接地。2.2.4数据存储电路2.2.4.1:存储器的实物图。24C64为I2C总线的E2PROM。如图2-14示所示: 图2-14 图2-152.2.4.2功能选择:接线图如右图2-15示SCL为400kHz时钟线,SDA为双向数据线,A2、A1、A0三位为片选地址,即I2C总线上最多可并联8个串行E2PROM芯片。对E2PROM的操作方式由读写控制命令字决定,如图4所示。其中1010为4位读写控制码,R/W为读写控制位:0为写操作,1为读操作。所以结合 图2-16示可知A2H为写控制命令字,A3H为读控制命令字。 图2-16对存储器写操作,首先,单片机向24C64发一个START命令,产生开始条件。然后,发写命令控制字(如A2H)。当24C64接到命令后,进入一个写周期,再由单片机发送存储地址,即确定数据写入到存储器的哪个地址,随后,单片机将要存储的数据送入到SDA数据线上。写周期结束时,单片机再发一停止位(STOP)。对存储器读操作,首先,单片机向24C64发一个START命令,产生开始条件。然后发写命令控制字(如A2H)。当24C64接到命令后,进入一个写周期,再由单片机发送存储地址。存储地址发送成功后,单片机又向24C64发一个START命令,产生开始条件,然后发读命令控制字(A3H)。当24C64接到命令后,进入一个读周期,单片机从SDA数据线上读出指定存储地址中的数据。读周期结束时,单片机再发一停止位(STOP)。值得注意的是,对存储器操作时,每读写一个字节,单片机必须送一个应答位(ACK),释放一下SDA数据线,以便存储器能继续接收数据。 23本章小结本章主要对硬件的设计作阐述。分别讲述了本设计的硬件组成部分,主要硬件的选择和功能介绍。同时给出设计原理和和PCB图片。硬件的设置是设计的基础,软件的编译设置是本设计的灵魂 第3章 系统软件设计3.1数据处理过程待测信号经预处理电路后加至单片机的()引脚可为单片机测量信号周期提供有效的输入信号。单片机通过检测引脚电平来决定是否启动测量周期程序。当该引脚为高电平时,系统处于等待状态,要一直到该引脚出现低电平时才开始测周期。测量时首先将零赋给、两个寄存器,以将定时器的运行控制位置位,同时也将置位以允许定时器中断。然后再判断引脚是否还为低电平,如为低电平则等待,直到出现高电平再开始判断引脚是否为低电平,当其不是低电平时再等待。一旦出现低电平,则立即复位以终止定时器,以结束测周期程序。测周期过程中可能会发生定时器的中断,每发生一次中断则将寄存器加一,因此实际上是周期值的高字节。测出的周期值存储在、三个寄存器中,然后将其转换成速度。速度是用车轮的周长除以脉冲周期得到的。由于所测周期的单位是,因此在相除转换时应将被除数扩大倍,以保证得出正确的速度。每秒进行一次里程数累加时,可用当前的速度值加上一秒前的里程数得出当前的总里程数,得出的速度和总里程值放到中。通过、键可显示速度或里程值,键为速度键,键为里程键,两个键可以随时设置。要显示的速度或里程放到、三个寄存器后即可调用转换代码模块,以将数据值转换成压缩的代码并显示处理。考虑到对响应时间的要求,代码模块采用快速算法。数据转变成相应的压缩代码后,可调用显示消多余零和显示数据存储模块,并将要显示的数据值通过查表转换成相应数据的段码放到显示缓冲区以备显示。当然,编程时要把十进制数据的相应段码放在表格中,这样才能进行查表以得到相应数值的段码。此过程的另一个重要目的是消除最高有效位前面的多余零,以使多余零的段码处于不显示状态,从而保证数据以正常的格式显示出来。最后,将显示缓冲区的位段码经串口送至液晶显示模块进行显示。 系统初始化模块周期测量模块速度里程计算模块数据存储模块定时器中断服务模块显示数据的BCD码转换模块数据显示模块显示数据的处理模块图3-1 系统软件框图 3.2系统软件框图本系统软件采用模块化设计方法。整个系统由初始化模块、周期测量模块、速度转换模块、里程计算和存储模块、数据转码模块、显示数据处理模块、数据显示模块、定时器中断服务模块以及其它功能模块组成,图3-1给出了其软件框图。上电后,首先进入系统初始化模块,此后系统软件将开始运行,以实时地将所测数值显示在液晶模块上。3.3液晶显示模块的初始化是串行位段液晶显示模块。使用时,要在上电后对该模块进行初始化。在初始化之前,应延时以上再送命令。它的初始化工作过程如下:首先定义液晶模块(当其命令代码为:),其次定义振荡器方式(当其命令代码为时,将模块定义为内部振荡方式,命令代码为时,定义为外部晶体振荡方式)。然后分别用命令代码和开振荡器和开显示器。以上命令送入后,便可以在需要显示数据时将相应的段码直接送入模块内部的显示中。在送显示数据的段码数据时,要考虑到显示 的高和低地址所对应的数据段码的存放形式。其第位数据的段码与内部的地址的对应关系见表。以后随地址的增加依次存放第位至第位数据段码。为了正确地显示数据,应使要显示的位字符在显示屏幕中为左起第一位,右止第位。 另外,写命令和写数据程序应分别编写,因为它们的命令格式及时序不同, 图3-2见图3-2。由时序图可见,编写传输子程序时,所传数据的高位先移入模块,否则模块不能正常工作或显示。同样,为了能正确读写命令或数据,必须在时序中加入相应的延时;此外,为保证系统的低功耗,每次读写命令或数据之后,都应将、 置高电平。3.4实现设计功能程序:3.4.1初始化程序在本系统初始化程序中,主要完成一下工作:将T1设为外部控制定时器方式;外中断0及外中断1设为边沿触发式;将部分内存单元清零;设置轮子周长值;开中断及定时器;将EEPROM中的数据调入内存等。;60H,61H,62H作里程计数单元,6CH,6DH作T1计数扩充单元,;68H,69H,6AH,6BH存放自行车每圈时间数,70H,71H,72H,73H;作显示BCD码存放数用,11H15H存放被除数,16H19H存放除数;定义VSDA WQU P1.5 ;EEPROM数据传送口VSCL EQU P1.4 ;EEPROM时钟传送口SLA EQU 50H ;EEPROM器件寻址字节存放单元NUMBYT EQU 51H ;EEPROM传送字节数存放单元MTD EQU 30H ;EEPROM发送数据缓冲单元MRD EQU 40H ;EEPROM读出数据存放单元SLAW EQU 0A0H ;EEPROM寻址字节写SLAR EQU 0A1H ;EEPROM寻址字节读DPHH EQU 62H ;DPTR计数扩展高8位TH1H EQU 6CH ;定时器T1扩展高8位TH1HH EQU 6DH ;定时器T1扩展高86位;PROGRAM INPUT;ORG 0000H ;程序执行开始地址LJMP START ;跳至STARTORG 0003H ;外中断中断程序入口LJMP INTEX0 ;跳至INTEX0中断程序入口ORG 001BH ;定时器T0中断程序入口RET1 ;中断返回ORG 0013H ;外中断1中断入口 LJMP INTEX1 ;跳至INTEX1中断服务程序ORG 001BH ;定时器T1中断程序入口LJMP INTT1 ;跳至INTT1中断服务程序ORG 0023H ;串口中断入口地址RETI ;中断返回ORG 002BH ;定时器T2中断入口地址RETI ;中断返回3.4.2轮圈设置出错出理程序P1.2、P1.3、P1.6、P1.7端口的开关用于设定轮子的周长,当没有设定时(至少让一个开关闭合),能从P3.1口输出一个周期为0.5s的方波信号,用作发光管闪烁及信响器提醒。;上电初始化程序CLWARMEN; MOV TMOD,90H ;T1为16位外部控制定时器MOV SP,75H ;堆栈在75H开始SETB PX0 ;外中断0优先级为1SETB IT0 ;外中断0用边沿触发CLR A ;清AMOV 20H,A ;清内存中特定单元MOV 20H,A ;MOV 6CH,A ; MOV 6DH,A ;MOV 70H,A ;MOV 71H,A ;MOV 72H,A ;MOV 73H,A ;MOV 60H,A ;MOV 61H,A ;MOV 62H,A ;MOV 63H,A ;清内存中特定单元DEC A A ;为0FFHMOV 68H,A ;内存置数据0FFHMOV 69H,A ;内存置数据0FFHMOV 6AH,A ;内存置数据0FFHMOV 6BH,A ;内存置数据0FFHMOV P1,A ;P1口置1CLEAR1; JB P1.2,KEY1 ;根据P1.2,P1.3,P1.6,P1.7设置状态, ;在21H地址单元赋自行车周长值MOV 21H,0FH ;22英寸自行车周长值LJMP CLEAR2 ;转CLEAR2KEY1; JB P1.3,KEY2 ;MOV 21H,14H ;26英寸自行车周长值LJMP CLEAR2 ;转CLEAR2KEY2; JB P1.6,KEY3 ; MOV 21H,14H ;26英寸自行车周长值KEY3; JB P1.7,ERR ;4个开关都没合上,转出错处理 MOV 21H,19H ;28英寸自行车周长值CLEAR2; SETB TR1 ;开定时器T1SETB EA ;开中断允许SETB EX0 ;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初级拉丁舞暑期培训教学计划方案
- 2025-2030发酵技术在生物饲料中的应用瓶颈突破可行性研究报告
- 小学语文综合测评卷设计方案
- 城市轨道交通接触网维护规范
- 2023年全国高考语文考试真题及解析
- 2025-2030动力电池快充技术路线比较与产业化进程评估
- 2025-2030动力电池回收网点布局优化与逆向物流体系建设
- 2025-2030动力电池回收市场供需格局与投资规划分析报告
- 2025-2030动力电池回收利用技术路线选择与再生材料价值评估
- 古典诗词教学重点及写作方法研讨
- JG/T 511-2017建筑用发泡陶瓷保温板
- T/JSWP 04-2022广告企业信用评价规范
- DB3405T 0007-2024老旧小区海绵城市改造技术规范
- 道路工程运营方案
- GB 45669.4-2025黄河流域工业用水定额第4部分:水泥
- 消化诊断内镜技术操作规范2023版
- 医疗机构小儿推拿技术规范-公示稿
- 焊接过程化学反应
- 手术体位安全管理制度
- 江苏省连云港市2024年中考语文试题(解析版)
- 园艺植物遗传育种 课件 第八章 诱变育种
评论
0/150
提交评论