毕业设计(论文)基于单片机的自行车里程速度计的设计_第1页
毕业设计(论文)基于单片机的自行车里程速度计的设计_第2页
毕业设计(论文)基于单片机的自行车里程速度计的设计_第3页
毕业设计(论文)基于单片机的自行车里程速度计的设计_第4页
毕业设计(论文)基于单片机的自行车里程速度计的设计_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计(论文)-基于单片机的自行车里程速度计的设计本科毕业论文设计论文设计题目自行车里程速度计的设计学院职业技术学院专业电子信息工程班级05级学号学生姓名指导教师贵州大学本科毕业论文设计诚信责任书本人郑重声明本人所呈交的毕业论文设计是在导师的指导下独立进行研究所完成毕业论文设计中凡引用他人已发表的成果数据观点均已明确注明出处特别声明论文设计作者签名日期com

目录摘要 IIIAbstract IV前言 1第1章绪论 311课题产生的背景 312课题的主要任务及内容 4第2章自行车里程速度计总体方案设计 621任务分析与实现 622自行车里程速度计硬件方案设计 7com里程速度测量传感器的设计 7com方案的确定 923自行车里程速度计软件方案设计 9第3章自行车里程速度计硬件电路设计 1131概述 1132传感器及其测量系统 11com霍尔传感器的测量原理 12com集成开关型霍尔传感器 1233单片机的原理及应用 14com单片机原理简介 14com单片机的引脚功能介绍 15com单片机中断系统介绍 18com单片机定时计数功能介绍 1933其他器件的介绍 20com存储器的介绍 20com74LS74芯片的介绍 21com74LS244芯片的介绍 2234单片机外围电路的设计 22com时钟电路的设计 22com复位电路的设计 23com显示电路的设计 24com报警电路的设计 25第4章自行车里程速度计软件程序设计 2641概述 2642自行车里程速度计总体程序设计 2643中断子程序的设计 2744数据处理子程序的设计 2845显示子程序的设计 30第5章系统调试与分析 3251自行车里程速度计系统调试 32com调试系统简介 32com系统仿真 32com硬件电路的搭建 3352调试故障及原因分析 33第6章社会经济效益分析 35结束语 36参考文献 37致谢 38附录Ⅰ自行车里程速度计硬件系统原理图 39附录Ⅱ元件清单 40附录Ⅲ程序清单 41自行车里程速度计的设计摘要随着居民生活水平的不断提高自行车不再仅仅是普通的运输代步的工具而是成为人们娱乐休闲锻炼的首选自行车里程速度计能够满足人们最基本的需求让人们能清楚地知道当前的速度里程等物理量本论文主要阐述一种基于霍尔元件的自行车里程速度计的设计以AT89C52单片机为核心A44E霍尔传感器测转数实现对自行车里程速度的测量统计采用24C02实现在系统掉电的时候保存里程信息并能将自行车的里程数及速度用LED实时显示文章详细介绍了自行车里程速度计的硬件电路和软件设计硬件部分利用霍尔元件将自行车每转一圈的脉冲数传入单片机系统然后单片机系统将信号经过处理送显示软件部分用汇编语言进行编程采用模块化设计思想该系统硬件电路简单子程序具有通用性完全符合设计要求关键词里程速度霍尔元件单片机LED显示AbstractWiththedevelopingofpeopleslifethebicycleisnotonlytheuniversaltooloftransportationandsubstituteforwalkingbutbecomesthefirstchoiceofentertainmentingandexercisingThebicyclemileagespeedcanfulfillthebasicneedofpeopleslifesothattheycanlearnthespeedandthemileageofthebicycleInthesepaperthebicyclemileagespeeddesignbasedontheHallelementiselaboratedByAT89C52askernelusingA44EHallelementtomeasurerevolutionthemeasureandstatisticareachievedTherangeinformationsaresavedby24C02whenthepowerisoffthebicyclespeedcanbedisplayedonLEDInthisarticlethehardwarecircuitandsoftwaredesignofbicyclemileagespeedinstrumentareintroducedindetailAboutthehardwarethepulsenumberistransmittedofonecycleofthebicycleintoSingleChipMicrocomputersystemThenthesignalprocessedbySingleChipMicrocomputersystemissenttodisplayscreamAboutthesoftwareinassemblelanguagetheprogramisdesignedinthemodeofmodulesThesystemhassimplehardwarecommonsub-programandmeetthedemandofdesignKeywordsMileagespeedHallelementSingleChipMicrocomputerLED

