基于AT89C51单片机采用光电编码器实施转速测量的方法_第1页
基于AT89C51单片机采用光电编码器实施转速测量的方法_第2页
基于AT89C51单片机采用光电编码器实施转速测量的方法_第3页
基于AT89C51单片机采用光电编码器实施转速测量的方法_第4页
基于AT89C51单片机采用光电编码器实施转速测量的方法_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、摘要在工程实践中,经常会遇到各种需要测量转速的场合,测量转速的方法分为模拟式和数字式两种。模拟式采用测速发电机为检测元件,得到的信号是模拟量。数字式通常采用光电编码器,霍尔元件等为检测元件,得到的信号是脉冲信号。随着微型计算机的广泛应用,特别是高性能价格比的单片机的出现,转速测量普遍采用以单片机为核心的数字式测量方法。本课题介绍了一种基于AT89C51单片机平台,采用光电编码器实施转速测量的方法,硬件系统包括脉冲信号产生、脉冲信号的处理和显示模块,并采用汇编语言编程,该方法具有结构简单、精度高、稳定性好的优点。并且还介绍了该测速方法的基本原理、实现方法和软硬件设计。关键字:AT89C51单片机

2、;转速;光电编码器AbstractIn engineering practice, we often encounter a variety of occasions that need to measure the speed and the speed measurement that is divided into two kinds of analog and digital. Analog tachometer generator for detecting components, the resulting signal is analog. Digital commonly us

3、ed optical encoder, the Hall element and other detection devices, the signal is a pulse signal. With the extensive application of micro-computer, especially the emergence of high performance and low cost single-chip speed measurement commonly used by the MCU as the core digital measurement methodTh

4、subject based on AT89C51 microcontroller platform, the implementation of the photoelectric encoder speed measurement method, the hardware system includes a pulse signal generated pulse signal processing and display modules, and assembly language programming, this method has a simple structure, high

5、precision good stability advantages. And also describes the basic principles of the velocity measurement method and the hardware and software design.Keywords: AT89C51 microcontroller; speed; optical encoder第一章绪 论 11.1 转速测量方法 11.2 转速测量原理 2第二章系统硬件设计 42.1 单片机模块设计 42.2 光电编码器 42.3 单片机AT89C51介绍 82.3.1 主要特

6、征及管脚说明 82.3.2 时钟电路 112.3.3 复位电路 112.4 显示器 122.4.1 引脚说明 122.4.2 寄存器选择控制表 142.4.3 显示地址 142.4.4 指令集 14第三章软件设计 163.1 计算机程序设计思路 163.2 程序流程图 18第四章系统调试 204.1 硬件调试 204.2 软件调试 20谢辞 23参考文献 24附录 25附录系统电路图 25附 录系统部分代码 26大连交通大学2012 届本科生毕业设计第一章绪 论随着超大规模集成电路技术的提高,尤其单片机应用技术以其功能强大,价格低廉的显著特点,是全数字化测量转速系统得以广泛应用。由于单片机在测

7、量转速方面具有体积小,性能强,成本低的特点。越来越受企业用户的青睐。转速是工程中应用非常广泛的参数,其测量方法较多,而模拟量的采集和模拟量的处理一直是转速主要的测量方法,这种测量技术已经不能适应现代科技发展的需要。在测量范围和精度上,已不满足大多数系统的使用。随着大规模及超大规模集成电路技术的发展。数字系统测量得到广泛的使用,特别是单片机对脉冲数字信号的强大处理能力,是的全数字测量系统越爱越普及,其转速测量系统也可以用数字化处理。在测量范围和精度方面都有较大的提高。设计全数字化测量转速系统,在工业控制和民用电器中都有较高的使用价值。一方面它可以应用与工业控制中的一部分,如数字机床的电机转速检测

8、和控制,水泵流速控制以及需要利用转速测量来进行控制的许多场合,如车辆的里程表,车速表等。另一方面由于该转速测量系统采用全数字结构,因而可以很方便的与工业控制机进行连接,实现远程管理和控制,进一步提高现代化水平。1.1 转速测量方法转速是指作圆周运动的物体在单位时间内所转过的圈数, 其大小及变化往往意味着机器设备运转的正常与否, 因此 , 转速测量一直是工业领域的一个重要问题。按照不同的理论方法, 先后产生过模拟测速法( 如离心式转速表) 、同步测速法( 如机械式或闪光式频闪测速仪) 以及计数测速法。计数测速法又可分为机械式定时计数法和电子式定时计数法。本文介绍的采用单片机和增量式光电编码器组成

