自行车里程表电路设计毕业设计

上传人:仙*** 文档编号:72334707 上传时间:2022-04-08 格式:DOC 页数:22 大小:204.50KB
收藏 版权申诉 举报 下载
自行车里程表电路设计毕业设计_第1页
第1页 / 共22页
自行车里程表电路设计毕业设计_第2页
第2页 / 共22页
自行车里程表电路设计毕业设计_第3页
第3页 / 共22页
资源描述:

《自行车里程表电路设计毕业设计》由会员分享,可在线阅读,更多相关《自行车里程表电路设计毕业设计(22页珍藏版)》请在装配图网上搜索。

1、 安阳师范学院本科学生毕业设计报告自行车里程表电路设计系(院) 物理与电气工程学院 专 业 电气工程及其自动化 诚信承诺书郑重承诺:所呈交的论文是作者个人在导师指导下进行的研究工作及取得的研究成果。除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得安阳师范学院或其他教育机构的学位或证书所使用过的材料。与作者一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。作者签名: 日期:导师签名: 日期:院长签名: 日期:论文使用授权说明本人完全了解安阳师范学院有关保留、使用学位论文的规定,即:学校有权保留送交论文的复印件,允许论文被查阅

2、和借阅;学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文。保密论文在解密后遵守此规定。作者签名:导师签名:日期:自行车里程表电路设计陈乐乐(安阳师范学院 物理与电气工程学院 河南 安阳 455000)摘要:介绍了自行车里程表研究的意义,提出了自行车里程表的设计方案,详细阐述了采用STC89C52、霍尔传感器、LED数码管等设计制作自行车里程表的过程。关键词:里程表;单片机;霍尔传感器;LED数码管1 引言自行车由于本身低碳环保及方便等优点,成为居民喜爱的交通、健身工具。在这个背景下,自行车里程表作为自行车的一大辅助工具迅速发展起来。科学、美观、合理设计自行车里程表有一

3、定的实用价值,它能计算出里程数,使运动者运动适量,达到健康运动与代步的最佳效果。现在汽车上都装载有里程表,但是由于成本昂贵,不太适合应用在自行车上。本里程表的设计具有结构简单,成本低廉,显示清晰,稳定可靠等优点,并且可进行扩充。2 设计要求(1)以单片机为控制核心,采用霍尔传感器检测自行车轮胎的运转情况,通过抗干扰处理和计算后,由数码管显示自行车的里程;(2)总里程999.9Km;(3)可扩展显示自行车速度。3 方案论证3.1 方案1(1)利用霍尔传感器产生里程数的脉冲信号;(2)利用单片机自带的计数器T1对霍尔传感器脉冲信号进行计数;(3)对数据进行处理,用LED显示里程数。实现:利用软件编

4、程,对数据进行处理得到需要的数值。最终实现目标:自行车里程显示功能。整个设计过程包括硬件电路的搭建,软件的编程,系统的调试,调试通过后,固化程序,脱离开发系统运行。3.2 方案2总体思路与方案1一致,依然利用单片机自带的计数器对霍尔传感器产生里程数的脉冲信号进行计数,但是数据显示模块采用LCD显示,更能清晰的显示里程数。3.3 方案比较本设计采用方案1,数码管低功耗,容易控制,占用CPU资源少,价格比较便宜,比较实用。4 硬件设计4.1 框图 本系统是由数据采集,单片机控制系统,数据存储3部分构成。其中数据的采集是由霍尔传感器来完成的,它的输出是矩形脉冲,经过RC滤波后就向单片机系统提供转速信

5、号。其中关键的处理由单片机系统来完成,单片机将对INT0脚的接收的信号进行计数,信号由显示部分送LED进行显示,显示当前的行驶里程情况。在本次行驶过后数据存入EEPROM中,以便下次行驶时在其基础上继续计数送出显示总共的里程数,到记忆的目的。以上所述就是整个系统的总体设计思想。 利用霍尔元件对里程进行测量,将霍尔元件安装在车前叉的一侧,在车圈侧面贴一个磁片,当磁片经过霍尔元件时,霍尔元件输出端的电压发生变化产生脉冲,单片机根据脉冲数来计算里程。该设计能实时地将所测的累计里程数显示出来,信号送入单片机前应对其进行放大整形,然后通过单片机计算出里程,再将所得的数据存储到数据存储器,并由LED显示模