前言单片机自20世纪70年代问世以来作为微计算机一个很重要的分支应用广泛发展迅速已对人类社会产生了巨大的影响目前单片机的应用已经渗透到国民经济与人们生活中的各个领域各类导弹的导航装置飞机上各种仪表的控制计算机的网络通讯与数据传输工业自动化过程的实时控制和数据处理广泛使用的手机、充电器、、电风扇、录像机、摄像机、全自动化洗衣机的控制以及遥控玩具、电子宠物等等这些都离不开单片机随着居民生活水平的不断提高自行车不再仅仅是普通的运输代步的工具而是成为人们娱乐休闲锻炼的首选因此人们希望自行车的功用更强大能给人们带来更多的方便自行车里程速度表作为自行车的一大辅助工具也正是随着这个要求而迅速发展的其功能也逐渐从单一的里程显示发展到速度时间显示甚至有的还具有测量骑车人的心跳显示骑车人热量消耗等功能本设计采用了MCS-51系列单片机设计一种体积小操作简单的便携式自行车里程速度计它能自动地显示当前自行车行走的距离及运行的速度本文主要介绍了自行车里程速度计的设计思想电路原理方案论证以及元件的选择等内容整体上分为硬件部分设计和软件部分设计具体内容安排如下第1章扼要介绍了该课题的产生背景主要任务和内容第2章针对该课题的任务进行方案论证包括硬件方案和软件方案的设计第3章具体介绍了自行车里程速度计的硬件设计包括传感器的选择单片机的选择显示电路的设计第4章阐述了该自行车里程速度计的软件设计包括数据处理子程序的设计显示子程序的设计第5章针对仿真过程和硬件搭建过程中遇到的问题进行了具体说明与分析第6章对本次设计进行了综合经济效益分析本文的核心部分是第345章具体的硬件电路包括AT89C52单片机的外围电路以及LED显示电路等软件设计包括芯片的初始化程序定时中断采样子程序显示子程序等软件采用汇编语言编写软件设计的思想主要是自顶向下模块化设计各个子模块逐一设计再分别进行调试最后联调整个程序判断是否达到预期的要求得出结论仿真部分是整个设计的重要一环也是设计能否实现的关键由于本人的能力有限论文中的错误及疏漏之处在所难免敬请老师批评指正11课题产生的背景自行车被发明及使用到现在已有两百多年的历史这两百年间人类在不断的尝试与研发过程中将玩具式的木马车转换到今日各式新颖休闲运动自行车自行车发展的目的也从最早的交通代步的工具转换成休闲娱乐运动的用途1791年法国人西弗拉克发明了最原始的自行车它只有两个轮子而没有传动装置人骑在上面需用两脚蹬地驱车向前滚动1801年俄国人阿尔塔马诺夫设计出世界上第一辆用踏板踩动的自行车1817年德国人德雷斯在自行车上装了方向舵使其能改变行使方向1839年苏格兰人麦克米伦制造出木制车轮装实心橡胶轮胎前轮小后轮大坐垫较低装有脚踏板和曲柄连杆装置骑者可以双脚离开地面的自行车同年麦克米伦又将木制自行车改为铁制自行车1867年英国人麦迪逊设计出第一辆装有钢丝辐条的自行车1869年德国斯图加特出现了由后轮导向和驱动的自行车同时车上采用了滚动轴承飞轮脚刹弹簧等部件1886年英国人詹姆斯把自行车前后轮改为大小相同并增加了链条使其车型与现代自行车基本相同1887年德国曼内斯公司将无缝钢管首先用于自行车生产1888年英国人邓洛普用橡胶制造出内胎用皮革制造出外胎以次作为自行车的充气轮胎从此基本奠定了现代自行车的雏形时至今日自行车已成为全世界人们使用最多最简单最实用的交通工具随着居民生活水平的不断提高自行车不再仅仅是普通的运输代步的工具而是成为人们娱乐休闲锻炼的首选因此人们希望自行车的功用更强大能给人们带来更多的方便自行车里程速度表作为自行车的一大辅助工具也正是随着这个要求而迅速发展的其功能也逐渐从单一的里程显示发展到速度时间显示甚至有的还具有测量骑车人的心跳显示骑车人热量消耗等功能本设计采用了MCS-51系列单片机设计一种体积小操作简单的便携式自行车里程速度计它能自动地显示当前自行车行走的距离及运行的速度单片微型计算机自1976年问世以来发展非常迅速现在已成为微型计算机一个很重要的分支在现实生活中应用越来越广泛已经对人类产生了巨大的影响尤其是美国Intel公司的MCS51系列单片机由于其集成度高处理功能强性能价格比高可靠性高系统结构简单可以灵活的与其他芯片组成众多的测量电路用于速度温度深度高度湿度光强等方面的测量和研究等特点在我国现代化生活生产中已经得到了广泛的应用如在工业检测控制仪器仪表电子工业机电一体化等众多领域取得了令人瞩目的成果本设计利用MCS51系列单片机扩展方便可靠性能高处理功能强速度高等特点实现对自行车里程和速度的测量课题的主要任务及内容本课题主要任务是利用霍尔元件单片机等部件设计一个可用LED数码管实时显示里程和速度的自行车里程速度计基于此任务本课题的内容主要分为软件和硬件两大部分在遵循软硬件相结合的原则下先熟悉软件环境然后进行硬件电路设计再根据设计的硬件进行软件编程进行模块化设计并对各模块进行调试再焊接电路板最后软硬件进行调试本文主要介绍了自行车里程速度计的设计思想电路原理方案论证以及元件的选择等内容整体上分为硬件部分设计和软件部分设计本文首先扼要介绍了该课题的产生背景主要任务和内容接着针对该课题的任务进行方案论证包括硬件方案和软件方案的设计继而具体介绍了自行车里程速度计的硬件设计包括传感器的选择单片机的选择显示电路的设计然后阐述了该自行车里程速度计的软件设计包括数据处理子程序的设计显示子程序的设计最后针对仿真过程和硬件搭建过程中遇到的问题进行了具体说明与分析对本次设计进行了系统的总结并对其进行了综合经济效益分析本文的核心部分是第345章这3章内容具体介绍了硬件设计过程软件设计过程和系统仿真过程具体的硬件电路包括AT89C52单片机的外围电路以及LED显示电路等在实验板上每一个硬件电路焊接完成后每一部分单独调试在各个部分调试成功后联调整个硬件电路最后做出分析得出结论软件设计包括芯片的初始化程序定时中断采样子程序显示子程序等软件采用汇编语言编写软件设计的思想主要是自顶向下模块化设计各个子模块逐一设计再分别进行调试最后联调整个程序判断是否达到预期的要求得出结论仿真是整个设计的重要一环也是设计能否实现的关键第2章自行车里程速度计总体方案设计21任务分析与实现本次毕业设计的题目是自行车里程速度计的设计其设计的任务是以通用MCS-51单片机为处理核心用传感器将车轮的转数转换为电脉冲进行处理后送入单片机里程及速度的测量是经过MCS-51的定时计数器测出总的脉冲数和每转一圈的时间再经过单片机的计算得出的其结果通过LED显示器显示出来本系统总体思路如下假定轮圈的周长为L在轮圈上安装m个永久磁铁则测得的里程值最大误差为Lm经综合分析本设计中取m1当轮子每转一圈通过开关型霍尔元件传感器采集到一个脉冲信号并从引脚P32中断0端输入传感器每获取一个脉冲信号即对系统提供一次计数中断每次中断代表车轮转动一圈中断数n轮圈的周长为L的乘积为里程值计数器T1计算每转一圈所用的时间t就可以计算出即时速度v当里程键按下时里程指示灯亮LED切换显示当前里程与当速度键按下时速度指示灯亮LED切换显示当前速度若自行车超速系统发出报警信号指示灯闪烁要求达到的各项指标及实现方法如下1利用霍尔传感器产生里程数的脉冲信号2对脉冲信号进行计数 实现利用单片机自带的计数器T1对霍尔传感器脉冲信号进行计数3对数据进行处理要求用LED显示里程总数和即时速度实现利用软件编程对数据进行处理得到需要的数值最终实现目标自行车里程速度计具有里程速度测试与显示功能采用单片机作控制可根据车圈的不同设置常用的四种尺寸显示电路可显示里程及速度整个设计过程包括硬件电路的搭建软件的编程系统的调试调试通过后固化程序脱离开发系统运行自从1971年微型计算机问世以来随着大规模集成电路技术的不断进步微型机主要向两个方向发展一个向高速度高性能的高档微型计算机方向发展一个向稳定可靠小而廉价的单片机方向发展所谓的单片机就是把中央处理器CPU只读存储器ROM定时计数器以及IO接口电路等集成在一块集成电路芯片上的微型计算机从组成和功能上看它具有微型计算机的含义单片机由于将CPU内存和一些必要的接口集成到一个芯片上并且面向控制功能将结构作了一定的优化所以它有一般芯片不具有的特点1体积小重量轻2电源单一功耗低3功能强价格低4全部集成在一块芯片上布线短合理5数据大部分在单片机内传送运行速度快抗干扰能力强可靠性高目前单片机被广泛的应用于测控系统工业自动化智能仪表集成智能传感器机电一体化产品家用电器领域办公自动化领域汽车电子与航空航天器电子系统以及单片机的多机系统等领域1速度传感器的设计测速是工农业生产中经常遇到的问题学会使用单片机技术设计测速仪表具有很重要的意义要测速首先要解决是采样的问题在使用模拟技术制作测速表时常用测速发电机的方法即将测速发电机的转轴与待测轴相连测速发电机的电压高低反映了转速的高低使用单片机进行测速可以使用简单的脉冲计数法只要转轴每旋转一周产生一个或固定的多个脉冲将脉冲送入单片机中进行计算即可获得转速的信息常用的测速元件有霍尔传感器光电传感器1霍尔传感器霍尔传感器是对磁敏感的传感元件常用于信号采集的有A44ECS3020CS3040等这类传感器是一个3端器件外形与三极管相似只要接上电源地即可工作通常是集电极开路OC门输出工作电压范围宽使用非常方便A44E的外形如图21所示1-Vcc2-GND3-OUT图21A44E外形图使用霍尔传感器获得脉冲信号其机械结构也可以做得较为简单只要在转轴的齿轮盘上粘上一粒磁钢霍尔元件固定在前叉上当车子转动时霍尔元件靠近磁钢就有信号输出转轴旋转时就会不断地产生脉冲信号输出如果在齿轮盘上粘上多粒磁钢可以实现旋转一周获得多个脉冲输出在粘磁钢时要注意霍尔传感器对磁场方向敏感粘之前可以先手动接近一下传感器如果没有信号输出可以换一个方向再试这种传感器不怕灰尘油污在工业现场应用广泛2光电传感器光电传感器是应用非常广泛的一种器件有各种各样的形式如透射式反射式等基本的原理就是当发射管光照射到接收管时接收管导通反之关断以红外光电传感器为例当有物体挡在红外光电发光二极管和高灵敏度的光电晶体管之间时传感器将会输出一个低电平而当没有物体挡在中间时则输出为高电平从而形成一个脉冲该系统在自行车后轮的轴处保持着与轮子旋转切面平行的方向延伸附加一个铝盘在这个铝盘的边沿处挖出若干个圆形过孔把传感器的检测部分放在圆孔的圆心位置每当铝盘随着后轮旋转的时候传感器将向外输出若干个脉冲3光电编码器光电编码器的工作原理与光电传感器一样不过它已将光电传感器电子电路码盘等做成一个整体只要用连轴器将光电传感器的轴与转轴相连就能获得多种输出信号它广泛应用于数控机床回转台伺服传动机器人雷达军事目标测定等需要检测角度的装置和设备中2里程测量传感器的设计里程测量传感器的选择也有以下几种方案使用光敏电阻对里程进行测量利用编码器对车轮的圈数进行测量利用霍尔传感器对里程进行测量利用干簧管型传感器测量里程这几种方案都是通过自行车车轮转动产生脉冲数然后根据脉冲数计算里程光敏电阻对光特别敏感当白天行驶时外界光源将导致光敏电阻发出错误信号光敏电阻对环境的要求相当高如果光敏或发光二极管被泥沙或灰尘所覆盖光敏电阻就不能再进行准确测量而编码器必须安装在车轴上安装较为复杂霍尔元件或干簧管不但不受天气的影响即使被泥沙或灰尘覆盖也不会有影响而且安装方便所以本设计采用霍尔元件对里程与速度进行测量既简单易行又经济适用本系统的硬件系统框图如图22所示图22系统原理框图硬件是基础软件是灵魂通过软件控制单片机的功能是单片机的主要特点和优点程序的设计要考虑合理性和可读性程序遵循模块化设计的原则采用自顶向下的设计方法即先考虑整体目标明确整体任务然后把整体任务分成一个个子任务子任务再分成子子任务这样逐层细分同时分析层次间的关系与同一层次各任务间的关系最后拟订出各任务的细节模块化设计使程序的可读性好修改及完善方便软件设计包括主程序行车过程中里程和速度计算子程序延时子程序中断服务子程序显示子程序等等中断子程序是将传感器产生的信号接入外部中断0将经过74LS74分频后的信号接入外部中断1利用中断和定时器对分别对里程进行累加每转一周的时间进行测量数据处理子程序是将进入单片机的脉冲信号与实际要显示值之间有一定的对应关系经过软件编程显示所需要的值显示子程序是将数据处理的结果送显示器显示本系统软件总体流程图如图23所示第3章自行车里程速度计硬件电路设计自行车里程速度计的硬件电路设计是本次毕业设计的基础部分它包括信号的捕获放大整形单片机的计算处理数码管的实时显示和单片机外围基本电路的设计而本章的两大主要器件就是传感器和单片机了传感器在人们研究自然现象规律以及生产实践活动中起着非常重要的作用特别是在当今科学技术的发展使人类进入了一个信息时代在利用信息的过程中首先要解决的就是获取准确可靠的信息传感器是获取自然或生产领域中信息的关键器件是现代信息系统和各种设备不可缺少的信息采集工具磁传感器是一种将磁学量信号转变为电信号的器件或装置随着信息产业工业自动化医疗仪器等的飞速发展和计算机应用的普及需要大量的传感器将被测或被控的非电信号转换成可与计算机兼容的电信号作为输入信号这就给磁传感器的快速发展提供了机遇形成了磁传感器的产业其中最具代表的磁传感器就是霍尔传感器在自动检测系统中利用霍尔传感器测转数是一种最基本的测量工作自从1971年微型计算机问世以来随着大规模集成电路技术的不断进步微型机主要向两个方向发展一个向高速度高性能的高档微型计算机方向发展一个向稳定可靠小而廉价的单片机方向发展所谓的单片机就是把中央处理器CPU只读存储器ROM定时计数器以及IO接口电路等集成在一块集成电路芯片上的微型计算机可见它的功能非常强大单片机是本次设计的核心部件它是信号从采集到输出的桥梁而且肩负计算定时信息处理等功能下面我们就具体介绍一下硬件电路设计的过程本次设计信号的捕获采用的是霍尔传感器霍尔器件是一种磁传感器用它们可以检测磁场及其变化可在各种与磁场有关的场合中使用霍尔器件以霍尔效应为其工作基础霍尔器件具有许多优点它们的结构牢固体积小重量轻寿命长安装方便功耗小频率高可达1MHz耐震动不怕灰尘油污水汽及烟雾等的污染或腐蚀霍尔线性器件的精度高线性度好霍尔开关器件无触点无磨损输出波形清晰无抖动无回跳位置重复精度高可达μm级取用了各种补偿和保护措施的霍尔器件工作温度范围宽可达-55℃~150℃按照霍尔器件的功能可将它们分为霍尔线性器件和霍尔开关器件前者输出模拟量后者输出数字量按被检测对象的性质可将它们的应用分为直接应用和间接应用前者是直接检测出受检测对象本身的磁场或磁特性后者是检测受检对象上人为设置的磁场用这个磁场来作被检测的信息的载体通过它将许多非电非磁的物理量例如力力矩压力应力位置位移速度加速度角度角速度转数转速以及工作状态发生变化的时间等转变成电量来进行检测和控制霍尔传感器是利用霍尔效应制成的一种磁敏传感器在置于磁场中的导体或半导体通入电流I若电流垂直磁场B则在与磁场和电流都垂直的方向上会出现一个电势差Uh这种现象称为霍尔效应利用霍尔效应制成的元件称为霍尔元件因为它具有结构简单频率响应宽灵敏度高测量线性范围大抗干扰能力强以及体积小使用寿命长等一系列特点因此被广泛应用于测量自动控制及信息处理等领域霍尔效应原理图如图31所示图31霍尔效应原理图A44E集成霍尔开关由稳压器A霍尔电势发生器即硅霍尔片B差分放大器C施密特触发器D和OC门输出E五个基本部分组成如图32a所示123代表集成霍尔开关的三个引出端点在电源端加电压Vcc经稳压器稳压后加在霍尔电势发生器的两端根据霍尔效应原理当霍尔片处在磁场中时在垂直于磁场的方向通以电流则与这二者相垂直的方向上将会产生霍尔电势差VH输出该VH信号经放大器放大后送至施密特触发器整形使其成为方波输送到OC门输出当施加的磁场达到工作点时触发器输出高电压相对于地电位使三极管导通此时OC门输出端输出低电压通常称这种状态为开当施加的磁场达到释放点时触发器输出低电压三极管截止使OC门输出高电压这种状态为关这样两次电压变换使霍尔开关完成了一次开关动作工作点与释放点的差值一定此差值称为磁滞在图32集成开关型霍尔传感器此差值内V0保持不变因而使开关输出稳定可靠这也就是集电成霍尔开关传感器优良特性之一传感器主要特性是它的输出特性即输入磁感应强度B与输出电压V0之间的关系A44E集成霍尔开关是单稳态型由测量数据作出的输出特性曲线如图32b所示测量时在12两端加5V直流电压在输出端3与1之间接一个2k的负载电阻如图33所示单片微型计算机是指集成在一个芯片上的微型计算机也就是把组成微型计算机的各种功能部件包括CPUCentralProcessingUnit随机存储器RAMRandomAccessMemory只读存储器ROMRead-onlyMemory基本输入输出inputoutput接口电路定时器计数器等部件都制作在一块集成芯片上构成一个完整的微型计算机从而实现微型计算机的基本功能单片机内部结构示意图如图34所示单片机实质上是一个芯片在实际应用中通常很少将单片机直接和被控对象进行电气连接必须外加各种扩展接口电路外部设备被控对象等硬件和软件才能构成一个单片机应用系统1中央处理器CPU中央处理器是单片机最核心的部分主要完成运算和控制功能2内部存储器内部存储器包括内部数据存储器内部RAM和内部程序存储器存储器是由大量的寄存器所组成其中每一个寄存器就称为一个存储单元3定时计数器单片机的定时器和计数器是同一结构只是计数器记录的是单片机外部发生的事件由单片机的外部电路提供计数信号而定时器是由单片机内部提供一个非常稳定的计数信号4中断系统中断系统在计算机中起着十分重要的作用是现代计算机系统中广泛采用的一种实时控制技术能对突发事件进行及时处理从而大大提高系统的实时性能5串行IO接口串行IO口的数据各位按顺序传输其特点是需要一对传输线成本低但速度慢效率低适合静态显示6并行IO接口并行IO接口的数据所有位同时传送其特点是传输速度快效率高但传送多少位就需要多少根传输线因此传送成本高适合动态显示AT89C52是美国ATMEL公司生产的低电压高性能CMOS8位单片机片内含8kbytes的可反复擦写的只读程序存储器EPROM和256字节的随机存取数据存储器RAM器件采用ATMEL公司的高密度非易失性存储技术生产与标准MCS-51指令系统及8052产品引脚兼容片内置通用8位中央处理器CPU和Flash存储单元功能强大AT89C52单片机适合于许多较为复杂控制场合应用AT89C52提供以下标准功能8k字节Flash闪速存储器256字节内部RAM32个IO口线3个16位定时计数器一个全双工串行通信口片内具有振荡器及时钟电路同时AT89C52可降至0Hz的静态逻辑操作并支持两种软件可选的节电工作模式空闲方式停止CPU的工作但允许RAM定时计数器串行通信口及中断系统继续工作掉电方式保存RAM中的内容但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位89C52管脚图如图35所示89C52的主要管脚功能如下P00~P07P0口是一组8位漏极开路型双向IO口也是地址数据总线复用口作为输出口用时每位能吸收电流的方式驱动8个TTL逻辑门电路对端口P0写1时可作为高阻抗输入端用在访问外部数据存储器或程序存储器时这组口线分时转换地址低8位和数据总线复用在访问期间激活内部上拉电阻P10~P17P1是一个带内部上拉电阻的8位双向IO口P1的输出缓冲极可驱动吸收或输出电流4个TTL逻辑门电路对端口写1通过内部的上拉电阻把端口拉到高电平此时可作输入口P20~P27P2是一个带内部上拉电阻的8位双向IO口P2的输出缓冲极可驱动吸收或输出电流4个TTL逻辑门电路对端口P2写1通过内部的上拉电阻把端口拉到高电平此时可作输入口P30~P37P3是一个带内部上拉电阻的8位双向IO口P3的输出缓冲极可驱动吸收或输出电流4个TTL逻辑门电路对端口P3写1通过内部的上拉电阻把端口拉到高电平此时可作输入口ALE地址锁存控制信号在系统扩展时ALE用于控制把P0口输出的低8位地址锁存起来以实现低位地址和数据的隔离此外由于ALE是以晶振1/6的固定频率输出的正脉冲因此可作为外部时钟或外部定时脉冲使用外部程序存储器读选通信号在读外部ROM时有效低电平以实现外部ROM单元的读操作访问程序存储控制信号当信号为低电平时对ROM的读操作限定在外部程序存储器当信号为高电平时对ROM的读操作是从内部程序存储器开始并可延至外部程序存储器RST复位信号当输入的复位信号延续两个机器周期以上的高电平时即为有效用以完成单片机的复位初始化操作XTALl和XTAL2外接晶体引线端当使用芯片内部时钟时此二引线端用于外接石英晶体和电容当使用外部时钟时用于接外部时钟脉冲信号VSS地线VCC5V电源以上是MCS-51单片机芯片40条引脚的定义及简单功能说明由于工艺及标准化等原因芯片的引脚数目是有限制的例如MCS-51系列把芯片引脚数目限定为40条但单片机为实现其功能所需要的信号数目却远远超过此数因此就出现了需要与可能的矛盾如何解决这个矛盾兼职是唯一可行的办法即给一些信号引脚赋以双重功能如果把前述的信号定义为引脚第一功能的话则根据需要再定义的信号就是它的第二功能下面介绍一些信号引脚的第二功能1P3口线的第二功能P3的8条口线都定义有第二功能如表31所示引脚 第二功能 信号名称 P30 RXD 串行数据接收 P31 TXD 串行数据发送 P32 外部中断0申请 P33 外部中断1申请 P34 T0 定时计数器0的外部输入 P35 T1 定时计数器1的外部输入 P36 外部RAM写选通 P37 外部RAM读选通 2EPROM存储器程序固化所需要的信号有内部EPROM的单片机芯片例如8751为写入程序需提供专门的编程脉冲和编程电源这些信号也是由信号引脚以第二功能的形式提供的即编程脉冲30脚ALE编程电压25V31脚VPP3备用电源引入MCS-51单片机的备用电源也是以第二功能的方式由9脚RSTVPD引入的当电源发生故障电压降低到下限值时备用电源经此端向内部RAM提供电压以保护内部RAM中的信息不丢失在本次设计当中中断部分的设计尤为重要所谓中断是当计算机执行正常程序时系统中出现某些急需处理的事件CPU暂时中止当前的程序转去执行服务程序以对发生的更紧迫的事件进行处理待处理结束后CPU自动返回原来的程序执行AT89C52系列单片机的系统有5个中断源2个优先级可实现二级中断服务嵌套由片内特殊功能寄存器中的中断允许寄存器IE控制CPU是否响应中断请求有中断优先级寄存器IP安排各优中断源的优先级同一优先级内各终端同时提出中断请求时由内部的查询逻辑确定其响应次序本次设计采用的外部中断方式包括外部中断0和外部中断1它们的中断请求信号分别由单片机和输入外部中断请求有两种信号方式电平触发方式和脉冲触发方式电平触发方式的中断请求是低电平有效只要在和引脚上出现有效低电平时就激活外部中断方式脉冲触发方式的中断请求则是脉冲的负跳变有效在这种方式下在两个相邻机器周期内活引脚电平发生变化即在第一个机器周期内为高电平第二个机器周期内为低电平就激活外部中断由此可见在脉冲方式下中断请求信号的高电平和低电平状态都应至少维持一个机器周期以使CPU采样到电平状态的变化本次设计所采用的触发方式为脉冲触发方式1中断允许控制CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的IE的状态可通过程序由软件设定某位设定为1相应的中断源中断允许某位设定为0相应的中断源中断屏蔽CPU复位时IE各位为0禁止所有中断IE寄存器各位的定义如下EX0IE0外部中断允许位ET0IE1定时计数器T0中断允许位EX1IE2外部中断允许位ET1IE3定时计数器T1中断允许位ESIE4串行口中断允许位EAIE7CPU中断允许位2中断优先级控制AT89C52单片机有两个中断优先级即可实现二级中断服务嵌套每个中断源的中断优先级都是由中断优先级寄存器IP中的相应的状态来规定的IP的状态由软件设定某位设定为1则相应的中断源为高优先级中断某位设定为0则相应的中断源为低优先级中断单片机复位时IP各位清0各中断源同为低优先级中断IP寄存器各位的定义如下PX0IP0外部中断优先级设定位PT0IP1定时计数器T0中断优先级设定位PX1IP2外部中断中断优先级设定位PT1IP3定时计数器T1中断优先级设定位PSIP4串行口中断优先级设定位AT89C52单片机定时计数器的工作由两个特殊功能寄存器控制TMOD用于设置其工作方式TCON用于控制其启动和中断请求1工作方式寄存器TMOD工作方式寄存器TMOD用于设置定时计数器的工作方式GATE门控位GATE0时只要用软件使TCON中的TR0或TR1为1就可以启动定时计数器工作GATE1时要用软件TR0或TR1为1同时外部中断引脚或也为高电平时才能启动定时计数器工作定时计数模式选择位0为定时模式1为计数模式M1M2工作方式设置位定时计数器有4种工作方式由M1M2进行设置本次设计TMOD为90H即选通定时计数器1定时功能工作方式1工作方式16位定时计数器2控制寄存器TCONTF1TCON7定时计数器T1溢出中断请求标志位定时计数器T1计数溢出时由硬件自动置TF1为1CPU响应中断后TF1由硬件自动清零T1工作时CPU可随时查询TF的状态所以TF1可用作查询测试的标志TF1也可以用软件置1或清零同硬件置1或清零的效果一样TR1TCON6定时计数器T1运行控制位TR1置1时时定时计数器T1开始工作TR1置0时定时计数器T1停止工作TR1由软件置1或清0TF0TCON5定时计数器T0溢出中断请求标志位TR0TCON4定时计数器T0运行控制位AT24C02是一个2K位串行CMOSE2PROM内部含有256个8位字节ATMEL公司的先进CMOS技术实质上减少了器件的功耗AT24C02有一个16字节页写缓冲器该器件通过I2C总线接口进行操作有一个专门的写保护功能AT24C02支持I2C总线数据传送协议数据传送是由产生串行时钟和所有起始停止信号的主器件控制的主器件和从器件都可以作为发送器或接收器但由主器件控制传送数据发送或接收的模式通过器件地址输入端A0A1和A2可以实现将最多8个24C02器件连接到总线上管脚图如37所示SCL串行时钟AT24C02串行时钟输入管脚用于产生器件所有数据发送或接收的时钟这是一个输入管脚SDA串行数据地址CAT24WC02双向串行数据地址管脚用于器件所有数据的发送或接收SDA是一个开漏输出管脚可与其它开漏输出或集电极开路输出进行线或wire-ORWP写保护如果WP管脚连接到Vcc所有的内容都被写保护只能读当WP管脚连接到Vss或悬空允许器件进行正常的读写操作本次设计采用的24C02是为了防止掉电时里程数据的丢失由于24C02的数据线和地址线是复用的采用串口的方式传输数据所以只用两根线SCL和SDA与单片机传输数据在软件编程时采用程序包来控制24C02发送或接受数据74LS74是D触发器的一种它是一个具有记忆功能的二进制信息存储器件是构成多种时序电路的最基本逻辑单元触发器具有两个稳定状态即"0"和"1"在一定的外界信号作用下可以从一个稳定状态翻转到另一个稳定状态由于其状态的更新发生在CP脉冲的边沿故又称之为上升沿触发的边沿触发器D触发器的状态只取决于时针到来前D端的状态D触发器应用很广可用做数字信号的寄存移位寄存分频和波形发生器等引脚图如图38所示在本题目中74LS74芯片起分频的作用当车轮每转一圈霍尔传感器输出一个低电平脉冲通过74LS74进行二分频后定时器T1的开启时间为车轮转1圈的时间这样就可以算出自行车的速度分频前后对比图如图39所示由图可见二分频后的波形的高或地电平的时间正好是霍尔传感器开关的一个周期霍尔传感器输出脉冲到即接收到对圈数计数的脉冲经74LS74二分频后的信号输入到内部定时计数器测得每转一圈所用的时间通过计算即可得里程值和即时速度本次设计中的采用驱动数码管的芯片为74LS24474LS244为三态输出的八位缓冲器和线驱动器若单片机输出口直接接显示部分电路则电流太小会导致显示部分不能正常工作所以在单片机输出口先接入驱动芯片74LS244增大电流使LED能够正常工作其逻辑图如图39所示可以看出74LS244由2组组成每组由四路输入输出构成每组有一个控制端高或低电平决定该组数据被接通还是断开时钟是单片机的心脏单片机各功能部件的运行都是以时钟频率为基准有条不紊地一拍一拍地工作因此时钟频率直接影响单片机的速度时钟电路的质量也直接影响单片机系统的稳定性AT89C52片内由一个反相放大器构成振荡器可以由它产生时钟常用的时钟电路有两种方式一种是内部时钟方式另一种为外部时钟方式本设计采用单片机内部有一个用于构成振荡器的高增益反相放大器该高增益反相放大器的输入为芯片引脚XTAL1输出端为引脚XTAL2这两个引脚跨接石英晶体振荡器和电容就构成一个稳定的自激振荡器单片机内部时钟方式的振荡电路如图310所示电路中的电容C1和C2常选择为30pF左右对外接电容的值虽然没有严格的要求但电容的大小会影响振荡器的高低振荡器的稳定性起振的快速性和温度的稳定性而外接晶体的振荡频率的大小主要取决于单片机的工作频率范围每一种单片机都有自己的最大工作频率外接的晶体振荡频率不大于单片机的最大工作频率即可此外如果单片机有串行通信则应该选择振荡频率除以串行通信频率可以除尽的晶体本设计晶振采用12MHz则计数周期为TSAT89C52单片机的复位输入引脚RET为AT89C52提供了初始化的手段有了它可以使程序从指定处开始执行即从程序存储器中的0000H地址单元开始执行程序在89C52的时钟电路工作后只要在RET引脚上出现两个机器周期以上的高电平时单片机内部则初始复位只要RET保持高电平则89C52循环复位只有当RET由高电平变成低电平以后89C52才从0000H地址开始执行程序本系统的复位电路是采用按键复位的电路如图311所示是常用复位电路之一单片机复位通过按动按钮产生高电平复位称手动复位上电时刚接通电源电容C相当于瞬间短路5V立即加到RETVPD端该高电平使89C52全机自动复位这就是上电复位若运行过程中需要程序从头执行只需按动按钮即可按下按钮则直接把5V加到了RETVPD端从而复位称为手动复位复位后P0到P3并行IO口全为高电平其它寄存器全部清零只有SBUF寄存器状态不确定工作原理上电瞬间RC电路充电RST引脚出现高电平只要RST端保持10ms以上高电平就能使单片机有效地复位本设计中采用LED数码管显示在单片机系统中通常用LED数码显示器来显示各种数字或符号由于它具有显示清晰亮度高使用电压低寿命长的特点因此使用非常广泛八段LED显示器由8个发光二极管组成其中7个发光二极管构成字型8的各个笔画段另一个小数点为dp发光二极管LED显示器有两种不同的形式一种是发光二极管的阳极都连在一起的称之为共阳极LED显示器另一种是发光二极管的阴极都连在一起的称之为共阴极LED显示器如图312所示本次设计采用共阴极接法LED显示方式有动态显示和静态显示两种方式本系统采用动态扫描显示接口电路动态显示接口电路是把所有显示器的8个笔划段a-h同名端连在一起而每一个显示器的公共极COM各自独立地受IO线控制CPU向字段输出口送出字型码时所有显示器接收到相同的字型码但究竟是哪个显示器亮则取决于COM端也就是说我们可以采用分时的方法轮流控制各个显示器的COM端使各个显示器轮流点亮在轮流点亮扫描过程中每位显示器的点亮时间是极为短暂的约1ms由于人的视觉暂留现象及发光二极管的余辉效应尽管实际上各位显示器并非同时点亮但只要扫描的速度足够快给人的印象就是一组稳定的显示数据不会有闪烁感本设计P20P21P22P23信号一起组成位选通的位选信号P00P07信号一起组成段码选通的段选信号通过软件编程先把所要显示的数据放入存储单元然后把数据送入段选通对应的地址再选通某一个LED逐步完成四个LED的显示本次报警电路采用蜂鸣器报警当即时速度超过预定值是蜂鸣器响指示灯闪烁提示应该减速报警电路图如图313所示在硬件设计完毕之后接下来就是设计中最核心和最为主要的软件部分设计所谓软件设计就是把软件需求变换成软件的具体设计方案即模块结构的过程模块化结构设计即是根据要求和硬件设计的结构将整个系统的功能分成许多小的功能模块再根据这些小的功能模块进行程序编写的过程这样的设计方法使得系统的整个功能和各部分的功能趋于明朗化当系统出现问题就可以根据功能设置找出问题的根源从而更快地解决问题所以说在整个设计过程中软件设计必须与硬件设计紧密地结合在一起基于霍尔传感器自行车里程速度计的软件设计包括上电初始化程序中断子程序速度调用子程序里程调用子程序LED显示子程序延时子程序等几大部分由于要实现很多功能所以采用模块化设计下面就其主要部分分别加以分析在主程序模块中需要完成对各接口芯片的初始化自行车里程和速度的初始化中断向量的设计以及开中断循环等待等工作另外在主程序模块中还需要设置启动清除标志寄存器里程寄存器速度寄存器并对它们进行初始化然后主程序将根据各标志寄存器的内容分别完成启动清除计程和计速等不同的操作com用于显示里程状态和速度状态P12P13com用于设置轮圈的大小低电平有效P30是用于里程和速度切换的低电平为显示速度高电平为显示里程中断0用于对轮子圈数的计数输入轮子每转一圈霍尔传感器输出一个低电平脉冲将根据里程寄存器中的内容计算和判断出行驶里程数中断1用于控制定时器T1的启停当输入为0时关闭定时器此控制信号是将轮子圈数的计数经二分频后形成这样每次定时器T1的开启时间刚好为转一圈的时间根据轮子的周长就可以计算出自行车的速度其程序流程如图41所示定时中断是为满足定时或计数的需要而设置的为此在单片机内部有两个定时计数器以对其中的计数结构进行计数的方法来实现定时或计数功能当结构发生计数溢出时即表明定时时间或计数值已满这时就以计数溢出信号作为中断请求去置位一个溢出标志作为单片机接受中断请求的标志这种中断请求是在单片机芯片内部发生的因此无须在芯片上设置引入端定时计数器控制寄存器TCON是8位寄存器地址为88H可以位寻址其高4位用于定时计数器中断控制低4位借给外部中断用做中断标志和触发方式选择位本设计采用定时中断对自行车的里程和速度进行计数中断子程序流程图如图42所示1里程计算子程序外中断0服务程序用于对单片机P32口输入的圈脉冲进行计数为十六进制计数器60H为低位62H为高位每次计数一次后对里程数据进行一次存储操作当车轮每转一圈通过霍尔元件将脉冲数输入单片机内通过计数器计出脉冲数再用乘法子程序算出里程数里程处理子程序流程图如图43所示2速度计算子程序外中断1服务程序用于处理轮子转动一圈后的计时数据当标志位00H为1时说明计数溢出放入最大时间值为0FFH当标志位为0时将计数单元TL1TH16CH6DH的值放入68H6BH单元通过定时器计出每转一圈所用的时间用自行车车轮的周长除以时间就得出自行车的速度速度处理子流程图如图44所示本次设计采用动态扫描显示接口电路动态显示接口电路是把所有显示器的8个笔划段a-h同名端连在一起而每一个显示器的公共极COM各自独立地受IO线控制CPU向字段输出口送出字型码时所有显示器接收到相同的字型码但究竟是哪个显示器亮则取决于COM端也就是说我们可以采用分时的方法轮流控制各个显示器的COM端使各个显示器轮流点亮在轮流点亮扫描过程中每位显示器的点亮时间是极为短暂的约1ms由于人的视觉暂留现象及发光二极管的余辉效应尽管实际上各位显示器并非同时点亮但只要扫描的速度足够快给人的印象就是一组稳定的显示数据不会有闪烁感本设计P20P21P22P23信号一起组成位选通的位选信号P00P07信号一起组成段码选通的段选信号通过软件编程先把所要显示的数据放入存储单元然后把数据送入段选通对应的地址再选通某一个LED逐步完成四个LED的显示为了减少资源的浪费和避免焊接过程中产生不必要的错误在焊接硬件电路前对硬件电路设计的可行性和软件编程的正确性进行了仿真实验采用的调试系统为PROTEUSPROTEUS系统仿真平台与开发平台是由英国Labcenter公司开发的是目前世界上最完整的系统设计与仿真平台PROTEUS可以实现数字电路模拟电路及微控制系统与外设的混合电路系统的电路仿真系统协同仿真和PCB设计等全部功能PROTEUS软件已有20多年的历史在全球拥有庞大的企业用户群是目前唯一能够对各种处理器进行实时仿真调试与测试的EDA工具真正实现了在没有目标原形时就可以对系统进行调试与验证PROTEUS软件包大大提高了企业的开发效率降低了开发风险在构思好电路原理图和编好程序之后就要对其进行系统仿真原理图的具体设计流程如图51所示当完成原理图布线后利用PROTEUSISIS编辑环境所提供的电器规则检查命令对设计进行检查并根据系统提供的错误检查报告修改原理图直到通过电器规则检查为止单片机系统的仿真是PROTEUSVSM的一大特色同时本仿真系统将源代码的编辑和编译整合到同一设计环境中这样使得用户可以在设计中直接编辑代码并且很容易地查看到用户对源程序修改后对仿真结果的影响源代码通过编译无误后就可以进行仿真在仿真过程中不断完善电路和程序的功能最后达到本次设计的目的在完成仿真实验后就可以按照仿真的电路原理图搭建硬件电路将源代码烧写到单片机里就完成了本次毕业设计的任务在本次软件仿真和硬件搭建过程中大大小小遇到了若干问题具体故障和解决方法如下1数码管不显示本次设计的电路数码管采用共阴极接法在仿真时错用共阳极数码管导致数码管不显示2P0口显示高阻态正常情况下P0口输出应为高红色低蓝色互换但在实际情况下P0口出现了高阻态灰色经翻阅资料查得P0口做IO口是应接上拉电阻在加上上拉电阻后P0口输出正常3传感器输出电压过小在焊接硬件过程中测量传感器输出端com达不到4V以上经分析在传感器输出端叫2K的上拉电阻传感器输出端输出电压在正常范围内变化4单片机不计数在磁铁来回靠近霍尔传感器时单片机始终显示4个0经检查传感器工作正常指示灯电路工作也正常在换了一块单片机后电路正常工作判定原单片机已被烧毁本系统操作简单易于实现硬件部分采用的器件应用较广泛且价格低廉如AT89C52单片机D触发器74LS74存储器24C02驱动器74LS244等这就意味着所有的器件功能比较强大稳定尤其是本次设计的核心元件AT89C52单片机软件技术成熟并具有种类齐全的支持芯片这类微处理器既可用作控制器又适合于做数据处理而且成本也甚是低廉软件采用模块化设计可读性强方便二次开发本次设计电路简单低成本而且能够满足人们对高性能多功能自行车的要求可在很多里程速度测量场合使用具有广泛的应用前景结束语该课题的主要任务是开发一个以MCS-51单片机为核心的自行车里程速度计本设计主要分为硬件部分和软件部分硬件部分着重考虑硬件电路的简单性故尽可能简化硬件电路节省线路板的空间达到硬件电路最优化设计软件采用汇编语言编写采用模块化设计思想程序可读性强通过仿真实验验证了系统的可行能满足设计要求达到设计的指标实现对自行车里程速度的计算功能并用LED显示里程与速度分别根据以下公式求得里程脉冲总数×车轮周长速度车轮周长÷车轮转一圈所用的时间根据此公式将最终显示出里程和速度当车轮转动小磁片滑过霍尔元件时霍尔元件输出一脉冲可根据车轮周长计算里程选择不同的车轮周长里程数的变化有所不同当按下开关显示速度时LED会根据转速的不同显示不同的数字当速度超过一定速度时将启动报警系统通过实验证明本次设计符合设计的要求能实现对里程速度的显示功能性较强具有一定的实践意义将会在许多场合应用但也有一些不足存在当显示速度时若自行车转动太快显示器会显示过快应该将速度定时显示使人们能够清楚地看出速度本次毕设使我们将大学四年所学的知识进行了汇总在收集资料确定方案的过程中我学到许多知识也弄懂了许多以前不是很清楚的问题在做毕业设计的过程中是我们所学知识的一次升华把理论知识运用到了实际当中也使我们从中得到了锻炼参考文献楼然苗李光飞51系列单片机设计实例北京北京航空航天大学出版社2006松井邦彦梁瑞林传感器应用技术141例北京科学出版社2006李朝青单片机原理及接口技术北京北京航空航天大学出版社1994张洪润张亚凡传感器技术与应用教程北京清华大学出版社2005张毅刚刘杰MCS-51单片机原理及应用哈尔滨哈尔滨工业大学出版社2004黄河郭纪林单片机原理及应用大连大连理工大学出版社2006刘灿军实用传感器北京国防工业出版社2004何希才传感器及其应用北京国防工业出版社2001陈雪丽单片机原理及接口技术西安化学工业出版社2005李勋刘源李静东单片机实用教程北京北京航空航天大学出版社2006刁文兴自行车电子里程表的初步设计南京工业职业技术学院学报2004625-28许德章等摩托车电子转速表智能校验仪自动化仪表2000423-24安宗权电动电子车速里程表分频电路设计自动化与仪器仪表2001539-44WQYangDMSpinketAnimage-reconstuctionalgorithmbasedonLandwebersiterationmethodforelectrical-capacitancetomographyMeasSciTechnol1999101065-1069阎焕忠王长涛马斌单片机控制里程转速表的设计沈阳建筑工程学院学报自然科学版20024145-148在本次毕业设计过程中我获益匪浅同时也遇到了许多困难在看到我的毕业设计题目时我的感性认识让我感觉题目挺简单但在理性分析和实际操作过程中却处处碰壁这都是由于基础知识不牢造成的最后在胡老师的耐心指导下我从简单的编程学起逐渐对题目有了一定程度的认识和理解对具体的细节有了清晰的认识终于明白那句古话磨刀不误砍柴工的深刻含义以后在做毕业设计的过程中才感到得心应手我从中学到了许多新知识在这里我要感谢我的指导老师是她的耐心教导和不厌其烦地讲解使我顺利地完成了毕业设计也要感谢我的同学们在我遇到困难时主动帮我解决使我很快地攻克了一个又一个难关同时也要感谢实验室的老师是他们不厌其烦的帮助我解决问题使我能顺利完成毕业设计毕业设计已经结束但是它却给我留下了美好的回忆在做毕业设计的过程中加深了师生的感情和同学之间的友谊觉得每一天都是那么的充实和愉快附录Ⅱ元件清单序号 名称 型号 数量 1 单片机 AT89C52 1个 2 驱动器 74LS244 1个 3 D触发器 74LS74 1个 4 蜂鸣器 SPEAK 1个 5 封装型LED SR42056 1个 6 开关 5个 7 发光二极管 LED 3个 8 晶振 12MHz 1个 9 电容 3PF 2个 10F 1个 10 霍尔元件 A44E 1个 11 电阻 82k 1个 10k 7个 200 1个 100 3个 2k 1个 12 导线 若干 13 电路板 1块 60H61H62H作里程计数单元6CH6DH作T1计数扩充单元68H69H6AH6BH存放自行车每圈时间数70H71H72H73H作显示BCD码存放数用11H--15H存放被除数16H-19H存放除数定义VSDAEQUP15VSCLEQUP14SLAEQU50HNUMBYTEQU51HMTDEQU30HMRDEQU40HSLAWEQU0A0HSLAREQU0A1HDPHHEQU62HTH1HEQU6CHTH1HHEQU6DH中断初始化ORG0000H 程序执行开始地址LJMPSTART 跳至STARTORG0003H 外中断0中断程序入口LJMPINTEX0 跳至INTEX0中断服务程序RETI 中断返回ORG0013H 外中断1中断入口LJMPINTEX1 跳至INTEX1中断服务程序ORG001BH 定时器T1中断程序入口LJMPINTT1 跳至INTT1中断服务程序ORG0023H 串口中断入口地址RETI 中断返回上电初始化程序CLEARMENMOVTMOD90HT1为16位外部控制定时器SETBPX0外中断0优先级为1SETBIT0外中断0用边沿触发SETBIT1外中断1用边沿触发CLRA清AMOV20HA清内存中特定单元MOV6CHAMOV6DHAMOV70HAMOV71HAMOV72HAMOV73HAMOV60HAMOV61HAMOV62HAMOV63HA清内存中特定单元DECAA为0FFHMOV68HA内存置数据0FFHMOV69HA内存置数据0FFHMOV6AHA内存置数据0FFHMOV6BHA内存置数据0FFHMOVP1A P1口置1CLEAR1JBP12KEY1根据P12P13P16P17设置状态 在21H地址单元赋自行车周长值MOV21H0FH22寸自行车周长值LJMPCLEAR2转CLEAR2KEY1JBP13KEY2MOV21H12H24寸自行车周长值LJMPCLEAR2转CLEAR2KEY2JBP16KEY3MOV21H14H26寸自行车周长值LJMPCLEAR2转CLEAR2KEY3JBP17ERR四个开关都没合上转出错处理MOV21H19H28寸自行车周长值CLEAR2SETBTR1开定时器T1SETBEA开中断允许SETBEX0开外中断0SETBET1开定时中断T1SETBP31关报警器LCALLVIICREAD将EEPROM中原里程数据调入内存RET 子程序返回ERRCPLP31轮周长设置出错LED灯闪烁提醒LCALLDL5S延时LJMPCLEAR1重新初始化等待轮周长设置开关合上STARTSTARTMOVSP75H堆栈在75H开始LCALLCLEARMEN上电初始化START1JBP30DISPLAYSP301显示里程LCALLDISPLAYV显示速度START2SJMPSTART1转START1循环里程计数程序用外中断0实现计数用60H-62H内存单元INTEX0PUSHACC累加器堆栈保护PUSHPSW 状态字堆栈保护INC60H 圈加1CLRA 清ACJNEA60HINTEX0OUT计数没溢出转INTEX0OUTINC61H溢出进位61H加1CJNEA61HINTEX0OUT计数没溢出转INTEX0OUTINC62H 溢出进位62H加1INTEX0OUTLCALLVIICWRITE里程数据存入EEPROMSETBEX1 开外中断1POPPSW 状态字恢复POPACC累加器恢复RETI 中断返回每转1圈时间计数处理程序每圈时间放在68H-6BH单元中INTEX1PUSHACC堆栈保护PUSHPSW关键字保护CLREX1关外中断1JNB00HINTEX11溢出标志为0转INTEX11MOVTL10FFH溢出时计时单元赋0FFH显示速度为零MOVTH10FFHMOV6CH0FFHMOV6DH0FFHINTEX11MOV68HTL1将时间计数值移入暂存单元68H-6BHMOV69HTH1MOV6AH6CHMOV6BH6DHCLRA清AMOVTL1A计时单元置0MOVTH1AMOV6CHAMOV6DHACLR00H清溢出标志POPPSW 堆栈恢复POPACCRETI中断返回T1计数器中断服务程序INTT1PUSHACC累加器堆栈保护PUSHPSW状态字堆栈保护INC6CH 6CH计时单元加1MOVA6CH移入AJNZINTT11不等于0转INTT11INC6DH进位6DH单元加1MOVA6DH移入AJNZINTT11不等于0转INTT11SETB00H计时器溢出置溢出标志INTT11POPPSW恢复堆栈POPACCRETI 中断返回里程显示控制程序DISPLAYSSETBP10点亮LED1显示里程状态CLRP11关闭速度指示灯SETBP37显示小数点最小显示为01公里LCALLSSS将圈数转为公里数LCALLDISPLAY显示公里数据LJMPSTART1跳回START1速度显示控制程序DISPLAYVCLRP10关闭LED1里程灯SETBP11点亮LED2显示时速状态CLRP37关小数点显示LCALLVVV每圈时间换算为公里小时程序MOVA71H将十位数BCD码值移入ASUBBA04H与预定报警值比较JNCWARING时速超过40时报警SETBP31关报警灯V1LCALLDISPLAY显亮一次为了改善闪烁RET 子程序返回WARINGCLRP31报警灯LED3点亮并呜叫AJMPV1 转V1退出归一化EEPROM存入程序12M时钟存入数在50H起单元VIICWRITEACALLWMOV9

温馨提示

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

评论

0/150

提交评论