资源描述:
《基于单片机的汽车里程表设计.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第22卷第3期河北大学学报(自然科学版)Vol.22No.32002年9月JournalofHebeiUniversity(NaturalScienceEdition)Sep.2002基于单片机的汽车里程表设计1223刘清波,蔡淑珍,孙业歧,史楠(1.保定师范专科学校计算机中心,河北保定071051;2.河北大学物理科学与技术学院,河北保定071002;3.河北大学电子信息工程学院,河北保定071002)摘要:介绍了电子汽车里程表,此里程表以8031单片机为核心,用LED数码管显示汽车总行驶里程、本次里程,具有结构简单、成本低廉、显示清晰、稳定可靠等优点.并且可进行扩充,加入
2、时速表的功能,进一步节省汽车仪表成本.关键词:单片机;汽车里程表;存储器中图分类号:TP202文献标识码:A文章编号:1000-1565(2002)03-0276-03单片机自从推出以来,以其超小型化、结构紧凑、可靠性高、成本低等优点被人们广泛接受,从而应用于工业、电讯、数据处理、仪器仪表等多方面.汽车里程表是汽车的重要配件,在汽车仪表中占重要位置,但几十年来其发展变化并不大,现在国外很多车中使用了数字里程表,但在国内还并不多见.这里讲述的是一种以8031单片机为核心,6位LED数码管作为显示器,再加上程序存储器2764,并以E2PROM2817A为数据存储器,8279为显示
3、芯片的数字汽车里程表.其通过按键开关可切换显示本次里程和总里程.2816,2817系列为E2PROM,其掉电信息并不丢失,并且数据可方便改写,利用此特性在其中存放汽车总里程数据.1硬件设计此汽车里程表以2764为程序存储器,8031单片机为CPU,此种单片机应用广泛且价格便宜.以74LS373为锁存器构成最小系统,数据存储器用的是一片E2PROM2817A.显示电路由1片74LS138为译码器,两片7406,3片75451为驱动器,加上一片8279显示芯片组成.采用6位共阴极数码管.总里程最大值为999999km,本次里程最大显示为999.9km,总里程与本次里程用8031P
4、3.0脚外接按键开关来切换.8031P1.0脚外接点触式开关用以清零本次里程.显示器显示方式采用八字符右入动态显示.(结构示意图如图1所示)8031单片机外接8MHz晶振作为外部时钟频率振荡电路,由汽车磁电式传感器将汽车行驶时变速箱转数转换成脉冲信号,接8031单片机INT1脚作为计数脉冲输入.2软件设计软件设计在系统设计中占很大比重,好的软件环境能使单片机硬件资源得以充分发挥,在软件编程时应注图1汽车里程表结构重程序的结构化,以简化编码,方便调试.本汽车里程表Fig.1Structuredrawingofautormobileodometer收稿日期:2001-11-16作
5、者简介:刘清波(1965-),男,河北顺平人,保定师范专科学校副教授.第3期刘清波等:基于单片机的汽车里程表设计·277·程序短小简练,结构简单,汇编完后为713字节,占用程序空间少,用2716亦能胜任(采用2764主要为了方便功能扩充).1)里程计数原理:汽车磁电式传感器输出的脉冲信号是传感器转轮旋转时磁场使舌簧管分开闭合而产生的脉冲.每一个脉冲代表行驶了一定的距离.设汽车行驶1km时驱动轮转数为N,磁电式传感器转数为NF则NF=N×I,其中I为传动比.设轮胎外径为D,则汽车行驶1km驱动轮转数为N=1000/πD,实际中由于轮胎承载变形使得轮胎外径D变化,此时NXI=10
6、00/πμD,其中μ为变形系数,一般为0.93~0.96.则磁电式传感器在汽车行驶1km时转数NF=(1000/πμD)I.设传感器转轮上均匀安排m个磁片时,汽车行驶1km,传感器输出脉冲为mNF个.2)程序中以INT1的输入为里程计数脉冲,8031中断1置为高中断优先级以保证计数准确.定时器T0置为低中断优先级,设T0每10ms中断1次,中断1次送1位显示.每行驶1km向2817中写1次数据.3)以60H~62H单元为计数脉冲暂存单元.68H,69H单元为判断数据暂存单元,6CH中为本次里程小数点位数值.当6CH单元内容达到0AH时清零.70~72H单元为读出的总里程数.本
7、程序包括主程序和2个中断服务程序,程序功能如下:主程序:初始化,清零存储单元,读出总里程存入暂存单元,开CPU中断、置中断优先级,启动定时器,等待中断.INT1中断服务程序:脉冲个数加1,判断是否小数点数值为0.1km,判断是否行驶1km.不是则返回.T0中断服务程序:判断是否显示总里程,显示方式初始化,显示里程数,返回.图2系统流程Fig.2Flowchartofsystem每经过1km写1次2817,这样设计比隔一定时间写一次新数据要实用得多,这样在停车等待时8031停止写入总里程,从而大大延长了2