9、的高精度转速测量系统, 其转速测量方法采用的就是电子式定时计数法, 对转速的测量实际上是对转子旋转引起的周期脉冲信号的频率进行测量。在频率的工程测量中, 电子式定时计数测量频率的方法一般有三种:测频率法: 在一定时间间隔t 内 , 计数被测信号的重复变化次数N , 则被测信号的频率 fx 可表示为fx =Nt(1)测周期法: 在被测信号的一个周期内, 计数时钟脉冲数m0 , 则被测信号频率fx =fc/ m0 , 其中 , fc 为时钟脉冲信号频率。多周期测频法: 在被测信号m1 个周期内 , 计数时钟脉冲数m2 , 从而得到被测信号频率 fx , 则 fx 可以表示为fx =m1 fcm2,

10、 m1 由测量准确度确定。电子式定时计数法测量频率时, 其测量准确度主要由两项误差来决定: 一项是时基误差; 另一项是量化±1误差。当时基误差小于量化±1 误差一个或两个数量级时, 这时测量准确度主要由量化± 1 误差来确定。对于测频率法, 测量相对误差为:Er1 = 测量误差值实际测量值×100 % =1N× 100 %(2)由此可见 , 被测信号频率越高, N 越大 , Er1 就越小 , 所以测频率法适用于高频信号( 高转速信号) 的测量。对于测周期法, 测量相对误差为:Er2 = 测量误差值实际测量值×100 % =1m0&#

11、215; 100 %(3)对于给定的时钟脉冲fc , 当被测信号频率越低时,m0 越大 , Er2 就越小 , 所以测周期法适用于低频信号( 低转速信号) 的测量。对于多周期测频法, 测量相对误差为:Er3 =测量误差值实际测量值100%=1m× 2 100 %(4)从上式可知, 被测脉冲信号周期数m1 越大 , m2 就越大 , 则测量精度就越高。它适用于高、低频信号( 高、低转速信号) 的测量。但随着精度和频率的提高, 采样周期将大大延长 , 并且判断m1 也要延长采样周期, 不适合实时测量。根据以上的讨论, 考虑到实际应用中需要测量的转速范围很宽, 上述的转速测量方法难以满足要

12、求, 因此 , 研究高精度的转速测量方法, 以同时适用于高、低转速信号的测量, 不仅具有重要的理论意义, 也是实际生产中的需要。1.2 转速测量原理一般的转速长期测量系统是预先在轴上安装一个有60 齿的测速齿盘, 用变磁阻式或电涡流式传感器获得一转60 倍转速脉冲, 再用测频的办法实现转速测量。而临时性转速测量系统, 多采用光电传感器, 从转轴上预先粘贴的一个标志上获得一转一个转速脉冲 , 随后利用电子倍频器和测频方法实现转速测量。不论长期或临时转速测量, 都可以在微处理器的参与下, 通过测量转轴上预留的一转一齿的鉴相信号或光电信号的周期, 换算出转轴的频率或转速。即通过速度传感器, 将转速信

13、号变为电脉冲, 利用微机在单位时间内对脉冲进行计数, 再经过软件计算获得转速数据。即:n=N/ (mT)(1) n 转速、单位 : 转 / 分钟 ; N 采样时间内所计脉冲个数; T采样时间、单位: 分钟 ; m 每旋转一周所产生的脉冲个数 ( 通常指测速码盘的齿数) 。如果 m=60, 那么 1 秒钟内脉冲个数N就是转速n, 即 :n=N/ (mT) =N/60 × 1/60=N(2)通常m为 60。在对转速波动较快系统或要求动态特性好而精度高的转速测控系统中, 调节周期一般很短 , 相应的采样周期需取得很小, 使得脉冲当量增高, 从而导致整个系统测量精度降低 , 难以满足测控要求

