基于51单片机的速度检测系统毕业设计_第1页
基于51单片机的速度检测系统毕业设计_第2页
基于51单片机的速度检测系统毕业设计_第3页
基于51单片机的速度检测系统毕业设计_第4页
基于51单片机的速度检测系统毕业设计_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

基于51单片机的速度检测系统摘要在工程实践中,经常会遇到各种需要测量转速的场合,测量转速的方法分为模拟式和数字式两种。模拟式采用测速发电机为检测元件,得到的信号是模拟量。数字式通常采用光电编码器,霍尔元件等为检测元件,得到的信号是脉冲信号。随着微型计算机的广泛应用,特别是高性能价格比的单片机的出现,转速测量普遍采用以单片机为核心的数字式测量方法。本文便是运用单片机控制的智能化测量自行车转速。自行车在运行过程中,需要对其进行监控,转速是一个必不可少的一个参数。本系统就是对自行车转速进行测量,并显示转速,了解自行车运行的基本状况。本设计主要用AT89C51作为控制核心,由霍尔传感器、LED数码显像管、及24C02构成。详细介绍了单片机的测量转速系统及串行通讯。充分发挥了单片机的性能。本文重点是测量速度并显示在4位LED数码管上。其优点硬件是电路简单,软件功能完善,测量速度快、精度高、控制系统可靠,性价比较高等特点。关键字MSC51(单片机);计算机;传感器自动化测量SPEEDTESTBRIEFINTRODUCTIONABSTRACTINTHEBIKEPRACTICE,WEWILLMEETEACHKINDTONEEDFREQUENTLYTOSURVEYTHEROTATIONALSPEEDTHESITUATION,THESURVEYROTATIONALSPEEDMETHODDIVIDESINTOTHESIMULATIONTYPEANDTHEDIGITALTWOKINDSTHESIMULATIONTYPEUSESMEASUREDTHATTHEFASTGENERATORISTHEDETECTINGELEMENT,OBTAINSTHESIGNALSIMULATESTHETHEDEGRADUATEDFROMTHEDESIGNOFTHEISSUEISCONTROLOFTHEINTELLIGENTUSEOFSPEEDMEASURINGINSTRUMENTTHEATICLEISTHEMOTORSPEEDMEASUREMENT,ANDBASICSITUATIONTHISTOPICDESCRIBESTHEDESIGNSTEPSANDMETHODOFHUMIDITYMEASUREMENTSYSTEMWHICHBASEDONCHIPDESIGNASYSTEMWHICHCANMEASURETEMPERATUREANDHUMIDITY,SHOWTHEMEASUREMENTRESULTSANDWARMINGTHISSYSTEMUSESAT89C51ASTHEMAINCHIP,USEANEWINTEGRATEDDIGITALTEMPERATUREANDHUMIDITYSENSORDHT11GATHERTHETEMPERATUREANDHUMIDITYDATAITUSESCLANGUAGETODESIGNSYSTEMPROGRAMMINGONDEVELOPMENTPLATFORMTHEMAINDESIGNISDIVIDEDKEYWORDSSINGLECHIPINTELLIGENCECOMPUTERTRANSIMITERTEST目录第1章引言1第2章系统介绍221系统结构222系统要求3第3章硬件电路设计431单片机模块432霍尔传感器模块933显示模块103424C02存储器简介11第4章软件设计1441编译语言的选择1442程序模块1443集成开发环境KEIL介绍17第5章调试2251系统硬件调试2252系统软件调试2253系统整体调试23结论24致谢24参考文献25附件1原理图26附件2PCB板27附件3实物28附件4程序28第1章引言自行车被发明及使用到现在已有两百多年的历史,在这两百年间人类在不断的尝试与研发过程中,自行车发展的目的也从最早的代步工具转换成休闲娱乐的用途,随着生活水平的提高,人们希望自行车的功能更强大,比如说对行车信息的掌握,而里程计/速度计正满足了这个需求。现在先进的里程/速度计能够显示实时的速度和里程,是人们实时掌握相关信息,更好的安全行车。我国是自行车大国,据统计,平均每个家庭拥有26两自行车,自行车在人们的日常生活中扮演者越来越重要的角色,上班,旅行,等等。很多行为都能看到它的身影。它已成为了我们生活中不可或缺的一员了。常常听说汽车摩托超速行驶造成交通事故,但很少说自行车超速。其实是我们太小看这一问题了,在网上有一份调查报告说,全国和自行车有关的交通事故,相当大比例是由自行车速度过快引起的,自信车的超速造成交通事故而把其他机动车当成替罪的羔羊,是一件很冤枉的,因此说行车过程中对速度的把握是一件很重要的事情。智能化转速测量可以对自行车的转速进行测量,车在运行的过程中,适时对转速的测量有效地可以反映车的状况。目前国内外测量电机转速的方法很多,按照不同的理论方法,先后产生过模拟测速法如离心式转速表、用电机转矩或者电机电枢电动势计算所得、同步测速法如机械式或闪光式频闪测速仪以及计数测速法。计数测速法又可分为机械式定时计数法和电子式定时计数法。传统的电机转速检测多采用测速发电机或光电数字脉冲编码器,也有采用电磁式利用电磁感应原理或可变磁阻的霍尔元件等、电容式对高频振荡进行幅值调制或频率调制等,还有一些特殊的测速器是利用置于旋转体内的放射性材料来发生脉冲信号其中应用最广的是光电式,光电式测系统具有低惯性、低噪声、高分辨率和高精度的优点加之激光光源、光栅、光学码盘、CCD器件、光导纤维等的相继出现和成功应用,使得光电传感器在检测和控制领域得到了广泛的应用本系统主要由传感器,单片机AT89C51构成。可以对大范围转速进行测量,测量的转速精度高。第2章系统介绍21系统结构本文首先介绍了此系统的结构要求、技术指标以及主要内容等;再论述了总体设计过程,确定了技术指标及器件的选择;接着重描述了系统硬件电路设计、硬件设计框图及所使用的各种芯片功能与特性;接着重点剖析了软件设计的过程,最后通过调试达到目标。转速测量的方案选择,一般要考虑传感器的结构、安装以及测速范围与环境条件等方面的适用性本论文中给出的速度测量方案,经过我查资料、构思和自己的分析,从实现难度、熟悉程度、器件用量等方面综合考虑,总体电路为以下方案。下面就看一下我对设计方案的简要说明。系统主要实现的功能是AT89C51单片机接收霍尔传感器传来的脉冲信号,由于霍尔器件直接输出高低电平信号已完成对速度信号的处理,所以可以直接送到单片机的相关接口,单片机根据外部中断,以及内部定时器进行记数计算出自行车速度和里程送到LED显示,该处LED显示管采用4位共阳型,同时数据传给24C02,实现数据掉电后保存。同时在运行过程中交替显示速度与里程信息。达到对行车信息的掌握。系统组成框图如下21图21系统框图霍尔传感器单片机AT89C51LED显示复位电路时钟电路存储22系统要求将霍尔传感器产生的脉冲信号输出入到单片机的外部中断端口,单片机工作在内部定时器工作方式0,对周期信号进行内部记数,调用计算公式算出转速,调用显示程序显示在LED上,同时通过串口向存储单元发送转速数据。主要内容(1)单片机部分主要完成自行车速度的测量。(2)LED部分主要是把速度显示出来。(3)24C02实现系统在掉电时的信息保存。根据系统要实现的功能以及要求,要实现单片机的转速测量主要是各个模块的设计,定时器记数功能、以及LED驱动。单片机可通过编程控制外围部件,能实现较高的自动化程度。以它为系统核心的控制模块可实现主从控制,完成预定的任务。硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。89C51单片机通过INT0输入传感器的脉冲信号,P0口P2口接LED动态显示和信息存储。软件需要解决的是定时器0的记数和外部中断0的设定、由于测量的转速范围大,所以低速和高速都要考虑在内,关键在于一个四字节除三字节程序的实现。显示部分、需要有一个二进制到十进制的转化程序,以及转换成非压缩BCD的程序后、才能进行调用查表程序送到显示。PC机串口和单片机串行口的工作方式,包括串行口的通讯速率、奇偶校验位、停止位等均由通信部分的软件部分实现。转速部分软件设计思路AT89C51单片机的P32口接收传感器的信号。主要编写一个外部中断服务程序INT_0,读取记数值的三个字节,并再次清0记数初值以便下次的记数和计算。调用两字节二进制三字节十进制(BCD)转换子程序BCD,再调用十进制转换成非压缩BCD程序CBCD、最后调用查表程序送显示,系统要求单片机晶振12MHZ。软件的具体设计将在后面介绍。第3章硬件电路设计硬件的功能由总体设计所规定,硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的电路原理图,必要时做一些部件实验,以确定电路图的正确性,以及工艺结构的设计加工、印制板的制作、样机的组装等。设计单片机模块,考虑到单片机本身的外围电路较多,所以在单片机模块方面需要极为小心。在整个电路设计时要考虑电平转换电路31单片机模块根据系统功能要求以及单片机硬件电路设计思路对单片机模块进行设计,要使单片机准确的测量电机转速,并且使测出的数据能显示出来,所以整个单片机部分分为传感器电路、时钟电路、复位电路、执行元件以及显示电路五个部分。单片机我们采用AT89C51,其引脚图如图31,相较于INTEL公司的8051它本身带有一定的优点。AT89C51是一种带4K字节闪烁可编程可擦除只读存贮器,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图31AT89C51引脚图主要特性与MCS51兼容4K字节可编程闪烁存储器寿命1000写/擦循环数据保留时间10年全静态工作0HZ24HZ三级程序存储器锁定1288位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路管脚说明1VCC供电电压;2GND接地;3P0口P0口为一个8位漏极开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。4P1口P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。5P2口P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。6P3口P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表31所示7RST复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。8ALE/PROG当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。表31P3口引脚引脚第二功能信号名称P30P31P32P33P34P35P36P37RXDTXDINT0INT1T0T1WRRD串行数据接收串行数据发送外部中断0请求外部中断1请求定时器/计数器0计数输入定时器/计数器1计数输入外部RAM写选通外部RAM读选通9/PSEN外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。10/EA/VPP当/EA保持低电平时,则在此期间外部程序存储器(0000HFFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。11XTAL1反向振荡放大器的输入及内部时钟工作电路的输入。12XTAL2来自反向振荡器的输出。振荡器特性XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石英振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。芯片擦除整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10MS来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。时钟电路是计算机的心脏,如图32,它控制着计算机的工作节奏。MCS51单片机允许的时钟频率是因型号而异的典型值为12MHZ图32时钟电路MCS51内部都有一个反相放大器,XTAL1、XTAL2分别为反相放大器输入和输出端,外接定时反馈元件以后就组成振荡器,产生时钟送至单片机内部的各个部件。AT89C51是属于CMOS8位微处理器,它的时钟电路在结构上有别于NMOS型的单片机。单片机内部(如AT89C51)有一个可控的负反馈反相放大器,外接晶振(或陶瓷谐振器)和电容组成振荡器,图42为CMOS型单片机时钟电路框图。振荡器工作受/PD端控制,由软件置“1”PD(即特殊功能寄存器PCON1)使/PD0,振荡器停止工作,整个单片机也就停止工作,以达到节电目的。清“0”PD,使振荡器工作产生时钟,单片机便正常运行。图中SYS为晶振或陶瓷谐振器,振荡器产生的时钟频率主要由SYS参数确定(晶振上标明的频率)。电容C1和C2的作用有两个其一是使振荡器起振,其二是对振荡器的频率F起微调作用(C1、C2大,F变小),其典型值为30PF。计算机在启动运行时都需要复位,如图33,使中央处理器CPU和系统中的其它部件都处于一个确定的初始状态,并从这个状态开始工作。图33复位电路单片机采用的复位方式是自动复位方式。对于MOSAT89C51单片机只要接一个电容至VCC即可。在加电瞬间,电容通过电阻充电,就在RST端出现一定时间的高电平,只要高电平时间足够长,就可以使MCS51有效的复位。RST端在加电时应保持的高电平时间包括VCC的上升时间和振荡器起振的时间,VSS上升时间若为10MS,振荡器起振的时间和频率有关。10MHZ时约为1MS,1MHZ时约为10MS,所以一般为了可靠的复位,RST在上电应保持20MS以上的高电平。RC时间常数越大,上电RST端保持高电平的时间越长。若复位电路失效,加电后CPU从一个随机的状态开始工作,系统就不能正常运转。32霍尔传感器模块CS3020霍尔开关电路最适于响应变化斜率陡峭的磁场并在磁通密度较弱的场合使用,适用于单极或多对磁环工作,它由反向电压保护器、电压调整器、霍尔电压发生器、信号放大器、史密特触发器和集电极开路的输出级组成。工作温度范围为40150(存储温度为150),可适用于各种机及机电一体化领域。霍尔传感器是对磁敏感的传感元件,常用于开关信号采集的有CS3020(如图34)、CS3040等,这种传感器是一个3端器件,外形与三极管相似,只要接上电源、地,即可工作,输出通常是集电极开路(OC)门输出,工作电压范围宽,使用非常方便。将有字面对准自己,三根引脚从左向右分别是VCC,地,输出。图34CS3020外形图图35CS3020传感器连接方式使用霍尔传感器获得脉冲信号,只要在转轴的圆周上粘上一粒磁钢,让霍尔开关靠近磁钢,就有信号输出,转轴旋转时,就会不断地产生脉冲信号输出。如果在圆周上粘上多粒磁钢,可以实现旋转一周,获得多个脉冲输出。原理电路如图35,在粘磁钢时要注意,霍尔传感器对磁场方向敏感,粘之前可以先手动接近一下传感器,如果没有信号输出,可以换一个方向再试。33显示模块显示电路采用LED数码管动态显示,LED是一种外加电压从而渡过电流并发出可见光的器件。LED是属于电流控制器件,使用时必须加限流电阻。LED有单个LED和八段LED之分,也有共阴和共阳两种。常用的七段显示器的结构如图所示。发光二极管的阳极连在一起的称为共阳极显示器,阴极连在一起的称为共阴极显示器。1位显示器由八个发光二极管组成,其中七个发光二极管AG控制七个笔画(段)的亮或暗,另一个控制一个小数点的亮和暗,这种笔画式的七段显示器能显示的字符较少。此外,要画出电路图,首先还要搞清楚他的引脚图的分布,在了解了正确的引脚图后才能进行正确的字型段码编码。才能显示出正确的数字来,如图36所示,为七段数码管的管脚图。图36七段发光显示器管为了节省I/O口线,我们采用的动态显示方式。所谓动态显示,就一位一位地轮流点亮各位显示器(扫描),对于每一位显示器来说,每隔一段时间点亮一次。显示器的亮度既与导通电流有关,也与点亮时间和。5位共阴极显示器和AT89C51的接口逻辑如图所示。AT89C51的P0口作为段数据口,接上拉电阻到显示器的各个段;P2口作为扫描口,连接电路如图37。图37显示管电路在AT89C51RAM存贮器中设置4个显示缓冲器单元30H35H,分别存放4位显示器的显示数据,AT89C51的P2口扫描输出总是只在一位为低电平,即4位显示器中仅有一位公共阴极为低电平,其它位为高电平,AT89C51的P0口相应位(阴极为低)的显示数据的段数据,使该位显示出一个字符,其它们为暗,依次地改变P2口输出为高的位,P0口输出对应的段数据,4位显示器就显示出由缓冲器中显示数据所确定的字符。以上介绍的是一位的显示管,在本次设计中,为方便连线,采用4位共阳极型。3424C02存储器简介24C02是一个2K位串行CMOSE2PROM,内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个16字节页写缓冲器。该器件通过IC总线接口进行操作,有一个专门的写保护功能。管脚封装如图38所示。DIP双列直插式封装,是最简单的一种封装技术。图3824C02外形24C02支持IC,总线数据传送协议IC,总线协议规定任何将数据传送到总线的器件作为发送器,任何从总线接收数据的器件为接收器。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。主器件和从器件都可以作为发送器或接收器,其9个动作控制着读愈写的各项操作,但由主器件控制传送数据(发送或接收)的模式,通过器件地址输入端A0、A1和A2可以实现将最多8个24C02器件连接到总线上。管脚描述如表表3224C02管脚功能SCL串行时钟AT24C02串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。SDA串行数据/地址AT24C02双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线或(WIREOR)。A0、A1、A2器件地址输入端这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0。当使用AT24C02时最大可级联8个器件。如果只有一个24C02被总线寻址,这三个地址输入脚(A0、A1、A2)可悬空或连接到VSS,如果只有一个24C02被总线寻址这三个地址输入脚(A0、A1、A2)必须连接到VSS。WP写保护如果WP管脚连接到VCC,所有的内容都被写保护只能读。当WP管脚连接到VSS或悬空允许器件进行正常的读/写操作。以前通过简单的器件之间替换比较,发现不同牌号的24C02其抗干扰性能是不一样的,于是就认定24C02器件存在“质量“好坏的问题。后来在一次偶然的机会里,发现有些24C02的WP引脚并不起到保护作用,也就是说将WP引脚与CPU输出引脚断开并保持高电平的情况下,CPU仍然能够对24C02中的数据进行修改写入在惊讶之余,笔者收集了许多不同牌号的24C02进行试验,除了基本的读写功能外,还对地址功能以及WP引脚保护功能进行了全面的检测,发现一种ATMEL(激光印字)以及XICOR牌号的24C02具有全面的符合I2C总线协议的功能,而有些牌号24C02要么没有WP引脚保护功能,要么没有器件地址功能(即2片24C02不能共用一个I2C总线),有些甚至两种功能均无。所以说一些同样功能型号的电子器件在兼容性上往往会带来意想不到的问题,值得引起注意。在此数据以十进制BCD码方式存入24C02,这样可以提高有效数据的冗余度,即24C02中其有效数据为09,大于9则为无效数据。这样,在数据写入24C02之前就可以插入校验子程序,对预备写入的数据进行检查,若该RAM数据已经受到干扰,其值大多数应落在大于9的范围内(可能性百分比系数为246/256),故此当数据大于9时就禁止执行写入24C02的子程序,以免错误数据写入24C02,而对正常需要修改的参数无影响。24C02中数据保持冗余度后,还可以对读出数据进行检查,若为大于9的非正常数据,说明24C02中数据已经受到干扰,此干扰值是绝对不能用的24C02连接方式如图39所示。图3924C02电路第4章软件设计41编译语言的选择对于单片机的开发应用中,逐渐引入了高级语言,C语言就是其中的一种。汇编语言的可控性较高级语言来说更具优越性。程序编写语言比较常见的有C语言、汇编语言。汇编语言的机器代码生成效率高,控制性好,但就是移植性不高。C语言编写的程序比用汇编编写的程序更符合人们的思考习惯。还有很多处理器都支持C编译器,这样意味着处理器也能很快上手。且具有良好的模块化、容易阅读、维护等优点,且编写的模块程序易于移植。基于C语言和汇编语言的优缺点,本系统采用C语言编写方法。软件编写的主体思路是将系统按功能模块化划分,然后根据模块要实现的功能写各个子程序。整个软件程序的编写采用查询式方式编写的。42程序模块程序实现的功能与硬时间调整与显示,数据存储。功能子函数的调用。其中在子程序速度信号处理中,设N是内部定时器的计数值,为三字节,分别由TH0,TL0,VTT构成;由于采用12MHZ的晶振,所以TC是1UM,带入上面公式,即可得到转速的精确计算公式N6011059200/12N55296000/N。在主程序模块中,需要完成对各接口芯片的初始化、自行车里程和速度的初始化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器、速度寄存器,并对它们进行初始化。然后主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计速等不同的操作。P10用于显示里程状态和速度状态。速度,高电平为显示里程。中断0用于对轮子圈数的计数输入,轮子每转一圈,霍尔传感器输出一个低电平脉冲。将根据里程寄存器中的内容计算和判断出行驶里程数。中断1用于控制定时器T1的启/停,当输入为0时关闭定时器。此控制信号是将轮子圈数的计数经二分频后形成。这样,每次定时器T1的开启时间刚好为转一圈的时间,根据轮子的周长就可以计算出自行车的速度。其程序流程如图41所示。开始初始化P121NP131P161P171出错提示将车圈周长调入21H开中断,启动定时器P301调用里程处理子程序调用速度处理子程序NNNYYYYNY41主程序流程图下面我们将介绍除数是如何获得的单片机的转速测量完成,定时器T0作为内部定时器,外部中断来的时候读取TH0,TL0,并同时清零TH0、TL0,使定时器再次循环计内部脉冲。此外,对于低速情况下,我们还要设定一个软件计数器VTT,当外部中断还没来而内部定时器已经溢出,产生定时器0中断时,增加VTT,作为三字节中的高字节,三字节商为两字节(最高转速36000R/MIN足够)的程序。当最后一位数据移出时转换完成。当CS从低变为高时,A如想要进行下一次转换,CS必须做一个从高到低的跳变。开始显示单元首址取显示数据送段码到P0口取段码表首址调用延时送位选到P2口4位显示结束返回Y修改显示单元地址求下一位位选码42显示流程图具体程序见附件43集成开发环境KEIL介绍KEILUVISION2是美国KEILSOFTWARE公司出品的51系列兼容单片机C语言软件开发系统,是众多单片机开发软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑,编译,仿真于一体,同时还支持PLM(产品全生命周期管理)、汇编和C语言的程序设计,它的界面和常用的微软VC的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。安装好后,让我们一起来建立一个小程序项目吧。即使你手中还没有一块实验板,甚至没有一块单片机,不过没有关系我们可以通过KEIL软件仿真看到程序运行的结果。首先当然是运行KEIL51软件。运行几秒后,出现如图的屏幕。图43启动时点击PROJECT菜单,选择弹出的下拉式菜单中的NEWPROJECT,如图532。接着弹出一个标准WINDOWS文件对话窗口,如图533,用法技巧也不是这里要说的,以后的章节中出现类似情况将不再说明。在“文件名”中输入您的第一个C程序项目名称,这里我们用“TEST”,这是笔者惯用的名称,大家不必照搬就是了,只要符合WINDOWS文件规则的文件名都行。“保存”后的文件扩展名为UV2,这是KEILUVISION2项目文件扩展名,以后我们可以直接点击此文件以打开先前做的项目。图44文件窗口选择所要的单片机,这里我们选择常用的ATEML公司的AT89C51。此时屏幕如534所示。AT89C51有什么功能、特点呢请看图中右边有简单的介绍,是英文的。图45选取芯片首先我们要在项目中创建新的程序文件或加入已经存在的程序文件。如果您没有现成的程序,那么就要新建一个程序文件。在KEIL中有一些程序的DEMO,在这里我们还是以一个C程序为例介绍如何新建一个C程序和如何加到您的第一个项目中吧。点中1的新建文件的快捷按钮,在2中出现一个新的文字编辑窗口,这个操作也可以通过菜单FILENEW或快捷键CTRLN来实现。点击图5中的3保存新建的程序,也可以用菜单FILESAVE或快捷键CTRLS进行保存。因是新文件所以保存时会弹出类似533的文件操作窗口,我们把第一个程序命名为TEST1C,保存在项目所在的目录中,这时您会发现程序单词有了不同的颜色,说明KEIL的C语法检查生效了。如图535鼠标在屏幕左边的SOURCEGROUP1文件夹图标上右击弹出菜单,在这里可以作在项目中增加减少文件等操作。我们选“ADDFILETOGROUPSOURCEGROUP1”弹出文件窗口,选择刚刚保存的文件,按ADD按钮,关闭文件窗,程序文件已加到项目中了。这时在SOURCEGROUP1文件夹图标左边出现了一个小号说明,文件组中有了文件,点击它可以展开查看。图46把文件加入到项目文件组中C程序文件已被我们加到了项目中了,下面就剩下编译运行了。这个项目我们只是用做学习新建程序项目和编译运行仿真的基本方法,所以使用软件默认的编译设置,它不会生成用于芯片烧写的HEX文件。要生成用于芯片烧写的HEX文件,应进行如下设置在CREATHEXFILE前打选择。图47烧写中1、2、3都是编译按钮,不同的是1是用于编译单个文件。2是编译当前项目,如果先前编译过一次之后文件没有做动编辑改动,这时再点击是不会再次重新编译的。3是重新编译,每点击一次均会再次编译链接一次,这就是开启关闭调试模式的按钮,它也存在于菜单DEBUGSTARTSTOPDEBUGSESSION进入调试模式,软件窗口样式大致如图538所示。图中1为运行,当程序处于停止状态时才有效,2为停止,程序处于运行状态时才有效。3是复位,模拟芯片的复位,程序回到最开头处执行。下载到单片机的内部运行1)用KEIL(或用TOPICE52)生成的HEX文件步骤点击PROJECT菜单,选择弹出的下拉式菜单中的NEWPROJECT;选择所要的单片机,如选择常用的ATEML公司的AT89C51;在项目中创建新的程序文件或加入已经存在的程序文件;如果没有已经存在的程序文件,新建、保存;编译;调试、生成HEX文件。2)下载本实验箱提供ISP方式的下载,将KEIL生成的HEX文件下载到单片机的内部FLASH。连接ISP下载器和单片机的ISP下载口。注意单片机的P15P16P17不能被短接。3)ISP下载方法使用EASY51PROEXE软件,运行界面如图所示。图48软件运行界面4)ISP下载步骤选择器件装载HEX文件擦除器件写器件5)运行将KEIL生成的HEX文件下载到单片机的内部FLASH后,按REST键和关机后再开机即可运行单片机的内部的程序。第5章调试在前面几章中,我们详细讨论了硬件和软件设计,但是要系统真正的运行起来达到预期的指标和功能,就必须对系统进行调试。系统的调试包括系统的硬件和软件设计。51系统硬件调试焊接前应对整个电路板进行检查。首先,用万用表对印制的电路板线路进行检查,该过程是在焊接元器件之前的必要工作,主要是检查印制的电路板线路是否有断路的情况,如果检查没有问题,则可以对元器件进行焊接。焊接前对电阻、电容的量值要进行测量、筛选,选择与电路中参数值一致的元器件,在选择芯片时,要注意芯片与设计要求的型号、规格和安装是否一致。在焊接时,应将印制的电路板认真对照原理图,查看元器件的引脚焊接是否正确。PCB版图见附件2。电路板焊接完成后,需要对每个元器件的引脚逐个进行检查,一方面是检查有没有引脚虚焊或与其他信号线短路,另一方面是对器件引脚功能的再检查,查看设计是否正确。检查电路焊接没有问题后,则可以进行上电测试。上电测试是调试的关键部分,按照系统方案设计的模块化思想,应该分模块测试系统。首先系统上电以后,测试各个电源端口和器件的电源部分是否工作正常,同时应注意系统中有无器件过热情况,如果有的话,可能是相应的器件损坏或电路中有短路,需要认真检查之后再加电。如果没有问题,则可以进行功能的检测。由于系统硬件较复杂,硬件电路装配、焊接完成后,可能不能正常工作。为了方便调试,采用分块调试的方法。在通电前,一定要检查电源电压的幅值和极性,否则很容易造成芯片的损坏。加电后检查各插件上引脚的电位,一般先检查VCC与GND之间电位,若在5V55V之间属正常范围。52系统软件调试硬件调试完成以后,软件调试就非常重要。系统软件调试时也要分模块来进行调试,这样才能使进程有条不紊的进行下去,而不至于出现混乱。首先,检查LED液晶显示屏。LED显示屏上电后,检查是否可以正常显示,第一行显示英文字符,第二行显示时间,此时,按下按键即可对时间进行调整。其次,调试存储模块。检查存储模块是否能够读写信息,当存入一个数据的时候,读出来,看是否与之前存入的数据一致,而可认为存储模块正常工作。再次,调试单片机与数模转换模块,在LED模块调试成功之后,就可以调试数模转换模块,在模拟的测试一个电压,若能够正常显示记录的数据,则调试成功。最后调试传感模块,根据传感器的要求,输入一个9V高电压和一个5V电压,则传感能经过转换,在显示正常的电压,则调试成功。53系统整体调试本设计通过KEILC51软件对程序进行编译调试。在软件和硬件的分别调试成功后,将程序的烧入单片机中后,进行整块系统的调试,提供5V的电压,使单片机和传感器,和各个元件都能正常工作后,即把传感器转动,察看显示的值与理论相符,调试成功。结论目前,随着人们的生活节奏的改变,自行车的数量也越来越多,从而引发的交通是事故也急剧增加,其中大部分是由于超速。所以设计具有民用价值的速度检测仪的研制受到了人们的高度重视。设计能够满足生活需要,携带方便的便携式速度检测仪迫在眉睫。针对目前的现状,该系统设计遵守体积小,质量轻,性价比高的原则。软件是用C语言相编写的,具有很好的编写语言的优点,具有很好的可控性、模块化和移植性。编写的思路就是模块化的思想,将系统的各个功能进行划分,然后对各个模块进行设计。本系统的主要模块为传感检测、单片机处理、液晶显示和存储器存储。首先要了解系统所要实现的功能;其次根据功能去选择相

温馨提示

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

评论

0/150

提交评论