6、块交替显示所测里程。本设计的里程数的算法是一种大概的算法(假设在一定时间内自行车是匀速行进)。原理框图如图1所示。图1 原理框图STC89C52传 感 器显示电路数据储存 EEPROM4.2 电路原理图和电路原理本设计所用的霍尔传感器是一块集成芯片,它结合了采样和放大功能于一体。首先我们把磁钢放在自行车的转轴上,而霍尔元件就放在与其水平的转轴上,当我们完成安装后,转动自行车的转轴,磁钢也就跟着一起转动,从而使霍尔传感器周围的磁场发生变化,这种变化将会导致霍尔电压变化从而产生一个方波,再通过其内部的整形和放大,产生出一个适合外部电路的脉冲电压。假定轮圈的周长为L,在轮圈上安装1个磁铁,则测得的里

7、程值最大误差为L。当轮子每转一圈,通过开关型霍尔元件传感器采集到一个脉冲信号,并从引脚P3.2口中断0端输入,传感器每获取一个脉冲信号即对系统提供一次计数中断,每次中断代表车轮转动一圈,中断数n轮圈的周长L的乘积即为里程值。电路原理如图2所示。图2 电路原理图5 软件设计5.1 软件编程实现5.1.1系统软件框图本系统软件采用模块化设计方法,整个系统由初始化模块、里程计算模块、数据转BCD码模块、里程显示模块、数据存储、读取模块、定时器中断服务模块以及其他功能模块组成,如图3所示。图3 系统软件框图初始化 模块里 程 显 示 模 块E E P R O M 数 据 读 出 模 块中 断 服 务

8、模 块5.1.2总体程序设计自行车里程表的软件设计包括上电初始化程序、中断子程序、里程调用子程序、LED显示子程序、延时子程序等部分,下面将分析其主要部分。在主程序模块中,需要完成对各接口芯片的初始化、自行车里程的初始化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器,并对它们进行初始化。然后主程序将根据各标志寄存器的内容,分别完成启动、清除、计程等不同的操作。开始P1.1口用于显示里程状态,P1.7口用于设置轮圈的大小,低电平有效。中断0用于对轮子圈数的计数输入,轮子每转一圈,霍尔传感器输出一个低电平脉冲,将根据里程寄存器中的内容计算

9、出行驶里程数。中断1用于控制定时器T1的启/停,当输入为0时关闭定时器。此控制信号是将轮子圈数的计数经二分频后形成,其程序流程如图4所示。初始化P1.7=1? NY出错提示将车圈周长调入21H开中断,启动定时器调用里程处理子程序图4 主程序流程图5.2中断子程序的设计定时中断是为满足定时或计数的需要而设置的。为此在单片机内部有两个定时/计数器,以对其中的计数结构进行计数的方法,来实现定时或计数功能。当结构发生计数溢出时,即表明计数值已满,这时就以计数溢出信号作为中断请求,去置位一个溢出标志,作为单片机接受中断请求的标志。这种中断请求是在单片机芯片内部发生的,因此无须在芯片上设置引入端。定时/计

10、数器控制寄存器TCON是8位寄存器,地址为88H,可以位寻址。其高4位用于定时/计数器中断控制,低4位借给外部中断,用做中断标志和触发方式选择位。本设计采用定时中断,对自行车的里程进行计数。5.3 里程计算子程序的设计外中断0服务程序用于对单片机P3.2口输入的圈脉冲进行计数,为十六进制计数器。60H为低位,62H为高位。每次计数一次后,对里程数据进行一次存储操作。当车轮每转一圈,通过霍尔元件将脉冲数输入单片机内,通过计数器计出脉冲数,再用乘法子程序算出里程数。5.4 显示子程序的设计本次设计采用动态扫描显示接口电路,动态显示接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示

11、器的公共极COM各自独立地受I/O线控制。CPU向字段输出口送出字型码时,所有显示器接收到相同的字型码,但究竟是哪个显示器亮,则取决于COM端。我们可以采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。本设计P2.0、P2.1、P2.2、P2.3信号一起组成位选通的位选信号,P0.0P0.7信号一起组成段码选通的段选信号,通过软件编程,先把所要显示的数据放入存储