14、。提高采样速率通常就要减小采样时间T, 而 T 的减小会使采到的脉冲数值N 下降 , 导致脉冲当量( 每个脉冲所代表的转速) 增高 , 从而使得测量精度变得粗糙。通过增加测速码盘的齿数可以提高精度, 但是码盘齿数的增加会受到加工工艺的限制 , 同时会使转速测量脉冲的频率增高, 频率的提升又会受到传感器中光电器或磁敏器或磁电器件最高工作频率的限制。凡此种种因素限制了常规智能转速测量方法的使用范围。 而采用本文所提出的定时分时双频率采样法, 可在保证采样精度的同时, 提高采样速率 , 充分发挥微机智能测速方法的优越性及灵活性。本次课题以单片机AT89C51芯片为核心,通过光电编码器来检测电机的运转

15、情况,进而实现对电机的转速测量,最后用LCD能直观的将转速显示给用户。主要研究内容有:1. 光电编码器2. 单片机与外围设备的接口设计3.LCD1602显示器43第二章系统硬件设计随着超大规模集成电路技术提高,尤其是单片机应用技术以及其功能强大,价格低廉的显著特点,使全数字化测量转速系统得以广泛应用。出于单片机在测量转速方面具有体积小、性能强、成本低的特点,越来越受企业用户的青睐。对测量转速系统的硬件和编程进行研究,设计出一种以单片机为主的转速测量系统,保证了精度。信号采集采用光电编码器,在本设计方案中转轴每转一转,编码器将发出2000 个脉冲,将脉冲信号输入单片机,利用单片机的计数、定时功能

16、对脉冲信号进行分析,得到当前的转速。在LCD1602上显示当前的实时转速。信号传输显示图如图3-1 所示2-1 信号传输显示图2.1 单片机模块设计从功能的需求考虑,整个单片机系统包括以下模块:传感器信号输入、复位输入、时钟输入、和转速显示。如图2-2 所示2-2 系统框图2.2 光电编码器根据检测原理,编码器可分为光学式、磁式、感应式和电容式。根据其刻度方法及信号输出形式,可分为绝对式、增量式、以及混合式三种。( 1)绝对式编码器绝对编码器是直接输出数字量的传感器,在它的圆形码盘上沿径向有若干同心码道,每条道上由透光和不透光的扇形区相间组成,相邻码道的扇区数目是双倍关系,码盘上的码道数就是它

17、的二进制数码的位数,在码盘的一侧是光源,另一侧对应每一码道有一光敏元件;当码盘处于不同位置时,各光敏元件根据受光照与否转换出相应的电平信号,形成二进制数。这种编码器的特点是不要计数器,在转轴的任意位置都可读出一个固定的与位置相对应的数字码。显然,码道越多,分辨率就越高,对于一个具有N位二进制分辨率的编码器,其码盘必须有N 条码道。目前国内已有16 位的绝对编码器产品。( 2)增量式编码器增量式编码器是直接利用光电转换原理输出三组方波脉冲A、 B 和 Z 相; AB 两组脉冲相位差90,用于基准点定位。它的优点是原理构造简单,机械平均寿命可在几万小时以上,抗干扰能力强,可靠性高,适合于长距离传输

18、。放大整形光源透镜码盘透镜光敏元件2-3 光电编码器原理图脉冲输出( 3)混合式绝对值编码器混合式绝对值编码器,它输出两组信息;一组信息用于检测磁极位置,带有绝对信息功能;另一组则完全同增量式编码器的输出信息。增量式光电编码器(电路图2-4)的特点是每产生一个输出脉冲信号就对应于一个增量位移,但是不能通过输出脉冲区别出在哪个位置上的增量。它能够产生与位移增量等值的脉冲信号,其作用是提供一种对连续位移量离散化或增量化以及位移变化(速度)的传感方法,它是相对于某个基准点的相对位置增量,不能够直接检测出轴的绝对位置信息。一般来说,增量式光电编码器输出A、 B 两相互差90°电度角的脉冲信号

19、(即所谓的两组正交输出信号), 从而可方便地判断出旋转方向。同时还有用作参考零位的Z 相标志(指示)脉冲信号,码盘每旋转一周,只发出一个标志信号。标志脉冲通常用来指示机械位置或对积累量清零。增量式光电编码器主要由光源、码盘、检测光栅、光电检测器件和转换电路组成,如图 2-5 所示。码盘上刻有节距相等的辐射状透光缝隙,相邻两个透光缝隙之间代表一个增量周期;检测光栅上刻有A、 B 两组和码盘相对应的透光缝隙,用以通过或阻挡光源和光电检测器件之间的光线。它们的节距和码盘上的节距相等,并且两组透光缝隙错开 1/4 节距,使得光电检测器件输出的信号在相位上相差90°电度角。当码盘随着被测转轴转

