毕业设计(论文)-基于单片机的高分辨率转速测量仪设计.doc_第1页
毕业设计(论文)-基于单片机的高分辨率转速测量仪设计.doc_第2页
毕业设计(论文)-基于单片机的高分辨率转速测量仪设计.doc_第3页
毕业设计(论文)-基于单片机的高分辨率转速测量仪设计.doc_第4页
毕业设计(论文)-基于单片机的高分辨率转速测量仪设计.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

扬 州 市 职 业 大 学毕 业 设 计(论 文)设计(论文)题目:高分辨率转速测量仪系 别: 电子系 1专 业: 应用电子 1班 级: 03 电(2)1姓 名: 1学 号:指导教师: 工程师 完成时间: 06年5月 目录摘要3第1章 AT89C51单片机概述1.1 单片机的基本知识41.2 单片机的应用11第2章 整体方案设计 2.1 转速的测量12 2.2 共阳极LED数码显示器14 2.3 硬件部分设计15 2.4 软件部分设计16第3章 系统调试 3.1 硬件调试17 3.2 软件调试17总结18元器件清单19附录一:程序框图20附录二:硬件电路图22附录三:软件程序清单23摘要高分辨率转速测量仪是单片机系统的简单应用。它是硬件和软件相配合使用的,这样可以弥补硬件成本高、结构复杂的特点,提高运行速度。该转速测量仪经济实惠,适用于电机、电扇、车轮等的转速。还可以做成一个限速装置,用于一些特定的场合。首先,电路是由控制电路部分和显示电路部分两大部分组成。利用单片机的程序进行控制,并用了LED数码管作动态扫描进行显示实时转速。此装置的测量范围是500r/min5000r/min。关键词1.高分辨率 2.转速 3.单片机 4.LED数码管 5.动态扫描6伟福仿真器课题简介1内容 此系统能对某种转速(如:电机、风扇、车轮等)作快速高分辨率测量。转速显示位数能达到34位并用LED数码管作动态扫描显示。软件部分可以用INT0、INT1测脉冲宽度的方法测出周期,然后用除法运算求出转速并送显示。2应用范围 本测量仪器是一种分辨率较高的转速测量仪器。它可以应用于电机的转速测量,一般的测量范围可以在500r/min5000r/min之间,显示位数达到四位。可以作为一些需要转速实时控制的场所,根据操作者的需要进行调速。3市场调查转速测量在国民经济的各个领域,都是必不可少的。随着电子技术发展,单片机技术和大规模可编程数字逻辑电路的普及,为转速仪表结构简单化提供了技术基础。智能芯片的运用,使同一仪表硬件,具有多种不同功能的软件,为多样化系列化带来了便利。 智能仪表的软件,可为不同需求量身定做,使得智能仪表又具个性化的特点。市场上的转速测量仪器可分为以下六类:1离心式转速表,是机械力学的成果;2磁性式转速表,是运用磁力和机械力的一个典范;3电动式转速表,巧妙运用微型发电机和微型电动机将旋转运动异地拷贝;4磁电式转速表,电流表头和传感器都是电磁学的普及运用; 5闪光式转速表,人类认识自然的同时也认识了自我,体现了人类的灵性;6电子式转速表,电子技术的千变万化,给了我们今天五彩缤纷的世界,同样也造就了满足人们各种需要的转速测量仪表。综上所述,我选择了电子式转速测量仪做为研究对象。电子式转速表是一个比较笼统的概念:以现代电子技术为基础,设计制造的转速测量工具。它一般有传感器和显示器,用单片机来控制,利于实现转速测量智能化。第1章 AT89C51单片机概述1.1 单片机的基本知识AT89C51单片机与Intel 80C51单片机在引脚排列、工作特性、硬件组成、指令系统等方面完全兼容。其主要特性是:1. 内存4KB的Flash存储器,擦写次数1000次;2. 内存128字节的RAM;3. 具有32根可编程I/O线;4. 具有2个16位可编程定时器; 5. 具有5个中断源、2级优先权的中断结构;6. 具有1个全双工的可编程串行通信接口;7. 具有1个数据指针DPTR;8. 两种低功耗工作模式,即空闲模式和掉电模式;9. AT89C51的工作电压为5(10.2)V且典型值是5V;MCS-51单片机芯片内部的逻辑结构如图1.1所示。现对各组成部分的情况介绍如下: 1. 中央处理器(CPU)中央处理器简称CPU,是单片机的核心,完成运算和控制操作。按其功能,中央处理器包括运算器和控制器两部分电路。1. 运算器电路运算电路是单片机的运算部件,用于实现算术和逻辑运算。图1.1中的ALU(算术逻辑单元)、ACC(累加器)、B寄存器、程序状态字和两个暂存寄存器等属于运算器电路。图1.1 运算电路以ALU为核心,基本的算术运算和逻辑运算均在其中进行,包括加、减、乘、除、增量、减量、十进制调整、比较等算术运算,与、或、异或等逻辑运算,左、右移位和半字节交换等操作。运算和操作结果的状态寄存器(PSW)保存。2. 控制器电路控制电路是单片机的指挥控制部件,保证单片机各部分能自动而协调地工作。图1.1中的PC(程序计数器)、PC加1寄存器、指令寄存器、指令译码器、定时与控制电路等均属于控制电路。单片机执行指令是在控制电路的控制下进行的。首先从程序存储器中读出指令,送指令寄存器保存,然后送指令译码器进行译码,译码结果送定时控制逻辑电路,由实时控制逻辑产生各种定时信号和控制信号,再送到系统的各个部件去进行相应的操作。这就是执行一条指令的全过程,执行程序就是不断重复这一过程。2. 内部数据存储器内部存储器在图1.1中包括RAM(128*8)和RAM地址寄存器等。实际上80C51芯片中共有256个RAM单元,但其中后128单元被专用寄存器占用,供用户使用的只有前128单元,用于存放可读写的数据。因此,通常所说的内部数据存储器是指前128单元,简称“内部RAM”。3. 内部程序存储器内部程序存储器在图1.1中包括(4K*8)和程序地址寄存器等。80C51共有4KB掩膜ROM,用于存放程序和原始数据。因此称之为程序存储器,简称“内部ROM”。4. 定时器/计数器出于控制应用的需要,80C51共有两个16位的定时器/计数器,以实现定时或计数功能,并以其定时或计数结果对单片机进行控制。图1.1中,定时器是和中断、串行端口画在一起的。5. 并行I/O口MCS-51共有4个8位的并行I/O口(P0、P1、P2、P3),以实现数据的并行输入输出。在图1.1中,4个并行口是分别画出的。6. 串行口MCS-51单片机是有一个全双工的串行口,以实现单片机和其它数据设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。在图1.1中,串行端口是和中断、定时器一起画出的。7. 中断控制系统MCS-51单片机的中断功能较强,以满足控制应用的需要。80C51共有5个中断源,即外中断2个,定时/计数中断2个,串行中断1个。全部中断分为高级和低级共两个优先级别。在图1.1中,中断控制电路和串行端口、定时器一起画出。8. 时钟电路MCS-51芯片的内部有时钟电路,但石英晶体和微调电容需外接,所以在图1.1中时钟电路是用石英晶体和电容的符号表示的。时钟电路为单片机产生时钟脉冲序列,典型频率为12MHz。9. 位处理器单片机主要用于控制,需要有较强的位处理功能,因此位处理器是它的必要组成部分,常把位处理器称为布尔处理器。位处理器以状态寄存器中的进位标志位C为累加位,可进行置位、复位、取反、等于“0”转移、等于“1”转移且清“0”以及C与可寻址位之间的传送、逻辑与、逻辑或等位操作。位处理操作也是通过运算器实现的,但图1.1中没有具体画出。一、引脚排列及功能80C51是标准的40引脚双列直插式集成电路芯片,引脚排列请参见下页图1.21.信号引脚介绍输入/输出口线P0.0P0.7 P0口8位双向口线;P1.0P1.7 P1口8位双向口线;P2.0P2.7 P2口8位双向口线;P3.0P3.7 P3口8位双向口线;ALE 地址锁存控制信号 在系统扩展时, ALE用于控制把P0口输出的低8位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。此外由于ALE是以六分之一晶振频率的固定频率输出的正脉冲,因此可作为外部时钟或外部定时外部定时外部使用。/PSEN 外部程序存储器读选通信号 图1.2 在读外部ROM时/PSEN有效(低电平),以实现外部ROM单元的读操作。/EA 访问程序存储器控制信号当/EA信号为低电平时,对ROM的读操作限定外部程序存储器,而当/EA信号为高电平时,则对ROM的读操作是从内部程序存储器开始,并可延续至外部程序存储器。RST 复位信号当输入的复位信号延续2个机器周期以上高 电平时即位有效,用以完成单片机的复位操作。 XTAL1和XTAL2 外接晶体引线端当使用芯片内部时钟时,此二引脚端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。 Vss 地线 Vcc +5V电源以上就是80C51单片机芯片40条引脚的定义及简单功能说明。2.信号引脚的第二功能 由于工艺及标准化等原因,芯片的引脚数目是有限的,例如MCS-51系列芯片引脚数目40条,但单片机为实现其功能所需要的信号数目却远远超过此数,因此就出现了供需矛盾。如何解决这一矛盾?复用是唯一可行的办法,即给一些信号引脚赋予双重功能。第二功能信号定义主要集中在P3口线中,另外再加上其他信号线.1.常见的第二功能信号 P3口线的第二功能 P3的8位口线都定义有第二功能,祥见表1-1表1-1 P3口线的第二功能口线第 二功能信号名称P3.0RXD串行数据接收P3.1TXD串行数据发送P3.2/INT0外部中断0申请P3.3/INT1外部中断1申请P3.4T0定时器/计数器0计数输入P3.5T1定时器/计数器1计数输入P3.6/WR外部RAM写选通P3.7/RD外部RAM读选通EPROM存储器程序固化所需要的信号有内部EPROM的单片机芯片,为写入程序需提供专门的编辑脉冲电源,它们也是由信号引脚以第二功能的形式提供的,即:编程脉冲: 30脚(ALE/PROG)编程电压(25V): 31脚(/EA/Vpp)备用电源引入MCS-51单片机的备用电源也是以信号第二功能的方式由9脚提供电压,以保护内部RAM中的信息不丢失。2.引脚的第一、第二功能不会混淆 一个信号引脚,又是第一功能又是第二功能,会不会在使用时引起混乱和造成错误呢?理由有三:1. 对于各种型号的芯片,其引脚的第一功能信号是相同的,所不同的只在引脚的第二功能信号上。2. 对于9,30和31各引脚,由于第一功能与第二功能信号是单片机在不同工作方式下的信号,因此不会发生使用上的矛盾。3. P3口线的情况却有所不同,它的第二功能信号都是单片机的重要控制信号。因此在实际使用时,总是先按需要优先选用它的第二功能,剩下不用的才作为引脚表现出的外特性或硬件特性,在硬件方面只能引用功能,即通过引脚组建系统。二、存储器组织和特殊功能寄存器MCS-51单片机片内集成有程序存储器ROM和数据存储器RAM,在使用过程中用户还可以根据需要对存储器进行外部扩展。从物理上分,MCS-51单片机存储器有片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器4个存储空间。从逻辑上分,MCS-51单片机有片内外统一的程序存储器地址空间、内部数据存储器地址空间和外部数据存储器地址空间3个存储器地址空间。为了区分不同的存储器空间,访问这3个不同的逻辑空间时采用了不同形式的指令。1. 程序存储器程序存储器用于存放编好的程序和表格常数,MCS-51单片机内部有4KB的程序存储器。EA引脚的连接对MCS-51单片机而言,在正常运行是,应把EA引脚接高电平,使程序从内部ROM开始运行。目前很多厂家的单片机内部ROM容量能够满足使用需求,通常没有必要再进行外部ROM的扩展。一些关键的存储单元 0000H0002H,系统复位后,PC值为0000H,系统将从0000H单元开始执行程序,一般在该单元区域中存放一条跳转指令,用户设计的主程序从跳转后的地址开始存放。另有5个特殊单元,分别对应于5个中断源的入口地址。 0003H000AH:外部中断0中断地址区; 000BH0012H:定时器/计数器0中断地址区; 0013H001AH:外部中断1中断地址区; 001BH0022H:定时器/计数器1中断地址区; 0023H002AH:串行中断地址区。 中断响应后,按中断种类自动转到各中断区的首地址去执行程序,一般情况下8个单元难以存下一个完整的中断服务程序,通常从中断地址区首地址开始存放一条无条件转移指令,以便中断响应后,通过中断地址区转到中断服务程序的实际入口地址。2. 数据存储器单片机的数据存储器由读写存储器RAM组成。其最大容量可扩展到64kb,用于存储实时输入的数据。8051内部有256个单元的内部数据存储器,其中00H7FH为内部随机存储器RAM,80HFFH为专用寄存器区。实际使用时应首先充分利用内部存储器,从使用角度讲,内部数据存储器的结构和地址分配是十分重要的。8051内部数据存储器地址由00H至FFH共有256个字节的地址空间,该空间被分为两部分,其中内部数据RAM的地址为00H7FH(即0127)。而用做特殊功能寄存器的地址为80HFFH。在此256个字节中,还开辟有一个所谓“位地址”区,该区域内不但可按字节寻址,还可按“位(bit)”寻址。对于那些需要进行位操作的数据,可以存放到这个区域。从00H到1FH安排了四组工作寄存器,每组占用8个RAM字节,记为R0R7。究竟选用那一组寄存器,由前述标志寄存器中的RS1和RS0来选用。在这两位上放入不同的二进制数,即可选用不同的寄存器组。3. 特殊功能寄存器特殊功能寄存器(SFR)的地址范围为80HFFH。在MCS51中,除程序计数器PC和四个工作寄存器区外,其余21个特殊功能寄存器都在这SFR块中。其中5个是双字节寄存器,它们共占用了26个字节。特殊功能寄存器反映了8051的状态,实际上是8051的状态字及控制字寄存器。用于CPU PSW便是典型一例。这些特殊功能寄存器大体上分为两类,一类与芯片的引脚有关,另一类作片内功能的控制用。与芯片引脚有关的特殊功能寄存器是P0P3,它们实际上是4个八位锁存器(每个I/O口一个),每个锁存器附加有相应的输出驱动器和输入缓冲器就构成了一个并行口。MCS51共有P0P3四个这样的并行口,可提供32根I/O线,每根线都是双向的,并且大都有第二功能。三、时钟电路和工作时序XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。由于输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。如图1.3图1.3四、复位方式与电路复位就是通过某种方式,使单片机内各寄存器的值变为初始状态的操作。MCS-51单片机在时钟电路工作以后,在RESET端持续给出2个机器周期的高电平就可以完成复位操作。复位分为上电自动复位和手动复位两种方式。本系统采用上电复位方式。上电复位是在单片机接通电源时,对单片机的复位。上电复位电路如下图1.4: 在上电瞬间RST端与VCC电位相同,随着电容上电压 的逐渐上升,RST端电位逐渐下降。上电复位所需要的最短时间是振荡器建立时间加2个机器周期五、中断系统计算机暂时中止正在执行的主程序,转去执行中断服务程序,并在中断服务执行完了之后自动回到源程序处继续执行。使用中断系统可有效的改善计算机性能,主要表现如下:(1)有效的解决了快速CPU与慢速外设之间的矛盾可使CPU与外设并行工作,大大提高了工作效率。(2)可及时处理控制系统中许多随机产生的参数和信息,即计算机有实时处理的能力,从而提高了系统的性能。(3)使系统具备了处理故障的能力,提高了系统的可靠性。下面说说有关中断的优先级及中断的条件、过程与时间。中断的优先级:如果在执行主程序时只有一个中断请求源请求中断,而这时CPU又是对中断开放的那么这个中断立即得到响应。然而由于中断是随机产生的,中断源又不止1个,因此往往会出现这样的情况:几个中断源同时请求中断,或者当某一个中断正在响应中(即正在执行该中断源的中断服务程序),又有其他中断源请求中断,这是中断一般会按如下原则进行处理:(1)不同级的中断源同时请求中断时先高后低;(2)同级的中断源同时申请中断时事先规定;(3)处理低级中断又收到高级中断请求时停低转高;(4) 处理高级中断又收到低级中断请求时高不理低;MCS-51单片机的中断系统对优先级的控制比较简单,只规定了两个中断优先级,对与每一个中断源均可编程为高优先级中断或低优先级中断。在同一个优先级中,五个中断优先级的次序如下:外部中断0(IE0)定时器/计数器T0溢出中断(TF0)外部中断1(IE1)定时器/计数器T1溢出中断(TF1)串行口中断(RI+TI)MCS-51单片机中有1个中断优先级寄存器IP,字节地址为B8H。对于每一个中断源,均可通过IP的设置来确定优先等级,置1为高优先级,反之为低。中断的条件:单片机响应中断的条件为中断源有请求(中断允许寄存器IE相应位置1),且CPU开中断(即IE=1)。这样,在每个机器周期内,单片机对所有中断源进行顺序检测,并可以在任一个周期的S6期间,找到所有有效的中断请求,还对其优先级进行排队。但必须以下条件:(1)无同级或高级正在服务;(2)现行指令执行到最后1个机器周期且已结束;(3)若现行指令为RETI或需访问特殊功能寄存器IE或IP的指令时,执行完该指令且紧随其后的另一个指令也执行完。单片机便在紧接着的下1个机器周期的S1期间响应中断。否则,将丢弃中断查询的结果。中断响应过程:单片机一旦响应中断,首先对响应的优先级有效触发器置位,然后执行1条由硬件产生的子程序调用指令,把断点地址压入堆栈,再把与中断源相对应的中断服务程序的入口地址送入程序计数器PC,同时清除中断请求标志(串行口中断和外部电平处罚中断除外),从而程序转移到中断服务程序。以上功能均由系统完成。 由上述过程可知,MCS-51单片机响应中断后,只保护断点而不保护现场(如累加器A、工作寄存器Rn以及程序状态字PSW等),且不能清除串行口中断标志TI和RI,也无法清除外部中断电平触发信号,这些在编制程序时都要加以考虑。各中断源所对应的中断服务程序入口地址如下:中断源 入口地址外部中断 0 0003H定时器T0中断 000BH外部中断1 0013H定时器T1中断 001BH 串行口中断 0023HCPU从上面相应的地址开始执行中断服务程序直到遇到1条RETI指令为止。RETI指令表示中断服务程序的结束。CPU执行该指令,一方面清除中断响应时所置位的优先级有效触发器;另一方面从堆栈栈顶弹出断点地址送入程序计数器PC,从而返回主程序。若在中断服务程序的开始安排了保护现场指令(一般均为相应寄存器内容入栈或更换工作寄存器区),则在RETI指令前应有恢复现场指令(相应寄存器内容出栈或换回原工作寄存器区)。 中断响应的时间:所谓中断响应时间是指从中断请求标志位到转入中断服务程序入口所需要的机器周期,中断响应最短需要3个机器周期(1条长调用指令需2个机器周期,加上查询的1个机器周期)。下面谈谈外部中断及中断请求的撤除:(1)外部中断:MCS-51单片机的中断系统有2个外部中断源,引脚信号为INT0 和INT1(即P3.2和P3.3)。其中断请求触发信号有电平触发和边沿触发两种,当TCON寄存器中的IT0位和INT1位为“0”时采用电平触发;为“1”时采用边沿触发。 在电平触发方式下,单片机在每1个机器周期的S5P2期间采样中断输入信号INTx的状态,若为低电平,则可直接触发外部中断,这样就使得CPU对外部的中断申请能得以及时的响应。在这一触发方式中,中断源必须持续请求,一直到中断产生为止。然后,在中断服务程序返回之前,必须撤除中断请求信号,否则机器将认为又发生1次中断请求。所以电平触发方式适合于外部中断输入为低电平,且在中断服务程序中能清除该中断源的申请信号的情况。(本电路就是采用这一方式) 边沿触发方式适用于以负脉冲形式输入的外部中断请求。 由于外部中断源在每个机器周期被采样1次,所以输入的高电平或低电平必须保持12个振荡周期,以保证能被采样到。 (2)中断请求的撤除: CPU响应中断请求后,在中断返回前,必须撤除请求,负责会错误的再一次引起中断过程。我们在初始编程时就犯了这样一个错误,认为在中断中还可以跳出来。1.2 单片机的应用由于单片机具有体积小、重量轻、价格便宜、功效低、控制功能强及运算速度快等特点,因而在国民经济建设军事及家用电器等各个领域均得到了广泛应用。按照单片机的特点,起应用可分为单机应用和多机应用。在一个应用系统中,只有用1片单片机称为单机应用,这是目前应用最多的一种方式。单片机应用的主要领域有:1. 测控系统。用单片机可以构成各种不太复杂的工业控制系统、自适应控制系统、数据采集系统等,达到测量与控制的目的。如一般温度控制、液面控制、简单生产线顺序控制等。2. 智能仪表。用单片机改造原有的测量、控制仪表,促进仪表向数字化、智能化、多功能化、综合化、柔性化方向发展。如:温度、压力、流量、浓度等的测量、显示、控制仪表,通过采用单片机软件编程技术,不能完全测量,而且还具有运算、误差修正、线性化、零漂移处理、监控功能于一体。3. 机电一体化产品。单片机与传统的机械产品相连接,使传统机械产品结构简单化,控制智能化。这种新一代机电一体化产品如简易数控机床、电脑绣花机、医疗器械等。4. 智能接口。在计算机控制系统,特别是在较大型的工业测、控制系统中,用单片机进行接口的控制与管理加之单片机与主机的并行工作,大大提高了系统的运行速度。例如:在大型数据采集系统中,用单片机对摸/数转换接口进行控制不仅可提高采集速度,而且还能对数据进行预处理,如数字滤波、线性处理、误差休整等。5. 智能民用产品。如在家用电脑、玩具、游戏机、声像设备、电子称、收银机、办公设备、厨房设备等许多产品中,单片机控制器的引入,不仅使产品的功能大大提高,性能得到提高,而且获得了良好的使用效果。单片机的多机应用系统可分为功能集散系统、并行多机处理及局部网络系统。1. 功能集散系统。多功能集散系统是为了满足工程系统多种外围功能的要求而设置的多机系统。例如:1个加工中心的计算机系统除完成机床加工运行外,还要控制对刀系统、坐标指示、刀库管理、状态监利、伺服 驱动等结构。并行多机控制系统。并行多控制系统主要解决工程应用系统的快速性问题,以便构成大型实时工程应用系统典型的有快速并行采集数据、处理系统、实时图象处理系统等。2. 局部网络系统。单片机网络系统的出现,使单片机进入了一个新的领域。目前单片机构成的网络系统的主要是分布式测、控系统、单片机主要用 于系统中的通信控制,以及构成各测、控用子级系统。综上所述,目前单片机已用于工业控制、机电一体化设备、仪表设备、信号设备、现代化兵器、交通能源、商用设备、医疗设备及家用电器等各个领域,随着单片机性能的不断提高,它的应用会更加广泛。第2章 整体方案设计2.1 转速的测量首先谈一下转速测量的方法,测转速也就是测频率。在显示精度、可靠性、成本和使用灵活性上有一定要求时,就可直接采用脉冲频率运算型转速表。频率运算方法,有定时计数法(测频法)、定数计时法(测周法)和同步计数计时法。定时计数法(测频法)在测量上有的误差,低速时误差较大;定数计时法(测周法)也有个时间单位的误差,在高速时,误差也很大。同步计数计时法综合了上述两种方法的优点,在整个测量范围都达到了很高的精度,万分之五以上的测量转速仪表基本都是这种方法。同步计数计时法,是随着单片机的普及而得到普及运用。同步计数计时法是怎样综合前两种方法的优点的呢?我们还是用时序来分析。定时计数时序: 时序图一 时序图二时序图一:计时和计数脉冲不同步;时序图二:计时和计数脉冲同步。但不管计时和计数脉冲同步与否,都有多一少一的误差。同理,定数计时也有多一少一的误差。 同步计数计时时序图当定时器与被测脉冲同步计数时,为避免被测脉冲计数多一少一的误差,将定时作延时调整,等待被测脉冲计数完整;与此同时,取时间基准脉冲计数值。这样脉冲计数N为零误差,时间基准脉冲计数T有多一少一的误差。当时间基准脉冲源(晶振)误差小于十万分之一时,误差源主要是时间基准脉冲计数多一少一引起。频率f=N/T,假定定时为1秒,时间基准脉冲周期为100S,T=10000+Tf=N/(10000+T),误差f/f=N/(10000+T)-N/(10000+T1)/N/(10000+T) =1-(10000+T1)/(10000+T) =1/(10000+T)可见误差小于万分之一,随着晶振频率的提高误差减小。当采用单片机进行计数和运算时,还有中断不及时引起的误差。频率与转速的关系:f=P*v/60f表示频率,P表示每旋转一周产生的脉冲个数,v表示转速亦即每分钟旋转的转数。T=1/f从以上的分析可以考虑硬件部分用遮断式光电测速传感器以及单片机配合LED数码管显示来完成硬件电路的设计,方案图如下: 遮断式光电测量2.2 共阳极LED数码显示器既然用到显示就不得不谈一下共阳极LED数码显示器。LED数码显示器是1种由LED发光二极管组合显示字符的显示器件。它使用了8个LED发光二极管,其中7个用于显示字符,1个用于显示小数点,故通常称之为7段发光二极管,其内部结构见下图: 共阳极接法LED数码显示器有两种连接方法,本产品用的是共阳的。当然也可以采用共阴极。把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极LED接+5V,每个发光二极管的阴极通过电阻与输入端相连。当阴极端输入低电平时,段发光二极管就导通点亮,而输入高电平时则不亮。为了显示字符,要为LED数码显示器提供显示段码(或称字形代码),组成一个“8”字形字符的7段,再加上1个小数点位,共计8段,因此提供给LED数码显示器的显示段码为1个字节。各段码位的对应关系如下:段码位D7D6D5D4D3D2D1D0显示段dpgfedcba 用LED数码显示器显示十六进制数和空白字符与P的显示段码如下表:字型共阳极段码共阴极段码字型共阳极段码共阴极段码0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHb83H7CH3B0H4FHCC6H39H499H66HdA1H5EH592H6DHE86H79H682H7DHF84H71H7F8H07H空白FFH00H880H7FHP8CH73H2.3 硬件部分设计下面谈一下本设计的最小系统,电路图如下:MCS-51单片机内部有一个用于构成震荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是放大器的输入端和输出端。放大器作为反馈组件的片外晶体或陶瓷谐振器一起构成了一个自激震荡器。在电容的选择上一定要慎重,本电路采用6MHz的晶振和两个30pF的瓷片电容组成一个震荡电路从而满足了需求。复位电路采用按键手动复位的方式,这样可以避免上电复位的麻烦。下图是一个带有桥式整流电路的电容滤波的7808稳压的稳压电路,通过变压器将220V的交流电通过这些环节得到5V左右的交流电压,以便提供单片机的工作电压。上述就能让单片机正常工作的最小系统,就本次毕业设计来说,因为要求必须达到四位LED显示,所以就得考虑外部电路的可行性。电路中的电阻的选材要格外的小心,以免LED因电流太大被烧坏。下面的电路图是一个LED数码显示管的工作原理,就此图对电阻R1R9的选材作如下分析:首先,采用共阳极的LED数码显示管,这样做的理由是用灌电流的方法使得LED管的显示能达到足够的亮度,人眼看的很舒服。LED数码管正常发光时,每段工作电流为510mA,每段极限工作电流20mA,全部笔划点亮的电流为3570mA,正向电压U2V。由上图的电路我们可以看出5V的电源通过VT9、R9接单片机的P2.0口,P2.0口由软件置0也就是说该口是低电平,形成了通路。根据计算:由于一个LED需要20mA的电流,此电路有八个LED所以需要160mA的电流即ICQ=160mA IBQ=ICQ=160mA 放大倍数考虑余量80倍 IBQ=ICQ/80=160/80=2mA UBEQ=0.7V(硅管) R9=(VCC-UBEQ)/IBQ=(5-0.7)/2m2k欧姆 考虑实际UECQ=0.3V UECQ=VCC-ICQRe Re=(VCC-UECQ)/ICQ=(5-0.3)/160m=30欧姆(舍去) R1=(VCC-UECQ-U-UBEQ)/I =(5-0.3-2-0.7)/20m =100欧姆通过上面的计算采用R1R8为100欧姆,R9R12为2千欧姆。2.4 软件部分设计至于软件部分可以用INT0、INT1测脉冲宽度的方法测出周期,然后用除法运算求出转速并送显示。由于要用数码管显示,数码管的一些工作原理在上面已经介绍过,这里就不做详细说明了。这里谈一下在软件里如何送显示,可以用MOVC 这条指令进行。通过内部查到一些代码,然后将高低电平送给LED的控制段,从而实现数码显示的效果。 延时子程序的编写很有必要讲一下。举下面一例说明:DELAY: MOV R7, #255 ; 延时子程序,把立即数255送入寄存器R7 D1: MOV R6, #255 D2: DJNZ R6,D2 ;R6中的数减一,再判断R6中是否位0,不为0继续执行这条,为0向下DJNZ R7,D1 ;不为0跳转到标号D1出RET ;子程序返回中断服务程序框图: 在读取转速的时候必须以运行中读数,所以可以采用先关中断,此时读取周期值并保存起来,然后再开中断进行运算。这样就可以保证读数的准确性和可靠性。第3章 系统调试3.1 硬件调试排除系统的硬件电路故障,主要有逻辑错误,可靠性差,电源故障等问题,其调试方法有脱机调试和联机调试。其脱机调试是在样机加电之前,先用万用表等工具根据硬件原理图和装配图,仔细检查样机电路的正确性,并核对元件型号,规格和安装是否符合要求,末期联机调试就是通电后,对波形等观察分析。3.2 软件调试根据程序框图编好程序,用伟福软件进行调试。调试时设置一些寄存器的值,让程序单步执行,看所用寄存器的变化状态是否符合要求,不符合则修改直到成功为止。主要是对每个模块中、子程序进行调试,可利用伟福软件进行单步运行和断点运行调试。通过检查拥护CPU现场,RAM内容及I/O口状态,检测呈现执行结果是否符号设计要求。总结:本次毕业设计是我们三年大学所学专业综合运用的成果,可以说测转速的仪器在国内外都很多,我所做的只是一个最简单的系统。在做的过程中必须对单片机的硬件和软件知识有充分的了解和熟知,才能设计的时候条理清晰、理论与实践相结合。硬件部分一定要考虑周到,不然很容易出现这样那样的问题,到时修改都是件麻烦的事。用每一个元器件我都要考虑能否用这个,用其它的会不会更好,通过几次反复的比较论证,这样不管从知识还是从能力方面讲都会有提高。软件部分的考虑要结合所学单片机编程的一般常识来思考,做到有目的的思考问题,调试时要注意细节还要有耐心。特别是自己开始编写简单的程序时都不是太熟悉,这时应该理论学习和工作实际紧密结合起来,互相参照,可以取得事半功倍的效果。应该根据自己的知识结构和水平确定一个合理的“攻关”顺序,并大体上拟定一个进度表,根据自己完成的情况进行调整,如果碰到不理解的概念、原理和方法,给学习带来困难,甚至无法做下去的时候,就要和导师进行沟通,也许老师的一句话就会给自己很多的启示。编写源代码的时候最好是编写一个小模块就进行调试,这样可以避免设计的最后出现太多的错误而乱成一团糟。一步步地做下去之后,你会发现要做出来并不难,只不过每每做一会儿会发现一处错误要修改,就这样在不断的修改调试,再修改再调试。在这样理论与实践互动过程中学到的知识,对以后的工作和学习来说都是有益而无害的。最后的工作是软件结合硬件进行调试,出错了就的多思考以求更大的突破。如果实在搞不定的话,只能请教老师了,他们会给我提出改进的方案。顺着他的思路继续思考,受益匪浅!其实做什么事情都是一样只要有恒心,就一定能完成。虽说万事开头难,但是只要我们多多研究多多向老师同学请教,再难的事情也会迎刃而解的。在这次毕业设计的几个月中,使我深深地体会到团队合作精神的重要性。一个人是很难做到的,只有大家在一起研究讨论才能完成。在对课题研究中,会遇到很多问题,有些是一个人无法解决的,这就要三个人一起研究,取长补短发挥每个人的优点把大多数的问题都解决了,然后不懂的就去问老师。在此我特别感谢班主任给我的指导,感谢老师给我这样的机会锻炼。在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。在整个课题开发过程中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中的探索的艰难和成功的喜悦。虽然这个课题还不是很完善,但是在设计过程中所学到的东西是这次毕业设计的最大收获和财富,使我终身受益。元器件清单序号名称规格型号数量封装1.单片机AT89C511DIP402.桥式整流器13.稳压管780514.电源插座15.电解电容100UF/50V1RB.2/.410UF/50V26.瓷片电容30PF2RAD0.17.独石电容0.118.按键39.LED发光二极管1RAD0.110.晶振6MHz1XTAL111.电阻2K4RAD0.4100810K12001510112.三极管855012T0-92A13.LED数码管SM4105641附录一:程序框图附录二:硬件电路图附录三:软件程序清单ORG 0000HLJMP START;跳转到初始化程序ORG 0003HLJMP INT0;跳转到INTO中断入口地址ORG 0013HLJMP INT1;跳转到INTO中断入口地址ORG 0030H START: MOV SP,#6FH;设置堆栈指针 MOV IE,#10000101B;初始化 MOV TMOD,#10011001B MOV TCON,#00000101B SETB TR0;启动定时/计数器 SETB TR1 MAIN: MOV P1,#0FFH;清显示 MOV P2,#0FFH CLR EX0;关中断,以运行中读数 CLR EX1 MOV A,30H;将T0、T1暂存值相加,结果得双字节除数 ADD A,32H MOV R4,A MOV A,31H ADDC A,33H MOV R5,A SETB EX0;开中断 SETB EX1 MOV R0,#00H;存除数 MOV R1,#0A3H MOV R2,#0E1H MOV R3,#11H LCALL SH_42DIV;调用四字节/双字节子程序 MOV 10H,R0;存商(双字节) MOV 11H,R1 LCALL SBIN_BCD;调用双字节转换成三字节BCD码子程序 MOV A,12H; 取BCD码高字节 JZ LOOP;判断高字节为0则跳转送显示,不为0则执行以下 ANL A,#0FH;取第一位(高位) MOV DPTR,#DAT;表头首地址 MOVC A,A+DPTR;查表得七段码 MOV P1,A;送P1口显示 CLR P2.0;选通显示第一位 LCALL DELAY;调用延时子程序 SETB P2.0;关第一位显示 MOV A,13H;取第二位 SWAP A ANL A,#0FH MOVC A,A+DPTR MOV P1,A CLR P2.1 LCALL DELAY SETB P2.1 MOV A,13H;取第三位 MOVC A,A+DPTR MOV P1,A CLR P2.2 LCALL DELAY SETB P2.2 MOV A,14H;取第四位 SWAP A ANL A,#0FH MOV

温馨提示

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

评论

0/150

提交评论