12、单元,然后把数据送入段选通对应的地址,再选通某一个LED,逐步完成四个LED的显示,显示子程序流程图如图5所示。开始显示单元址取显示数据取断码表首址调用延时送断码到P0口送位选到P2口4位显示结束?返回求下一位位选码修改显示单元地址YN图5 显示子程序流程图6 主要元器件介绍6.1 霍尔传感器霍尔传感器是对磁敏感的传感元件,常用于信号采集的有A44E、CS3020、CS3040等,这类传感器是一个3端器件,外形与三极管相似,只要接上电源、地,即可工作,通常是集电极开路(OC门)输出,工作电压范围宽,使用非常方便。A44E的外形如图6所示。1-Vcc 2-GND 3-OUT图6 A44E外形图使

13、用霍尔传感器获得脉冲信号,其机械结构也可以做得较为简单,只要在转轴的齿轮盘上粘上一粒磁钢,霍尔元件固定在前叉上,当车子转动时霍尔元件靠近磁钢,就有信号输出,转轴旋转时,就会不断地产生脉冲信号输出。6.2 LED数码管与LCD液晶显示器相比,数码管虽没有液晶显示器那样的显示效果,但是它有其自己的特点,它低功耗,容易控制,占用CPU资源少,从而成为一些显示器的首选。数码管由7个发光二极管组成,它门可以共阴极,也可以共阳极。通过解码电路得到的数码接通相应的发光二极而形成相应的字符,可以显示从1到9的数字,这满足设计要求。由霍尔传感器采集的脉冲数据信号,通过RC滤波后向单片机提供数据脉冲,单片机再对其

14、进行记数。当达到先前所设计的计数值的时候单片机就申请中断,从而使单片机响应中断程序,既使其输出一个信号代表此时自行车已经行驶了1Km,这时在经过显示单元电路使LED数码管显示1Km。当第二个信号来的时候,电路实现加一的功能后在送LED显示,这样就实现了显示里程的目的。6.3 STC89C52单片机6.3.1单片机原理简介单片微型计算机是指集成在一个芯片上的微型计算机,也就是把组成微型计算机的各种功能部件,包括CPU(CentralProcessingUnit)、随机存储器RAM(RandomAccess Memory)、只读存储器ROM(Read-onlyMemory)、基本输入/输出(inp

15、ut/output)接口电路,定时器/计数器等部件都制作在一块集成芯片上,构成一个完整的微型计算机从而实现微型计算机的基本功能。单片机实质上是一个芯片,在实际应用中,通常很少将单片机直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。6.3.2单片机的引脚功能STC89C52是一种低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的只读程序存储器(EPROM)和256 字节的随机存取数据存储器(RAM),片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大,STC89C52单片机适合于许多较为复杂控制

16、场合应用,其引脚图如图7所示。图7 89C52引脚图STC89C52提供以下标准功能:8k字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个全双工串行通信口,片内具有振荡器及时钟电路。同时,STC89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。89C52的主要管脚功能如下:P0.0P0.7:P0口是一组8位漏极开路型双向I/O口,也是地址/数据总线复用口。作为

17、输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。P1.0P1.7:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲极可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。ALE:地址锁存控制信号。在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。此外,由于ALE是以晶振16的固定频率输出的正脉冲,因此,可作为外部时钟或外部定

18、时脉冲使用。RST:复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作。XTALl和XTAL2:外接晶体引线端。当使用芯片内部时钟时,此二引线端用于外接石英晶体和电容;当使用外部时钟时,用于接外部时钟脉冲信号。VSS:地线。 VCC:+5V电源。6.4 74LS244本次设计中的采用驱动数码管的芯片为74LS244,74LS244为三态输出的八位缓冲器和线驱动器,若单片机输出口直接接显示部分电路,则电流太小,会导致显示部分不能正常工作,所以在单片机输出口先接入驱动芯片74LS244,增大电流,使LED能够正常工作。其逻辑图如图8所示。图8 74LS

19、244逻辑图6.5 74LS7474LS74是D触发器的一种,它是一个具有记忆功能的二进制信息存储器件,是构成多种时序电路的最基本逻辑单元。触发器具有两个稳定状态,即0和1,在一定的外界信号作用下,可以从一个稳定状态翻转到另一个稳定状态,由于其状态的更新发生在CP脉冲的边沿故又称之为上升沿触发的边沿触发器,D触发器的状态只取决于时针到来前D端的状态。D触发器应用很广,可用做数字信号的寄存、移位寄存、分频和波形发生器等。7 制作、安装和调试7.1 制作7.1.1系统仿真本次设计采用的仿真软件是Proteus, Proteus仿真软件可以实现数字电路、模拟电路及微控制系统与外设的混合电路系统的电路