20、动时,检测光栅不动,光线透过码盘和检测光栅上的透过缝隙照射到光电检测器件上, 光电检测器件就输出两组相差90°电度角的近似于正弦波的电信号,电信号经过转换电路的信号处理,可以得到被测轴的转角或速度信息。增量式光电编码器输出2-4 增量式光电编码器电路信号波形如图2-62-5 光电编码器组成元件增量式光电编码器的优点是:原理构造简单、易于实现;机械平均寿命长,可达到 几万小时以上;分辨率高;抗干扰能力较强,信号传输距离较长,可靠性较高。A相B相Z相图 2-6 增量式光电编码器的输出信号波形 在增量式光电编码器的使用过程中,对于其技术规格通常会提出不同的要求,其中最关键的就是它的分辨率、

21、精度、输出信号的稳定性、响应频率、信号输出形式。( 1)分辨率光电编码器的分辨率是以编码器轴转动一周所产生的输出信号基本周期数来表示的,即脉冲数/ 转(PPR)。码盘上的透光缝隙的数目就等于编码器的分辨率,码盘上刻的缝隙越多,编码器的分辨率就越高。在工业电气传动中,根据不同的应用对象,可选择分辨率通常在5006000PPR的增量式光电编码器,最高可以达到几万PPR。交流伺服电机控制系统中通常选用分辨率为2500PPR 的编码器。此外对光电转换信号进行逻辑处理,可以得到2 倍频或 4 倍频的脉冲信号,从而进一步提高分辨率。( 2)精度增量式光电编码器的精度与分辨率完全无关,这是两个不同的概念。精

22、度是一种度量在所选定的分辨率范围内,确定任一脉冲相对另一脉冲位置的能力。精度通常用角度、角分或角秒来表示。编码器的精度与码盘透光缝隙的加工质量、码盘的机械旋转情况的制造精度因素有关,也与安装技术有关。( 3)输出信号的稳定性编码器输出信号的稳定性是指在实际运行条件下,保持规定精度的能力。影响编码器输出信号稳定性的主要因素是温度对电子器件造成的漂移、外界加于编码器的变形力以及光源特性的变化。由于受到温度和电源变化的影响,编码器的电子电路不能保持规定的输出特性,在设计和使用中都要给予充分考虑。( 4)响应频率编码器输出的响应频率取决于光电检测器件、电子处理线路的响应速度。当编码器高速旋转时,如果其

23、分辨率很高,那么编码器输出的信号频率将会很高。如果光电检测器件和电子线路元器件的工作速度与之不能相适应,就有可能使输出波形严重畸变,甚至产生丢失脉冲的现象。这样输出信号就不能准确反映轴的位置信息。所以,每一种编码器在其分辨率一定的情况下,它的最高转速也是一定的,即它的响应频率是受限制的。编码器的最大响应频率、分辨率和最高转速之间的关系如下公式所示。fmaxRmaxN其中, fmax为最大响应频率、Rmax为最高转速、N为分辨率。( 5)信号输出形式在大多数情况下,直接从编码器的光电检测器件获取的信号电平较低,波形也不规则,还不能适应于控制、信号处理和远距离传输的要求。所以,在编码器内还必须将此

24、信号放大、整形。经过处理的输出信号一般近似于正弦波或矩形波。由于矩形波输出信号容易进行数字处理,所以这种输出信号在定位控制中得到广泛的应用。采用正弦波输出信号时基本消除了定位停止时的振荡现象,并且容易通过电子内插方法,以较低的成本得到较高的分辨率。增量式光电编码器的信号输出形式有:集电极开路输出(OpenCollector )、电压输出(Voltage Output )、线驱动输出(Line Driver )、互补型输出( Complemental Output )和推挽式输出(Totem Pole )。2.3 单片机AT89C51介绍AT89C51 是一种带4K 字节FLASH存储器(FPE

25、RO MFlash Programmable andErasable Read Only Memory )的低电压、高性能CMOS 8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除1000 次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8 位CPU和闪烁存储器组合在单个芯片中,ATMEL的 AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图2-7 所示2.3.1 主要特征及管脚说明主要特征:?与 MC

