已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第0页共31页摘要此设计是一款简易自行车测速控制系统。以AT89C51单片机为控制核心,通过测试车轮的转速快慢,实现对自行车里程/速度的测量统计,采用单片机内部系统化实现在系统掉电的时候保存里程信息,并能将自行车的速度用LCD实时显示。此设计以硬件软件化为指导思想,充分发挥单片机功能,大部分功能通过软件编程来实现,电路简单明了,系统稳定性强。同时,该测速系统还具有功耗小、成本低的特点,具有很强的实用性。由于系统所用元器件较少,单片机所被占用的I/O口不多,因此系统具有一定的可扩展性。软件程序均采用C语言编写,便于移植与升级。报告详细介绍了整个系统的硬件组成结构、工作原理和系统的软件程序设计。关键词速度;单片机;LCD显示目录摘要.1第1章绪论.2第2章设计方案.32.1方案一.32.2方案二.32.3方案选择.4第3章硬件设计.53.1单片机硬件系统.53.2控制模块设计.53.3单片机中断系统介绍.73.4单片机定时/计数功能介绍.83.5时钟电路设计.93.6复位电路设计.103.7显示电路设计.11第4章软件设计.134.1中断定时设计.134.2延时子程序.144.3速度计算子程序.154.4LCD显示速度设计.154.4.1数据写入与存储.164.4.2显示设定.174.5主程序流程图.17第5章系统仿真测试.19I总结.21参考文献.22附录1整机电路图.23附录2元件明细表.24附录3源程序.25第2页共31页第1章绪论20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。目前,单片机正朝着高性能和多品种方向发展,它作为自动控制中的一个核心器件在小型自动控制系统及信号采集方面已被广泛应用,技术也相对成熟,拥有着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面优势。单片机应用的重要意义还在于它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。在传统的自行车测速控制系统中,存在着自动化程度低、调节精度差的缺点,已经不符合当今高效、低耗、低劳动强度的要求。对于小型测控系统,一般可采用以单片机为核心、配以接口电路和外围设备,在编制应用程式的模式来实现。下面将介绍一个简单的自行车测速控制系统,采用以单片机为控制中心的技术,不仅能使控制系统具有精度高、功能强、经济性好的特点,还节约能源、利于环保。在实际应用中,可以更高效,更清晰的实现各种测速功能,并且此设计将会使人们更快的了解自行车,喜欢自行车,还能从中学到一些测速的启发。第3页共31页第2章设计方案2.1方案一电路的发光部分是用一个发光二极管和保护电阻构成,受光是一个光电二极管并用一个三极管对脉冲信号放大;使用施密特触发器对波形整形;用RC环形振荡器产生的信号分别作为计数器74LS160的清零信号和寄存器74LS175的时钟信号;74LS49作为译码显示器件。图2-1系统框图设计原理是利用自行车辐条的旋转。当自行车行驶时,通过辐条对发光二极管不断的遮挡来进行计数;脉冲信号由光电二极管接收,用三极管放大,经过施密特触发器整形后作为74LS160的计数脉冲。基准信号产生电路为RC环行振荡器,调整R、C使基准脉冲为53Hz,一部分经微分送到计数器74LS160,作为它的清零信号;另一部分再经过微分后送入的寄存器74LS175作为时钟信号。74LS175对计数器所输出的数码锁存,再由74LS49进行译码显示。2.2方案二此设计通过MCS-51单片机为处理核心,改变逻辑状态将车轮的转数转换为电平脉冲,进行处理后送入单片机。速度的测量,是经过MCS-51的定时/计数器测出总的脉冲数和每转一圈的时间,再经过单片机的计算得出,其结果通过LCD显示器显示出来。第4页共31页时钟系统控制模块复位系统显示系统按键系统图2-2系统结构框图此系统总体设计思路如下:假定轮圈的周长为L,当轮子每转一圈,通过逻辑按键的改变触发一个脉冲信号,并从引脚P3.2中断0端输入,单片机每获取一个脉冲信号即对系统提供一次计数中断。每次中断代表车轮转动一圈,计数器T1计算每转一圈所用的时间t,就可以计算出即时速度v。2.3方案选择方案一与方案二大体思路其实差不多,前者采用辐条对发光二极管不断的遮挡来进行计数;脉冲信号由光电二极管接收,用三极管放大,经过施密特触发器整形后作为74LS160的计数脉冲。而后者则是改变逻辑状态将车轮的转数转换为电脉冲,进行处理后送入单片机。相对而言,前者电路复杂,不易操作,电路中还要做许多调试,显示效果不太理想,相反,利用单片机来设计电路图不仅简单,还更有利于速度的直接显示,而且显示一目了然,更容易让人理解。所以,此设计选用方案二。第5页共31页第3章硬件设计3.1单片机硬件系统单片微型计算机简称单片机,是指集成在一个芯片上的微型计算机,它的各种功能部件,包括CPU、存储器、基本输入/输出接口电路、定时/计数器和终端系统等,都制作在一块集成芯片上,构成一个完整的微型计算机,其设计框图如下3-1。图3-1控制系统框图单片机实质上是一个芯片。它具有结构简单、控制功能强、可靠性高、体积小、价格低等优点,单片机技术作为计算机技术的一个重要分支,广泛的应用于工业控制、智能化仪器仪表、家用电器、电子玩具等各个领域。3.2控制模块设计此设计在控制模块中只采用了一个AT89C51芯片,它的功能强大,而且各方面性能都很好,被广泛应用用于各个领域。AT89C51采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大,AT89C51单片机适合于许多较为复杂控制场合应用。第6页共31页AT89C51供以下标准功能:8K字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,5个中断源,一个全双工串行通信口,片内具有振荡器及时钟电路。AT89C51管脚图如图3-2所示。AT89C51的主要管脚功能如下:图3-2AT89C51引脚图P0.0P0.7:P0口是一组8位漏极开路型双向I/O口,也是地址/数据总线复用口。P1.0P1.7:P1是一个带内部上拉电阻的8位双向I/O口。P2.0P2.7:P2是一个带内部上拉电阻的8位双向I/O口。P3.0P3.7:P3是一个带内部上拉电阻的8位双向I/O口。ALE:地址锁存控制信号。在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的分时传送。此外,由于ALE是以晶振16的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。PESN:外部程序存储器读选通信号。在读外部ROM时,PESN有效(低电平),以实现外部ROM单元的读操作。EA:访问程序存储控制信号。当EA信号为低电平时,对ROM的读操作限定在外部程序存储器;当EA信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。第7页共31页RST:复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作。XTALl和XTAL2:外接晶体引线端。当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。VSS:地线。VCC:+5V电源。如果把前述的信号定义为引脚第一功能的话,则根据需要再定义的信号就是它的第二功能。P3的8条口线都定义有第二功能,如表3-1所示。对于有内部EPROM的单片机芯片(例如87C51),为写入程序须提供专门的编程脉冲和编程电源。它们也由引脚以第二功能的形式提供的,即:编程脉冲:30脚()。/ALEPROG编程电压(25V):31脚()。V表3-1P3口引脚与第二功能引脚第二功能信号名称P3.0RXD串行数据接收P3.1TXD串行数据接收P3.20INT外部中断0申请P3.31外部中断1申请P3.4T0定时/计数器0的外部输入P3.5T1定时/计数器1的外部输入P3.6WR外部RAM写选通P3.7D外部RAM读选通3.3单片机中断系统介绍中断是指当计算机执行正常程序时,系统中出现某些急需处理的事件,CPU暂时中止当前的程序,转去执行服务程序,以对发生的更紧迫的事件进行处理,待处理结束后,CPU自动返回原来的程序执行AT89C51系列单片机的系统有5个中断源,2个优先级,可实现二级中断服务嵌套。由片内特殊功能寄存器中的中断允许寄存器IE控制第8页共31页CPU是否响应中断请求;由中断优先级寄存器IP安排各优中断源的优先级;同一优先级内各终端同时提出中断请求时,由内部的查询逻辑确定其响应次序。采用的外部中断方式包括外部中断0和外部中断1,它们的中断请求信号分别由单片机引脚/P3.2和/P3.3输入。0INT1IT外部中断请求有两种信号方式:电平触发方式和脉冲触发方式。电平触发方式的中断请求是低电平有效。只要在和引脚上出现有效低电平时,就激活外部中0IN1IT断方式。脉冲触发方式的中断请求则是脉冲的负跳变有效。在这种方式下,在两个相邻机器周期内,和引脚电平发生变化,即在第一个机器周期内为高电平,第0INT1I二个机器周期内为低电平,就激活外部中断。由此可见,在脉冲方式下,中断请求信号的高电平和低电平状态都应至少维持一个机器周期,以使CPU采样到电平状态的变化,此设计所采用的触发方式为脉冲触发方式。3.4单片机定时/计数功能介绍CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。IE的状态可通过程序由软件设定,某位设定为1,相应的中断源中断允许;某位设定为0,相应的中断源中断屏蔽。CPU复位时,IE各位为0,禁止所有中断。IE寄存器各位的定义如下。EX0(IE.0)外部中断允许位;0INTET0(IE.1)定时/计数器T0中断允许位;EX1(IE.2)外部中断允许位;1IET1(IE.3)定时/计数器T1中断允许位;ES(IE.4)串行口中断允许位;EA(IE.7)CPU中断允许位。AT89C51单片机有两个中断优先级,即可实现二级中断服务嵌套。每个中断源的中断优先级都是由中断优先级寄存器IP中的相应的状态来规定的。IP的状态由软件设定,某位设定为1,则相应的中断源为高优先级中断;某位设定为0.则相应的中断源为低优先级中断。单片机复位时,IP各位清0,各中断源同为低优先级中断。IP寄存器各位的定义如下。第9页共31页PX0(IP.0)外部中断优先级设定位;0INTPT0(IP.1)定时/计数器T0中断优先级设定位;PX1(IP.2)外部中断中断优先级设定位;1IPT1(IP.3)定时/计数器T1中断优先级设定位;PS(IP.4)串行口中断优先级设定位。AT89C51单片机定时/计数器的工作由两个特殊功能寄存器控制。TMOD用于设置其工作方式;TCON用于控制其启动和中断请求。1.工作方式寄存器TMOD工作方式寄存器TMOD用于设置定时/计数器的工作方式。GATE:门控位。GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATE=1时,要用软件TR0或TR1为1,同时外部中断引脚或0INT也为高电平时,才能启动定时/计数器工作。1INT:定时/计数模式选择位。=0为定时模式;=1为计数模式。C/CT/CTM1M2:工作方式设置位。定时/计数器有4种工作方式,由M1M2进行设置。本次设计TMOD为90H,即选通定时/计数器1、定时功能、工作方式1。工作方式16位定时/计数器。2.控制寄存器TCONTF1(TCON.7)定时/计数器T1溢出中断请求标志位。定时/计数器T1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清零。T1工作时,CPU可随时查询TF的状态。所以,TF1可用作查询测试的标志。TF1也可以用软件置1或清零,同硬件置1或清零的效果一样。TR0(TCON.4)定时/计数器T0运行控制位。TR0置1时时,定时/计数器T1开始工作;TR0置0时,定时/计数器T0停止工作。TR0由软件置1或清0。TF0(TCON.5):定时/计数器T0溢出中断请求标志位。TR1(TCON.6):定时/计数器T1运行控制位。3.5时钟电路设计时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不第10页共31页紊地一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。AT89C51内由一个反相放大器构成振荡器,可以由它产生时钟。常用的时钟电路有两种方式,一种是内部时钟方式,另一种为外部时钟方式。此设计采用前者。单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和电容,就构成一个稳定的自激振荡器。单片机内部时钟方式的振荡电路如图3-5所示。图3-5单片机片内振荡电路电路中的电容C1和C2常选择为30P左右。对外接电容的值虽然没有严格的要求,但电容的大小会影响振荡器的高低、振荡器的稳定性、起振的快速性和温度的稳定性。而外接晶体的振荡频率的大小,主要取决于单片机的工作频率范围,每一种单片机都有自己的最大工作频率,外接的晶体振荡频率不大于单片机的最大工作频率即可。此外,如果单片机有串行通信,则应该选择振荡频率除以串行通信频率可以除尽的晶体。此设计晶振采用12MHz,则计数周期为S61202THz()3.6复位电路设计AT89C51单片机的复位输入引脚RET为AT89C51提供了初始化的手段。有了它可以第11页共31页使程序从指定处开始执行,即从程序存储器中的0000H地址单元开始执行程序。在89C51的时钟电路工作后,只要在RET引脚上出现两个机器周期以上的高电平时,单片机内部则初始复位。只要RET保持高电平,则89C51循环复位。只有当RET由高电平变成低电平以后,89C51才从0000H地址开始执行程序。此系统的复位电路是采用上电复位的电路,如图3-6所示,是常用复位电路之一。单片机复位通过按动按钮产生高电平复位称手动复位。上电时,刚接通电源,电容C相当于瞬间短路,+5V立即加到RET/VPD端,该高电平使89C51机自动复位,这就是上电复位。图3-6上电复位电路工作原理:通电瞬间,RST端的电位与Vcc相同,随着充电电流的减少,RST的电位逐渐下降。只要保证RST为高电平的时间大于两个机器周期,便能正常复位。3.7显示电路设计LCD液晶显示器是一种功耗极低的显示器件,它广泛应用于便携式电子产品中,它不仅省电,而且能够显示大量的信息,如文字、曲线、图形等,其显示界面与数码管相比较有了质的提高。LCD分为直接访问和间接访问方式。直接访问方式是把字符型液晶显示模块作为存储器或I/O端口设备直接连到单片机总线上。采用8位数据传输形式时,数据端DB0DB7直接与单片机的数据线相连接,数据和指令选择控制端RS信号和读写控制线第12页共31页R/W信号利用单片机的地址线来控制。使能端E信号则由单片机的RD和WR信号与地址线共同控制。而间接访问方式是把字符型液晶显示模块与单片机的并行接口连接,单片机通过对并行接口的操作,实现LCD读写时序控制,从而间接实现对字符型液晶显示模块的控制。图3-7LCD显示模块如图3-7所示,上图为LCD显示模块,此设计中,单片机P1口与液晶模块的8条数据线相连,P3口的P3.0、P3.1、P3.7分别与液晶模块的三个控制端RS、R/W、E连接,电位器R2位VO提供可调的液晶驱动电压,用以实现对现实对比度进行调节。当通电时,P1口输出为高电平,点亮LCD,LCD通过RS、RW、EN三个端口来写或者读取数据。当RS为0,RW为0,EN为1时,写寄存器命令;当RS为0,RW为1,EN为0时,读寄存器命令;当RS为1,RW为0,EN为1时,写数据;当RS为1,RW为1,EN为0时,读数据。第13页共31页第4章软件设计系统软件设计的程序编写内容,可以通过按键改变逻辑状态输入一个下降沿信号,通过控制模块的读取,进行速度的即时显示。整个系统的软件设计均采用C语言开发,采用改变按键按下的频率变换,确保系统显示速度的实时性。系统框图如下4-1。控制模块复位系统时钟系统显示系统按键系统图4-1控制系统框图4.1中断定时设计此设计采用外部中断0方式,通过P3.2口送入下降沿信号,一旦输入信号有效,即向CPU申请中断,采用定时工作方式1,当TR0=0时,将停止计数,当TR0=1时,开始计数,同时计算时间。如图4-2所示,方式1采用16位计数器,此设计采用的晶振为12MHz,则计数器最大定时时间为65536*1us=65.536ms,因此可选择定时时间为50ms。定时时间为50ms,那么计数值为50ms/1us=50000,50000为计数器定时之间的机器周期,同时给TLO赋值,即TLO=65536-50000=15536,赋初值TLO为10101111。系统每中断一次,计数器计数一次。第14页共31页voidddelay(uintk)uinti,j;for(i=0;ik;i+)for(j=0;j60;j+);/遥控使用外部中断0/TR0=0停止计数/count=0把0赋值给count/TR0=1开始计数/time=time*50000+temp时间公式计算/count+时间自增1再赋值给count图4-2中断定时流程图4.2延时子程序电路中我们用的12MHz的晶体振荡器,所以一个机器周期为1us,为了保持LCD持续显示速度,需要一个延时子程序,内容如下。k为自定义函数,在调用时插入语句“delay(k)”即可启动延时,而其中的延时时间为停止计数赋值时间初值开始计数中断一次时间加1计算时间开中断结束第15页共31页voidaccount()unsignedlonga;if(time!=0)a=L*3600000000/time;speed=a;k60ms。4.3速度计算子程序a为无符号长整形变量如果time不等于0则a执行计算a=L*3600000000/time把a赋值给speed4.4LCD显示速度设计首先对LCD写寄存器命令,写数据,具体操作分别是当RS为0,RW为0,EN为1时,完成寄存器命令写入;当RS为1,RW为0,EN为1时,写入数据,再通过LCD内部等待函数接收,LCD将读取寄存器命令和读取数据,其具体操作分别是当RS为0,RW为1,EN为0时,读寄存器命令;当RS为1,RW为1,EN为0时,读数据。同时将对LCD进行初始化设置,P1口为低电平时,LCD初始化显示采用三次显示模式,不检测忙信号,其中2行显示,关闭显示,清屏,显示光标右移,都要检测忙信号。LCD显示设计中,其中对LCD显示指定坐标的一个字符子函数和显示指定坐标的一串字符子函数进行设定,以达到显示内容设计。如图4-4所示为LCD显示总流程。第16页共31页LCD初始化光标定位显示字符结束开始图4-4LCD显示总流程4.4.1数据写入与存储首先我们将对LCD写入指令,将设定好的数据也写入,同时LCD内部将等待写入的指令与数据函数,实现存储。程序流程图如下图4-4-1和4-4-2所示。写指令模式RS=0,RW=0当EN=1时,指令模式有效当EN=0时,指令模式无效写数据模式RS=1,RW=0当EN=1时,数据模式有效当EN=0时,数据模式无效图4-4-1数据写入流程图/P1=0xff输出全为高电平,点亮LCDLCD内部等待P1=0xffRS=0RW=1EN=1点亮LCD不显示速度P1&0x80RS=0RW=1EN=0点亮LCD并显示速度写指令RS=0ENEN=1RW=0EN=0写数据RS=1ENRW=0EN=1EN=0第17页共31页/RS=0,RW=1,EN=1,LCD不能读寄存命令,不显示速度/P1&0x80检测忙信号,点亮LCD/RS=0,RW=1,EN=0,LCD读寄存命令,显示速度图4-4-2指令读取流程图4.4.2显示设定首先设定显示指定坐标的一个字符子函数,在设定显示一串字符子函数,然后定义LCD显示端口及显示初步设定。流程图如下4-4-3。/DATAP0RT=0ddelay(15)WriteCommandLCM(0x38,0)/三次显示模式设置,不检测忙信号WriteCommandLCM(0x08,1)/关闭显示,检测忙信号WriteCommandLCM(0x01,1)/清屏,检测忙信号WriteCommandLCM(0x06,1)/显示光标右移设置,检测忙信号WriteCommandLCM(0x0c,1)/显示屏打开,光标不显示,不闪烁,检测忙信号WriteCommandLCM(X,0)/写指令LCD忙检写指令写数据显示指定坐标字符或字符串初始化开始第18页共31页WriteDataLCM(DData)/写数据,待显示内容放入字符串DDataDisplayListChar(0,0,str0)/若y不为1,显示str0DisplayListChar(0,1,str1)/若y为1,显示第二行str1图4-4-3显示设定流程4.5主程序流程图此系统主流程图如下4-5。写指令写数据读指令读数据开中断定时初始化显示速度开始结束图4-5主程序流程图第19页共31页第5章系统仿真测试PROTEUS系统仿真平台与开发平台是由英国Labcenter公司开发的,是目前世界上最完整的系统设计与仿真平台之一。PROTEUS可以实现数字电路、模拟电路及微控制系统与外设的混合电路系统的电路仿真、系统协同仿真和PCB设计等全部功能。PROTEUS软件能够对各种处理器进行实时仿真、调试与测试的EDA工具,真正实现了在没有目标原形时就可以对系统进行调试与验证。在构思好电路原理图和编好程序之后就要对其进行系统仿真,原理图的具体设计流程如图附录1所示。此设计电路简单,当通电时,改变逻辑状态从P3.2输入一个下降沿信号,通过P1口点亮LCD,LCD读取指令、数据,进行显示速度。通过继续改变逻辑信号输入,速度也会随之改变,速度改变由程序计算可得结果。具体计算由定时计算两个脉冲之间的间隔时间,即自行车轮转动一圈的时间,然后通过自行车周长除以转动一圈的时间即为速度。如下图5-1和5-2所示。图5-1LCD速度显示第20页共31页计数时间time=3s,L=50cm,temp初值为65536-5000,由公式speed=L*360000000,time=time*50000+temp知速度speed=180000/165536=1.09即频率为0.33hz时的速度。图5-2LCD速度显示计数时间time=1s,L=50cm,temp初值为65536-5000,由公式speed=L*360000000,time=time*50000+temp知速度speed=180000/65536=2.7由于计数误差与显示接近。即频率为1hz时的速度。由于按键吸合之间的时间并不太准确,同时计算机计算速度造成一些误差导致结果存在误差。第21页共31页总结此课题的主要任务是开发一个以MCS-51单片机为核心的自行车的速度表。此设计主要分为硬件部分和软件部分,硬件部分着重考虑硬件电路的简单性,故尽可能简化硬件电路,节省线路板的空间,达到硬件电路最优化设计。软件采用C语言编写,采用模块化设计思想,程序可读性强。通过仿真、实验验证了系统的可行,能满足设计要求,达到设计的指标,实现对自行车速度的计算功能,并用LCD显示,速度根据以下公式求得:速度=车轮周长车轮转一圈所用的时间根据此公式将最终显示出速度。当车轮转动,改变逻辑输出一个下降沿信号,通过定时计算出转动一圈的时间,最终得到速度。显示速度时,LCD会根据转速的不同显示不同的数字。通过仿真证明此次设计符合设计的要求,能实现对速度的显示,功能性较强,具有一定的实践意义,将会在许多场合应用。但也有一些不足存在,当显示速度时,若自行车转动太快,显示器会显示过快,应该将速度定时显示,使人们能够清楚地看出速度。此系统操作简单,易于实现。硬件部分采用的器件应用较广泛,且价格低廉,如AT89C51单片机、LCD。这就意味着所有的器件功能比较强大、稳定。尤其是本次设计的核心元件AT89C51单片机,软件技术成熟,并具有种类齐全的支持芯片。这类微处理器既可用作控制器又适合于做数据处理,而且成本也甚是低廉。软件采用模块化设计,可读性强,方便二次开发。此次设计电路简单、低成本,而且能够满足人们对高性能、多功能自行车的要求,可在很多速度测量场合使用,具有广泛的应用前景。第22页共31页参考文献1李光飞.51系列单片机设计实例.北京:北京航空航天大学出版社,20062李朝青.单片机原理及接口技术.北京:北京航空航天大学出版社,19943张毅刚.MCS-51单片机原理及应用.哈尔滨:哈尔滨工业大学出版社,20044黄河.单片机原理及应用.大连:大连理工大学出版社,20065陈雪丽.单片机原理及接口技术.北京:化学工业出版社,20056李勋.单片机实用教程.北京:北京航空航天大学出版社,20067张友德.单片机微机原理.上海:复旦大学出版社,2003第23页共31页附录1整机电路图第24页共31页附录2元件明细表项目代号名称型号、规格数量备注更改R1电阻器RT0.125b9.1k10%1U1集成芯片AT89C511R2电位器POT-LIN1C1CD225V33PF101C2CD225V33PF101C3CD235V22UF101X1晶振器12MHZ1L1逻辑状态LOGICSTATE1L2LCD显示器LM016L1旧底图总号更改标记数量更改单号签名日期底图总号拟制黄高林审校日期签名等级标记第1张共1张标准化批准第25页共31页附录3源程序/定义头文件#includereg51.h#includeintrins.hsbitLCM_RS=P30;/定义LCD的RS端口为P3.0sbitLCM_RW=P31;/定义LCD的RW端口为P3.1sbitLCM_EN=P37;/定义LCD的EN端口为P3.7#defineBUSY0x80/常量定义忙判别位#defineDATAPORTP1/定义DATAPORT为P1#defineucharunsignedchar/定义无符号字符型变量#defineuintunsignedint/定义整型变量#defineL50/定义L为50ucharstr016,str116,count;/调用文件库uintspeed;/定义速度unsignedlongtime;/定义无符号长整型变量timevoidddelay(uint);/延时子程序名称voidlcd_wait(void);/LCD程序名称voiddisplay();/定义显示指定位voidinitLCM();/定义初始化子函数voidWriteCommandLCM(ucharWCLCM,ucharBusyC);/定义LCD指令函数voidSTR();/显示定义voidaccount();/定义速度子函数/*延时K*1ms,12.000mhz*/voidint0_isr(void)interrupt0/遥控使用外部中断0,接P3.2口unsignedinttemp;/定义整型变量temp第26页共31页time=count;/将count赋值给timeTR0=0;/停止计数temp=TH0;/将TH0赋值给temptemp=(temp8)|TL0);/将(temp赋值向左移动8位或TL0)赋值于tempTH0=0x3c;/设置定时器初值00111100TL0=0xaf;/设置定时器初值10101111count=0;/把0赋值给countTR0=1;/开始计数time=time*50000+temp;/时间公式计算voidtime0_isr(void)interrupt1/*遥控使用定时计数器1*/TH0=0x3c;/设置定时器TH初值00111100TL0=0xaf;/设置定时器TL初值10101111count+;/自增1语句,count增1后,再赋给变量countvoidmain(void)TMOD=0x01;/TMODT0选用方式1(16位定时)IP|=0x01;/INT0中断优先*/TCON|=0x11;/TCONEX0下降沿触发,启动T0IE|=0x83;TH0=0x3c;/设置定时器TH赋值00111100TL0=0xaf;/设置定时器TL赋值10101111initLCM();/初始化子函数WriteCommandLCM(0x01,1);/清显示屏for(;)第27页共31页account();/调用子函数accountdisplay();/调用子函数displayvoidaccount()unsignedlonga;/定义无符号长整型变量aif(time!=0)/如果time不等于0a=L*3600000000/time;/速度计算speed=a;/把a赋值给speed/LCD显示设定voidSTR()str00=S;str01=p;str02=e;str03=e;str04=d;str05=;str06=(speed%100000)/10000+0x30;/十万位取整str07=(speed%10000)/1000+0x30;/万位取整str08=(speed%1000)/100+0x30;/千位取整str09=.;str010=(speed%100)/10+0x30;/百str011=speed%10+0x30;/十位str012=k;第28页共31页str013=m;str014=/;str015=h;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山西心理测试高分攻略答题技巧与答案详解
- 医疗知识自测心肺复苏考试指南及答案
- 小米面试题中的综合素质测评题答案及解析
- 医疗机构入职考试题目与答案大全
- 在2025年治理欠薪冬季行动安排部署会议上的讲话
- 2025年度安全工作总结与未来展望
- 2025年叉车道路培训考试题库及答案
- 2025年制冷与空调设备安装修理考试题库(含答案解析)
- 合同里面写达成协议
- 合资公司合同协议书
- 黑龙江省鹤岗市东方红乡地热资源普查探矿权出让收益评估报告
- 围挡专项安全施工方案
- 通信的知识-家长进课堂
- 急诊医学PPT课件急性意识障碍
- SB/T 11082-2014单用途商业预付卡发卡企业信用评价标准
- LY/T 2246-2014森林消防专业队伍建设和管理规范
- GB/T 3871.3-2006农业拖拉机试验规程第3部分:动力输出轴功率试验
- GB/T 19188-2003天然生胶和合成生胶贮存指南
- GB/T 17908-1999起重机和起重机械技术性能和验收文件
- 部编版语文九年级上册第五单元写作《论证要合理》课件
- 景物描写穿插在记叙文中课件
评论
0/150
提交评论