20、仿真、系统协同仿真和PCB设计等全部功能。电路仿真原理图如9所示。图9 电路仿真原理图当完成原理图布线后,利用Proteus ISIS编辑环境所提供的电器规则检查命令对设计进行检查,并根据系统提供的错误检查报告修改原理图,直到通过电器规则检查为止。单片机系统的仿真是Proteus的一大特色,将原理图连接完成之后,利用Keil软件可将程序烧入单片机里面,这样可以在设计中直接编辑代码,源代码通过编译无误后,就可以进行仿真,并查看仿真的结果。7.1.2 制作PCB板(1)用Protel提供的各种功能及命令编辑原理图文件。(2)启动Protel时参数设计,进入PCB编辑环境,指定元件的布置、板层、布线

21、等参数。(3)装入原理图及元件封装。该环节是在准备好的电路原理图的基础上进行的。元件的封装也就是元件的外形,每个元件都对应电路板上的几个焊盘,对于每个装入的元件必须有相应的外形封装,这样才能保证电路板布线的顺利进行。(4)元件在电路板上的布置。放置了电路板的物理尺寸,即确定了电路板的板边之后,才可以装入电路原理图。在装入电路原理图之后,程序自动装入所有元件,元件自动放在电路板边框内,这时根据器件的布局需要把其中零乱的器件布置好。(5)自动布线和手工调整。PCB有自动布线的功能,只要把有关参数设置适当,元件位置布置合理,就可以自动布线,自己不满意的地方可以通过手工调整来弥补。(6)打印PCB电路

22、板。PCB板图如附录2所示7.2 安装在完成仿真实验后,开始搭建硬件电路,按照原理图进行连接,焊接PCB板,将源代码烧写到单片机里,完成了本次毕业设计的任务。7.3 调试将电路板连接上电源后,二极管正常发光,数码管显示四个0,用磁铁经过霍尔传感器,数码管开始计数,达到预期的目的。8 结束语本次课程设计的主要任务是做一个以单片机为核心的自行车里程表。设计主要分为硬件部分和软件部分,硬件部分着重考虑硬件电路的可行性及优化,软件部分采用模块化设计思想,增强程序的可读性。通过仿真验证了系统的可行性,能满足设计要求。当然,本次设计也有不足之处。在实际的硬件焊接电路上,Protues 软件仿真不能很好的显

23、示实际的现象,必须在实际的电路上调节测试,同时,电路板的焊接也具有很大的挑战性。本次设计可以扩展,可以扩展为速度里程表,更能清楚了解到自己所处的状况。经过这段时期系统的设计,我对51单片机有了更深的了解和认识,同时也给了我一个独立思考和解决问题的机会,锻炼了自己。在里程表的功能模块分析、算法计算、程序编写等各方面的设计中,需要进行细致全面的思考,从中让我学会了软硬结合,理论学习联系实际操作,学会了怎样将书本知识转化到实际应用中去。参考文献1张毅刚.单片机原理与应用及应用M. 北京:高等教育出版社,20112郭天祥.51单片机C语言教程M.北京:电子工业出版社,20093高玉芹.单片机原理与应用

24、及C51编程技术M. 北京:机械工业出版社,20114李林功.单片机原理与应用:基于实例驱动和Proteus仿真M. 北京:科学出版社,20115王锁弘.电子车速里程表的单片机实现方案J.国外电子元器件,2004Bicycle Odometer Circuit DesignChen Lele(School of Physics and Electical Engineering,Anyang Normal University,Anyang,Henan 455000)Abstract: The significance of bicycle odometer is introduced, pu

25、t forward the design of bicycle odometer, detailed elaborated the STC89C52, hall sensors, LED digital tube, etc. Design and production process of bicycle odometer.Key words:speedometer; single chip microcomputer; ;hall sensor; LED digital tube附 录1 元器件明细表序号名称型号数量1单片机STC89C521个2驱动器74LS2441个3D触发器74LS74

26、1个4排阻1 KW1个5霍尔元件A44E1个6发光二极管LED1个7晶振12MHz1个8共阴极四位数码管SMA4205641个9电容33PF2个10F1个10电阻10KW1个100W1个2 KW1个11微动开关1个12电路板1块13导线若干附录2 PCB图附 录3 程序 ;;中断初始化; ORG 0000H ;程序执行开始地址 LJMP START ;跳至START ORG 0003H ;外中断0中断程序入口 LJMP INTEX0 ;跳至INTEX0中断服务程序 RETI ;中断返回 ORG 0013H ;外中断1中断入口 LJMP INTEX1 ;跳至INTEX1中断服务程序 ORG 00