26、S-51 兼容?4K字节可编程FLASH存储器?寿命:1000写 /擦循环?数据保留时间:10 年?全静态工作:0Hz-24MHz?三级程序存储器锁定?128× 8 位内部RAM?32 可编程 I/O 线?两个 16 位定时器 / 计数器?5个中断源?可编程串行通道?低功耗的闲置和掉电模式?片内振荡器和时钟电路AT89C51 提供以下标准功能:4k 字节 Flash 闪速存储器,128字节内部RAM, 32 个I/O 口线, 两个 16 位定时 / 计数器, 一个 5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持

27、两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。管脚及其说明:· VCC:供电电压。· GND:接地。· P0口: P0口为一个8 位漏极开路双向I/O 口,每引脚可吸收8TTL门电流。当P0口的管脚第一次写1 时, 被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/ 地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时, P0输出原码,此时P0外部必须接,上拉电阻。&

28、#183; P1 口: P1 口是一个内部提供上拉电阻的8位双向 I/O 口, P1口缓冲器能接收输出 4TTL门电流。P1 口管脚写入1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1 口作为低八位地址接收。· P2口:P2口为一个内部上拉电阻的8位双向 I/O 口, P2口缓冲器可接收,输出4 个 TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口用于外部程序存储器或16 位地址外部数据存储器

29、进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时, P2 口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。?P3口:P3口管脚是带8个内部上拉电阻的双向I/O 口,可接收输出4个 TTL门电流。当P3口写入“ 1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL )这是由于上拉的缘故。P3 口也可作为AT89C51的一些特殊功能口,如下表(表3-1 )所示:· P3口同时为闪烁编程和编程校验接收一些控制信号。2-7AT89C51管

30、脚图· RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时· ALE/PRO:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位G字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6 。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOV,XMOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无

31、效。表 2-1P3 口的第二功能引脚第二功能信号名称P3.0RXD串行数据接收P3.1TXD串行数据发送P3.2INT0外部中断0 请求P3.3INT1外部中断1 请求P3.4T0定时器/计数器0 计数输入P3.5T1定时器/计数器1 计数输入P3.6WR外部RAM写选通P3.7RD外部RAM读选通· PSEN:外部程序存储器的选通信号。在由外部程序存储器取值期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。· EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH) ,不管是否有内部程序存储器

32、。注意加密方式1 时, /EA将内部锁定为RESE;T当 /EA保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V 编程电源( VPP) 。· XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。· XTAL2:来自反向振荡器的输出。振荡器特性: XTAL1和 XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石英振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。其余输入到内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。芯片擦除 : 整个P

33、EROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦除操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。2.3.2 时钟电路时钟电路 ( 图 3-8) 是计算机的心脏,它控制着计算机的工作节奏。MCS-51单片机允许的时钟频率是因型号而异的典

34、型值为12MHZMCS-51内部都有一个反相放大器,XTAL1、 XTAL2分别为反相放大器输入和输出端,外接定时反馈元件以后就组成振荡器,产生时钟送至单片机内部的各个部件。AT89C51是属于CMOS位微处理器,它的时钟电路在结构上有别于 8NMO型的单片机。SCMO型单片机内部(如 SAT89C51)有一个可控的负反馈反相放大器,外接晶振(或陶瓷谐振器)和电容组成振荡器,图3-8 为 CMO型单片机时钟电路框图。S振荡器工作受/PD端控制,由软件置 “ 1” PD(即特殊功能寄存器PCON.1) 使 /PD 0,振荡器停止工作,整个单片机也就停止工作,以达到节电目的。清“0” PD,使振荡

35、器工作产生时钟,单片机便正常运行。电容C1和 C2的作用有两个:其一是使振荡器起振,2.3.3 复位电路MCS-51单片机复位电路是指单片机的初始化操作。单片机启动运行时,都需先复位,其作用是CPU和系统中其它部件处于一个确定的初始状态,并从这个状态开始工作。因此复位电路是一个很重要的操作方式。但是单片机又不能自动进行复位,必须配合相应的外部电路进行实现。复位电路的基本功能是:系统上电提供复位信号,直到系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经过一定的延时才能撤销复位信号,以防止电源开关或电源插头分合过程中的抖动而影响复位。单片机的复位是由外部电路实现的。片内复位电路是复位引脚

