《精品毕业论文基于AT89C51车轮转速测量系统的设计.doc》由会员分享,可在线阅读,更多相关《精品毕业论文基于AT89C51车轮转速测量系统的设计.doc(51页珍藏版)》请在三一办公上搜索。
1、前 言1 课题的目的和意义随着科技的飞速发展,计算机应用技术日益渗透到社会生产生活的各个领域,而单片机的应用则起到了举足轻重的作用。单片机又称单片微控制器,就是把一个计算机系统集成到一个芯片上。它完整地包含了计算机内部的CPU(运算器、控制器)、程序存储器(相当于计算机的硬盘)、数据存储器(相当于计算机的内存)、输入输出端口等。虽然它的运算速度无法和计算机相比,但在一些实际的控制应用场合已经足够使用了。对于高等院校电子类和计算机类的学生,学习单片机是很重要的,而进行应用单片机的课程设计更是重中之重,将所学理论知识应用到实际,使更加全面的了解和掌握单片机的应用。2. 设计的内容和范围在工程实践中
2、,经常会遇到各种需要测量转速的场合,例如在发动机1、电动机、机床主轴等旋转设备的试验运转和控制中,常需要分时或连续测量、显示其转速及瞬时速度。为了能精确地测量转速,还要保证测量的实时性,要求能测得瞬时转速。3. 设计拟解决的问题本设计提出一种基于AT89C51单片机实施电机转速测量2的方法,利用红外传感器采集脉冲信号,通过定时计数算法程序,将转速结果实时显示出来。第1章 概述1.1数字式转速测量系统的发展背景 目前国内外测量电机3转速的方法很多,按照不同的理论方法,先后产生过模拟测速法(如离心式转速表、用电机转矩或者电机电枢电动势计算所得)、同步测速法(如机械式或闪光式频闪测速仪)以及计数测速
3、法。计数测速法又可分为机械式定时计数法和电子式定时计数法。传统的电机转速检测多采用测速发电机或光电数字脉冲编码器,也有采用电磁式(利用电磁感应原理或可变磁阻的霍尔元件等)、电容式(对高频振荡进行幅值调制或频率调制)等,还有一些特殊的测速器是利用置于旋转体内的放射性材料来发生脉冲信号。其中应用最广的是光电式,光电式测系统具有低惯性、低噪声、高分辨率和高精度的优点。加之激光光源、光栅、光学码盘、CCD 器件、光导纤维等的相继出现和成功应用,使得光电传感器在检测和控制领域得到了广泛的应用。而采用光电传感器的电机转速测量系统测量准确度高、采样速度快、测量范围宽和测量精度与被测转速无关等优点,具有广阔的
4、应用前景。1.2本设计课题的目的和意义 工程实践中,经常会遇到各种需要测量转速的场合,例如在发动机、电动机、卷扬机、机床主轴等旋转设备的试验、运转和控制中,常需要分时或连续测量和显示其转速及瞬时转速。要测速,首先要解决是采样问题。在使用模拟技术4制作测速表时,常用测速发电机的方法,即将测速发电机的转轴与待测轴相连,测速发电机的电压高低反映了转速的高低。为了能精确地测量转速外,还要保证测量的实时性,要求能测得瞬时转速方法。因此转速的测试具有重要的意义。 这次设计内容包含知识全面,对传感器测量发电机转速的不同的方法及原理设计有较多介绍,在测量系统中能学到关于测量转速的传感器采样问题,单片机部分的内
5、容,显示部分等各个模块的通信和联调。全面了解单片机和信号放大的具体内容。进一步锻炼我们在信号采集、处理、显示发面的实际工作能力。第2章 车轮转速测量系统的原理2.1车轮转速测量方法转速是指作圆周运动的物体在单位时间内所转过的圈数,其大小及变化往往意味着机器设备运转的正常与否,因此,转速测量一直是工业领域的一个重要问题。按照不同的理论方法,先后产生过模拟测速法(如离心式转速表)、同步测速法(如机械式或闪光式频闪测速仪)以及计数测速法。计数测速法又可分为机械式定时计数法和电子式定时计数法。本设计介绍的采用单片机和红外传感器组成的高精度转速测量系统,其转速测量方法采用的就是电子式定时计数法。对车轮转
6、速的测量实际上是对转子旋转引起的周期脉冲信号的频率进行测量。在频率的工程测量中,电子式定时计数测量频率的方法一般有三种:1. 频率法:在一定时间间隔t 内,计数被测信号的重复变化次数N,则被测信号的频率fx 可表示为f x =Nt (2-1)2. 测周期法:在被测信号的一个周期内,计数时钟脉冲数m0,则被测信号频率fx = fc/ m0 (2-2)其中, fc 为时钟脉冲信号频率。3. 多周期测频法:在被测信号m1 个周期内,计数时钟脉冲数m2,从而得到被测信号频率fx ,则fx 可以表示为fx =m1 fc/m2 (2-3)m1 由测量准确度确定。电子式定时计数法测量频率时,其测量准确度主要
7、由两项误差来决定:一项是时基误差;另一项是量化1误差。当时基误差小于量化1 误差一个或两个数量级时,这时测量准确度主要由量化1 误差来确定。对于测频率法,测量相对误差为:Er1 =测量误差值/实际测量值100 % =1/N100 % (2-4)由此可见,被测信号频率越高,N 越大,Er1就越小,所以测频率法适用于高频信号(高转速信号)的测量。对于测周期法,测量相对误差为:Er2 =测量误差值/实际测量值100 % =1/m0100 % (2-5)对于给定的时钟脉冲fc,当被测信号频率越低时,m0 越大, Er2就越小,所以测周期法适用于低频信号(低转速信号)的测量。对于多周期测频法,测量相对误
8、差为:Er3 =测量误差值/实际测量值100%=1/m2100 % (2-6)从上式可知,被测脉冲信号周期数m1 越大,m2 就越大,则测量精度就越高。它适用于高、低频信号(高、低转速信号)的测量。但随着精度和频率的提高,采样周期将大大延长,并且判断m1 也要延长采样周期,不适合实时测量。根据以上的讨论,考虑到实际应用中需要测量的转速范围很宽,上述的转速测量方法难以满足要求,因此,研究高精度的转速测量方法,以同时适用于高、低转速信号的测量,不仅具有重要的理论意义,也是实际生产中的需要。2.2车轮转速测量原理本设计中主要有三个模块,分别为车轮速度测量模块、单片机最小系统模块、显示模块。本设计的测
9、车轮转速长期测量系统是在已知车轮的周长,在程序中预设周长。设计中传感器是由红外接发射管和接收管构成。测速的过程为:在电机的转轴上安装一个圆形遮光片,并从圆形遮光片的中心向圆盘的周边开一个长方形的小缝隙。红外发射管和光敏三极管安装在遮光片的两端,当电机转动时就可以通过遮光片来改变红外接收管接收的光线,从而产生电位信号的变化,这样就构成了一个收发检测系统,可以检测电机的转速。运用的原理和光电耦合器是相同的。在信号输入部分中主要有红外传感器和LM339比较器组成,红外发射和接收对准时为正常工作,那么当车轮转动的时候,一圈只能有一个时刻红外正常工作的,也就是说只有一个时刻红外的发射和接收是对准的。信号
10、的处理部分就是单片5机根据程序的运行部分。显示部分采用的是四位一体的共阳数码管显示。在单片机程序的编写中预设内部时钟中断T0为250us,T0_num是记内部时钟中断T0的个数。则有测速度公式:V=C/(T0_num*250us) (2-7)C 预设的车轮周长(本设计中为150mm);T0_num 采样内部时钟中断脉冲个数;250us预设的内部时钟中断T0时间;V 车轮的速度;如果S=150mm, 那么:V=150mm/(T0_num*250us) (2-8)转换单位可以得到: V=(150mm*106)/(T0_num*250s) (2-9)把预设的车轮的周长用K表示则有公式: V=(K*3
11、600Km)/(T0_num*250h) 单位为 Km/h (2-10)在对转速波动较快系统或要求动态特性好而精度高的转速测控系统中,调节周期一般很短,相应的采样周期需取得很小,使得脉冲当量增高,从而导致整个系统测量精度降低,难以满足测控要求。所以在定时时间的选择上不能太小也不能太大程序中我们把定时时间定为250us。在设计中,预设了内部定时器T0的最大中断次数,防止了车轮不转动时,数据的溢出。由公式(4)可以得到,当T0_num定时器T0的最大中断次数时(65000),那么V=0.033。近似为0。各部分模块的功能:传感器:用来对信号的采样。信号转换电路:对传感器送过来的信号进行放大和整形,
12、在送入单片机进行数据的处理转换。单片机:对处理过的信号进行转换成转速的实际值,送入LED。LED显示:用来对所测量到的转速进行显示。第3章 系统方案提出和论证转速测量的方案选择:一般要考虑传感器的结构、安装以及测速范围与环境条件等方面的适用性;再就是二次仪表的要求,除了显示以外还有控制、通讯和远传方面的要求。本设计书中给出两种转速测量方案,经过查资料、构思和结合本设计,总体电路有两套设计方案,部分重要模块也考虑了其它设计方法,经过分析,从实现难度、熟悉程度、器件用量等方面综合考虑,最终选择了一个方案。下面就看一下我们对两套设计方案的简要说明。方案一:霍尔传感器测量方案霍尔传感器是利用霍尔效应进
13、行工作的。其核心元件是根据霍尔效应原理制成的霍尔元件。本设计介绍一种泵驱动轴的转速采用霍尔转速传感器测量。霍尔转速传感器的结构原理图如图3-1,霍尔转速传感器的接线图如图3-2。传感器的定子上有2 个互相垂直的绕组A 和B,在绕组的中心线上粘有霍尔片HA 和HB ,转子为永久磁钢,霍尔元件HA 和HB 的激励电机分别与绕组A 和B 相连,它们的霍尔电极串联后作为传感器的输出。图3-1 霍尔转速传感器的结构原理图图3-2 霍尔转速传感器的接线图缺点:采用霍尔传感器在信号采样的时候,会出现采样不精确,因为它是靠磁性感应才采集脉冲的,使用时间长了会出现磁性变小,影响脉冲的采样精度。方案二:光电传感器
14、方案二主要包括传感器、处理器和显示3个部分。其原理方框图如图3-3所示。在该方案中传感器是由红外发光二极管,和红外接收管。测速的过程为:在电机的转轴上安装一个圆形遮光片,并在圆形遮光片上凿开一条从圆心到园变的小细缝,这样可以让红外发射管发出的红外光刚好可以通过。在遮光片的两端分别安装好发光二极管和接收管,当电机转动时就可以通过遮光片来改变光敏三极管接收的光线,从而产生电位信号的变化,这样就构成了一个收发检测系统,可以检测电机的转速。运用的原理和光电耦合器是相同的。电机光敏三极管信号转换LED显示单片机处理红红外发光管 图3-3 测量系统的组成框图优点:这种方案使用光电转速传感器具有采样精确,采
15、样速度快,范围广的特点。综上所述,方案二使用光电传感器来作为本设计的最佳选择方案。第4章 系统硬件设计随着超大规模集成电路技术提高,尤其是单片机应用技术以及功能强大,价格低廉的显著特点,是全数字化测量转度系统得一广泛应用。出于单片机在测量转速方面具有体积小、性能强、成本低的特点,越来越受到企业用户的青睐。对测量转速系统的硬件和编程进行研究,设计出一种以单片机为主的转速测量系统,保证了测量精度。4.1电源电路本次设计电路为输出电压+5V、输出电流1.5A的稳压电源,如图4-1所示。它由电源变压器,桥式整流电路D1D4,滤波电容C1、C2、C3和一只固定式三端稳压器(7805)构成的。图4-1电源
16、电路原理图原理:220V交流市电通过电源变压器变换成6交流低压,再经过桥式整流电路D1D4和滤波电容C1、C2的整流和滤波,在固定式三端稳压器7805的Vin和GND两端形成一个并不十分稳定的直流电压(该电压常常会因为市电电压的波动或负载的变化等原因而发生变化)。此直流电压再经过C3的滤波便在稳压电源的输出端产生了精度高、稳定度好的直流输出电压。4.2转速信号采集在设计中采用红外传感器采集信号,这种红外传感器是把车轮的转速变为相应频率的脉冲,然后由单片机内部定时器T0来测得定时脉冲个数,由公式(4)得到速度。这种测量方法具有传感器结构简单、可靠、测量精度高的特点。是目前常用的一种测量转速的方法
17、。从红外发射管发出的光通过遮光片上的小缝隙照射到红外接收管,使红外发射管和接收管都处于导通状态,反之红外接收管处于截止状态。红外传感器的工作和不工作两种状态产生的脉冲信号经过LM339比较器,对信号进行处理,然后输入给单片机。由于本设计只停留于实验阶段,设计中使用的车轮自制,使用的电机为6V的直流电机。车轮(遮光片)的两侧分别装有发射光源(红外线发光二极管)与接收光源的装置(红外线接收管)之间,红外线发光二极管负责发出光信号,红外线接收管负责接收发出的光信号,产生电信号。每转过一圈,光的明暗变化经历了一个正弦周期,即产生了方波信号。图4-2所示为转速传感器电路。红外接收管在正向工作电流为20m
18、A时,其导通电压为1.21.5V,所选用的发光二极管的正向压降一般为1.52.0V,电流为1020mA。R的计算公式为:R=U/I 。 由实验得:R3=680;R4=1k。 图4-2 转速传感器电路图光电传感器是应用非常广泛的一种器件,有各种各样的形式,如透射式、反射式等,基本的原理就是当发射管光照射到接收管时,接收管导通,反之关断。以透射式为例,如图4-3所示,当不透光的物体挡住发射与接收之间的间隙时,开关管关断,否则打开。为此,实际操作中可以制作一个遮光叶片如图4-4所示,安装在转轴上,当扇叶经过时,产生脉冲信号。当叶片数较多时,旋转一周可以获得多个脉冲信号。由于材料有限,本设计中没有设计
19、图4-4的遮光片,只在车轮的叶子上槽开一条小口。 图4-3光电传感器的原理图 图4-4 遮光叶片4.3转速信号处理电路设计怎样把红外传感器的信号转换成单片机所需要的有用信号呢?本设计采用通过使用比较器LM339来实现。如图4-5所示,当红外发射接收管都正常工作时,LM339的负输入端4为低电平,输出端2为高电平;当红外接收管被外物挡住时,红外接收管不工作,LM339的负输入端4为高电平,输出端2为低电平,单片机程序设置为外部中断下降沿触发有效,实现了中断触发功能。图4-5信号处理电路图4.4单片机AT89C51介绍6AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFals
20、h Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图4-6是常用的一种单片机,型号为AT89C51,它将计算机的功能都集成到这个芯片内部去了,就这么一个小小的芯片就能构成一台小型的电脑,因此叫做单片机。图4-6 AT89C51芯片它有40个管脚,分成两排,每一
21、排各有20个脚,其中左下角标有箭头的为第1脚,然后按逆时针方向依次为第2脚、第3脚第40脚。在40个管脚中,其中有32个脚可用于各种控制,比如控制小灯的亮与灭、控制电机的正转与反转、控制电梯的升与降等,这32个脚叫做单片机的“端口”,在单片机技术中,每个端口都有一个特定的名字,比如第一脚的那个端口叫做“P1.0”。AT89C51单片机的功能7:1主要特性:与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和
22、掉电模式片内振荡器和时钟电路 2管脚说明:管脚说明见图4-7。图4-7 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口被外部下拉为低电平时,将输出电流,
23、这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内
24、部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口。P3口管脚备选功能:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。
25、当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外
26、部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可
27、采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。4芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,
28、禁止所用其他芯片功能,直到下一个硬件复位为止。4.5 最小系统的设计4.5.1复位电路:复位电路见图4-8。89C51单片机8复位电路是指单片机的初始化操作。单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。图4-8复位电路复位功能: 复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。单片机9的复位
29、是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位(如图4-9(a)和按钮复位(如图4-9(b)两种方式。图4-9 RC复位电路单片机复位后的状态: 单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值,见表4-1。值得指出的是,记住一些特殊功能寄存器复位后的主要状
30、态,对于了解单片机的初态,减少应用程序中的初始化部分是十分必要的。 表4-1 寄存器复位后状态表特殊功能寄存器初始状态特殊功能寄存器初始状态ABPSW00H00H00HTMODTCONTH000H00H00HSPDPLDPHP0P3IPIE07H00H00HFFH*00000B0*00000BTL0TH1TL1SBUFSCONPCON00H00H00H不定00H0*B注:表4-1中符号*为随机状态。PSW00H,表明选寄存器0组为工作寄存器组;SP07H,表明堆栈指针指向片内RAM 07H字节单元,根据堆栈操作的先加后压法则,第一个被压入的内容写入到08H单元中;P0-P3FFH,表明已向各端
31、口线写入1,此时,各端口既可用于输入又可用于输出。IP00000B,表明各个中断源处于低优先级;IE000000B,表明各个中断均被关断; 系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。51单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,至于内部RAM内部的数据则不变。4.5.2晶振电路晶振
32、是晶体振荡器的简称,在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率是串联谐振,较高的频率是并联谐振。AT89C51单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,
33、电容应尽可能的选择陶瓷电容,电容值约为30F。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。晶体振荡电路如图4-10。晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。图4-10晶振电路4.5.3 最小系统的仿真最小系统的仿真图4-11图4-11 最小系统的仿真附最小系统仿真程序如下:#include sbit LED=P10; /定义LED接P1.0口/void Delay () /延时函数/unsigned char i,j; for(i=255;i0;i-) for(
34、j=255;j0;j-);void main () while(1) LED=0; / LED灭/ Delay (); /返回延时函数/ LED=1; /LED亮/ Delay (); /反回延时函数/ 4.6显示部分设计(1)许多电子产品上都有跳动的数码来指示电器的工作状态,其实数码管显示的数码均是由八个发光二极管构成的。每段上加上合适的电压,该段就点亮。LED数码有共阳和共阴两种,把这些LED发光二极管的正极接到一块(一般是拼成一个8字加一个小数点)而作为一个引脚,就叫共阳的,相反的,就叫共阴的,那么应用时这个脚就分别的接VCC和GND。再把多个这样的8字装在一起就成了多位的数码管了。实物
35、如图4-12图4-12数码管共阳型(图4-13)就是八个发光管的正极都连在一起 ,作为一条引线。AG段用于显示数字,字符的笔画,(dp显示小数点),每一段控制AGdp的亮与来。 内部结构:图4-13 共阳型LCD共阴型(图4-14)就是七个发光管的负极都连在一起 ,作为一条引线。AG段用于显示数字,字符的笔画,(dp显示小数点),每一段控制AGdp的亮与来。内部结构:4-14 共阴型LCD数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段
36、码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5840根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口有32个呢),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都
37、接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。(2)段码表表4-2为LED段码表表4-2 LED段码表显示
38、字 符共阴极段选码共阳极段选码显示字符共阴极段选码共阳极段选码012343FH06H5BH4FH66HC0HF9HA4HB0H99H567896DH7DH07H7BH6FH92H82HF8H80H90H(3)动态显示仿真(图4-15)图4-15 动态显示仿真图动态显示程序:#include#define uchar unsigned char#define uint unsigned intuint mm=1234; /显示1234/uchar jj;uchar code table=0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,; del
39、ay(uint m) uint i,j; for(i=m;i0;i-) for(j=110;j0;j-);xian_shi() uchar qian,bei,shi,ge; qian=mm/1000; bei=mm%1000/100; shi=mm%100/10; ge=mm%10; P2=0x80; P0=tableqian; delay(50); P2=0; P2=0x40; P0=tablebei; delay(50); P2=0;P2=0x20; P0=tableshi; delay(50); P2=0;P2=0x10; P0=tablege; delay(50); P2=0;本设计使
40、用的显示器是LED动态显示方式,其显示电路如图4-16所示。图4-16 LED显示部分4.7硬件系统电路形成4.7.1电路图硬件总电路的形成有以下几个部分组成:信号产生电路:当车轮转动时,红外传感器工作,光敏三极管C脚接比较器的4端。当红外发光管和光敏三极管对准时,光敏三极管C脚(比较器4端)接低电平。当红外发光管和光敏三极管不对准时,光敏三极管C脚(比较器4端)接高电平。信号处理电路:将光敏三极管C脚输入的信号和信号产生电路中R5、R6的中间电位作为比较器LM339的输入端。输入4端输入为负时,输出端2端为高电平,4端为正时,输出端2端为低电平。比较器LM339起到了一个信号的转换作用。单片
41、机最小系统电路:包括复位电路、晶振电路。本设计4.4中有详细介绍。显示电路:主要由四位数码管、数码管驱动电路组成。本设计4.5中有详细介绍。硬件原理图见附录A。4.7.2电路原理分析给电机上电,电机带动车轮转动,制作的遮光片上留有一条从圆心向外圆的长方形空隙,红外传感器U发射管和接收管安装在遮光片的两端。遮光片转动,一圈有一个时刻红外发射管和接收管对准,既正常工作。VCC到R4到U1的发射管到地构成一个回路,发射管处于导通状态并发光。VCC到R3到U1接收管到地构成一个回路,当红外发射管和接收管对准时,红外接收管导通,U2比较器LM339的4端为低电平,比较器2端输出高电平;当红外发射管和接收
42、管没对准时,红外接收管不导通,U2比较器LM339的4端为高电平,比较器2端输出低电平。比较器2端输出的脉冲送至U3单片机12脚,输入端接的是单片机外部中断0,利用单片机的定时功能,定时器方式采用方式2模式(8位自动重载),程序中设置定时间隔为250us,在车轮转一圈中记有多少个250us(Int0_num),再用250us*Int0_num,既车轮转动一圈所需要的时间。利用公式(2-10)得出速度。最后数码管显示速度。第5章 系统软件设计硬件电路完成以后,进行系统软件设计。首先要分析系统对软件的要求,然后进行软件的总体的设计,包括程序的总体设计和对程序的模块化设计。按整体功能分为多个不同的模
43、块,单独设计、编程、调试,然后将各个模块装配联调,组成完整的软件。根据设计的要求,单片机的任务是:内部进行计数,在计算出速度后显示。软件编程用C语言完成的,需要能掌握C语言,还要熟练AT89C51单片机10。从程序流程图、编写程序、编译,到最后的调试,是很复杂的。下面作简单介绍:系统软件主程序的功能是完成系统的初始化、显示程序。5.1主程序初始化(1)定时器的初始化 AT89C51有两个定时器/计数器11T0和T1,每个定时器/计数器均可设置成为16位,也可以设置成为13位进行定时或计数。计数器的功能是对T0或T1外来脉冲的进行计数,外部输入脉冲负跳变时,计数器进行加1。定时功能是通过计数器的
44、计数来实现的,每个机器周期产生1个计数脉冲,即每个机器周期计数器加1,因此定时时间等于计数个数乘以机器周期。定时器工作时,每接收到1个计数脉冲(或机器周期)则在设定的初值基础上自动加1,当所有位都位1时,再加1就会产生溢出,将向CPU提出定时器溢出中断身请。当定时器采用不同的工作方式和设置不同的初值时,产生溢出中断的定时值和计数值将不同,从而可以适应不同的定时或计数控制。定时器有4种工作方式:方式0、方式2、方式2和方式3,在此对工作方式不做具体介绍。工作方式寄存器TMOD的设定:GATEC/TM1M0GATEC/TM1M0TMOD各位的含义如下:GATE:门控位,用于控制定时/计数器的启动是否受外部中断请求信号的影响。C/T:定时或计数方式选择位,当C/T=1时工作于计数方式;当C/T=0时工作于定时方式。M1、M0为工作方式选择位 ,用于对T0的