27、1BH ;定时器T1中断程序入口 LJMP INTT1 ;跳至INTT1中断服务程序 ORG 0023H ;串口中断入口地址 RETI ;中断返回;;上电初始化程序; CLEARMEN: MOV TMOD,#90H ;T1为16位外部控制定时器 SETB PX0 ;外中断0优先级为1 SETB IT0 ;外中断0用边沿触发 SETB IT1 ;外中断1用边沿触发 CLR A ;清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

28、 61H,A ; MOV 62H,A ; MOV 63H,A ;清内存中特定单元 DEC A ;A为#0FFH MOV 68H,A ;内存置数据#0FFH MOV 69H,A ;内存置数据#0FFH MOV 6AH,A ;内存置数据#0FFH MOV 6BH,A ;内存置数据#0FFH MOV P1, A ;P1口置1CLEAR1: JB P1.2,KEY1 ;根据P1.2,P1.3,P1.6,P1.7设置状态, ;在21H地址单元赋自行车周长值 KEY: MOV 21H,#19H ; 28寸自行车周长值CLEAR2: SETB TR1 ;开定时器T1 SETB EA ;开中断允许 SETB

29、EX0 ;开外中断0 SETB ET1 ;开定时中断T1 SETB P3.1 ;关报警器 LCALL VIICREAD ;将EEPROM中原里程数据调入内存 RET ;子程序返回;;START ;START: MOV SP,#75H ;堆栈在75H开始 LCALL CLEARMEN ;上电初始化START1: JB P3.0,DISPLAYS ;P3.0=1,显示里程 LCALL DISPLAYV ;显示速度START2: SJMP START1 ;转START1循环; ;;里程计数程序,用外中断0实现,计数用60H-62H内存单元。; ;INTEX0: PUSH ACC ; 累加器堆栈保护

30、PUSH PSW ;状态字堆栈保护 INC 60H ;圈加1 CLR A ;清A CJNE A,60H,INTEX0OUT ;计数没溢出转INTEX0OUT INC 61H ;溢出进位(61H加1) CJNE A,61H,INTEX0OUT ;计数没溢出转INTEX0OUT INC 62H ;溢出进位(62H加1)INTEX0OUT: LCALL VIICWRITE ;里程数据存入EEPROM SETB EX1 ;开外中断1 POP PSW ;状态字恢复 POP ACC ;累加器恢复 RETI ;中断返回;; T1计数器中断服务程序;INTT1: PUSH ACC ;累加器堆栈保护 PUSH

31、PSW ;状态字堆栈保护 INC 6CH ;6CH计时 单元加1 MOV A,6CH ;移入A JNZ INTT11 ;不等于0转INTT11 INC 6DH ;进位,6DH单元加1 MOV A,6DH ;移入A JNZ INTT11 ; 不等于0转INTT11 SETB 00H ;计时器溢出,置溢出标志INTT11: POP PSW ;恢复堆栈 POP ACC ; RETI ;中断返回;;里程显示控制程序 ;DISPLAYS: SETB P1.0 ;点亮LED1(显示里程状态) CLR P1.1 ;关闭速度指示灯 SETB P3.7 ;显示小数点(最小显示为0.1公里) LCALL SSS

32、;将圈数转为公里数 LCALL DISPLAY ;显示公里数据 LJMP START1 ;跳回START1;;归一化EEPROM存入程序(12M时钟),存入数在50H起单元;VIICWRITE: ACALL WMOV9 MOV SLA,#SLAW MOV NUMBYT,#09H LCALL WRNBYT RETWMOV9: MOV 5FH,#50H MOV R0,#MTD MOV R1,#5FH MOV R2,#09HWMOV: MOV A,R1 MOV R0,A INC R0 INC R1 DJNZ R2,WMOV RET;;归一化EEPROM读出程序(12M时钟),读出数放入60H-67H

33、单元 ;VIICREAD: MOV MTD,#50H ; MOV SLA,#SLAW MOV NUMBYT,#01H LCALL WRNBYT MOV SLA,#SLAR MOV NUMBYT,#08H LCALL RDNBYT ACALL RMOV8 RETRMOV8: MOV R0,#MRD MOV R1,#60H MOV R2,#08HRMOV: MOV A,R0 MOV R1,A INC R0 INC R1 DJNZ R2,RMOV RET;;显示程序,显示BCD码在70H-73H单元内,采用共阴LED数码管;DISPLAY: MOV R1,#70H ;显示单元首址 MOV R2,#0