36、RST通过一个斯密特触发器与复位电路相连接,斯密特触发器又来抑制噪声,它的输出在每个机器周期的S5P2,有复位电路采样一次。复位电路通常采用上电复位(图2-9( a) )和按钮复位(图 2-9 ( b) )两种方式。单片机复位后状态:单片机的复位操作时是单片机进入初始化状态,其中包括是程序计数器PC 0000H,这表示程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21 个特殊功能寄存器复位后的状态为确定值,见( 表 2-2) 值得指出的是,记住一些特殊功能寄存器复位后的状态,对于了解单片机的初态,减少应用程序中的初始化部分是十

37、分重要的。表 2-2 一些特殊功能寄存器的复位状态特殊功能寄存器初始状态特殊功能寄存器初始状态A00HTMOD00HB00HTCON00HPSW00HTH000HSP07HTL000HDPL00HTH100HDPH00HTL100HP0-P3FFHSBUF不定IP*00000BSCON00HIE0*00000BPCON0*B2.4 显示器显示电路采用LCD1602型液晶显示器,能够同时显示16x02 即 32 个字符。 ( 16列2 行) (注:为了表示的方便,后文皆以1 表示高电平,0 表示低电平。)3.1 LCD1602引脚如图2-10 所示2.4.1 引脚说明1602 字符型LCD通常有

38、14 条引脚线或16 条引脚线的LCD,多出来的2 条线是 L+、 L-,其功能是背光电源线,VCC(15脚 ) 和地线GND(16脚 ),其控制原理与14 脚的LCD完全一样。表 2-3 引脚说明引 脚符 号功能说明1VSS一般接地2VDD接电源(+5V)3VEE液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K 的电位器调整对比度)。4RSRS 为寄存器选择,高电平1 时选择数据寄存器、低电平0 时选择指令寄存器。5R/WR/W 为读写信号线,高电平1 时进行读操作,低电平0 时进行写操作。6EE(或 EN)端为使能(e

39、nable)端,下降沿使能。7DB0低 4 位三态、双向数据总线0 位(最低位)8DB1低 4 位三态、双向数据总线1 位9DB2低 4 位三态、双向数据总线2 位10DB3低 4 位三态、双向数据总线3 位11DB4高 4 位三态、双向数据总线4 位12DB5高 4 位三态、双向数据总线5 位13DB6高 4 位三态、双向数据总线6 位14DB7高 4 位三态、双向数据总线7 位(最高位)(也是busy flag)15L+背光电源正极16L-背光电源负极1602 液晶模块内部的字符发生存储器(CGROM已经存储了 )160 个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用

40、的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B( 41H),显示时模块把地址41H 中的点阵字符图形显示出来,我们就能看到字母“A”。因为 1602 识别的是ASCII 码,试验可以用ASCII 码直接赋值,在单片机编程1602 的 16 进制 ASCII 码表A。以下是2-5 ):表 2-5 ASCII 表2.4.2 寄存器选择控制表表 2-4 寄存器选择控制表RSR/W操作说明00写入指令寄存器(清除屏等)01读 busy flag( DB7) ,以及读取位地址计数器(DB0DB6 )值10写入数据寄存器(显示各字型等)11从数据寄存

41、器读取数据注:关于E=H脉冲开始时初始化E 为 0,然后置E为1,再清0. busyflag ( DB7):在此位为1 时, LCD忙,将无法再处理其他的指令要求。2.4.3 显示地址表 2-6 显示地址12345678910111213141516000102030405060708090A0B0C0D0E0FHHHHHHHHHHHHHHHH404142434445464748494A4B4C4D4E4FHHHHHHHHHHHHHHHH2.4.4 指令集1602通过D0D7的 8位数据端传输数据和指令。显示模式设置:( 初始化 )0011 1000 0x38 设置 16× 2 显示

