首页 单片机自行车速度里程计论文

单片机自行车速度里程计论文

举报
开通vip

单片机自行车速度里程计论文单片机自行车速度里程计论文 编号: 河南大学2011届本科毕业论文 自行车里程速度计的设计 The Design Of The Bicycle trip /speed tester 高兵 论文作者姓名: 070440055 作 者 学 号: 计算机与信息工程学院 所 在 学 院: 自动化 所 学 专 业: 导师姓名职称:肖兴达(副教授) 论文完成时间: 2011年5月20日 2011年5月20日 目 录 摘 要 ..........................................

单片机自行车速度里程计论文
单片机自行车速度里程计 论文 政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载 编号: 河南大学2011届本科毕业论文 自行车里程速度计的 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 The Design Of The Bicycle trip /speed tester 高兵 论文作者姓名: 070440055 作 者 学 号: 计算机与信息工程学院 所 在 学 院: 自动化 所 学 专 业: 导师姓名职称:肖兴达(副教授) 论文完成时间: 2011年5月20日 2011年5月20日 目 录 摘 要 ................................................................. I Abstract ................................................................ II 第1章 绪 论 ............................................................ 1 1.1 课题研究的目的 .................................................... 1 1.2 课题的主要任务及内容 .............................................. 1 第2章 自行车里程速度计总体 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 设计 ..................................... 2 2.1 任务分析与实现 .................................................... 2 2.2 自行车里程速度计硬件方案设计 ...................................... 2 2.2.1 整体方案论证 .................................................. 2 2.2.2 系统的组成 .................................................... 3 第3章 单片机AT89C51简介 ............................................... 4 3.1 单片机的组成和特点 ................................................ 4 3.2 AT89C51的主要特性和实物图 ......................................... 4 3.3 AT89C51的引脚功能介绍 ............................................. 6 3.4 单片机定时/计数功能介绍 ........................................... 8 第4章 测速传感器的选型 ................................................ 10 4.1 开关型霍尔传感器的工作原理 ....................................... 10 4.2 A44E集成开关型霍尔传感器介绍 ..................................... 11 4.3 传感器的检测原理和检测电路 ....................................... 12 第5章 整体硬件电路设计 ................................................ 13 5.1 单片机最小系统设计 ............................................... 13 5.1.1复位电路的设计 ................................................. 13 5.1.2 时钟晶振电路的设计 ............................................ 14 5.2 传感器检测电路的设计 ............................................. 16 5.3 电源电路的设计 ................................................... 17 5.4 键盘电路的设计 ................................................... 18 5.5 外部存储电路的设计 ............................................... 19 5.5.1 存储器CAT24WC32概述 ......................................... 19 5.5.2 CAT24WC32引脚功能介绍 ........................................ 20 5.5.3 I?C总线协议介绍 .............................................. 21 5.5.4 CAT24WC32和AT89C51的硬件连接设计 ............................ 23 5.6 显示电路的设计 .................................................... 23 5.6.1 EDM1190A的特点 ................................................ 24 5.6.2 主要技术参数 .................................................. 24 5.6.3 引脚介绍 ...................................................... 24 5.6.4 EDM1190A的数据传输原理 ....................................... 25 5.7 声光报警电路的设计 ............................................... 27 第6章 软件设计 ........................................................ 29 6.1 软件设计概述 ..................................................... 29 6.2 主程序设计 ....................................................... 29 6.3 中断子程序的设计 ................................................. 31 6.4 键盘子程序的设计 ................................................. 32 6.4.1 功能选择键S1程序的设计 ....................................... 32 6.4.2 增加键S2程序的设计 .......................................... 32 6.4.3 减少键S3程序的设计 .......................................... 33 6.5 数据处理子程序的设计 ............................................. 34 6.5.1 速度计算子程序的设计 ......................................... 34 6.5.2 里程计算子程序的设计 ......................................... 35 6.6 显示子程序的设计 ................................................. 36 6.7 I?C协议下读/写E?PROM程序的设计 ................................. 36 结论与展望 .............................................................. 37 致 谢 ................................................................. 39 主要参考文献 ............................................................ 39 附 录 一 元器件清单 ..................................................... 40 附 录 二 系统原理图......................................................41 录 三 系统源程序 ..................................................... 43 附 摘 要 目前自行车已成为人们娱乐、休闲、锻炼的首选,尤其是对于用来锻炼的人们,自 程等物理量,更好的用于锻炼。本论行车速度里程计让他们清楚地知道当前的速度、里 文主要阐述一种基于霍尔元件的自行车速度里程计设计。以 AT89C51 单片机为核心,A44E 霍尔传感器测转数,实现对自行车速度里程计测量统计。该速度里程计将传感器输入到单片机的脉冲信号的宽度实时地测量出来,然后通过单片机计算出速度和行程,再将所得的数据存储到串口数据存储器,采用CAT24WC32 实现在系统掉电的时候保存速度和行程信息,并由串口液晶显示模块实时显示出所测速度和行程。本设计介绍了自行车速度/里程测试仪的硬件电路和软件设计。硬件部分利用霍尔元件将自行车每转一圈的脉冲数传入单片机系统,然后单片机系统将信号经过处理送显示。软件部分用汇编语言进行编程,采用模块化设计思想。该系统硬件电路简单,子程序具有通用性,完全符合设计要求。 关键词:速度/里程;霍尔元件;单片机;LCD液晶显示 Abstract Now the bicycle has become the first choice of entertainmenting and exercising. Especially for people to exercise,The bicycle speed/trip can fulfill the basic need of people’s life, so that they can learn the speed and the mileage of the bicycle. In these paper, the bicycle speed/trip design based on the Hall element is elaborated. By AT89C51 as kernel, using A44E Hall element to measure revolution, the measure and statistic are achieved. The range informations are saved by CAT24WC32 when the power is off, the bicycle speed can be displayed on LCD. In this article, the hardware circuit and software design of bicycle speed/trip instrument are introduced in detail. About the hardware, the pulse number is transmitted of one cycle of the bicycle into Single Chip Microcomputer system. Then the signal processed by Single Chip Microcomputer system is sent to display scream. About the software, in assemble language, the program is designed in the mode of modules. The system has simple hardware, common sub-program, and meet the demand of design. Key words: speed/trip; Hall element; Single Chip Microcomputer; LCD 第1章 绪 论 随着超大规模集成电路技术提高,尤其是单片机应用技术以其功能强大,价格低廉的显著特点,使全数字化测量转速系统得以广泛应用。本论文在此基础上,对单片机自行车速度里程计硬件和编程作一简单的分析和研究。 单片机突出的特点是体积小,功耗低,精简指令集,抗干扰性好,可靠性高,有较强的模拟接口,代码保密性好。外围电路更少,因而得到了广泛的应用。另外其较少的指令及较强的实用功能更为许多单片机的初学者之首选品牌。单片机指令少,PIC中档系列单片机共有35条指令,非常有利于记忆和掌握,指令为单字节,占用程序存储器的空间小,而且中档系列单片机每一条指令为14位,前6位存操作指令,后8位存操作数,大部分芯片有其兼容的FLASH程序存储器的芯片,支持低电压擦写,擦写速度快,允许多次擦写,程序修改方便。基于单片机以上特点使其在现代工业占据了举足轻重的位置。其中利用单片机设计自行车速度/行程测试仪就是特例之一。 本设计以AT89C51为核心,通过A44E集成开关型霍尔传感器来检测自行车的转轴运转情况进而实现对自行车速度里程的测量,最后用LCD能直观的将速度和里程显示给用户,并且在速度高于一定的值时可以自动向用户报警,实现速度的实时测量。 1.1 课题研究的目的 转速的测量方法很多,而模拟量的采集和模拟量处理一直是转速测量的主要方法。目前这种测量方法已不能适应现代化科技发展的要求。随着大规模及超大规模集成电路的发展,使得全数字测试仪越来越普及,其转速测试仪也可以全数字化处理。在测量范围和测量精度方面都有很大提高。因此,本次设计的目的是:在自行车上,利用AT89C51系列单片机设计一种全数字化的自行车里程速度计,并从提高测量精度的角度出发,分析讨论其产生误差的可能原因,为今后的实际使用提供参考。本设计以单片机为中心,设计全数字化的自行车速度里程计这个测试仪采用全数字化结构,操作使用方便,能够精确的为用户提供速度和行程的数值。 1.2 课题的主要任务及内容 本设计的这个系统以单片机AT89C51为控制核心,用A44E集成开关型霍尔传感器作为测量转速和里程的检测元件,经过单片机的数据处理,用LCDEDM1190A液晶显示模块显示速度和里程。本设计的速度和里程值采用4位显示,速度和里程值可单独显示,测量值误差小于1%。超速行驶(设置限速参数)时,能自动发出声光报警。 具体的硬件电路包括电源电路、转速传感器检测电路、单片机最小系统电路以及LCD显示电路等。 软件设计包括:芯片的初始化程序、显示子程序等,软件采用汇编语言编写,软件设计的思想主要是自顶向下,模块化设计,各个子模块逐一设计。 第2章 自行车里程速度计总体方案设计 2.1 任务分析与实现 本设计的任务是:以AT89C51单片机为处理核心,用A44E集成开关型霍尔传感器将车轮的转数转换为电脉冲,转变成 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 信号后,送入单片机计算处理。速度和里程的测量,是经过AT89C51单片机的定时/计数器测出总的脉冲数和每转一圈的时间,再经过单片机的计算得出,其结果通过LCD显示器显示出来。并采用CAT24WC32 实现在系统掉电的时候保存速度和里程信息。 本系统总体思路如下:假定轮圈的周长为L,在轮圈上安装m个永久磁铁,则测得的里程值最大误差为L/m。经综合分析,本设计中取m=1。当轮子每转一圈,通过开关型霍尔元件传感器采集到一个脉冲信号,并从引脚P3.2中断0端输入,传感器每获取一个脉冲信号即对系统提供一次计数中断。每次中断代表车轮转动一圈,中断数n轮圈的周长为L的乘积为里程值。计数器T1计算每转一圈所用的时间t,就可以计算出即时速度V。并有液晶显示器对速度和里程进行同时显示,若自行车超速,系统发出报警信号,指示灯亮,蜂鸣器发出报警声音。 要求达到的各项指标及实现方法如下: 1. 利用霍尔传感器产生里程数的脉冲信号。 2. 对脉冲信号进行计数。 实现:利用单片机自带的计数器T1对霍尔传感器脉冲信号进行计数。 CD显示里程总数和即时速度。 3. 对数据进行处理,要求用L 实现:利用软件编程,对数据进行处理得到需要的数值。 最终实现目标:自行车里程速度计具有速度、里程测试与显示功能,采用单片机作控制,显示电路可选择显示速度和里程,可通过按键选择显示行驶里程值或速度值。 2.2 自行车里程速度计硬件方案设计 2.2.1 整体方案论证 测速,首先要解决是采样的问题。使用单片机进行测速,可以使用简单的脉冲计数法。只要转轴每旋转一周,产生一个或固定的多个脉冲,将脉冲送入单片机中进行计算,即可获得转速的信息。常用的测速元件有霍尔传感器、光电传感器和光电编码器。里程测量传感器的选择也有以下几种方案:使用光敏电阻对里程进行测量、利用编码器对车轮的圈数进行测量、利用霍尔传感器对里程进行测量、利用干簧管型传感器测量里程。 光敏电阻对光特别敏感,当白天行驶时,外界光源将导致光敏电阻发出错误信号; 光敏电阻对环境的要求相当高,如果光敏或发光二极管被泥沙或灰尘所覆盖,光敏电阻就不能再进行准确测量;而编码器必须安装在车轴上,安装较为复杂;霍尔元件或干簧管不但不受天气的影响,即使被泥沙或灰尘覆盖也不会有影响,而且安装方便。所以本设计采用霍尔元件对里程与速度进行测量,既简单易行,又经济适用。 使用霍尔传感器获得脉冲信号,其机械结构也可以做得较为简单,只要在转轴的齿轮盘上粘上一粒磁钢,霍尔元件固定在前叉上,当车子转动时霍尔元件靠近磁钢,就有信号输出,转轴旋转时,就会不断地产生脉冲信号输出。如果在齿轮盘上粘上多粒磁钢,可以实现旋转一周,获得多个脉冲输出。在粘磁钢时要注意,霍尔传感器对磁场方向敏感,粘之前可以先手动接近一下传感器,如果没有信号输出,可以换一个方向再试。这种传感器不怕灰尘、油污,在工业现场应用广泛。 霍尔传感器是对磁敏感的传感元件,常用于信号采集的有A44E。由A44E采样,经单片机将该处理的数据处理后,在LCD显示屏上显示出来,并设置转速的上限值,一旦超速,单片机就通过报警器发出声光报警。 2.2.2 系统的组成 单片机自行车里程速度计系统由传感器、单片机、显示器和报警器四部分组成。传感器采用霍尔传感器将低速物体的转速转化为脉冲信号,处理器采用单片机,计算器采用单片机内部的计数器完成脉冲信号的计数,采用液晶显示模块进行显示,报警器采用声光报警器。 系统组成框图如图2-1所示: 键盘 单 片 速度显示 机霍尔传感器 霍尔传感器 光电耦合器 里程显示 外部存储器 CAT24WC32 外部存储器 声光报警器 图2-1 系统的原理框图 速度显示 第3章 单片机AT89C51简介 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。 3.1 单片机的组成和特点 单片机的基本结构可用图3-1所示的方框图描述。包括:中央处理器、程序存储器、数据存储器、并行输入/输出端口、串行输入/输出端口、定时/计数器、系统时钟。 图3-1 单片机的基本结构 以上只是单片机的基本结构,现代的单片机又加入了许多新的功能部件,如模拟/数字转换器(ADC)、数字/模拟转换器(DAC)、温度传感器、液晶驱动器、电压监控、“看门狗”电路、抵押检测电路等。 到目前为止,世界各地厂商研制出大约50个系列、300多个品种的单片机产品。其中有Motorola公司的6801、6802,Zilog公司的Z-8系列,Rockwell公司的6501、6502等,NEC公司、日立公司及EPSON公司等也相继推出了各具特色的单片机产品。 尽管目前单片机的品种繁多,但其中最具典型性的仍当属Intel公司的MCS-51系列单片机,MCS-51系列单片机应用非常广泛,是单片机的主流机型。国内尤以MCS-51系列单片机应用最为广泛。 3.2 AT89C51的主要特性和实物图 AT89C51是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含4K Bytes的可反复擦写的只读程序存储器(EPROM)和128 字节的随机存取数据存储器(RAM), 器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8051产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大的AT89C51单片机适合于许多较为复杂控制场合应用,可灵活应用于各种控制领域。 AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。它的实 -2所示。它的主要特性如下: 物图如图3 图3-2 AT89C51的实物图 ?与MCS-51 兼容 ?4K字节可编程闪烁存储器 ?寿命:1000写/擦循环 ?数据保留时间:10年 ?全静态工作:0Hz-24Hz ?三级程序存储器锁定 ?128*8位内部RAM ?32可编程I/O线 ?两个16位定时器/计数器 ?5个中断源 ?可编程串行通道 ?低功耗的闲置和掉电模式 ?片内振荡器和时钟电路 3.3 AT89C51的引脚功能介绍 AT89C51单片机为40引脚双列直插式封装。其引脚排列和逻辑符号如图3-3所示。 140P1.0VCC239P1.1(AD0)P0.0338P1.2(AD1)P0.1437P1.3(AD2)P0.2536P1.4(AD3)P0.3635P1.5(AD4)P0.4734P1.6(AD5)P0.5833P1.7(AD6)P0.6932RST(AD7)P0.710AT89C5131P3.0 RXD/EA1130P3.1 TXDAEL1229P3.2(/INT0)/PSEN1328P3.3(/INT1)(A15)P2.71427P3.4(T0)(A14)P2.61526P3.5(T1)(A13)P2.51625P3.6(WR)(A12)P2.41724P3.7(RD)(A11)P2.31823XTAL2(A10)P2.21922XTAL1(A9)P2.12021GND(A8)P2.0 图3-3 AT89C51的引脚图 各引脚功能简单介绍如下: VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表3.1所示: 表3.1 P3口引脚与第二功能 引脚 第二功能 信号名称 P3.0 RXD 串行数据接收 P3.1 TXD 串行数据接收 INT0P3.2 外部中断0申请 INT1P3.3 外部中断1申请 P3.4 T0 定时/计数器0的外部输入 P3.5 T1 定时/计数器1的外部输入 WRP3.6 外部RAM写选通 P3.7 外部RAM读选通 RD 注:P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想 禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。 此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 3.4 单片机定时/计数功能介绍 AT89C51单片机定时/计数器的工作由两个特殊功能寄存器控制。TMOD用于设置其工作方式;TCON用于控制其启动和中断请求。 1.工作方式寄存器TMOD 工作方式寄存器TMOD用于设置定时/计数器的工作方式。 GATE:门控位。GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动 INT0INT1定时/计数器工作;GATE=1时,要用软件TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。 :定时/计数模式选择位。=0为定时模式; =1为计数模式。 CT/CT/CT/ M1M2:工作方式设置位。定时/计数器有4种工作方式,由M1M2进行设置。 本次设计TMOD为90H,即选通定时/计数器1、定时功能、工作方式1。工作方式16位定时/计数器。 2.控制寄存器TCON TF1(TCON.7)定时/计数器T1溢出中断请求标志位。定时/计数器T1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清零。T1工作时,CPU可随时查询TF的状态。所以,TF1可用作查询测试的标志。TF1也可以用软件置1或清零,同硬件置1或清零的效果一样。 TR1(TCON.6)定时/计数器T1运行控制位。TR1置1时时,定时/ 计数器T1开始工作;TR1置0时,定时/计数器T1停止工作。TR1由软件置1或清0。 TF0(TCON.5):定时/计数器T0溢出中断请求标志位。 TR0(TCON.4):定时/计数器T0运行控制位。 第4章 测速传感器的选型 自行车里程速度计的传感器电路设计是硬件电路设计的基础部分,但也是最为关键的部分。它包括信号的捕获、放大、整形和传送等。 传感器是获取自然或生产领域中信息的关键器件,是现代信息系统和各种设备不可缺少的信息采集工具。磁传感器是一种将磁学量信号转变为电信号的器件或装置。随着信息产业、工业自动化、医疗仪器等的飞速发展和计算机应用的普及,需要大量的传感器将被测或被控的非电信号转换成可与计算机兼容的电信号。作为输入信号,这就给磁传感器的快速发展提供了机遇,形成了磁传感器的产业。其中最具代表的磁传感器就是霍尔传感器,在自动检测系统中,利用霍尔传感器测转数是一种最基本的测量工作。霍尔器件具有许多优点,它们的结构牢固、体积小、重量轻、寿命长、安装方便、功耗小、频率高(可达1MHz)、耐震动、不怕灰尘、油污、水汽及烟雾等的污染或腐蚀。霍尔线性器件的精度高、线性度好;霍尔开关器件无触点、无磨损、输出波形清晰、无抖动、无回跳、位置重复精度高。取用各种补偿和保护措施的霍尔器件工作温度范围宽,可达,55?,150?。所以本设计采用的就是A44E集成开关型霍尔传感器。 4.1 开关型霍尔传感器的工作原理 霍尔传感器是利用霍尔效应制成的一种磁敏传感器。在置于磁场中的导体或半导体通入电流I,若电流垂直磁场B,则在与磁场和电流都垂直的方向上会出现一个电势差,H,它们之间的关系为,这种现象称为霍尔效应。利用霍尔效应制成的元件称为霍尔元件。霍尔效应原理图如图4-1所示。 Z YI BX d L b Uh图4-1 霍尔效应原理图 4.2 A44E集成开关型霍尔传感器介绍 A44E集成霍尔开关由稳压器A、霍尔电势发生器(即硅霍尔片)B、差分放大器 C、施密特触发器D和OC门输出E五个基本部分组成,如图4-2所示。(1)、(2)、(3)代表集成霍尔开关的三个引出端点。在电源端加电压Vcc,经稳压器稳压后加在霍尔电势发生器的两端,根据霍尔效应原理,当霍尔片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍尔电势差VH输出,该VH信号经放大器放大后送至施密特触发器整形,使其成为方波输送到OC门输出。当施加的磁场达到工作点时,触发器输出高电压(相对于地电位),使三极管导通,此时OC门输出端输出低电压,通常称这种状态为开 。当施加的磁场达到释放点时,触发器输出低电压,三极管截止,使OC门输出高电压,这种状态为关 。这样两次电压变换,使霍尔开关完成了一次开关动作。工作点与释放点的差值一定,此差值称为磁滞,在此差值内,V0保持不变,因而使开关输出稳定可靠,这也就是集电成霍尔开关传感器优良特性之一。传感器主要特性是它的输出特性,即输入磁感应强度B与输出电压V0之间的关系。A44E集成霍尔开关是单稳态型,由测量数据作出的输出特性曲线如图 4-3所示。 图4-2 A44E的外形图和组成结构图 图4-3 A44E集成开关型霍尔传感器的输出特性 4.3 传感器的检测原理和检测电路 本设计的检测原理如下:假定轮圈的周长为L,在轮圈上安装m个永久磁铁,则测得的里程值最大误差为L/m。经综合分析,本设计中取m=1。当轮子每转一圈,通过开关型霍尔元件传感器采集到一个脉冲信号,经信号变换器、驱动器进行整形、放大后输出幅值相等、频率变化的方波信号。并从引脚P3.2中断0端输入,传感器每获取一个脉冲信号即对系统提供一次计数中断。每次中断代表车轮转动一圈,中断数n轮圈的周长为L的乘积为里程值。计数器T1计算每转一圈所用的时间t,就可以计算出即时速度V=L*n/t。检测的信号处理框图如图4-4所示,而传感器的工作原理如图4-5所示。 信号 放大波形变换 波形整形 单片机 器 图4-4 信号处理框图 图4-5 A44E传感器检测工作原理 第5章 整体硬件电路设计 自行车的里程速度计的硬件电路设计是基础部分,它包括信号的捕获、放大、整形,单片机的计算处理,LCD的实时显示和单片机外围基本电路的设计,两大主要器件就是传感器和单片机。外围电路包括:键盘电路、电源电路、复位电路、时钟晶振电路、外部存储电路和LCD显示电路、声光报警电路。 传感器是获取自然或生产领域中信息的关键器件,是现代信息系统和各种设备不可缺少的信息采集工具。磁传感器是一种将磁学量信号转变为电信号的器件或装置。随着信息产业、工业自动化、医疗仪器等的飞速发展和计算机应用的普及,需要大量的传感器将被测或被控的非电信号转换成可与计算机兼容的电信号。作为输入信号,这就给磁传感器的快速发展提供了机遇,形成了磁传感器的产业。其中最具代表的磁传感器就是霍尔传感器,在自动检测系统中,利用霍尔传感器测转数是一种最基本的测量工作。 单片机是本次设计的核心部件,它是信号从采集到输出的桥梁,而且包括计算、定时、信息处理等功能。 5.1 单片机最小系统设计 以单片机为主,复位电路和晶振电路为辅组成的系统称为单片机系统。 5.1.1复位电路的设计 AT89C51单片机的复位输入引脚RET为AT89C51提供了初始化的手段。有了它可以使程序从指定处开始执行,即从程序存储器中的0000H地址单元开始执行程序。在89C51的时钟电路工作后,只要在RET引脚上出现两个机器周期以上的高电平时,单片机内部则初始复位。只要RET保持高电平,则AT89C51循环复位。只有当RET由高电平变成低电平以后,AT89C51才从0000H地址开始执行程序。 本系统的复位电路是采用按键复位的电路,如图5-1所示,是常用复位电路之一。单片机复位通过按动按钮S4产生高电平复位称手动复位。上电时,刚接通电源,电容C1相当于瞬间短路,+5V立即加到RET端,该高电平使AT89C51全机自动复位,这就是上电复位;若运行过程中需要程序从头执行,只需按动按钮S4即可。按下按钮S4,则直接把+5V加到了RET端从而复位称为手动复位。复位后,P0到P3并行I/O口全为高电平,其它寄存器全部清零,只有SBUF寄存器状态不确定。 140P1.0VCC239P1.1(AD0)P0.0338P1.2(AD1)P0.1437P1.3(AD2)P0.2536P1.4(AD3)P0.3635P1.5(AD4)P0.4734P1.6(AD5)P0.5S4+5V833P1.7(AD6)P0.6R2932RST(AD7)P0.710AT89C5131P3.0 RXD/EA113010KP3.1 TXDAEL1229C1P3.2(/INT0)/PSEN1328P3.3(/INT1)(A15)P2.71427P3.4(T0)(A14)P2.6R31526P3.5(T1)(A13)P2.510uF1625P3.6(WR)(A12)P2.4100K1724P3.7(RD)(A11)P2.31823XTAL2(A10)P2.21922XTAL1(A9)P2.12021GND(A8)P2.0 图5-1 复位电路 此电路的工作原理:通电瞬间,RC电路充电,RST引脚出现高电平,只要RST端保持10ms以上高电平,就能使单片机有效地复位。 5.1.2 时钟晶振电路的设计 时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊地一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。AT89C51片内由一个反相放大器构成振荡器,可以由它产生时钟。常用的时钟电路有两种方式,一种是内部时钟方式,另一种为外部时钟方式。本设计采用内部时钟方式。 单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和电容,就构成一个稳定的自激振荡器。单片机内部时钟方式的振荡电路如图5-2所示。 图5-2 时钟晶振电路 电路中的电容C1和C2的推荐电容值为30?10pf,如是陶瓷谐振器,电容应为40?10pf。对外接电容的值虽然没有严格的要求,但电容的大小会影响振荡器的高低、振荡器的稳定性、起振的快速性和温度的稳定性。而外接晶体的振荡频率的大小,主要取决于单片机的工作频率范围,每一种单片机都有自己的最大工作频率,外接的晶体振荡频率不大于单片机的最大工作频率即可。此外,如果单片机有串行通信,则应该选择振荡频率除以串行通信频率可以除尽的晶体。本设计晶振采用12MHz,则计数周期为 1S T,,1μ6()1210112,,Hz 由最少外围电路组成、可使单片机工作的系统,称为单片机最小系统。本设计的单片机最小系统图如图5-3所示。 140P1.0VCC239P1.1(AD0)P0.0338P1.2(AD1)P0.1437P1.3(AD2)P0.2536P1.4(AD3)P0.3635P1.5(AD4)P0.4734P1.6(AD5)P0.5S4+5V833P1.7(AD6)P0.6R2932RST(AD7)P0.710AT89C5131P3.0 RXD/EA113010KP3.1 TXDAEL1229C1P3.2(/INT0)/PSEN1328P3.3(/INT1)(A15)P2.71427P3.4(T0)(A14)P2.6R31526复位电路P3.5(T1)(A13)P2.510uF1625P3.6(WR)(A12)P2.4100K1724P3.7(RD)(A11)P2.31823XTAL2(A10)P2.21922XTAL1(A9)P2.12021GND(A8)P2.0Y112 12MHZC1C233pF33pF 时钟晶振电路 图5-3 单片机最小系统图 5.2 传感器检测电路的设计 对于由单片机构成的测控系统,总要有被测信号输入通道,由单片机提取必要的输入信息作为测试系统对被测对象提取必要的原始参量信号,是系统的核心任务。而提取外部原始参量一般就需要用传感器或敏感元件用传感器或敏感元件把被测得的非电量转换位可以被单片机直接处理的电参量。由于输入通道的工作环境往往都比较恶劣,又由于传感器输出的大都是模拟量输出微弱信号,输出在转换成计算机要求的数字信号时就必须要进行隔离放大整形加宽等处理步骤,因此输入通道常常是一个模拟数字电路的混杂电路,是传感器集成化和单片机功能集成的边界区域在单片机测控系统的输入输出通道中。为减少干扰普遍采用了通道隔离技术。用于隔离的器件主要有隔离放大器、隔离变压器和光电耦合器等。 本设计采用的是光电耦合器。经处理后的信号,能直接被AT89C51识别。传感器A44E与AT89C51的硬件连接如图5-4所示。 图5-4 开关型霍尔传感器A44E与AT89C51的硬件连接图 本设计中用光电耦合器消除电磁干扰,尽可能达到测量的准确度。测量信号经A44E内部的放大器放大后,再经74LS14施密特触发器的整形,驱动光电耦合器导通,将信号输入到单片机的P3.2端口。 5.3 电源电路的设计 由于AT89C51的工作电压要求是+5V,为了给单片机提供稳定的工作电压,我选用了能提供+12V直流电压的电瓶,所以需要设计一个简单的电源电路,进行电平转换,将+12V电压降为+5V,电源的电路如图5-5所示。 +5VPowerU6F1122INOUTLM78L051Fuse 1GNDR6Header 1Header 1Header 1Header 1Header 1Header 1Header 1Header 1Header 1Header 1Header 1Header 1Header 1Header 1Header 12203 D2C9C8LEDC11C101041000uF1000uF104 图5-5 电源电路 电路中Power处的1,2是电瓶的正负引脚,FUSE1是一个熔断器,当电路出现短路等情况,造成电路电流过大时,会自动熔断,起到保护电路的作用。而+5V处就是此电路的输出端,为AT89C51和其他外围电路提供电源。LM78L05是一个集成稳压器,可以为单片机的器件提供稳定的工作电压,C8,C9分别为输入端和输出端的滤波电容,R6为负载电阻,D2为电源指示灯。 5.4 键盘电路的设计 本设计的键盘电路设计比较简单,有一个功能按钮S1和功能加按钮S2以及功能减按钮通过三个按键的组合可以实现:四个车轮周长(22寸、24寸、26寸、28寸)设置,还可以选择显示里程和速度,以及设置所要求的声光报警速度值的大小,即:按下S1一次时选择车轮尺寸,并配合S2、S3选择具体车轮大小;按下S1两次,选择设置报警时的车速大小,此时和S2、S3组合可以设置报警车速的大小;按下S1键三次显示里程,按下S1四次显示速度,此时S2、S3失效。其电路图如图5-6所示 。 +5V R11R1R12 4.7K4.7K4.7KS1 140P1.0VCC239P1.1(AD0)P0.0S2338P1.2(AD1)P0.1437P1.3(AD2)P0.2536P1.4(AD3)P0.3S3635P1.5(AD4)P0.4734P1.6(AD5)P0.5833P1.7(AD6)P0.6932RST(AD7)P0.710AT89C5131P3.0 RXD/EA1130P3.1 TXDAEL1229P3.2(/INT0)/PSEN1328P3.3(/INT1)(A15)P2.71427P3.4(T0)(A14)P2.61526P3.5(T1)(A13)P2.51625P3.6(WR)(A12)P2.41724P3.7(RD)(A11)P2.31823XTAL2(A10)P2.21922XTAL1(A9)P2.12021GND(A8)P2.0 图5-6键盘电路 5.5 外部存储电路的设计 5.5.1 存储器CAT24WC32概述 CAT24WC32 是一个32K 位串行CMOS E?PROM,内部含有4096 个字节(每字节为8位)。CATALYST 公司的先进CMOS 技术实质上减少了器件的功耗,CAT24WC32 有一个32 字节页写缓冲器,该器件通过I?C 总线接口进行操作。CAT24WC32 支持I?C 总线数据传送协议I?C总线协议规定,任何将数据传送到总线的器件作为发送器。任何从总线接收数据的器件为接收器,数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。CAT24WC32 是作为从器件被操作的。主器件和从器件都可以作为发送器,或接收器但由主器件控制传送数据(发送或接收)的模式。 其特性如下: ? 与400KHz I?C 总线兼容 ? 1.8 到6.0 伏工作电压范围 ? 最多可级联8 个器件 ? 低功耗CMOS 技术 ? 写保护功能当WP 为高电平时进入写保护状态 ? 32 字节页写缓冲器 ? 自定时擦写周期 ? 噪声保护的施密特触发输入 ? 零待机电流 ? 1,000,000 编程/擦写周期 ? 可保存数据100 年 ? 8 脚DIP SOIC 封装 ? 温度范围商业级工业级和汽车级 其可靠性参数见表5.1。 表5.1 CAT24WC32的可靠性参数 符参最小 最单参考测试模式 号 数 大 位 耐久1,000,00 周期MIL-STD-883 测试方法NEND 性 0 /字节 1033 数据100 年 MIL-STD-883 测试方法TDR 保存 1008 ESD 2000 V MIL-STD-883 测试方法VZA 3015 P 上拉100 mA JEDEC 标准17 ILT 电流 H 5.5.2 CAT24WC32引脚功能介绍 CAT24WC32是双列直插8引脚芯片,其引脚图如图5-7所示。 15 A0SDA 26 A1SCL 38 A2VCC 47 VSSWP 图5-7 存储器CAT24WC32的引脚图 CAT24WC32芯片的各引脚功能描述如下: SCL: 串行时钟 CAT24WC32 串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。 SDA: 串行数据/地址 双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA 是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线或(wire-OR)。 A0、 A1、 A2: 器件地址输入端 这些管脚为硬连线或者不连接(在硬件上与CAT24WC16 兼容)。对于单总线系统,最多可寻址8个CAT24WC32 器件(参阅器件寻址)。当这些引脚没有连接时其默认值为0。 WP: 写保护 当WP 脚连接到Vcc,所有内存变成写保护(只能读)。当WP 引脚连接到Vss 或悬空,允许器件进行读/写操作。 Vcc:接 +1.8V,6.0V 工作电压 Vss:接地。 5.5.3 I?C总线协议介绍 I?C总线协议定义如下 (1) 只有在总线空闲时才允许启动数据传送。 (2) 在数据传送过程中,当时钟线为高电平时数据线必须保持稳定状态,不允许有跳变。时钟线为高电平时,数据线的任何电平变化将被看作总线的起始或停止信号。 起始信号 时钟线保持高电平期间,数据线电平从高到低的跳变作为I?C 总线的起始信号。 停止信号 时钟线保持高电平期间,数据线电平从低到高的跳变作为I?C 总线的停止信号。 I?C总线协议的总线时序图如图5-8所示。 图5-8 I?C总线协议的总线时序图 I?C总线协议的写时序图如图5-9所示。 图5-9 I?C总线协议的写时序图 I?C总线协议的起始/停止时序图如图5-10所示。 图5-10 I?C总线协议的起始/停止时序图 5.5.4 CAT24WC32和AT89C51的硬件连接设计 CAT24WC32和AT89C51的硬件连接电路图如图5-11所示。 图5-11 CAT24WC32和AT89C51的硬件连接电路图 CAT25WC32由于利用了I?C总线技术,只需要SCL和SDA两条线即可完成与AT89C51单片机的连接及数据交换。但AT89C51内核并不支持I?C总线结构,需要用软件编程辅助,利用普通的I/O接口模拟I?C总线控制。 5.6 显示电路的设计 与七段数码显示器LED(Light Emitting Diode)相比,液晶显示器LCD(Liquid Crystal Display)是一种功耗极低的显示器。LCD是一种平板薄膜显示器件,出了功耗低以外,它还具有美观、显示工作电压低、抗干扰能力强、与CMOS电路电性能匹配好等优点。因此它的应用非常广泛,从电子表到计算器、从袖珍式仪表到便携式微型计算机以及一些文字处理机都用到了LCD。目前,LCD有段式和点阵式两种,在只涉及数据显示及简单字母提示时,智能仪器通常采用段式LCD。EDM1190A是一种实用美观的四位串行段式液晶显示模块。与现有的一些并行段式液晶显示模块相比,EDM1190A具有管脚少(现在一般的四位并行段式LCD模块一般都多达40个引脚,而EDM1190A只有四个引脚),与单片机系统连接简单、编程方便等优点。 5.6.1 EDM1190A的特点 EDM1190A断码式液晶显示模块由LCD液晶显示器、驱动电路、8位CPU接口电路构成。它具有低功耗、抗干扰性强、温度范围宽等优点;此外,EDM1190A的输入接口信号可与CMOS和TTL电平兼容,而且它的4个引脚都具有静电保护电路。 5.6.2 主要技术参数 (1)电源电压:+5V; (2)驱动方式:静态; (3)视角:6点; (4)显示容量:4位数字(带小数点); )数据传输方式:串行; (5 (6)显示方式:低电平显示; (7)工作温度:0, +55?; (8)存储温度:-20,+70?; (9)工作时间:>50kh。 5.6.3 引脚介绍 EDM1190A的外型及管脚图如图5-12所示。 EDM1190A的外型及管脚尺寸为:54.2mm:×24mm字符高度为:9mm×18mm 图中最左侧从上至下的4个管脚分别是1,2,3,4脚。EDM1190A的管脚功能如表1所示。 图5-12 EDM1190A的外型及管脚图 5.6.4 EDM1190A的数据传输原理 5.6.4.1 数据传输方向 七段数码显示器中的每一位数字都由七段组成,分别将这七段记为A B C D E F G 小数点记为DP。 EDM1190A的数据传输方向如图5-13所示。当显示数字时,从脚依次输入每个数字所对应的段码,按照先高位后低位的顺序进行移位传输。每一位数字所对应的段码如图5-3所示,当输入一位信号为“0”(低电平)时,点亮该段。注意,要想使EDM1190A显示出正确的数字,最后一定要向脚再输入一位停止位,此位输入为0或1均可。 图5-13 EDM1190A的数据传输方向 5.6.4.2 数据传送的时序 EDM1190A数据传输的时序如下所示。时钟信号,,,(第,管脚)同时又是,,,模块的片选信号。在高电平时将数据从脚输入,接着时钟信号,,,变为低电平,然后经过一段时间后,计将所输入的数据锁存,这样就完成了一个数据的输入,按照这样的时序可以将信号逐次地由脚输入,每显示一位数字(包括小数点)只需将一个,位二进制数输入脚就可以了。 ,(6(, ,,,,,,,,的应用 ,(6(,(, ,,,,,,,,接口电路的设计 ,,,,,,,,与单片机的接口电路如图,,14所示 VCC 140P1.0VCC239P1.1(AD0)P0.0338P1.2(AD1)P0.1437P1.3(AD2)P0.2536P1.4(AD3)P0.36351(VDD)P1.5(AD4)P0.47342(D ) P1.6(AD5)P0.58333(VSS)P1.7(AD6)P0.6932RST(AD7)P0.74(CLK)10AT89C5131P3.0 RXD/EA1130P3.1 TXDAEL1229P3.2(/INT0)/PSEN1328P3.3(/INT1)(A15)P2.71427P3.4(T0)(A14)P2.61526P3.5(T1)(A13)P2.51625P3.6(WR)(A12)P2.41724P3.7(RD)(A11)P2.31823XTAL2(A10)P2.21922XTAL1(A9)P2.12021GND(A8)P2.0 图,,14 ,,,,,,,,与单片机,,,,,,,的硬件连接电路图 ,,,显示模块,,,,,,,,用来显示速度和里程,,,,,,,,,的数据输入就管脚与单片机的,,(,口相连。单片机的,,(,口与,,,,,,,的时钟信号管脚,,,相连。预显示数字的二进制段码由,,(,口一位一位的输出,只要在,,(,和,,(,两个端口分时产生方波信号就可以控制在,,,上显示数字。 ,,,,,,,,显示数字所对应的段码如表,所示 5.7 声光报警电路的设计 本次报警电路采用声光报警器,当即时速度超过预定值时蜂鸣器响,报警指示灯亮。声光报警电路图如图5-15所示。 140P1.0VCCVCC239P1.1(AD0)P0.0338P1.2(AD1)P0.1437P1.3(AD2)P0.2LS1536P1.4(AD3)P0.3635P1.5(AD4)P0.4声光报警器734P1.6(AD5)P0.5833P1.7(AD6)P0.6932SpeakerRST(AD7)P0.7R4Q110AT89C5131P3.0 RXD/EA9013113020KP3.1 TXDAEL1229P3.2(/INT0)/PSEN1328P3.3(/INT1)(A15)P2.71427P3.4(T0)(A14)P2.61526P3.5(T1)(A13)P2.5D11625P3.6(WR)(A12)P2.4LED1724P3.7(RD)(A11)P2.31823XTAL2(A10)P2.21922XTAL1(A9)P2.12021GND(A8)P2.0 AT89C51 图5-15 声光报警电路 本设计的报警电路采用声和光双重报警提示。当速度V超过了设定值时,P2.3口就会产生一个高电平,驱动报警器工作。报警指示灯D1会亮,蜂鸣器也会发出警报声,直到手动复位或按了停止按钮。报警电路可以提醒人们控制自己的骑车速度,有助于安全和更好的锻炼。 第6章 软件设计 6.1 软件设计概述 在硬件设计完毕之后,接下来设计核心就是软件部分设计。所谓软件设计就是把软件需求变换成软件的具体 设计方案 关于薪酬设计方案通用技术作品设计方案停车场设计方案多媒体教室设计方案农贸市场设计方案 (即模块结构)的过程。模块化结构设计即是根据要求和硬件设计的结构,将整个系统的功能分成许多小的功能模块,再根据这些小的功能模块进行程序编写的过程。这样的设计方法,使得系统的整个功能和各部分的功能趋于明朗化。当系统出现问题,就可以根据功能设置找出问题的根源,而不需要从头到尾检查整个程序,这样便可以更快地解决问题。所以说,在整个设计过程中,软件设计必须与硬件设计紧密地结合在一起。 基于AT89C51单片机自行车里程速度计的软件设计包括上中断子程序、速度调用子程序、里程调用子程序、LCD显示子程序、延时子程序和报警子程序等几大部分。由于要实现很多功能,所以采用模块化设计,下面就其主要部分分别加以分析并画出了对应的流程图。 6.2 主程序设计 在主程序模块中,需要完成对各接口芯片的初始化、自行车速度和里程的初始化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器、速度寄存器,并对它们进行初始化。然后主程序将根据各标志寄存器的内容,分别完成启动、清除、计速和计程等不同的操作。 主程序流程如图6-1所示。 开 始 初始化 调显示子程序 N 是否有键 按下, Y 求键值 调键盘子程序 读车速值 求车速 求里程 Y 车速,设报警 定值, N 图6-1 主程序流程图 6.3 中断子程序的设计 定时中断是为满足定时或计数的需要而设置的。在单片机内部有两个定时/计数器,以对其中的计数结构进行计数的方法,来实现定时或计数功能。当结构发生计数溢出时,即表明定时时间或计数值已满,这时就以计数溢出信号作为中断请求,去置位一个溢出标志,作为单片机接受中断请求的标志。这种中断请求是在单片机芯片内部发生的,因此无须在芯片上设置引入端。 定时/计数器控制寄存器TCON是8位寄存器,地址为88H,可以位寻址。其高4位用于定时/计数器中断控制,低4位借给外部中断,用做中断标志和触发方式选择位。本设计采用定时中断,对自行车的速度和行程进行计数。中断子程序流程图如图6-2所示。 开 始 开 中 断 中断处理 关 中 断 现场恢复 开 中 断 中断返回 6-2 中断子程序流程图 6.4 键盘子程序的设计 6.4.1 功能选择键S1程序的设计 内存30H用来存放按键次数,31H用来存放报警车速设定值,32H用来存放车轮尺寸编号(22寸、24寸、26寸、28寸编号为1、 2、 3、 4) S1的程序流程图如下图6-3所示 开 始 (30H)+1 Y (30H)=05H, N (30H)?01H 返 回 图6-3 按键S1程序流程图 6.4.2 增加键S2程序的设计 S2的程序流程图如图6-4所示 开 始 Y (30H)=01H, Y (32H)+1 N (32H)=05H, Y N (32H) ? 01H Y (30H)=02H, (31H)+1 N 返回 图6-4 增加键S2程序流程图 6.4.3 减少键S3程序的设计 S3的程序流程图如图6-5所示 开 始 Y (30H)=01H, Y (32H)-1 Y (32H)=00H, N N (32H) ? 05H Y (30H)=02H, N (31H)-1 返回 图6-5 减少键S3程序流程图 6.5 数据处理子程序的设计 6.5.1 速度计算子程序的设计 外中断1服务程序用于处理轮子转动一圈后的计时数据。当标志位(00H)为1时,计数溢出,放入最大时间值(为#0FFH);当标志位为0时,将计数单元(TL1、TH1、6CH、6DH)的值放入68H,6BH单元。定时器计出每转一圈所用的时间,用自行车车轮的周长除以时间就得出自行车的速度。速度处理子程序流 程图如图6-6所示。 开 始 计算速度V=n*L/t N V>=V0? Y 报 警 显示V 返 回 图6-6 速度处理子程序流程图 6.5.2 里程计算子程序的设计 外中断0服务程序用于对单片机P3.2口输入的圈脉冲进行计数,为十六进制计数器。60H为低位,62H为高位。每次计数一次后,对里程数据进行一次存储操作。当车轮每转一圈,通过霍尔元件将脉冲数输入单片机内,通过计数器计出脉冲数,再用乘法子程序算出行程数。里程处理子程序流程图如图6-7所示。 开 始 计算行程S=n*L 显示S 返 回 图6-7 里程处理子程序流程图 6.6 显示子程序的设计 显示程序流程图如图6-8所示 开 始 显示屏初始化 读取显示数据V和S 显示V和S 结束 图6-8 显示子程序流程图 6.7 I?C协议下读/写E?PROM程序的设计 主机在SCL线上产生自己的时钟传输I?C总线上的数据,数据只在时钟的高电平周期有效,每传输一个数据位产生一个时钟脉冲,数据线的高/低电平状态只有在SCL线的时钟信号是低电平时才能改变。当SCL为高电平时,SDA的改变表示“开始”和“停止”状态,即SDA由高电平转入低电平表示开始,该命令必须在其他命令前执行;SDA由低电平转入高电平表示停止状态,该命令可终止所有通讯。在开始后,SCL低电平期间,SDA允许变化,每位数据需一个时间脉冲,当SCL为高时,SDA必须稳定,主控器在应答时钟脉冲高电平期间释放SDA线,转由接收器控制。相同总线上的设备在收到数据后,以置SDA为低电平的方式对 其确认。总线不忙时,数据线和时钟线保持为高点平。程序流程图如图6-9 所示。 开始 发送起始位 发送读/写控制字 发送要读/写的E?PROM地址 读该地址上的数据到寄存器/ 发送要写入的数据 N 判断是否收到 应答信号 Y 发送停止位 返 回 图6-9 存储程序流程图 结论与展望 该课题的主要任务是开发一个以AT89C51单片机为核心的自行车速度里程计。 本设计主要分为硬件部分和软件部分,硬件部分着重考虑硬件电路的简单性,故尽可能简化硬件电路,节省线路板的空间,达到硬件电路最优化设计。软件采用汇编语言编写,采用模块化设计思想,程序可读性强,能满足设计要求,达到设计的指标,实现对自行车速度/里程的计算功能,并用LCD显示,行程与速度分别根据以下公式求得: 里程=脉冲总数×车轮周长 速度=车轮周长?车轮转一圈所用的时间 根据此公式将最终显示出行程和速度。当车轮转动,小磁片滑过霍尔元件时,霍尔元件输出一脉冲,可根据车轮周长计算行程和速度。当速度超过一定速度时,将启动报警系统。 本次设计符合设计的要求,能实现对行程、速度的单独显示,功能性较强,具有一定的实践意义,将会在许多场合应用。但也有一些不足存在,要显示里程和速度需要按键,骑车时不安全,可以设计语音系统来报告速度和里程,避免交通事故的发生。 下面对本设计展望一下:本系统操作简单,易于实现。硬件部分采用的器件应用较广泛,且价格低廉,如AT89C51单片机、存储器CAT24WC32、EDM1190A液晶显示器,比较强大、稳定。尤其是本次设计的核心元件AT89C51单片机,软件技术成熟,并具有种类齐全的支持芯片。这类微处理器既可用作控制器又适合于做数据处理,而且成本也甚是低廉。软件采用模块化设计,可读性强,方便二次开发。 本次设计电路简单、低成本,而且能够满足人们对高性能、多功能自行车的要求,可在很多速度里程的测量场合使用,具有广泛的应用前景。 通过此次毕业设计,我学到了很多知识。在实物的设计和论文的写作过程中,通过查资料和搜集有关的文献,培养了自学能力。通过对硬件电路的设计,增强了自己的动手能力。并且由原来的被动接受知识转换为主动的寻求知识,学会了更好地让所学知识与实践相结合,让书本上的知识与实际生活中的具体应用相结合。让自己切实感觉到了学有所用。并在此期间巩固复习了在大学4年内学过的知识,尤其是单片机和模电,数电方面的知识。同时通过这次毕业设计提高了自己的单片机编程的能力,同时也让自己知道了自己不足和缺陷,从而为自己能更好的改进提供了帮助。 致 谢 经过四年的学习,现在终于要毕业了。在学习期间经历了风风雨雨,在各 位老师和同学的帮助和支持下最终得以顺利完成。自己又熟悉了Protel和CAD软 件的应用。 在此,首先感谢我的老师,感谢各位老师这四年中在学习中、生活上的关心和照顾;其次感谢各位同学,同学们在生活中给予很大的帮助,在学习上也给极大的鼓舞。 指导老师肖老师治学严谨,学识渊博,平易近人,在我做设计和论文期间对我的教诲和指导将使我终生受益。无论是在平时的阶段,还是在论文的选题、资料查询、开题、研究、设计和撰写的每一个环节,都得到导师的悉心指导和帮助。借此机会向肖兴达老师表示衷心的感谢~ 主要参考文献 [1] 电气简图用图形符号,GB/T4728-2005, [2] 李朝青.单片机原理及接口技术.北京,北京航空航天大学出版社,2005. [3] 何立民. MCS-51系列单片机应用系统设计系统配置与接口技术. 北京, 北京航空航天大学出版社,1990. [4] 何希才.常用传感器应用电路的设计与实践. 北京,科学出版社,2007 [5] 51测试网 www.51c51.com 附 录 一 元器件清单 型号/规格 个数 名称 型号/规格 个数 名称 开关型霍尔传A44E 1个 电容 1000uF Y5V 16V 4230 2个 感器 施密特触发器74LS14 1个 电容 10000pF X7R 16V 1210 2个 器 单片机集成AT89C51 1个 电容 10uF Y5V 5V 3225 1个 块 电阻 220 1/4W ,个 电容 33pF NPO 5V 0804 2个 电阻 4.7k 1/4W 3个 蜂鸣器 12*9.5 1个 电阻 5.1k 1/4W ,个 三极管 2N9013 SOT-23 1个 电阻 10, 1/4W ,个 发光二极管 RED DIP D=3mm 1个 电阻 20k 1/4W 1个 电源指示灯 φ3mm 红色 1个 外部数据存储器 ,个 电阻 100,1/4W 1个 ,,,,,,,,, 集成稳压器 ,,,,,,, ,个 光电耦合器 Pc817 ,个 键盘按钮 薄膜按键 4个 熔断器 6GFU 8A 16V ,个 LCD显示器 EDM1190A 1个 晶振 12MZ C-49US DIP 1个 附 录 二 系统原理图 +5V+5V R11R1R124.7K4.7K4.7KR7R85.1K10KS1123U5S2+5V140P1.0VCC239OptoisolS3P1.1(AD0)P0.0+5V338P1.2(AD1)P0.14371(VDD)P1.3(AD2)P0.25362(D )P1.4(AD3)P0.36353(VSS)P1.5(AD4)P0.4传感器检测电路7344(CLK)P1.6(AD5)P0.5833P1.7(AD6)P0.6932RST(AD7)P0.710AT89C5131P3.0 RXD/EA1130P3.1 TXDAEL液晶显示电路+5V1229P3.2(/INT0)/PSENR21328P3.3(/INT1)(A15)P2.7LS11427S410KP3.4(T0)(A14)P2.61526P3.5(T1)(A13)P2.51625C1P3.6(WR)(A12)P2.41724P3.7(RD)(A11)P2.3Speaker1823XTAL2(A10)P2.2声光报警器10uFR31922XTAL1(A9)P2.1100K2021复位电路GND(A8)P2.0R4Q1901320K+5VY112PowerU6F1122INOUT12MHZ1Fuse 1GNDD1R6LEDC1C2Header 133pF33pF220声光报警电路315LM78L05时钟晶振电路A0SDA26D2A1SCLC938C8LEDC11电源指示灯A2VCC+5VC101000uF471000uF104VSSWP104 数据存储电路电源电路 核心电路 附 录 三 系统源程序 以下是控制系统完整源程序 SPEED/MILE OR IKE PROGRAM 60H,61H,62H作里程计数单元,6CH,6DH作T1计数扩充单元, 68H,69H,6AH,6BH存放自行车每圈时间数, 11H—15H存放被除数,16H-19H存放除数 定义 VSDA EQU P1.6 ; EEPROM数据传送口 VSCL EQU P1.7 ; 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扩展高8-16位 EQU P0.1 ; 确定具体硬件的连接方式 CLK EQU P0.2 ; 确定具体硬件的连接方式 PRO GRAM INPUT ORG 0000H ;程序执行开始地址 LJMP START ;跳至START ORG 0003H ;外中断0中断程序入口 LJMP INTEX0 ;跳至INTEX0中断服务程序 ORG 000BH ;定时器T0中断程序入口 RETI ;中断返回 ORG 0013H ;外中断1中断入口 LJMP INTEX1 ; 跳至INTEX1中断服务程序 ORG 001BH ; 定时器T1中断程序入口 LJMP INTT1 ; 跳至INTT1中断服务程序 ORG 0023H ;串口中断入口地址 RETI ;中断返回 ORG 002BH ;定时器T2中断入口地址 RETI ;中断返回 PROGRAM CLEAR ; 上电初始化程序 CLEARMEN: MOV TMOD, #90H ;T1为16位外部控制定时器 MOV SP, #75H ;堆栈在75H开始 SETB PX0 ;外中断0优先级为1 SETB IT0 ;外中断0用边沿触发 SETB IT1 ;外中断1用边沿触发 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为#0FFH MOV 68H, A ;内存置数据#0FFH MOV 69H, A ;内存置数据#0FFH MOV 6AH, A ;内存置数据#0FFH MOV 6BH, A ;内存置数据#0FFH PROGRAM START ; START: LONGCALL DISPLAY ; 调显示子程序 JNB P1.0 SW1 ;判断SW1是否按下,按下则执行SW1程 序,否则往下执行 JNB P1.1 SW2 ;判断SW2是否按下,按下则执行SW2程 序,否则往下执行 JNB P1.2 SW3 ;判断SW3是否按下,按下则执行SW3程 序,否则往下执行 SW1: MOV A 30H ;地址30H存放按键按下次数,送入A INC A ;按键次数加, ,,,, , ,,,, ; ,,, ,,, ,,,,;把,,,,送入,,,地址,,中内容 是 ,,,,循环执行 ,,, ;,,,内容不是,,,,,返回 SW,:,,, , ,,, ; ,,,, , ,,,, ;,中不是,,,,,循环执行 ,,,,, K1 ,,, , ,,, ; ,,, , ; ,,,, , ,,,, ; MOV 32H #01H ; ,,,,, K1 ; K1: MOV A 30H ; CJNE A #02H ; MOV A 31H ; INC A ; RET ; SW3:,,, , ,,, ; ,,,, , ,,1, ;,中不是,,,,,循环执行 ,,,,, K2 ,,, , ,,, ; DEC , ; ,,,, , ,,0, ; MOV 32H #05H ; ,,,,, K2 ; K2: MOV A 30H ; CJNE A #02H ; MOV A 31H ; DEC A ; RET INTEX0 PROGRAM 里程计数程序,用外中断0实现,计数用60H-62H内存单元。 INTEX0: PUSH ACC ; 累加器堆栈保护 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 ; 中断返回 INTEX1 PROGRAM ; 每转1圈时间计数处理程序,每圈时间放在68H-6BH单元中。 INTEX1: PUSH ACC ; 堆栈保护 PUSH PSW ; CLR EX1 ; 关外中断1 JNB 00H, INTEX11 ; 溢出标志为0转INTEX11 MOV TL1, #0FFH ; 溢出时计时单元赋#0FFH(显示 速度为零) MOV TH1, #0FFH ; MOV 6CH, #0FFH ; MOV 6DH, #0FFH ; INTEX11: MOV 68H, TL1 ; 将时间计数值移入暂存单元 68H-6BH MOV 69H, TH1 ; MOV 6AH, 6CH ; MOV 6BH, 6DH ; CLR A ; 清A MOV TL1, A ; 计时单元置0 MOV TH1, A ; MOV 6CH, A ; MOV 6DH, A ; CLR 00H ; 清溢出标志 POP PSW ; 堆栈恢复 POP ACC ; RETI ; 中断返回 INTT1 PROGRAM T1计数器中断服务程序。(计数器T1由外中断1输入控制,当为高电平时计时 开始) INTT1: PUSH ACC ; 堆栈保护 PUSH 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 ; 中断返回 DISPLAY S 里程显示控制程序 DISPLAYS: LCALL SSS ; 将圈数转为公里数 LCALL DISPLAY ; 显示公里数据 LJMP START1 ; 跳回START1 DISPLAY V 速度显示控制程序 DISPLAYV: LCALL VVV ; 每圈时间换算为公里/小时程序 MOV A, 71H ; 将十位数值移入A SUBB A, #04H ; 与预定报警值比较 JNC WARING ; 时速超过40时报警 SETB P3.1 ; 关报警灯 V1: LCALL DISPLAY ; 显亮一次(为了改善闪烁) RET ; 子程序返回 WARING: CLR P3.1 ; 报警灯LED1点亮(并呜叫) AJMP V1 ; 转V1退出 VIIC WRITE 归一化EEPROM存入程序(12MZ时钟),存入数在50H起单元 VIICWRITE: ACALL WMOV9 MOV SLA, #SLAW MOV NUMBYT, #09H LCALL WRNBYT RET WMOV9: MOV 5FH, #50H MOV R0, #MTD MOV R1, #5FH MOV R2, #09H WMOV: MOV A, @R1 MOV @R0, A INC R0 INC R1 DJNZ R2, WMOV RET VIICRE AD 归一化EEPROM读出程序(12M时钟),读出数放入60H-67H单元 VIICREAD: MOV MTD, #50H MOV SLA, #SLAW MOV NUMBYT, #01H LCALL WRNBYT MOV SLA, #SLAR MOV NUMBYT, #08H LCALL RDNBYT ACALL RMOV8 RET RMOV8: MOV R0, #MRD MOV R1, #60H MOV R2, #08H RMOV: MOV A, @R0 MOV @R1, A INC R0 INC R1 DJNZ R2, RMOV RET ; VIIC PROGRAM 2IC串行归一化存储子程序 STA: SETB VSDA SETB VSCL NOP NOP NOP NOP CLR VSDA NOP CLR VSDA NOP NOP NOP NOP CLR VSCL RET STOP: CLR VSDA SETB VSCL NOP NOP NOP NOP SETB VSDA NOP NOP NOP NOP CLR VSDA CLR VSCL RET MACK: CLR VSDA SETB VSCL NOP NOP NOP NOP CLR VSCL SETB VSDA RET MNACK: SETB VSDA SETB VSCL NOP NOP NOP NOP CLR VSCL CLR VSDA RET CACK: SETB VSDA SETB VSCL CLR F0 MOV C, VSDA JNC CEND SETB F0 CEND: CLR VSCL RET WRBYT: MOV R0, #08H WLP: RLC A JC WR1 AJMP WR0 WLP1: DJNZ R0, WLP RET WR1: SETB VSDA SETB VSCL NOP NOP NOP NOP CLR VSCL CLR VSDA AJMP WLP1 WR0: CLR VSDA SETB VSCL NOP NOP NOP NOP CLR VSCL AJMP WLP1 RDBYT: MOV R0, #08H RLP: SETB VSDA SETB VSCL MOV C, VSDA MOV A, R2 RLC A MOV R2, A CLR VSCL DJNZ R0, RLP RET WRNBYT: MOV R3, NUMBYT LCALL STA MOV A, SLA LCALL WRBYT LCALL CACK JB F0, WRNBYT MOV R1, #MTD WRDA: MOV A, @R1 LCALL WRBYT LCALL CACK JB F0, WRNBYT INC R1 DJNZ R3, WRDA LCALL STOP RET RDNBYT: MOV R3, NUMBYT LCALL STA MOV A, SLA LCALL WRBYT LCALL CACK JB F0, RDNBYT RDN: MOV R1, #MRD RDN1: LCALL RDBYT MOV @R1, A DJNZ R3, ACK LCALL MNACK LCALL STOP RET ACK: LCALL MACK INC R1 SJMP RDN1 DISPLAY PROGRAM 显示程序。 DISPLAY:MOV R1,#08H ;设置向脚输入数字的个数为8个 LOOP1:NOP ;延时 SETB P0.2 ; 设置P0.2为高电平,准备送数 NOP ;延时 ,,, , ; 将,中的数字依次左移,送入进 位标志位, ,,, ,,(,,, ;由,,(,端将,中的值送入,, ,,,,,,的脚 ,,, ;延时 ,,, ;延时 ,,, ,,(, ;设置,,(,为低电平,将送入 的数锁存 ,,, ;延时 ,,,, ,,,,,,,, ;判断,个数字是否送完,若送完 则执行下面的程序,否则循环执 行上面的程序 ,,, ,,,,,, ;将最高位数字的段码存在累加器, ,,中。显然因为此时所有段均 为高电平(“,”)。所以此时最高 位不显示任何数字 ,,, ,,,,,,, ;设置向脚输入输入数字的个数 为,个 ,,,,,:,,, ;延时 ,,,, ,,(, ;设置,,(,为高电平,准备送 数 ,,, ;延时 ,,, , ;将,中的数字依次左移,送入进 位标志位, ,,, ,,(,,, ;由,,(,端将,中的值送入, ,,,,,,,的脚 ,,, ;延时 ,,, ;延时 ,,, ,,(, ;设置,,(,为低电平,将送入 的数锁存 ,,, ;延时 ,,,, ,,,LOOP2 ;判断8个数是否送完,若送完则执 行下面的程序,否则循环执行上 面的程序 MOV R1,#,,, ;将次高位数字的段码存在累加器 ACC中 MOV R1,#08H L,,,,:,,, ,,,, ,,(, ,,, ,,, , ,,, ,,(,,, ,,, ,,, CLR P0.2 NOP DJNZ R1,LOOP3 MOV A,#,,, ;将次低位数字的段码存在累加 器ACC中 MOV R1,#08H LOOP4:NOP ,,,, ,,(, ,,, ,,, , ,,, ,,(,,, ,,, ,,, ,,, ,,(, ,,, ,,,, ,,,,,,,, ,,, ,,,,,, ;将最低位数字的段码 存在累加器,,,中 ,,,: DB 11H,DDH,83H,89H,4DH DB 29H, 21H, 9DH, 01H, 09H ,,, ,,,,,,, ,,,,,:,,, ,,,, ,,(, ,,, ,,, , ,,, ,,(,,, ,,, ,,, ,,, ,,(, ,,, ,,,, ,,,,,,,, ,,, ;返回主程序 SSS PROGRAM 里程处理程序,将自行车圈数据换算成公里数 SSS: MOV 19H, #64H ; 除数最高位赋值 MOV 18H, #00H ; 除数赋值 MOV 17H, #00H ; 除数赋值 MOV 16H, #00H ; 除数赋值 MOV 11H, #00H ; 被除数赋值 MOV 12H, #00H ; 被除数赋值 MOV 13H, 62H ; 被除数赋值 MOV 14H, 61H ; 被除数赋值 MOV 15H, 60H ; 被除数赋值 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, A ; 放入72H单元 MOV A, 24H ; 24H数移入A SWAP A ; 高低四位交换 ANL A, #0FH ; 将高四位置为0 MOV 73H, A ; 放入73H单元 RET ; 子程序返回 VVV PROGRAM 时速处理程序,最大显示速度为99公里/小时(用作自行车) VVV: MOV 18H,68H ; 除数赋值 MOV 17H,69H ; 除数赋值 MOV 16H,6AH ; 除数赋值 MOV 11H,#00H ; 被除数赋值 MOV 12H,#00H ; 被除数赋值 MOV 13H, #36H ; 被除数赋值 MOV 14H, #0EEH ; 被除数赋值 MOV 15H, #80H ; 被除数赋值 LCALL DIVST ; 调除法程序 MOV 14H, #00H ; 舍去一位 LCALL BCDST ;二进制转BCD码程序 MOV A, 25H ;以下将速度值放入显示单元 ANL A, #0FH ;高四位为0 MOV 70H, A ;放入70H内 MOV A, 25H ;再取数 SWAP A ;高低四交换 ANL A, #0FH ;高四位为0 MOV 71H, A ;放入71H内 MOV 72H, #00H ;72H为0(高二位LED显示0) MOV 73H, #00H ;73H为0 RET ;子程序返回 出错闪烁用延时(255毫秒) DL5S: MOV R5, #0FFH DL3: LCALL DL1MS DJNZ R5, DL3 RET 除法子程序 除法子程序,用作四位除法,除数在16H-19H,被除数在11H-15H。 DIVST: CLR C ;运算开始 MOV A, 13H SUBB A, 18H MOV A, 12H SUBB A, 17H MOV 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 RLC A 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 MOV A, 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 END ;程序结束
本文档为【单片机自行车速度里程计论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_353097
暂无简介~
格式:doc
大小:418KB
软件:Word
页数:69
分类:
上传时间:2018-09-19
浏览量:7