34、FEH ;扫描字PLAY: MOV A,R2 ;扫描字入A MOV P2,A ;放到端口 MOV A,R1 ;取显示数据 ANL A,#0FH ;去掉高四位(为0) MOV DPTR,#TAB ;取段码表首址 MOVC A,A+DPTR ;查显示数据对应段码 MOV P0,A ;段码输出 LCALL DL1MS ;点亮1毫秒 INC R1 ;指向下一显示数据地址 MOV A,R2 ;取扫描字 JNB ACC.3,ENDOUT ;已扫描到第四位,转ENDOUT退出 RL A ;循环左移 MOV R2,A ;放回R2 AJMP PLAY ;转PLAY循环ENDOUT: SETB P2.0 ;关扫描

35、 SETB P2.1 ;关扫描 SETB P2.2 ;关扫描 SETB P2.3 ;关扫描 RET ;扫描结束;共阴段码表(可显示0-F)TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H DB 00H;;里程处理程序,将自行车圈数据换算成公里数 ;SSS: MOV R2,61H MOV R3,60H MOV R6,#00H MOV R7,21H MOV A,R3 MOV B,R7 MUL AB XCH A,R7 MOV R5,B MOV B,R2 MUL AB ADD A,R5 MOV R4,A

36、 CLR A ADDC A,B MOV R5,A MOV A,R6 MOV B,R3 MUL AB ADD A,R4 XCH A,R6 XCH A,B ADDC A,R5 MOV R5,A MOV F0,C MOV A,R2 MUL AB ADD A,R5 MOV R5,A CLR A MOV ACC.0,C MOV C,F0 ADDC A,B MOV R4,A MOV 19H,#64H ;除数最高位赋值 MOV 18H,#00H ; 除数赋值 MOV 17H,#00H ; 除数赋值 MOV 16H,#00H ; 除数赋值 MOV 11H,#00H ; 被除数赋值 MOV 12H,R4 ; 被

37、除数赋值 MOV 13H,R5 ; 被除数赋值 MOV 14H,R6 ; 被除数赋值 MOV 15H,R7 ; 被除数赋值 LCALL DIVST ; 调除法程序 LCALL BCDST ; 调二进制转BCD码程序 MOV A,25H ; 结果处理,将25H数移入A ANL A,#0FH ; 将高四位置为0 MOV 70H,A ; 放入70H单元 MOV A,25H ; 25H数移入A SWAP A ; 高低四位交换 ANL A,#0FH ; 将高四位置为0 MOV 71H,A ; 放入71H单元 MOV A,24H ; 24H数移入A ANL A,#0FH ; 将高四位置为0 MOV 72H

38、,A ; 放入72H单元 MOV A,24H ; 24H数移入A SWAP A ; 高低四位交换 ANL A,#0FH ; 将高四位置为0 MOV 73H,A ; 放入73H单元 RET ;子程序返回;;1毫秒延时程序,点亮LED;DL1MS: MOV R6,#14HDL1: MOV R7,#19HDL2: DJNZ R7,DL2 DJNZ R6,DL1 RET; ; ; ; ;除法子程序,用作四位除法,除数在16H-19H,被除数在11H-15H。 ; ; ; ;DIVST: CLR C ;运算开始 MOV A,13H SUBB A,18H MOV A,12H SUBB A,17H MOV

39、A,11H SUBB A,16H JNC LOOP4 MOV B,#10H NDIV1: CLR C MOV A,15H RLC A MOV 15H,A MOV A,14H RLC A MOV 14H,A MOV A,13H RLC A MOV 13H,A MOV A,12H RLCA MOV 12H,A MOV A,11H RLC A MOV 11H,A MOV F0,C CLR C MOV A,13H SUBB A,18H MOV 1AH,A MOV A,12H SUBB A,17H MOV 19H,A MOVA,11H SUBB A,16H JB F0,NDIV2 JC NDIV3 NDIV2: MOV 11H,A MOV A,19H MOV 12H,A MOV A,1AH MOV 13H,A INC 15H NDIV3: DJNZ B,NDIV1 CLR F0 DIVEND: RET LOOP4: SETB F0 SJMP DIVEND;;BCD码转换程序将14H、15H单元内数据转换成十进制BCD码放在24H、25H单元内 ; BCDST: MOV R7,#10H CLR C MOV 25H

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!