42、,5× 7 点阵, 8 位数据接口;显示开关及光标设置:( 初始化 )0000 1DCB D显示(1 有效)、 C光标显示(1 有效 )、 B光标闪烁 (1 有效 )0000 01NS N=1(读或写一个字符后地址指针加1 &光标加1),N=0(读或写一个字符后地址指针减1 &光标减1),S=1 且 N=1 ( 当写完一个字符后,整屏显示左移)s=0 当写完一个字符后,整屏显示不移动数据指针设置:数据首地址为80H,所以数据地址为80H+地址码(0-27H, 40-67H)其他设置:01H(显示清屏,数据指针=0,所有显示=0); 02H(显示回车,数据指针=0)通常

43、推荐的初始化过程:延时15ms写指令38H延时5ms写指令38H延时5ms写指令38H延时5ms(以上都不检测忙信号)(以下都要检测忙信号)写指令38H写指令08H 关闭显示写指令01H 显示清屏写指令06H 光标移动设置写指令0cH 显示开及光标设置完毕第三章软件设计硬件电路完成以后,进行系统的软件设计。首先要分析系统对软件的要求,然后进行软件的总体设计,包括程序的总体设计和对程序的模块化设计。按整体的功能分为多个不同的模块,单独设计、编译。软件设计思路及过程单片机转速测量可以分若干模块,然后在主程序中调用各个模块,3.1 计算机程序设计思路转速的计算公式:N=600Md/1000Td(r/

44、min)其中, N是所转转速,Md为单片机所接收到的脉冲数,存储在TH1,TL1 中;Td为定时时间,它是由定时器的计数值n 乘以机器周期Tc所得 , 因单片机的时钟频率为12MHZ则:Tc=12/12MHZ=1us以下简要介绍转速是如何获得的:转速测量先进行初始化,启动计数器和定时器,当中断到来时,读取TH1, TL1 的数值并存在指定的位置,通过函数计算程序得到转速,而此时的转速值并不能直接在显示器上显示出来,其必须转换成非压缩BCD码后,才能调用查表程序,最后显示。其主流程图如下图3-1 示。定时 /计数器、中断设置:AT89C51有两个定时/计数器 T0和 T1,每个定时/计数器均可设

45、置成为16为,也可设置成为13 位进行计数或定时。计数器的功能是对T0 或 T1 外来的脉冲进行计数,外部输入脉冲负跳变时,计数器进行加1。定时器功能是通过计数器实现的,每个机器周期产生1 个计数脉冲,即每个计数周期计数器加1,因此定时时间等于计数个数乘以机器周期。定时器工作时,每接受到1个脉冲, 则在设定的初值的基础上自动加1, 当所有位都为1 时, 再加 1 就会产生溢出,将向CPU提出定时器溢出的中断请求申请。当定时器采用不同的工作方式和设置不同的初值时,产生溢出中断的定时值和计数值不同,从而可以适应不同的定时或计数控制。定时器有四种工作方式:方式0, 、方式 1、方式2、方式3,在此不

46、作具体介绍。表 3-1 工作方式寄存器TMOD的设定GATEC/TM1M0GATEC/TM1M0TMOD各位的含义如下: GATE:门控位,用于控制定时/计数器的启动是否受外部中断请求信号的影响。 C/T:定时或计数方式选择位,当C/T=1 时工作于计数方式;当C/T=0 时工作于定时方式。 M1、 M0为工作方式选择位,用于对T0的四种工作方式、T1 的三种的工作方式进行选择,选择情况如下表:M1M0=00为方式0、 M1M0=01为方式1;表 4-2M1、 M0工作方式选择位M0M1工作方式方式说明00013 位定时/计数器01116 位定时/计数器1028 位自动重置定时/计数器113两

47、个8 位定时/计数器(只有T0 有)中断允许控制:MCS51单片机中没有专门的开中断指令,对各个中断源的允许和屏蔽是由内部的进中断允许寄存器IE 的各位来控制的。中断允许寄存器IE 的字节地址为A8H,可以进行位寻址。表 3-3 中断位寻址表IED7D6D5D4D3D2D1D0(A8H)EAET2ESET1EX1ET0EX0 EA:中断允许控制位,EA=0,屏蔽所有中断请求;EA=1,开放中断。ET2:定时器/计数器T2的溢出中断允许ES:串行口中断允许位。ET1:定时器/计数器T1 的益处中断允许位。 EX1:外部中断INT1 的中断允许位。ET0:定时器/计数器T0的溢出中断允许位。 EX

