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主要特征及管脚说明82.3
6、.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, m1 由测量准确度确定。电子式定时计数法测量频率时,其测量准确度主要由两项误差来决定:一项是时基误差;另一项是量化1误差。当时
10、基误差小于量化1 误差一个或两个数量级时,这时测量准确度主要由量化1 误差来确定。对于测频率法,测量相对误差为:Er1 =测量误差值实际测量值100 % =1N100 % (2)由此可见,被测信号频率越高, N 越大, Er1就越小,所以测频率法适用于高频信号(高转速信号) 的测量。对于测周期法,测量相对误差为:Er2 =测量误差值实际测量值100 % =1m0100 % (3)对于给定的时钟脉冲fc , 当被测信号频率越低时,m0 越大, Er2就越小,所以测周期法适用于低频信号(低转速信号) 的测量。对于多周期测频法,测量相对误差为:Er3 =测量误差值实际测量值100%=1m2100 %
11、 (4)从上式可知,被测脉冲信号周期数m1 越大, m2 就越大,则测量精度就越高。它适用于高、低频信号(高、低转速信号) 的测量。但随着精度和频率的提高, 采样周期将大大延长,并且判断m1 也要延长采样周期,不适合实时测量。根据以上的讨论,考虑到实际应用中需要测量的转速范围很宽,上述的转速测量方法难以满足要求,因此,研究高精度的转速测量方法,以同时适用于高、低转速信号的测量,不仅具有重要的理论意义,也是实际生产中的需要。1.2转速测量原理一般的转速长期测量系统是预先在轴上安装一个有60 齿的测速齿盘,用变磁阻式或电涡流式传感器获得一转60 倍转速脉冲,再用测频的办法实现转速测量。而临时性转速
12、测量系统,多采用光电传感器,从转轴上预先粘贴的一个标志上获得一转一个转速脉冲,随后利用电子倍频器和测频方法实现转速测量。不论长期或临时转速测量,都可以在微处理器的参与下,通过测量转轴上预留的一转一齿的鉴相信号或光电信号的周期,换算出转轴的频率或转速。即通过速度传感器,将转速信号变为电脉冲,利用微机在单位时间内对脉冲进行计数,再经过软件计算获得转速数据。即:n=N/ (mT) (1)n 转速、单位:转/ 分钟;N 采样时间内所计脉冲个数;T采样时间、单位:分钟;m 每旋转一周所产生的脉冲个数(通常指测速码盘的齿数) 。如果m=60, 那么1 秒钟内脉冲个数N就是转速n, 即:n=N/ (mT)
13、=N/601/60=N (2)通常m为60。在对转速波动较快系统或要求动态特性好而精度高的转速测控系统中,调节周期一般很短,相应的采样周期需取得很小,使得脉冲当量增高,从而导致整个系统测量精度降低,难以满足测控要求。提高采样速率通常就要减小采样时间T, 而T 的减小会使采到的脉冲数值N 下降,导致脉冲当量(每个脉冲所代表的转速) 增高,从而使得测量精度变得粗糙。通过增加测速码盘的齿数可以提高精度,但是码盘齿数的增加会受到加工工艺的限制,同时会使转速测量脉冲的频率增高,频率的提升又会受到传感器中光电器或磁敏器或磁电器件最高工作频率的限制。凡此种种因素限制了常规智能转速测量方法的使用范围。而采用本
14、文所提出的定时分时双频率采样法,可在保证采样精度的同时,提高采样速率,充分发挥微机智能测速方法的优越性及灵活性。本次课题以单片机AT89C51芯片为核心,通过光电编码器来检测电机的运转情况,进而实现对电机的转速测量,最后用LCD能直观的将转速显示给用户。主要研究内容有:1.光电编码器2.单片机与外围设备的接口设计3.LCD1602显示器 第二章系统硬件设计随着超大规模集成电路技术提高,尤其是单片机应用技术以及其功能强大,价格低廉的显著特点,使全数字化测量转速系统得以广泛应用。出于单片机在测量转速方面具有体积小、性能强、成本低的特点,越来越受企业用户的青睐。对测量转速系统的硬件和编程进行研究,设
15、计出一种以单片机为主的转速测量系统,保证了精度。信号采集采用光电编码器,在本设计方案中转轴每转一转,编码器将发出2000个脉冲,将脉冲信号输入单片机,利用单片机的计数、定时功能对脉冲信号进行分析,得到当前的转速。在LCD1602上显示当前的实时转速。信号传输显示图如图3-1所示光电编码器AT89C51单片机LCD1602显示器图2-1 信号传输显示图2.1单片机模块设计从功能的需求考虑,整个单片机系统包括以下模块:传感器信号输入、复位输入、时钟输入、和转速显示。如图2-2所示AT89C51单片机传感器信号输入复位信号输入LCD转速显示时钟信号输入图2-2系统框图2.2光电编码器根据检测原理,编
16、码器可分为光学式、磁式、感应式和电容式。根据其刻度方法及信号输出形式,可分为绝对式、增量式、以及混合式三种。(1)绝对式编码器绝对编码器是直接输出数字量的传感器,在它的圆形码盘上沿径向有若干同心码道,每条道上由透光和不透光的扇形区相间组成,相邻码道的扇区数目是双倍关系,码盘上的码道数就是它的二进制数码的位数,在码盘的一侧是光源,另一侧对应每一码道有一光敏元件;当码盘处于不同位置时,各光敏元件根据受光照与否转换出相应的电平信号,形成二进制数。这种编码器的特点是不要计数器,在转轴的任意位置都可读出一个固定的与位置相对应的数字码。显然,码道越多,分辨率就越高,对于一个具有 N位二进制分辨率的编码器,
17、其码盘必须有N条码道。目前国内已有16位的绝对编码器产品。(2)增量式编码器增量式编码器是直接利用光电转换原理输出三组方波脉冲A、B和Z相;AB两组脉冲相位差90,用于基准点定位。它的优点是原理构造简单,机械平均寿命可在几万小时以上,抗干扰能力强,可靠性高,适合于长距离传输。图2-3光电编码器原理图(3)混合式绝对值编码器混合式绝对值编码器,它输出两组信息;一组信息用于检测磁极位置,带有绝对信息功能;另一组则完全同增量式编码器的输出信息。增量式光电编码器(电路图2-4)的特点是每产生一个输出脉冲信号就对应于一个增量位移,但是不能通过输出脉冲区别出在哪个位置上的增量。它能够产生与位移增量等值的脉
18、冲信号,其作用是提供一种对连续位移量离散化或增量化以及位移变化(速度)的传感方法,它是相对于某个基准点的相对位置增量,不能够直接检测出轴的绝对位置信息。一般来说,增量式光电编码器输出A、B 两相互差90电度角的脉冲信号(即所谓的两组正交输出信号),从而可方便地判断出旋转方向。同时还有用作参考零位的Z 相标志(指示)脉冲信号,码盘每旋转一周,只发出一个标志信号。标志脉冲通常用来指示机械位置或对积累量清零。增量式光电编码器主要由光源、码盘、检测光栅、光电检测器件和转换电路组成,如图2-5所示。码盘上刻有节距相等的辐射状透光缝隙,相邻两个透光缝隙之间代表一个增量周期;检测光栅上刻有A、B 两组和码盘
19、相对应的透光缝隙,用以通过或阻挡光源和光电检测器件之间的光线。它们的节距和码盘上的节距相等,并且两组透光缝隙错开1/4 节距,使得光电检测器件输出的信号在相位上相差90电度角。当码盘随着被测转轴转动时,检测光栅不动,光线透过码盘和检测光栅上的透过缝隙照射到光电检测器件上,光电检测器件就输出两组相差90电度角的近似于正弦波的电信号,电信号经过转换电路的信号处理,可以得到被测轴的转角或速度信息。 增量式光电编码器输出 图2-4增量式光电编码器电路信号波形如图2-6。图2-5 光电编码器组成元件增量式光电编码器的优点是:原理构造简单、易于实现;机械平均寿命长,可达到几万小时以上;分辨率高;抗干扰能力
20、较强,信号传输距离较长,可靠性较高。 A相 B相 Z相 图2-6增量式光电编码器的输出信号波形在增量式光电编码器的使用过程中,对于其技术规格通常会提出不同的要求,其中最关键的就是它的分辨率、精度、输出信号的稳定性、响应频率、信号输出形式。(1)分辨率光电编码器的分辨率是以编码器轴转动一周所产生的输出信号基本周期数来表示的,即脉冲数/转(PPR)。码盘上的透光缝隙的数目就等于编码器的分辨率,码盘上刻的缝隙越多,编码器的分辨率就越高。在工业电气传动中,根据不同的应用对象,可选择分辨率通常在5006000PPR 的增量式光电编码器,最高可以达到几万PPR。交流伺服电机控制系统中通常选用分辨率为250
21、0PPR 的编码器。此外对光电转换信号进行逻辑处理,可以得到2 倍频或4 倍频的脉冲信号,从而进一步提高分辨率。(2)精度增量式光电编码器的精度与分辨率完全无关,这是两个不同的概念。精度是一种度量在所选定的分辨率范围内,确定任一脉冲相对另一脉冲位置的能力。精度通常用角度、角分或角秒来表示。编码器的精度与码盘透光缝隙的加工质量、码盘的机械旋转情况的制造精度因素有关,也与安装技术有关。(3)输出信号的稳定性编码器输出信号的稳定性是指在实际运行条件下,保持规定精度的能力。影响编码器输出信号稳定性的主要因素是温度对电子器件造成的漂移、外界加于编码器的变形力以及光源特性的变化。由于受到温度和电源变化的影
22、响,编码器的电子电路不能保持规定的输出特性,在设计和使用中都要给予充分考虑。(4)响应频率编码器输出的响应频率取决于光电检测器件、电子处理线路的响应速度。当编码器高速旋转时,如果其分辨率很高,那么编码器输出的信号频率将会很高。如果光电检测器件和电子线路元器件的工作速度与之不能相适应,就有可能使输出波形严重畸变,甚至产生丢失脉冲的现象。这样输出信号就不能准确反映轴的位置信息。所以,每一种编码器在其分辨率一定的情况下,它的最高转速也是一定的,即它的响应频率是受限制的。编码器的最大响应频率、分辨率和最高转速之间的关系如下公式所示。其中,fmax为最大响应频率、Rmax为最高转速、N为分辨率。(5)信
23、号输出形式在大多数情况下,直接从编码器的光电检测器件获取的信号电平较低,波形也不规则,还不能适应于控制、信号处理和远距离传输的要求。所以,在编码器内还必须将此信号放大、整形。经过处理的输出信号一般近似于正弦波或矩形波。由于矩形波输出信号容易进行数字处理,所以这种输出信号在定位控制中得到广泛的应用。采用正弦波输出信号时基本消除了定位停止时的振荡现象,并且容易通过电子内插方法,以较低的成本得到较高的分辨率。增量式光电编码器的信号输出形式有:集电极开路输出(Open Collector)、电压输出(Voltage Output)、线驱动输出(Line Driver)、互补型输出(Complement
24、al Output)和推挽式输出(Totem Pole)。2.3 单片机AT89C51介绍AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单
25、片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图2-7所示 2.3.1主要特征及管脚说明主要特征:与MCS-51 兼容 4K字节可编程FLASH存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz-24MHz 三级程序存储器锁定 1288位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口
26、,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。 管脚及其说明:VCC:供电电压。 GND:接地。P0口:P0口为一个8位漏极开路双向I/O口,每引脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P
27、0外部必须接,上拉电阻。 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位地址外部数据存储器进行存取时,P2口输出地址的高八
28、位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是带8个内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表(表3-1)所示:P3口同时为闪烁编程和编程校验接收一些控制信号。 图2-7AT89C51管脚图RST:复位输入。当振荡器复位器件时,要保持RST脚两
29、个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 表2-1 P3口的第二功能引 脚第二功能信 号 名 称P3.0P3.1P3
30、.2P3.3P3.4P3.5P3.6P3.7RXDTXDINT0INT1T0T1WRRD串行数据接收串行数据发送外部中断0请求外部中断1请求定时器/计数器0计数输入定时器/计数器1计数输入外部RAM写选通外部RAM读选通PSEN:外部程序存储器的选通信号。在由外部程序存储器取值期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA保持高电平时,此间内部程序存储器。在FLASH编程
31、期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石英振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。其余输入到内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦除操作中,代码阵列全被写“1”且在任何非空
32、存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。2.3.2 时钟电路时钟电路(图3-8)是计算机的心脏,它控制着计算机的工作节奏。MCS-51单片机允许的时钟频率是因型号而异的典型值为12MHZMCS-51内部都有一个反相放大器,XTAL1、XTAL2分别为反相放大器输入和输出端,外接定时反馈元件以后就组成振荡器,产生时钟送至单片机内部
33、的各个部件。AT89C51是属于CMOS8位微处理器,它的时钟电路在结构上有别于NMOS型的单片机。CMOS型单片机内部(如AT89C51)有一个可控的负反馈反相放大器,外接晶振(或陶瓷谐振器)和电容组成振荡器,图3-8为CMOS型单片机时钟电路框图。振荡器工作受/PD端控制,由软件置“1”PD(即特殊功能寄存器PCON.1)使/PD0,振荡器停止工作,整个单片机也就停止工作,以达到节电目的。清“0”PD,使振荡器工作产生时钟,单片机便正常运行。电容C1和C2的作用有两个:其一是使振荡器起振,其二是对振荡器的频率f起微调作用(C1、C2大,f变小),其典型值为20pF。图2-8时钟电路2.3.
34、3复位电路 MCS-51单片机复位电路是指单片机的初始化操作。单片机启动运行时,都需先复位,其作用是CPU和系统中其它部件处于一个确定的初始状态,并从这个状态开始工作。因此复位电路是一个很重要的操作方式。但是单片机又不能自动进行复位,必须配合相应的外部电路进行实现。复位电路的基本功能是:系统上电提供复位信号,直到系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经过一定的延时才能撤销复位信号,以防止电源开关或电源插头分合过程中的抖动而影响复位。单片机的复位是由外部电路实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连接,斯密特触发器又来抑制噪声,它的输出在每个机器周期
35、的S5P2,有复位电路采样一次。复位电路通常采用上电复位(图2-9(a)和按钮复位图2-9复位电路(图2-9(b)两种方式。单片机复位后状态:单片机的复位操作时是单片机进入初始化状态,其中包括是程序计数器PC0000H,这表示程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值,见(表2-2)值得指出的是,记住一些特殊功能寄存器复位后的状态,对于了解单片机的初态,减少应用程序中的初始化部分是十分重要的。表2-2一些特殊功能寄存器的复位状态特殊功能寄存器初始状态特殊功能寄存器初始状态A00HTM
36、OD00HB00HTCON00HPSW00HTH000HSP07HTL000HDPL00HTH100HDPH00HTL100HP0-P3FFHSBUF不定IP*00000BSCON00HIE0*00000BPCON0*B2.4显示器显示电路采用LCD1602型液晶显示器,能够同时显示16x02即32个字符。(16列2行)(注:为了表示的方便 ,后文皆以1表示高电平,0表示低电平。)3.1 LCD1602引脚如图2-10所示 2.4.1引脚说明1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是L+、L-,其功能是背光电源线,VCC(15脚)和地线GND(16脚),其控
37、制原理与图2-10LCD1602引脚14脚的LCD完全一样。表2-3引脚说明引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3VEE液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/WR/W为读写信号线,高电平1时进行读操作,低电平0时进行写操作。6EE(或EN)端为使能(enable)端,下降沿使能。7DB0低4位三态、 双向数据总线 0位(最低位)8DB1低4位三态、 双向数据总线 1位9DB2低4位三态、 双
38、向数据总线 2位10DB3低4位三态、 双向数据总线 3位11DB4高4位三态、 双向数据总线 4位12DB5高4位三态、 双向数据总线 5位13DB6高4位三态、 双向数据总线 6位14DB7高4位三态、 双向数据总线 7位(最高位)(也是busy flag)15L+背光电源正极16L-背光 电源负极1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,
39、我们就能看到字母“A”。 因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如A。以下是1602的16进制ASCII码表(表2-5):表2-5ASCII表2.4.2寄存器选择控制表表2-4寄存器选择控制表RSR/W操作说明00写入指令寄存器(清除屏等)01读busy flag(DB7),以及读取位地址计数器(DB0DB6)值10写入数据寄存器(显示各字型等)11从数据寄存器读取数据注:关于E=H脉冲开始时初始化E为0,然后置E为1,再清0. busy flag(DB7):在此位为1时,LCD忙,将无法再处理其他的指令要求。2.4.3显
40、示地址表2-6显示地址1234567891011121314151600H01H02H03H04H05H06H07H08H09H0AH0BH0CH0DH0EH0FH40H41H42H43H44H45H46H47H48H49H4AH4BH4CH4DH4EH4FH2.4.4指令集1602通过D0D7的8位数据端传输数据和指令。 显示模式设置: (初始化) 0011 1000 0x38 设置162显示,57点阵,8位数据接口; 显示开关及光标设置:(初始化) 0000 1DCB D显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效) 0000 01NS N=1(读或写一个字符后地址指针加1 &
41、光标加1), N=0(读或写一个字符后地址指针减1 &光标减1), S=1 且 N=1 (当写完一个字符后,整屏显示左移) s=0 当写完一个字符后,整屏显示不移动 数据指针设置: 数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H) 其他设置: 01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。 通常推荐的初始化过程: 延时15ms 写指令38H 延时5ms 写指令38H 延时5ms 写指令38H 延时5ms (以上都不检测忙信号) (以下都要检测忙信号) 写指令38H 写指令08H 关闭显示 写指令01H 显示清屏 写指令06H 光标
42、移动设置 写指令0cH 显示开及光标设置 完毕第三章软件设计硬件电路完成以后,进行系统的软件设计。首先要分析系统对软件的要求,然后进行软件的总体设计,包括程序的总体设计和对程序的模块化设计。按整体的功能分为多个不同的模块,单独设计、编译。软件设计思路及过程单片机转速测量可以分若干模块,然后在主程序中调用各个模块, 3.1计算机程序设计思路转速的计算公式: N=600Md/1000Td(r/min)其中,N是所转转速,Md为单片机所接收到的脉冲数,存储在TH1,TL1中;Td为定时时间,它是由定时器的计数值n乘以机器周期Tc所得,因单片机的时钟频率为 12MHZ则:Tc=12/12MHZ=1us
43、以下简要介绍转速是如何获得的:转速测量先进行初始化,启动计数器和定时器,当中断到来时,读取TH1,TL1的数值并存在指定的位置,通过函数计算程序得到转速,而此时的转速值并不能直接在显示器上显示出来,其必须转换成非压缩BCD码后,才能调用查表程序,最后显示。其主流程图如下图3-1示。计算程序显示程序BCD码转换初始化开始返回图3-1主流程图定时/计数器、中断设置:AT89C51有两个定时/计数器T0和T1,每个定时/计数器均可设置成为16为,也可设置成为13位进行计数或定时。计数器的功能是对T0或T1外来的脉冲进行计数,外部输入脉冲负跳变时,计数器进行加1。定时器功能是通过计数器实现的,每个机器
44、周期产生1个计数脉冲,即每个计数周期计数器加1,因此定时时间等于计数个数乘以机器周期。定时器工作时,每接受到1个脉冲,则在设定的初值的基础上自动加1,当所有位都为1时,再加1就会产生溢出,将向CPU提出定时器溢出的中断请求申请。当定时器采用不同的工作方式和设置不同的初值时,产生溢出中断的定时值和计数值不同,从而可以适应不同的定时或计数控制。定时器有四种工作方式:方式0,、方式1、方式2、方式3,在此不作具体介绍。表3-1工作方式寄存器TMOD的设定GATEC/TM1M0GATEC/TM1M0TMOD各位的含义如下:GATE:门控位,用于控制定时/计数器的启动是否受外部中断请求信号的影响。C/T