




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.z.电子式里程表摘要里程表广泛应用于各类机车,传统的机械式里程表虽然稳定可靠,但功能单一、易受磨损。随着电子技术的迅猛发展,电子式里程表得以广泛应用,现在很多轿车仪表已经使用电子车速里程表,本设计介绍一种基于单片机的智能电子里程表。该电子式里程表是一种数字式仪表,主要由车速表和里程表两部分组成,其传感器采用无接触测量的光电传感器。它不仅可显示车辆行驶的总里程,也可显示一段时间的阶段里程,还可显示车速,以及实现超速报警等功能,并具有较强的再开发能力。它的实现方式是,通过安装在汽车转轴上的测量盘,用光电式转速传感器检测转速的脉冲信息,在脉冲状态下,将转速的变化转换成光通量的变化,再通过光电转换元件将光通量的变化转换成电量的变化,接着通过频率测量电路将脉冲信号输入到单片机中,然后依据电量与转速的函数关系实现转速测量,再通过计算,从而得出里程、车速的信息,并由LED显示器显示出来。并且该电子式里程表累积的里程数字存储在非易失性的EEPROM存储器内,在无电状态下数据也能保存。关键词:AT89S51单片机;里程表;光电传感器;LED显示器;存储器AbstractVehicleodometerisappliedineachkindofmotorcyclee*tensively,althoughthetraditionalmachinetypeodometerstableandcredible,butthefunctionofitissingleandbeeasilywornaway.Alongwiththetechnicalfastfiercelydevelopinelectronics,theelectronicvehiclecanbeappliede*tensively.Recently,alotofcarappearanceshavealreadyusedtheelectronicvehicleodometer,thisgraduationthesisintroduceakindofintelligenceelectronicvehicleodometer,whichisbasedonaSingle-ChipMicroputersystem.Theelectronics'typevehicleodometerisakindofnumericaltypeappearance,whichmainlyconstitutewithtwoparts,thatisvehiclespeedmeterandodometer,itadoptsthelightsensorthatthesensorhasnocontactmeasure.Itnotonlycanshowthetotalmileagethatvehicledrive,butalsocanshowthestagemileageofaperiodoftime.Moreover,It’scanshowthecarspeed,andtherealizatione*ceedthespeedlimittoreportandsoon.Italsohastheabilityofstrongerlydevelopagain.Thewayofthisvehicleodometercarryoutisasfollows:throughtheinstalledmeasureplateintheautomobileshaft,usethelightsensortomeasuretherotationalspeedinformation.Underthepulseappearance,itmakethevarietyrotationalspeedchangetothevarietyofthelightflu*,afterthatthevarietyofthelightflu*converttoelectricityquantity.Thenthroughthelightelectricityconvertponent,wecanmakethepulsesignalinputtotheSingle-ChipMicroputerbythefrequencymeasurecircuit.Thenintermsofthefunctionrelationshipofelectricityquantityandrotationalspeed,wecanrealizethemeasureofrotationalspeed,aftercalculatebytheSingle-ChipMicropute,wecanobtaintheinformationofmileageandvehiclespeed.Moreover,ThismileageandvehiclespeedinformationcanbedisplayedbytheLEDmonitor.Andthemileagenumeraloftheelectronics'vehicleodometeraccumulationissavinginEEPROM,whichisnoteasilylost,thedataalsocankeepunderthenoelectricappearance.Keyword:AT89S51Single-ChipMicroputer;Odometer;Lightsensor;LED;Memory目录引言………………………11总体设计……………………22系统设计可行性分析…………………22.1总体设计分析……………………22.2硬件模块…………32.3软件模块…………63硬件单元电路设计……………………73.1传感器的设计……………………73.2单片机与光电传感器的接口设计………………113.3单片机与外部存储器的接口设计………………133.4单片机与超速报警电路的接口设计……………133.5单片机与键盘和7段显示器的接口设计………134软件设计……………………144.1脉冲测量部分……………………164.2键盘输入部分……………………174.3数据处理部分……………………184.4存储器部分………………………214.5超速报警部分……………………244.6显示部分…………255系统调试……………………275.1硬件单元电路调试………………275.2软件程序调试……………………295.3整体调试…………326系统使用说明……………………327系统功能的扩展……………………338结论…………………33谢辞…………………35参考文献…………………36附录…………………………37-.z.引言我国汽车工业走过了五十年的历程,与国际发达国家汽车工业相比,电子技术水平相对比较落后,提高国产汽车的电子技术水平,增加汽车电子装备的数量,促进汽车电子化是夺取未来汽车市场的关键,提高我国的汽车电子技术已势在必行。随着中国的复关,国外汽车零部件厂商也大举进入中国参与竞争。电子式仪表及新型传感器是各类车型汽车的首选配套产品,通用性好,市场前景广阔。目前国外汽车车速里程表已广泛采用电子式机芯结构,而国内汽车仪表一直是机械式车速里程表的天下,少数采用动圈式电子仪表,通过大量市场调研,我们清楚地看到进入20世纪以来汽车工业迅速发展,而电子产品则是汽车提高技术含量的晴雨表。国外电子产品占整车成本的30%,然而我国汽车行业起步较晚,技术十分落后,电子产品仅占整车成本的5%。例如国外汽车早已装配电子式仪表,而我国汽车仍在应用传统的机械仪表,可靠性很差。目前汽车仪表控制电子化是一种发展趋势,由先进的传感器与显示装置构成的电子仪表已开始全面取代传统的机电式仪表,成为现代汽车的明显标志。一般汽车的常规仪表有车速里程表、转速表、机油压力表、水温表、燃油表、充电表等。仪表板中最常用的是车速里程表,目前很多轿车仪表已经使用电子车速表,它通过变速器上的速度传感器获取信号,通过脉冲频率的变化使指针偏转或者显示数字。随着汽车电子半导体技术的发展,多功能、高精度、高灵敏度、读数直观的电子数字显示及图像显示的仪表已不断应用于汽车。汽车仪表的功能已不仅仅是单纯的显示,而是通过对汽车各部件参数的监测和计算机处理相配套,从而达到控制汽车各种运行工况的目的。因而电子式里程表的广泛应用将会很大的提高中国的汽车电子技术水平。本作品正是顺应了汽车电子发展的趋势,利用安装在汽车转轴上的测量盘,由光电传感器输出采样脉冲,采取单片机控制,用一个六位LED数码管和一个四位LED数码管作为显示设备,从而得出里程、车速的信息。在里程信息的存储功能上,采用了新型轿车中广泛使用的串行EEPROM芯片24C16。当电源正常供电时给电容器充电,电源掉电时,利用电容器电流将单片机中的数据写入EEPROM中。本作品廉价且功能较强,使用方便,实用价值较高,极容易得到推广。本作品经过实验,完全能达到设计要求,显示的车速、里程和原车机械里程表的显示值误差小于1%,报警值非常准确。由于采用的芯片都是广泛使用的通用芯片,成本较低,制作元器件和印刷电路板成本不过七八十元,如果批量生产,成本更低。而且该电子式里程表体积小,功耗低,功能多,稳定可靠,性价比高,在很多领域都能得到广泛的应用,具有较高的经济价值。总体设计该电子式里程表以AT89S51单片机为核心,由系统输入、单片机部分和系统输出组成。其主要模块有报警装置、键盘输入、光电传感器、显示、单片机以及EEPROM存储器。其系统组成框图如图1.1所示。图1.1系统组成框图单片机控制模块是该作品的重要组成部分。为了提高单片机的使用效率,以及可以实现在线编程,而采用了AT89C51单片机的升级产品AT89S51单片机。为保证数据的安全可靠保存并减少作品的成本,以及使系统的结构简单,在里程信息的存储功能上,没有采用常用的并行EEPROM存储器,而采用了新型轿车中广泛使用的串行EEPROM芯片24C16。当电源正常供电时给电容器充电,电源掉电时,利用电容器电流将单片机中的数据写入EEPROM中。超速报警部分本作品采用了简单的软件设计,由程序产生,铃声是为了达到提示的目的,因此,选用了一个简单的蜂鸣器,通过软件定时产生的嘀嘀声作为提示音,并且接一个红色的发光二极管,使报警效果更加理想。在车速里程显示方面,本作品采用了常用的6位共阳极LED显示器,通过按键的转换以及对单片机的软件编程,可在一个6位共阳极LED显示器中实现系统总里程和单班里程的显示,而车速则通过另一个4位的共阳极LED显示器实时显示。而本系统的车速脉冲采样部分,采用了非接触式的高灵敏度光电传感器,它有利于提高脉冲测量的精度,并提高了系统的可靠性,应用时将测量盘固定在车辆的转轴上,再通过光电传感器来测量。系统设计可行性分析2.1总体设计分析根据电子式里程表的具体设计要求:(1)显示车辆行驶的总里程,用6位LED显示;(2)显示一段时间的阶段里程,用6位LED显示;(3)显示车速,用4位LED显示;(4)实现超速报警;本作品设计的电子式里程表拥有以下单元功能模块:(1)光电传感器的脉冲信号检测与转换;(2)超速报警功能;(3)里程信息存储功能;(4)车速和里程的LED显示功能;根据电子式里程表的一些基本要求,从而结合实际情况对具体的单元功能模块作软件或硬件上的不同分工,具体如下:在车辆转轴上安装的光电传感器的脉冲检测单元必须使用具体硬件电路来实现。键输入和键处理、脉冲记数处理等功能模块使用软件编程方式要比硬件电路简单得多,实现也很容易。超速报警、里程信息存储、车速和里程的LED显示都采用硬件电路和软件编程相结合的方式。其中超速报警采用一个蜂鸣器和一个红色发光二极管的报警方式,通过单片机的软件中断请求,实现蜂鸣器的嘀嘀声及发光二极管的闪烁显示。里程信息的存储采用单片机对存储器的读写方式,实现了数据信息的保存。车速和里程的LED显示通过单片机P0口和P2口,编程恰当地选择各个7段LED显示器的点亮时间和间隔时间,实现LED的动态实现。综上所述,本作品由以上所述的硬件电路和软件编程来完成。下面就硬件以及软件实现的单元电路分别进行具体分析。2.2硬件模块2.2.1光电传感器模块经过比较,本系统采用了透射式光电测速脉冲整形电路。每当安装在汽车转轴上的旋转测量盘上的长方孔与光电传感器上的透光孔重合,则光敏三极管受光而通过电流,使三极管饱和导通,故用于脉冲整形的施密特触发器CD4093输出高电平,当圆盘转至透光孔被遮时,CD4093输出低电平。随着圆盘不停地转动,CD4093便输出脉冲序列。测出输出脉冲个数,结合圆盘每一周的孔数,使可算出转轴旋转的转速,进而可算出车辆的行驶速度。2.2.2单片机控制模块本系统使用了单片机AT89S51,它是AT89C51的升级产品,能实现在线编程。单片机AT89S51是由ATMEL公司生产的51单片机。简单介绍如下:AT89S51单片机是一个低电压,高性能CMOS8位单片机,该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。其片内含有4kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89S51为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89S51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外部中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89S51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。其主要特性如下:·与MCS-51兼容·4K字节可编程FLASH存储器·1000次擦写周期·数据保留时间:10年·全静态工作:0Hz-24Hz
·三级程序存储器锁定·支持在系统编程ISP·128*8位内部RAM
·32个可编程I/O口·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路·具有双工UART串行通道此单片机主要用于本系统的控制,包括响应中断、延时、定时、记数、判断、扫描键盘、超速报警、LED数码管显示等等。2.2.3键盘模块单片机系统所用的键盘有编码键盘和编码键盘两种。编码键盘是只要按下它的*一个键,就能产生这个键的代码,与此同时还产生一个脉冲信号,以通知CPU接收键码。编码键盘使用方便,也不用编写太复杂的程序。但硬件电路复杂,比非编码简易键盘成本要高。非编码键盘也称简易键盘,它的按键是排列成行、列矩阵形式的。按键的作用只是简单地实现接点的接通或断开,因此必须有一套相应的程序与之配合,才能产生相应的键码,它基本上不需要附加什么硬件电路。但需要通过软件来解决按的识别、防抖动以及如何产生键码的问题。本系统的键盘输入部分,采用了2个功能键,用这2个键既可以选择6位LED显示器显示是单班里程还是总里程。为了节约成本,本作品选用简易键盘即两个按键开关来实现车速与里程的转换显示。2.2.4显示模块单片机所用的显示有LED和LCD两种,从设计的难度和成本造价来说LCD都要高于LED。液晶显示器LCD的最大优点是电源电压低和功耗低,但液晶为非发光型物质,它是利用外界光源的被动式显示器件,环境越明亮显示越清晰,不能用于暗处。白天靠日光显示,夜间必须使用照明光源。而且它的工作温度*围不宽,低温条件下灵敏度较低,有时甚至不能正常工作。寿命与使用条件有关,强光下使用寿命会减小。此外,它的响应速度较低(在10~200ms*围),这就限制了它在快速系统中的应用。LED数码管是目前最常用的数字显示器,一个LED数码管可用来显示一位0~9十进制数和一个小数点,在小型专用微机系统和单板机等场合,它是主要的显示器件,在通用微机系统中,也常用来作为状态等显示。对于共阳极显示器,要点亮的显示段引脚需接低电平“0”。本作品要显示的是总里程、单班里程以及车速,为数字显示。基于液晶显示器的成本以及在实际应用中的需要,因此,本作品选用了由LED组成的共阳极7段发光显示器,它有简单、经济、易于与单片机接口等优点。存储模块此部分是整个系统的关键部分之一,它的工作情况直接决定了系统数据安全保存的可靠性。EEPROM是电可擦除可编程只读存储器。在平常情况下,EEPROM与EPROM一样是只读的,需要写入时,在指定的引脚加上一个高电压即可写入或擦除,而且其擦除的速度极快!通常EEPROM芯片又分为串行EEPROM和并行EEPROM两种,串行EEPROM在读写时数据的输入/输出是通过2线、3线、4线或SPI总线等接口方式进行的,而并行EEPROM的数据输入/输出则是通过并行总线进行的。在汽车上串行EEPROM用得最多,防盗汽车音响解码,液晶里程表,安全气囊电脑等等单元模块都大量采用这种芯片。并行EEPROM用的相对少些。经过翻阅大量的文献资料,发现使用串行EEPROM芯片作为本系统的外部存储器,是比较常用的一种方法,而且在做电路板时布线简单,单片机编程时也稳定可靠,当失电时数据能得以安全的保存,因而采用了串行EEPROM芯片24C16。本系统所用的24C16是美国ATMEL公司的低功耗CMOS串行EEPROM,它是内含2K×8位存储空间,具有工作电压宽(2.5~5.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)等特点。24C16的1、2、3脚是三条地址线,用于确定芯片的硬件地址。在AT89S51试验开发板上它们都接地,第8脚和第4脚分别为正、负电源。第5脚SDA为串行数据输入/输出,数据通过这条双向I2C总线串行传送,在AT89S51试验开发板上和单片机的P1.4连接。第6脚SCL为串行时钟输入线,在AT89C51试验开发板上和单片机的P1.3连接。SDA和SCL都需要和正电源间各接一个10K的电阻上拉。第7脚需要接地。24C02中带有片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。2.3软件模块 通过上面分析,设计中决定选用S51系列单片机作为控制器,则它的软件编写就要按照单片机语言:C语言或汇编语言来编写,这里我选用执行效率高的汇编语言编写。开发工具为keilc51,它的功能强大,支持c语言和汇编语言的编写与调试,其软件模拟I/O口将会给软件调试带来极大的方便。脉冲测量部分本单元需要两个I/O口,我选用了单片机的P1.5和P1.6。由于脉冲测量过程中,开始检测时脉冲宽度已小于机器周期T,因而会导致脉冲的丢失。为了避免脉冲的丢失,可用门电路实现记数开始与脉冲上升沿的同步控制。所以在控制时,首先由P1.6发一个清0负脉冲,其输出封锁与门G1和G2。接着由P1.5发一个启动正脉冲,从而将门G2打开。之后,被测脉冲上升沿通过G2送T1计数;同时Q2输出的高电平使INT0=1,定时器0的门控GATE有效,启动T/C0开始定时。直到定时结束时,从P1.6发出一个负脉冲,将U2清零,从而封锁G2,使T/C1停止计数,至此一次频率采样过程结束。计数器1采用计数值满后自然清零再计数的方法。将T/C0设为高优先级,允许计数过程中定时中断。键盘输入部分本单元采用了单片机的P1.1和P1.2口,通过外接两个按键开关,从而控制一个6位LED显示器的总里程和单班里程的显示。由于机械开关在状态转换时有信号的抖动,故在接入开关的同时,必须考虑防抖动的问题。防抖动的方法之一是软件延时去抖动。既在开关状态改变时,执行一个延时程序,待电平稳定后再读入开关状态信息。而采用的键盘分析程序应包括:是否有键按下以及识别哪个键按下。一旦找到*键,是否按下此键,即可将程序转到该键的功能程序段。存储器部分本系统采用的是串行EEPROM芯片24C16,24C16的1-3脚分别为器件编址端A0、A1、A2(用于与系统中的同类器件编码),4脚为电源地,5脚为I2C总线的数据线SDA,6脚为I2C总线的时钟SCL,7脚为测试输入端,在系统中接地,8脚为电源。当时钟线SCL为高电平时,数据线SDA由高电平跳变为低电平定义为“开始”信号;当SCL线为高电平时,SDA线发生低电平到高电平的跳变为“结束”信号。程序中多处调用了DELAY子程序(仅两条NOP指令),这是为了满足I2C总线上数据传送速率的要求,只有当SDA数据线上的数据稳定下来之后才能进行读写(即SCL线发出正脉冲)。另外,在读最后一个数据字节时,置应答信号为“1”,表示读操作即将完成。超速报警部分本单元采用一个蜂鸣器和一个红色发光二极管与单片机的P1.0口相接的报警实现方式,光电传感器检测汽车转轴的脉冲信号,并经过频率测量电路,输入到单片机的T1口,通过单片机的T1口记数,由单片机进行数据处理,转换成车速值。这实时的车速值与单片机设定的最大车速值相比较,当车速值大于最大车速值时,通过单片机的软件中断请求,以1秒钟为周期,实现蜂鸣器的嘀嘀声及发光二极管的闪烁显示。当车速值回落到最大车速值以下时,则通过单片机控制,关闭超速报警功能。显示部分本单元采用一个6位共阳极LED显示器中实现系统总里程和单班里程的显示,而车速则通过另一个4位的共阳极LED显示器实时显示。其中LED显示器的段选码都由单片机的P0口连接控制,4位LED显示器的位选码由单片机的P2.6和P2.7口通过译码器74LS139控制,译码器74LS139对单片机的P2.6和P2.7口分时选通,这样任何一个时刻,都只有一位LED在点亮,也即动态扫描显示方式。74LS139是一个2-4译码器,它将单片机输出的地址信号译码后动态驱动相应的LED。但74LS139电流驱动能力较小,为此,我使用了未级驱动PNP三极管C9015作为地址驱动。而6位LED显示器的位选码,则由单片机的P2.0至P2.5口控制。经过翻阅大量的技术资料,对具体要**现的功能进行完整的系统分析,我认为我的电子式里程表的系统设计基本符合实际情况,可以完成设计任务所要**现的基本功能。3硬件单元电路设计3.1传感器的设计汽车开动后,监测传感器对汽车转轴的转动进行采样,将脉冲采样信号输入到单片机管脚,单片机的定时计数器T1工作于计数器方式,累计脉冲个数,根据一段时间内的脉冲个数和车轮的大小,就可以由单片机计算出运行的速度和公里数,并驱动显示器进行显示。3.1.1传感器的选择转速是指每分钟内旋转轴转动的圈数。机械式转速仪和电模拟式测速仪已经无法满足自动化程序日益提高的需要,它们只能测量精度不高的转速,而且输出不能直接供计算机使用,因此,非接触式的光电数字转速仪表就越来越广泛地得到应用。光电传感器是采用光电元件作为检测元件的传感器。它首先把被测量的变化转换成光信号的变化,然后借助光电元件进一步将光信号转换成电信号。光电传感器一般由光源、光学通路和光电元件三部分组成。光电检测方法具有精度高、反应快、非接触等优点,而且可测参数多,传感器的结构简单,形式灵活多样,因此在检测和控制领域内得到广泛应用。由于采用光电传感器,可以实现非接触测量。光电式转速测量仪表比较容易作为高频脉冲频率传感器。例如,可在每转中发出几万脉冲,因此分辨率高,可测极低的转速,测量*围几乎可从零转开始。其次这种测量方法一般对转轴的附加载荷都很小,不会影响被测对象的正常旋转,光电式转速传感器工作在脉冲状态下,它是将转轴的转速变换成相应频率的脉冲,然后测出脉冲频率就可以测得转速值。这种测速方法具有传感器结构简单、可靠、测量精度高等优点。光电转速传感器的性能可归纳如下:(1)传感器采用无接触测量,不增加被测物旋转力矩,测量小里矩的旋转物能获得很高的精度。(2)光电传感器是利用光波作为媒介来实现转速测量的,抗电磁干扰能力强,如果采用调制光源或调制型发光器件,传感器还可具有抗外界杂光干扰能力。(3)传感器利用光电效应方便地将转速换成电量信号。故此类传感器测量*围宽、非接触检测距离远,随着激光技术的发展,使光电检测技术获得了新发展,能达到超远距离的测量。(4)光电传感器易受环境雾尘,粉尘、油尘、水雾及杂光的影响。经过比较,由于光电传感器的结构简单、可靠、测量精度高等优点,因而本设计中选用了光电传感器。3.1.2光电传感器的选择光电传感器的类型按照光电传感器中光电元件输出电信号的形式可以将光电传感器分为模拟式和脉冲式两大类。(1)模拟式光电传感器这种传感器中光电元件接受的光通量随被测量连续变化,因此,输出的光电流也是连续变化的,并与被测量呈确定的函数关系。(2)脉冲式光电传感器在这种传感器中,光电元件接受的光信号是断续变化的,因此光电元件处于开关工作状态,它输出的光电流通常是只有两种稳定状态的脉冲形式的信号,多用于光电计数和光电式转速测量等场合。通过两种形式的光电传感器比较,我选用了脉冲式光电传感器,因其多用于光电计数和光电式转速测量等场合。脉冲式光电转速传感器从光路系统看,有透射式和反射式两种。(1)透射式光电传感器这种仪表的测量盘装在被测转轴上,在它旁边装有不动的读数盘。测量盘沿外缘圆周刻有等距径向透明光缝,在读数盘上刻有同样间距的透光缝隙,当测量盘随被测轴一起转动时,每转过一个缝隙,由光源射来的光线就将照射到光敏元件上一次,这个光脉冲将引起光敏元件的输出电脉冲,在孔数一定时,该列电脉冲数就和转速成正比。电脉冲经测量电路整形放大后再送入频率计计数和显示,经核算或标定后,就可以得到一个便于测量计数的信号,此时被测转速为n=f/N式中f——测得的脉冲频率;N——每转脉冲数,它等于圆周上之缝数。若在调制盘上开60个小孔,则可在1秒的记数值上直接读出转速大小。它可以测量1r/min的车速。如果开600个孔,则它的测量精度为0.1r/min。(2)反射式光电传感器在转轴上不便于安装测量转盘时,还可以采用在测量转轴上加反射镜的方法。在可能时,为了提高分辨率,可以在转轴圆周方向等距贴数块反射镜。只有光线入射时,转轴每转一周就有数次光反射作用。再用简单光学系统将反射光投到光敏元件上,就可以输出相应的电脉冲。其它部分与透射式一样,通过测脉冲频率就可以求出转速。反射式转速表使用方便,它不给转轴带来附加载荷,可以在距被测物数十毫米外非接触地测量其转速,但要求转轴不能太细,便于贴反射镜,它适于测量的转速*围为30~4.8×r/min。通过比较,可知透射式光电传感器比反射式光电传感器的测量精度高,因而本设计中我采用了透射式光电传感器,并且采用了60条缝隙的测量盘。如图3.1所示,为透射式光电转速传感器的结构原理图。图3.1透射式光电转速传感器的结构原理测量盘上具有相同间距的缝隙,当测量盘转动时,转过一条缝隙,光线便产生一次明暗变化,使光敏元件感光一次,用这种结构可以大大增加转盘上的缝隙数,因此使每转的脉冲数相应地增加。3.1.3光电传感器的脉冲整形电路施密特触发器在脉冲的产生和整形电路中应用很广。施密特触发器是一种能够把输入波形整形成为适合于数字电路需要的矩形脉冲的电路。而且由于具有滞回特性,所以抗干扰能力也很强。它可用于波形变换、脉冲整形以及脉冲幅度鉴别。下图3.2为其应用:图3.2施密特触发器的应用根据以上施密特触发器的应用特性,因而用施密特触发器作为本系统的主要脉冲整形元件。图3.3是本系统所采用的透射式光电测速脉冲整形电路图。每当旋转圆盘上的长方孔与光电开关上的透光孔重合,则光敏三极管受光而通过电流,使三极管饱和导通,故施密特触发器CD4093输出高电平,当圆盘转至透光孔被遮时,CD4093输出低电平。随着圆盘不停地转动,CD4093便输出脉冲序列。测出输出脉冲个数,结合圆盘每一周的孔数,使可算出旋转的转速及转角。图中的CD4093用于脉冲整形。图3.3透射式光电测速脉冲整形电路图3.2单片机与光电传感器的接口设计单片机测量频率有两种方法:测频法和测周期法。测量频率就是在单位定时时间里对被测信号脉冲进行计数;测量周期是在被测信号周期时间里对其一基准时钟脉冲进行计数。测周期法常用于脉冲频率较低的场合,所以在本系统中我采用了测频法。测量频率最简单的方法是将被测信号整形为脉冲,然后连接到单片机的定时器/记数器(T/C)的外部脉冲输入端,本系统中将被测信号脉冲AT89S51的T1端。可将AT89S51的一个T/C0用作定时器,另一个T/C1用作计数器。在T/C0定时时间里,由T/C1对频率脉冲进行计数。T/C1的计数值是单位定时时间里的脉冲个数。但应注意如下问题:(1)由于AT895S51对输入T/C的外部脉冲计数,是通过在每个机器周期的第10个时钟周期对输入端T1采样,故需要两个机器周期(等于24个时钟周期)识别一个脉冲的负跳变,每识别到一个脉冲的负跳变将计数器加1。因此被测脉冲的最高频率必须小于。此外,还要求被测频率脉冲的宽度应大于一个机器周期T。本系统所采用的时钟频率为12,则被测脉冲的最高频率不应超过1224500;其宽度必须大于。(2)在定时记数时会出现如图3.4所示的丢失脉冲的情况。第一个脉冲的丢失,是由于开始检测时脉冲宽度已小于机器周期T;第二个脉冲丢失是由于脉冲的负跳变在定时之处出现。定时时间里出现脉冲丢失,将引起测量精度降低。脉冲频率越低,这种误差越大。图3.4频率测量法的脉冲丢失为解决图3.4中第一个脉冲的丢失,可用门电路实现记数开始与脉冲上升沿的同步控制。图3.5是用AT80S51的T/C0作定时器,T/C1作计数器,对频率测量的接口电路。图3.5带同步控制的频率测量接口控制时,首先由P1.6发一个清0负脉冲,使U1、U2两个D触发器复位,其输出封锁与门G1和G2。接着由P1.5发一个启动正脉冲,其有效上升沿使Q1=1,门G1被开放,使被测脉冲得以通过门G1,使Q2置为1,从而将门G2打开。之后,被测脉冲上升沿通过G2送T1计数;同时Q2输出的高电平使INT0=1,定时器0的门控GATE有效,启动T/C0开始定时。直到定时结束时,从P1.6发出一个负脉冲,将U2清零,从而封锁G2,使T/C1停止计数,至此一次频率采样过程结束。在本系统中,为汽车转轴上安装的测量盘缝隙对应的频率,测量T/C定时时间为1S,这样长时间的定时,先由T/C0定时100ms,之后软件循环10次来完成(10×100ms=1s)。T/C作频率脉冲的计数器,若单片机工作在计数方式1,最大计数值为65536。若100ms计数65536次,则脉冲的频率为655.36kHz,这已经超过了AT89S51的计数器的最高频率500kHz,能够发挥出T/C的最大计数能力。T/C0定时100ms的计数初值设为3CB0H,并设定时器/计数器方式字TMOD=59h。计数器1采用计数值满后自然清零再计数的方法。将T/C0设为高优先级,允许计数过程中定时中断,即定时时间到就中止计数。3.3单片机与外部存储器的接口设计本系统采用的是串行EEPROM芯片24C16,24C16的1-3脚分别为器件编址端A0、A1、A2(用于与系统中的同类器件编码),4脚为电源地,5脚为I2C总线的数据线SDA,在系统中与单片机的P1.3口相接,6脚为I2C总线的时钟SCL,在系统中与单片机的P1.4口相接,7脚为测试输入端,在系统中接地,8脚为电源。当时钟线SCL为高电平时,数据线SDA由高电平跳变为低电平定义为“开始”信号;当SCL线为高电平时,SDA线发生低电平到高电平的跳变为“结束”信号。在5脚SDA,6脚SCL上分别接两个10K的上拉电阻,并外接了一个瓷介电容,当电源正常供电时给电容器充电,电源掉电时,利用电容器电流将单片机中的数据写入EEPROM中。3.4单片机与超速报警电路的接口设计本部分采用一个蜂鸣器和一个红色发光二极管与单片机的P1.0口相接的报警实现方式,。若实时的车速值与单片机设定的最大车速值相比较,当车速值大于最大车速值时,通过单片机的软件中断请求,以1秒钟为周期,从而实现P1.0口高低电平的通断。当P1.0口为高电平时,输出正5V的电压,使红色发光二极管得以导通。而且电流由另一条通路使NPN三极管导通,射极输出电流驱动蜂鸣器工作。当P1.0为低电平时,则不能使红色发光二极管和NPN三极管导通,因而不能工作。正因为P1.0口高低电平的通断作用,实现蜂鸣器的嘀嘀声及发光二极管的闪烁显示,从而实现了系统超速报警的功能。其电路图如下图3.6所示:图3.6超速报警电路图3.5单片机与键盘和7段显示器的接口设计本系统的键盘输入部分,采用2个功能键,用这2个键,既可以选择显示是单班里程还是总里程。本系统采用的是常见的按钮开关。开关的接入方法是先将按钮开关的状态转变为逻辑电平,然后可直接接到单片机的*一条I/O线。但由于机械开关在状态转换时有信号的抖动,故在接入开关的同时,必须考虑防抖动的问题。其图3.7如下所示:图3.7键盘输入电路图而七段LED显示器一般都是同时使用几个LED显示器,它有两种连用方法:一是每一位都用各自的8位输出口控制,在显示*一字符时,相应的段恒定发光或不发光,这种显示方法属于静态显示,它占用较多的I/O口线。二是动态显示,即将多个7段LED的段选端复接在一起,只用一个8位输出控制段选,段选同时加到各个7段LED显示器上,通过控制各个显示器公共阳极/阴极轮流接电/接地的方法,逐一轮流地启动各个LED。这种方法中,只要恰当地选择点亮时间和时间间隔,就会给人以为是各位LED同时显示的假象。这里使用了一个6位和一个4位动态显示的共阳极数码管显示器。其中LED显示器的段选码都由单片机的P0口连接控制,4位LED显示器的位选码由单片机的P2.6和P2.7口通过译码器74LS139控制,译码器74LS139对单片机的P2.6和P2.7口分时选通,这样任何一个时刻,都只有一位LED在点亮,也即动态扫描显示方式。74LS139是一个2-4译码器,它将单片机输出的地址信号译码后动态驱动相应的LED。但74LS139的电流驱动能力较小,为此,使用了未级驱动PNP三极管C9015作为地址驱动。而6位LED显示器的位选码,则由单片机的P2.0至P2.5口控制。再通过软件编程,从而控制各自的7节LED是否被点亮(由于本模块电路较大,就没有在这里列出,但可以参考本作品的完整电路原理图)。4软件设计系统的主程序流程如图4.1所示。图4.1系统主程序流程图本系统的控制、运算和管理功能都要通过软件设计来完成,本系统采用模块式设计技术来进行软件设计,整个软件在功能上可分为初始化模块,键输入和键处理模块,脉冲计数处理模块,显示模块,段码表子程序块,存储模块。AT89S51单片机硬件中断人口地址为0013H,并且在这里按键输入、显示子程序和脉冲计数均用到了T/C(计时/计数器)中断功能。系统的初始化,除了分配一些功能寄存器、定义一些常量、设置AT89S51单片机的输人输出口的工作模式外,还要将24C16设置为串行传输模式,清除P0、P2、P13个口的寄存器以及接收计数器等一些功能寄存器及开中断等。下面,就各单元功能模块分别进行说明。4.1脉冲测量部分由于脉冲测量过程中,开始检测时脉冲宽度已小于机器周期T,因而会导致脉冲的丢失。为了避免脉冲的丢失,可用门电路实现记数开始与脉冲上升沿的同步控制。所以在控制时,首先由P1.6发一个清0负脉冲,其输出封锁与门G1和G2。接着由P1.5发一个启动正脉冲,从而将门G2打开。之后,被测脉冲上升沿通过G2送T1计数;同时Q2输出的高电平使INT0=1,定时器0的门控GATE有效,启动T/C0开始定时。直到定时结束时,从P1.6发出一个负脉冲,将U2清零,从而封锁G2,使T/C1停止计数,至此一次频率采样过程结束。计数器1采用计数值满后自然清零再计数的方法。将T/C0设为高优先级,允许计数过程中定时中断。电路图在图3.5。下面是初始化和同步控制程序及中断服务程序。位地址06H作定时1s时间到标志位,R7作软件计数器,计数10个100ms。ORG0000H;;AJMPMAIN;ORG000BH;定时器T0中断AJMPTIMER0;ORG001BH;定时器T1中断AJMPCONTER1;MAIN:CLR06H;清定时时间到标志位CLRP1.6;产生清0用负脉冲NOPSETBP1.5MOVTMOD,*59H;MOVTH0,*3CH;T/C0外部启动定时,T/C1计数MOVTL0,*0B0H;MOVTH1,*00H;T/C1方式1由00H开始计数MOVTL1,*00H;MOVR7,*0AH;计数10个100msSETBTR0;T/C0启动SETBTR1;T/C1启动SETBPT0;定时器0为高中断优先级SETBET0;开T/C0中断SETBET1;开T/C1中断SETBEA;CPU开中断NOP;CLRP1.5;HE:JNB06H,HE;产生时1s时间到CLRP1.6;产生负脉冲,封锁G2NOP;SETBP1.6;CLRTR0;关闭定时器CLRTR1;关闭定时器LCALLDATAP;调数据处理子程序LCALLDIS;调显示子程序SJMPMAINTIMER0:MOVTH0,*3CH;T/C0中断服务程序MOVTL0,*0B0H;DJNZR7,RE;MOVR7,*0AH;SETB06H;1s定时时间到RE:RETI;T/C0中断返回CONTER1:RETI;T/C1中断返回4.2键盘输入部分这个部分是比较简单的一个部分,在硬件设计部分本人对简易键盘做了比较详细的介绍,这里就不再重复。键盘输入部分采用2个功能键,用这2个键既可以选择显示是单班里程还是总里程。由于机械开关在状态转换时有信号的抖动,故在接入开关的同时,必须考虑防抖动的问题。防抖动的方法之一是软件延时去抖动。既在开关状态改变时,执行一个延时程序,待电平稳定后再读入开关状态信息。键的去抖动方法由软件延时来解决。键盘分析程序应包括:是否有键按下以及识别哪个键按下。一旦找到*键,是否按下此键,即可将程序转到该键的功能程序段。本系统所采用的键盘输入程序如下:KEY:MOVR0,*0FHKEY1:MOVP1,R0MOVA,P1;输入键盘信息ANLA,R0CLRCSUBBA,R0JZKEY1;有键按下"ACALLD10MS;有,去抖动MOVA,P1;读键信息JNBACC.0,K0;为0键按下,转K0程序JNBACC.1,K1;为1键按下,转K1程序SJMPKEY其中0FH为置P1口的P1.0~P1.3为输入方式字,并且也是读入键盘信息的屏蔽字。判断有无键按下的方法是:输入键盘信息,如果低4位为全1,则无键按下,否则一定有键按下。何键按下的确定是通过识别P1.0~P1.1中的哪一位为“0”来完成的。标号K0、K1分别为相应键功能程序的入口地址。D10MS为延时10ms的子程序(机械开关的抖动过程约为数毫秒)。4.3数据处理部分平均转速测量中,最普通的方法是当旋转体每转一圈,由脉冲转换器发生60或600个脉冲,并将它在一秒钟之内通过门,用计数器计数,从而用r/min直流值表示的方法。若设计数器的计数值为C,脉冲转换器每转的检测脉冲数为P,计数时间为t秒,转速为N(r/min),则有如下关系式成立:本系统中采用t=1S,P=60,则C=N;取P为60时,则在1S内可测量1r/min单位的转速。而要从转速算出车速值和里程值,就要知道轮胎的规格,得出轮胎外直径,从而获得轮胎的周长。根据轮胎的ISO国际标准,可知:轮胎规格的ISO表示方法为:ABCDEFG其含义为:A:断面宽。B:高宽比(断面高除以断面宽乘以100%)。C:轮胎结构代号。D:内轮毂直径。E:单胎负荷指数。F:双胎负荷指数。G:速度符号。如轮胎规格:195/65R1591V,本设计中由于不涉及A、E、F、G,所以没有提及。轮胎外直径的计算公式:(断面宽*高宽比%*2)+(内轮毂直径*25.4)示例:195/60R14=(195*0.6*2)+(14*25.4)=589.6mm本系统采用的轮胎为小型汽车的轮胎,规格为145/70R12真空胎因而轮胎外直径为145/70R12=(145*0.7*2)+(12*25.4)=507.8mm根据周长计算公式可得:轮胎周长C=507.8*3.14=1594.492mm≈1.6m假设系统的脉冲计数值设为K,车速为N,周长为C,则车速计算公式为:N=K×C×60/1000=____千米/小时同样可得出1秒钟脉冲计数的里程值:S=K×C/60=____米,通过累计,就能得到总的里程数。由汽车在行驶过程中的轮胎磨损,不在本设计能预计的*围之内,因而系统的数值不可避免会有一定的微小误差。以下为双字节二进制无符号数乘法程序MULD以及无符号除法程序D457,本程序可套用为以上的计算程序。
入口条件:被乘数在R2、R3中,乘数在R6、R7中。
出口信息:乘积在R2、R3、R4、R5中。
影响资源:PSW、A、B、R2~R7堆栈需求:2字节
MULD:MOVA,R3;计算R3乘R7
MOVB,R7
MULAB
MOVR4,B;暂存部分积
MOVR5,A
MOVA,R3;计算R3乘R6
MOVB,R6
MULAB
ADDA,R4;累加部分积
MOVR4,A
CLRA
ADDCA,B
MOVR3,A
MOVA,R2;计算R2乘R7
MOVB,R7
MULAB
ADDA,R4;累加部分积MOVR4,A
MOVA,R3
ADDCA,B
MOVR3,A
CLRA
RLCA
*CHA,R2;计算R2乘R6
MOVB,R6
MULAB
ADDA,R3;累加部分积
MOVR3,A
MOVA,R2
ADDCA,B
MOVR2,A
RET入口条件:被除数在R4、R5中,除数在R7中。
出口信息:商在R6中。
影响资源:PSW、A、R3~R7堆栈需求:2字节D457:CLRCMOVA,R4SUBBA,R7JCDV50SETBOV;商溢出RETDV5O:MOVR0,*8;求平均值DV51:MOVA,R5RLCAMOVR5,AMOVA,R4RLCAMOVR4,AMOVF0,CCLRCSUBBA,R7ANLC,/F0JCDV52MOVR4,ADV52:CPLCMOVA,R6RLCAMOVR6,ADJNZR0,DV51MOVA,R4ADDA,R4JCDV53SUBBA,R7JCDV54DV53:INCR6DV54:CLROVRET4.4存储器部分存储器部分主要解决单片机的里程数据的保存,因而要处理好24C16的字节读写问题。当24C16的时钟线SCL为高电平时,数据线SDA由高电平跳变为低电平定义为“开始”信号;当SCL线为高电平时,SDA线发生低电平到高电平的跳变为“结束”信号。开始和结束信号都是单片机产生。在开始信号以后,总线即被认为处于忙状态;在结束信号以后的一段时间内,总线被认为是空闲的。对于24C16的数据传送,在24C16的I2C总线上每次传送的数据字节数不限,但每一个字节必须为8位,而且每个传送的字节后面必须跟一个认可位(第9位),也叫应答位(ACK)。每次都是先传最高位,通常从单片机上接收到每个字节后都会做出响应,即释放SCL线返回高电平,准备接收下一个数据字节,单片机可继续传送。当单片机发送完一个字节的数据后,接着发出对应于SCL线上的一个时钟(ACK)认可位,在此时钟内单片机释放SDA线,一个字节传送结束,而从器件的响应信号将SDA线拉成低电平,使SDA在该时钟的高电平期间为稳定的低电平。从器件的响应信号结束后,SDA线返回高电平,进入下一个传送周期。24C16芯片的读写子程序如下:;写串行E2PROM子程序EEPW;R3=10100000(命令1010+器件3位地址+读/写。器件地址一个芯片,是000);(R4)=片内字节地址;(R1)=欲写数据存放地址指针;(R7)=连续写字节数nEEPW:MOVP1,*0FFHCLRP1.0;发开始信号MOVA,R3;送器件地址ACALLSUBSMOVA,R4;送片内字节地址ACALLSUBSAGAIN:MOVA,R1ACALLSUBS;调发送单字节子程序INCR1DJNZR7,AGAIN;连续写n个字节CLRP1.0;SDA置0,准备送停止信号ACALLDELAY;延时以满足传输速率要求SETBP1.1;发停止信号ACALLDELAYSETBP1.0RETSUBS:MOVR0,*08H;发送单字节子程序LOOP:CLRP1.1RLCAMOVP1.0,CNOPSETBP1.1ACALLDELAYDJNZR0,LOOP;循环8次送8个bitCLRP1.1ACALLDELAYSETBP1.1REP:MOVC,P1.0JCREP;判应答到否,未到则等待CLRP1.1RETDELAY:NOPNOPRET;读串行E2PROM子程序EEPR;(R1)=欲读数据存放地址指针;R3=10100001(命令1010+器件3位地址+读/写。器件地址一个芯片,是000);(R4)=片内字节地址;(R7)=连续读字节数EEPR:MOVP1,*0FFHCLRP1.0;发开始信号MOVA,R3;送器件地址ACALLSUBS;调发送单字节子程序MOVA,R4;送片内字节地址ACALLSUBSMOVP1,*0FFHCLRP1.0;再发开始信号MOVA,R3SETBACC.0;发读命令ACALLSUBSMORE:ACALLSUBSMOVR1,AINCR1DJNZR7,MORECLRP1.0ACALLDELAYSETBP1.1ACALLDELAYSETBP1.0;送停止信号RETSUBR:MOVR0,*08H;接受单字节子程序LOOP2:SETBP1.1ACALLDELAYMOVC,P1.0RLCACLRP1.1ACALLDELAYDJNZR0,LOOP2CJNER7,*01H,LOWSETBP1.0;若是最后一个字节置A=1AJMPSETOKLOW:CLRP1.0;否则置A=0SETOK:ACALLDELAYSETBP1.1ACALLDELAYCLRP1.1ACALLDELAYSETBP1.0;应答毕,SDA置1RET程序中多处调用了DELAY子程序(仅两条NOP指令),这是为了满足I2C总线上数据传送速率的要求,只有当SDA数据线上的数据稳定下来之后才能进行读写(即SCL线发出正脉冲)。另外,在读最后一个数据字节时,置应答信号为“1”,表示读操作即将完成。这存储器部分还有一个重要的环节,就是要延长EEPROM的工作寿命。以下就此做介绍:CPU频繁地擦写串行EEPROM,EEPROM擦写次数典型值为100万次,这是指*一位由1写为0或由0写为1的次数。而实际上写入EEPROM的数据,对于*一位来说,写入的数据并不是每次都是要变化的,实际测试可证明,擦写次数大于500万次。按300万次算,若5s写一次,只能写150天左右,显然,这是不能满足要求的。为此,可采用一种利用存储器空间延长EEPROM工作寿命的方法。其方法为:数据存放的地址不是固定的,而是用一个固定的基地址加上EEPROM内的一个单元的内容(即偏移地址)作为真正的地址;若发现存储单元已坏(写入和读出的内容不同),则偏移地址加一,重新写入。如果采用100倍的存储器空间冗余,可将EEPROM的实际寿命延长100倍。4.5超速报警部分本超速报警部分采用内部T0外部计数,外部输入脉冲,使LED以1s周期闪烁,蜂鸣器以1s周期发出嘀嘀声,由P1.0输出信号,其程序如下:START:MOVTMOD,*01H;置T0为方式1外部计数MOVTH0,*3CH;置寄存器初值MOVTL0,*0B0HCLRTF0;定时器溢出清0SETBTR0;启动T0LP1:MOVTF0,*0AHLP2:JNBTF0,LP2MOVTH0,*3CH;重置计数初值MOVTL0,*0B0HCLRTF0DJNZTF0,LP2CPLP1.0;输出取反AJMPLP1;重复循环END4.6显示部分本功能模块主要是完成LED的动态显示,而动态扫描的频率有一定的要求,频率太低,LED将出现闪烁现象。如频率太高,由于每个LED点亮的时间太短,LED的亮度太低,肉眼无法看清,所以一般均取几个ms左右为宜,这就要求在编写程序时,选通*一位LED使其点亮并保持一定的时间,程序上常采用的是调用延时子程序。在C51指令中,延时子程序是相当简单的,并且延时时间也很容易更改。动态显示子程序的设计要点:(1)建立显示数据缓冲区——存放待显示数字,字符在字型编码表中的序号;(2)软件译码——利用查表方法获得字型编码(段选码);(3)位扫描输出——采用移位方法逐位点亮LED显示器;(4)延时子程序——控制点亮时间和时间间隔。本系统的显示程序设计成子程序的形式,每调用一次,可以将缓冲区中的数据显示一次,每个字符显示时间为10ms,为了使显示的字符稳定下来,必须反复调用该显示子程序。本系统用到了一个6位LED来显示里程信息,一个4位LED来显示车速。现在,我以4位LED来举例,说明其应用。将4只LED的段位都连在一起,它们的公共端则由74LS138分时选通,这样任何一个时刻,都只有一位LED在点亮,也即动态扫描显示方式。以下图4.2为显示子程序的流程框图:图4.2显示子程序的流程框图下面为显示车速的4位LED的显示子程序,其用到了单片机的P2.0和P2.1口,并通过3-8译码器74LS138将单片机输出的地址信号译码后动态驱动相应的LED。具体的情况我都写了注释。ORG0100HMOVSCON,*00H;串行口工作方式0MAIN:MOVR3,*00H;字型码初始地址LOOP:MOVR4,*0E8H;循环显示*个字符DELAY:ACALLDISPLAY;显示DJNZR4,DELAY;延时时间未到继续INCR3;显示下个字符CJNER3,*0AH,LOOP;未显示到“9”继续AJMPMAIN;返回主程序DISPLAY:CLRP2.0CLRP2.1;选中第一位ACALLDISP;显示ACALLDELAY1;延时10msSETBP2.1;选中第二位ACALLDISPACALLDELAY1SETBP2.0;选中第三位CLRP2.1ACALLDISPACALLDELAY1SETBP2.0;选中第四位SETBP2.1ACALLDISPACALLDELAY1RETDISP:MOVA,R3MOVDPTR,*TABLEMOVCA,A+DPTR;查表MOVBUFF,A;送发送缓冲器WAIT:JNBTI,WAIT;等待串行中断CLRTI;清中断标志RETDELAY1:MOVR6,*10H;延时子程序LOOP1:MOVR7,*38HLOOP2:DJNZR7,LOOP2DJNZR6,LOOP1RETTABLE:DB0C0H,0F9H,0A4H,0B0H,99HDB92H,82H,0F8H,80H,90HEND;程序结束在整个的软件设计过程中,最麻烦的是R寄存器的选取,由于只有7个R寄存器能使用,而本系统完成的功能比较强大,简单一个延时程序都会用到两个或两个以上的R寄存器,这使在很多调用的时候出现R寄存器不够用的情况,特别是在中断的时候,有些寄存器在用后的值会发生改变,可能会使得系统出现混乱情况。解决的办法也就只好在不够用的时候把寄存器先存起来,用完后再存回去。到此软件程序设计完毕。5系统调试本系统调试单元所使用的测试仪器仪表和工具:(1)微机一台;(2)示波器;(3)万用表;(4)直流稳压电源;(5)单片机开发系统一套。本装置的调试主要分为硬件调试、软件调试和整体调试三大部分。以下作具体介绍。5.1硬件单元电路调试5.1.15V稳压电源本装置使用单5V稳压直流电源供电。经过示波器测量5V稳压电源输出端,其交流部分电压的峰--峰值为6mV,符合本装置电源的要求,稳压电源调试完毕。5.1.2光电传感器光电传感器模块完全是硬件电路,为了达到预期的目的,先在面包板上进行了模拟,按照电路图的要求以及元器件的选取,接好了电路图,并在一小电机上安装了测量盘,接好+5V直流电源后,通过示波器的观测,发现随着电机转速的变化,示波器里的脉冲波形电压也在不停的正负跳变,并且脉冲宽度也不断的调整,反应速度相当的灵敏,至此,光电传感器模块调试成功。5.1.3键盘输入和显示在调试前,值得提到的是三极管的几个极的判断和数码管的a至g所对应的管脚的测试,这直接关系到此部分的成败。1、判断基极和管子类型(PNP或NPN):由于基极与发射极、基极与集电极,分别是两上PN结,它们之间的反向电阻值都很小,所以用万用表欧姆档(R×100或R×1K)测量时,先将任一支表笔接到*一个认定的管脚上,另一表笔先后接到其余两个管脚上。如果测量得到的阻值都很大(或都很小),然后对换表笔,重复上述测量时,阻值恰好与上述相反。都很小(或都很大)。则可断定所认定的管脚为基极。若不符合上述结果,应另换一个认定管脚重新测量,直至符合上述结果为止。测量时注意管脚和表笔的极性。当黑表笔接在基极,红表笔分别接在其它两极时,测得的电阻值都较小,则可判定该三极管为NPN型,反之即为PNP型。2、判断集电极和发射极:判断集电极和发射极的基本原理是把三极管接成基本单管放大电路。利用测量管子的电流放大系数β的大小来判断集电极和发射极。对于常用的NPN型小功率硅管。若集电极接电源正极,发射极接电源负极,这时表针偏得较大。如果电压极性反接,则表针偏转就比较小。由此即可判断出集电极和发射极。另一种更可靠的办法是,当肯定被测为NPN型硅管后,将黑表笔接于一个待测的管脚,红表笔接另一个管脚,基极悬空,观察表针偏转情况。然后将黑表笔所接管脚与已断定的基极用手捏住(注意不能使其相碰),这时人体电阻相当于电阻Rb,比较测量出的阻值变化。然后更换黑、红表笔,再观察阻值变化。如前者的变化比较大,则前者黑表笔所接管脚就是集电极。红表笔所接管脚为发射极。如为PNP管子与上述情况相反。根据上面的方法,测得所使用的三极管是PNP管,其管脚平面对向自己,管脚从左到右为e,b,c。数码管脚的测试就显得比较简单:如果是共阴极的数码管就让位选接地,然后电亮其它的管脚,通过显示结果来断定引脚是a,b,c等,位选也是拿万用表的黑表笔去探试的。如果是共阳极的话就用红表笔来探试位选,其他的与共阴极的一致。经过以上的判断,就能得到正确的管脚接入电路中。键盘输入和显示是本作品的一个重要组成部分,其硬件调试花了不少的时间。当按键时,显示器能较好的转换,这部分基本上没有问题,但是显示部分的调试,当接好电源时,6位的LED显示器显示乱码,经过仔细的分析,查看电路板的线路,结果硬件电路没有错误,就只可能是软件上出现错误了,最后是因为显示器的公共端接线与软件的编程混乱了。而4位的LED显示器的第一位总是显示8,把驱动的三级管拆下来检查发现并不是三极管的问题,这花了比较长的时间,经过仔细的分析,结果发现是二-四译码器74LS139的问题,原因是用P2.6和P2.7口来驱动4位LED,而锁存端/EN接地,结果无论这两个口是否关断,都有一个LED是全部显示的,于是把锁存端/EN接到P1.7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年FRM金融风险管理师考试专业试卷八十八
- 2025年成人高考《语文》易错点深度解析与模拟试题试卷
- 2025年成人高考《语文》逻辑推理能力测试题库解析
- 2025年消防执业资格考试题库:消防技术标准规范解读与应用实战模拟试题
- 2025年成人高考《语文》高频考点速记题库:古诗词鉴赏与赏析试题
- 2025年小学教师资格考试《综合素质》教育心理学应用心理教育理论案例试题集
- 2025年护士执业资格考试康复护理学专项护理专业英语专项专项辅导试卷
- 2025年乡村医生考试题库:农村居民健康档案管理信息系统应用与维护试题
- 砌墙抹灰施工方案
- 墙纸维修施工方案
- 第04章 计算机辅助设计-1
- 2022年00642《传播学概论》复习资料
- 酒店工程造价目标成本控制表
- 双室浮动床除盐水系统程序控制设计
- 铝合金化学成分表
- 村级基本公共卫生考核评分表
- 烟囱图集(上)05G212
- 外拉线内悬浮抱杆分解组塔计算
- 清华版小学英语一年级下册全册教案
- BWASI网关使用手册-第10章节
- 施工控制网中央子午线及投影基准面的选择
评论
0/150
提交评论