48、0:外部中断INT0 的中断允许位。3.2 程序流程图由于本次设计的系统要实现的功能是将光电编码器的信号送到单片机的外部中断口,再对周期方波进行内部计数,调用计算程序把转速测出来。1. 计数流程图:3-2 计数流程图3.BCD码转换流程图:BCD码转换流程图3-34. 显示流程图3-5 显示流程图第四章系统调试电路调试是整个系统功能能否实现的关键步骤,我们将整个调试过程分为三大部分:硬件调试、软件调试和综合调试。4.1 硬件调试硬件调试主要是针对我的转速测量系统的单片机硬件电路分别进行调试。这一部分硬件调试主要分成两大块:上电前的调试和上电后的调试。上电前的调试在上电前,我们必须确保电路中不存

49、在断路或短路情况,这一工作是整个调试工作的第一步,也是非常重要的一个步骤。在这部分调试中主要使用的工具是万用表,用来完成检测电路中是否存在断路或者短路情况等。特别是数码管的连接部分,有PROTE制作的 LPCB确保要和原理图上的图一致,有些在电路板上没法连接的线路,要用短接线把接好,对照着原理图部分,一部分一部分地用万用表测量,注意焊点之间,确保焊点没有短接在一起,同时注意焊点的美观,确保没有开路以及短路的现象出现。上电后的调试在确保硬件电路正常,无异常情况( 断路或短路) 方可上电调试,上电调试的目的是检验电路是否接错,同时还要检验原理是否正确,在本次课程设计中,上电调试主要只转速测量系统的

50、单片机控制部分、数码管点亮部分、和上位机通信是的电平转换和串口通信部分的硬件调试。1、单片机控制部分硬件调试:这一部分调试主要是检查时钟电路、复位电路是否接对,单片机的电源以及地是否接好,以及其他的一些管脚的接法。看单片机通电后能否可以正常工作等这一系列问题。2、数码管LCD电路调试:由于数码管采用的是动态扫描的方式点亮的。数码管的公共端(COM)接在1602驱动再接到单片机的P2口作为位选信号,字型是接在P0口。电路上电后检查1602是否接上电源和地让其正常工作。在这一前提下,查看数码管能否被点亮。即可检查数码管的硬件电路是否正确,即可判断显示驱动电路整个完整,首先排除这里的故障。3、发送部

51、分硬件电路调试:可以用示波器和万用表检查电平转换前后的关系,这里不在赘述。4.2 软件调试单片机程序调试思路:单片机部分调试工作的完成主要应用LCA51软件来完成,这一部分工作首先将转速测量系统中的各个模块计算程序中的除法程序、 双字节的二-十进制数制转换程序,压缩BCD码十进制数转换为非压缩BCD码的程序以及显示部分程序调试好,不断调试,不断修改直到正确为止。LCA51软件是一种非常实用的多窗口编辑、调试软件。LCA51软件全面支持汇编语言,C51 语言,PL/M51语言的编译/连接、调试。软件支持单文件方式和工程化管理两种模式。用户可自定义各种语言的关键词. 软件完全支持源语句在线调试。高

52、级语言还支持源文件调试和汇编语言指令行对照调试。用户可同时打开多个窗体编辑、调试、变量观察. 用户可在线对原文件直接编辑、编译、连接、加载和调试,软件支持编译错误源文件定位。调试时用户可动态观察、修改设定变量(包括 CPU片内寄存器、特殊寄存器及外部寄存器、内存)的值。调试主要方法和技巧:通常一个调试程序应该具备至少四种性能:跟踪、断点、查看变量、更改数值。1. 跟踪调试调试应用程序所提供的重要性能,也许就是跟踪应用程序。跟踪应用程序使用户能够在运行应用程序时,看到PC指针在应用源代码程序中的确切位置,LCA51提供以下方法对程序的执行进行跟踪。跟踪单步执行一条源语句程序。但是,如果调用一个函数,则进入函数中,在执行函数的第一条源语句前停止。通过单步执行下一条源语句程序,然后又停止。如果是调用一个函数,运行完,整个函数并停止在函

温馨提示

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

评论

0/150

提交评论