电机转速测量系统设计.doc

上传人:小飞机 文档编号:4267682 上传时间:2023-04-12 格式:DOC 页数:26 大小:2.54MB
返回 下载 相关 举报
电机转速测量系统设计.doc_第1页
第1页 / 共26页
电机转速测量系统设计.doc_第2页
第2页 / 共26页
电机转速测量系统设计.doc_第3页
第3页 / 共26页
电机转速测量系统设计.doc_第4页
第4页 / 共26页
电机转速测量系统设计.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《电机转速测量系统设计.doc》由会员分享,可在线阅读,更多相关《电机转速测量系统设计.doc(26页珍藏版)》请在三一办公上搜索。

1、测控系统原理与设计课程设计 姓名: 学号: 课程设计题: 电机转速测量系统设计 指导老师: 目 录1 设计任务一、 总要求能够独立进行系统方案的设计及论证,设计合理的接口电路、控制电路、主机电路等,以及合理选择有关元器件及正确使用相关工具与仪器设备,设计接口程序、控制算法程序以及主程序等,并且能结合实际调试与实验进行有关精度分析与讨论。二、 总任务针对总要求进行原理及方案论证、系统设计、接口电路设计、焊接或插接与调试、控制与系统程序设计、精度分析以及撰写报告等工作。三、 设计题目电机转速测量系统设计四、设计内容(1)用光电发射接受元件设计电机转速测量系统(2)设计发射电路与接受电路,与微机接口

2、电路(3)将整个检测系统进行相关实验室调试,并进行分析与相关计算等五、 设计进度或计划 1、准备及查阅资料 (一天)2、方案设计及论证(总体方案、硬件及软件方案) (二天) (14周三要查看各人设计方案或论文提纲)3、硬件电路设计、画图(PROTEL)及实验室调试 (四天) (15周五要查看各人实物或论文初稿) 4、软件设计、编程及调试(三天) 5、系统联调及结果分析 (二天)6、整体准备答辩(二天) (16周五全天答辩)六、设计说明书包括的主要内容 1、目录 2、设计任务书 3、设计题目 4、序言(可包括系统工作原理的介绍等) 5、方案设计及论证(可先进行总体方案设计与论证;再分模块进行方案

3、设计与论证;各模块设计中应包括适当的精度分析及选型等) 6、实验或系统调试(可包括实验调试工具仪器、实验结果及适当的分析等) 7、心得体会 8、主要参考文献另:撰写格式应符合一定的要求,请参照华东交通大学本科生毕业论文撰写规范进行。七、考核方法考核根据学生平时学习态度(含出勤率)20%、设计完成情况(样机)50%、图纸及说明书质量(含答辩)30%等确定。八、装定要求装入统一的资料袋中,报告装定好,顺序:封面,目录,设计任务书,正文,参考文献,附录等。2 设计题目电机转速测量系统设计3 系统介绍 转速的测量原理有两种:对于较高的转速,记录单位时间内的转速或角度,即频率测量法;对于较低的转速,记录

4、每转所用的时间或没特定角度多用的时间,即周期测量法。因为本系统测量对象为直流电动机,转速较高,所以选择频率测量法,即在固定的测量时间内,对传感器产生的脉冲进行计数,从而算出实际转速。假设测量时间为Tc(min),脉冲个数为P,光码盘的小孔个数为m,则可算出实际转速N(r/min)为: 当采样周期为1s,光码盘开孔数为4个时,其实际转速N为: 本设计中采用光电传感器采集信号,方便了信号的采集,也提高了测量的精度,但容易受外界光线和环境的干扰,编码盘与电机转轴的固定连接,都是本设计的难点。用1602LCD的数码管以动态扫描清晰的显示了实时的转速,程序的编写成了本设计的重点。4 系统设计方案本系统主

5、要由单片机模块、传感器模块以及显示模块组成,下面分别论述这几个模块的选择。4.1方案论证与选择4.1.1 转速测量的方法 方案一:测周期法(T法) 它是测量光电脉冲发生器所产生的相邻两个转速脉冲信号的时间来确定转速。相邻两个转速脉冲信号时间的测量是采用对已知高频脉冲信号进行计数来实现的。在极端情况下,时间的测量会产生1个高频脉冲周期,因此T法在被测转速较低(相邻两个转速脉冲信号时间较大)时,才有较高的测量精度,所以T法适合于低速测量。 方案二:测频法(M法) 在规定的检测时间内,检测光电脉冲发生器所产生的脉冲信号的个数来确定转速。虽然检测时间一定,但检测的起止时间具有随机性,因此M法测量转速在

6、极端情况下会产生1个转速脉冲的误差。当被测转速较高或电机转动一圈发出的转速脉冲信号的个数较大时,才有较高的测量精度,因此M法适合于高速测量。 方案三:频率/周期法(M/T法) 它是同时测量检测时间和在此检测时间内光电脉冲发生器所产生的转速脉冲信号的个数来确定转速。由于同时对两种脉冲信号进行计数,因此只要“同时性”处理得当,M/T法在高速和低速时都具有较高的测速精度。由于M/T法可在整个速度范围内获得高分辨率,可在不损失精度和分辨率的前提下获得快速响应。本次设计采用测频法。4.1.2 整体控制方式 方案一:采用集成电路控制方式光电传感器感受到光信号并转换成电信号,此时的电信号为模拟信号,经信号处

7、理电路滤除干扰,并转换成能被计数器接受的方波信号或脉冲信号,再经过计数、译码、显示电路,由数码管显示转速。可实现功能,但电路较复杂,系统调试也较繁杂。 方案二:采用单片机模块控制方式单片机模块接收脉冲信号,进行计数、处理,把数据传送给LCD显示模块,达到实时检测和反馈的功能。基于单片机的转速测量系统,具有硬件电路简单,程序简单和运算速度快,测速范围广,抗干扰性能好的特点。综合以上两种方案,选择方案二。4.1.3 传感器模块 方案一:采用红外传感器 红外传感器是利用红外线的物理性质来进行测量的传感器,为反射式。红外线传感器测量时不与被测物体直接接触,因而不存在摩擦,并且有灵敏度高,反应快等优点。

8、但红外线的发射、接收不好控制,而且容易受到外界光线和环境的干扰。 方案二:采用霍尔传感器 霍尔传感器是根据霍尔效应原理制成的霍尔元件。传感器的定子上有2个互相垂直的绕组A和B,在绕组的中心线上粘有霍尔片HA和HB,转子为永久磁钢,霍尔元件HA和HB的激励电机分别与绕组A和B相连,它们的霍尔电极串联后作为传感器的输出。 采用霍尔传感器在信号采样的时 图1 霍尔转速传感器结构图候,会出现采样不精确,因为它是靠磁性感应才采集脉冲的,使用时间久了会出现磁性变小,影响脉冲的采样精度。 方案三:采用光电传感器 光电传感器是通过把光强度的变化转换成电信号的变化来实现控制的。光电传感器在一般情况下,有三部分构

9、成,它们分为:发送器、接收器和检测电路。发送器对准目标发射光束,发射的光束一般来源于半导体光源,发光二极管(LED)、激光二极管及红外发射二极管。光束不间断地发射,或者改变脉冲宽度。接收器有光电二极管、光电三极管、光电池组成。在接收器的前面,装有光学元件如透镜和光圈等。在其后面是检测电路,它能滤出有效信号和应用该信号。此外,光电开关的结构元件中还有发射板和光导纤维。三角反射板是结构牢固的发射装置。它由很小的三角锥体反射材料组成,能够使光束准确地从反射板中返回,具有实用意义。 图2 光电传感器原理示意图 综合以上3种方案,选择方案三。 4.1.4 显示模块 方案一:用数码管动态显示,可以显示数字

10、,但显示的内容有限,接线繁多,且不能连续显示字符,有一定局限性。 方案二:采用LED点阵显示,能动态扫描,变换颜色,但体积比较大,需要很多点阵组合使用,显示较为繁琐,但需要的I/O资源较多,影响总体布局。 方案三:采用LCD液晶显示,显示内容最丰富,不仅编程灵活,显示可靠,而且电路简单,易与单片机连接,明亮对比度可调,显示非常清晰,是一种非常好的方案。 综合以上,选择方案三。4.2 方案描述 本设计主要用STC89C52单片机作为控制核心,由光电传感器、LCD动态显示屏构成。STC89C52单片机接收光电传感器传来的脉冲信号,单片机根据外部中断,以及内部定时器进行记数计算出电机转速送到LCD显

11、示,使能实时读出电机的转速。STC89C52单片机光电传感器信号调理显示电路 图3 系统总体方框图5 系统理论分析与计算5.1 信号采集电路的分析 采集光信号的电路原理图如图4所示:图4 采集光信号的电路原理图在图中,U3为槽型光耦,它的左端是发光二极管,因为发光二极管的驱动电流为520mA,所以设置R2的值为500,同理设置,光电接收晶体管的下拉电阻即R3为10K。光耦的输出端用三极管进行电压放大,为使T1输出的电平为TTL电平,将R5和R4的阻值设定为1K。该部分设计采用了红外光电传感器,进行非接触式检测。当有物体挡在红外光电发光二极管和高灵敏度的光电晶体管之间时,传感器将会输出一个低电平

12、,而当没有物体挡在中间时,则输出高电平,从而形成一个脉冲。系统在光电传感器收发端之间加上电动机,并在电动机转轴上安装一转盘。在这个转盘的边沿处挖若干个圆形通光孔,把传感器的检测部分放在圆孔的圆心位置。每当转盘旋转时,传感器将输出若干个脉冲。把这些脉冲通过放大整形成单片机可以识别的TTL电平,即可计算出轮子的转速。 转盘的圆孔的个数决定了测量的精度,个数越多,精度越高。这样就可以再单位时间里尽可能多地得到脉冲数。从而避免了因为两个过孔之间距离过大,而正好在过孔之前或者是在下一个过孔之前就停止了,造成较大的误差。设计中转盘的圆孔的实际个数受到技术限制。为了达到预定的效果设计,在转盘过孔的设计上采用

13、4个过孔,再通过软件对采集的数据进行计算。 图5 光码盘5.2 电机转速的计算 在编程时让单片机每隔一秒记录一次接收到的脉冲总数,然后根据如下计算电机的转速 (1)n:电机转速T:采样周期N:采样周期T内光脉冲个数P:光码盘开孔的总数当采样周期为1秒时,转速 (2)f:1秒内采集到的光脉冲个数6 硬件电路设计6.1 单片机模块 单片微型计算机简称单片机,它把组成微型计算机的各个功能部件:中央处理器CPU、随机存取存储器RAM、只读存储器ROM、可编程存储器EPROM、并行及串行输入输出I/O接口电路、定时器/计数器、中断控制器等部件集成在一块半导体芯片上,构成一个完整的微型计算机。6.1.1

14、STC89C52单片机简介 STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O 口线,内置4KB EEPROM,MAX810复位电路,3个16位/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工

15、。另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。 图6 单片机管脚图VCC:供电电压GND:接地P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输

16、出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,

17、由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为STC89C52的一些特殊功能口。6.1.2 时钟电路 时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊地一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统稳定性。常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式。 图7 单片机晶振电路 图8 单片机复位电路 单片机内部有一个用于构成振荡器的高增益反向放大器,该高增益反向放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2这两个引脚跨接在石英晶体振荡器和微调电路,就构成一个稳定的自

18、激振荡器。电路中的电容C1和C2典型值通常选择30pF左右,该电容大小会影响振荡器频率的高低,振荡器的稳定性和起振的快速性。晶振的振荡器频率的范围通常在1.212MHz之间,晶体的频率越高,则系统得时钟频率也就变高,单片机的运行速度也就越快。但反过来运行速度快,对存储器的速度要求就高。对印刷电路板的工艺要求也高,即要求浅间的寄生电容要小;晶体和电容应尽可能安装得与单片机芯片靠近,以减少寄生生活,更好的保证振荡器稳定,可靠地工作。6.1.3 复位电路为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般微机电路正常工作需要供电电源为5V5%,即4.755

19、.25V。由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。 单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从R引脚输入到内的施密特中的。当系统处于正常工作状态时,且稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位。6.2 显示电路 LCD1602液晶显示模块可以和单片机STC89C52直接接口,电路

20、如图所示。 图9 显示电路 1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线。液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。 图10 LCD1602管脚图3.3V或5V的工作电压,对比度可调。内含复位电路,可提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能。有80显示数据存储器,并建有192个5X7的字型的字符发生器,有8个可由用户自定义的5X7的字符发生器CGRAM。7 软件设计7.1 系统总体设计开始单片机按编入的程序运行,开始后对显示液晶的初始化及中断定时的初始化,为

21、后续程序做好准备,初始化好后开始检测定时是否到达1秒,等到达1秒后便取出计数脉冲值,将脉冲值经算法运算后得出转速信息送到液晶模块显示,如此循环每隔1秒刷新一次转速显示。系统总体流程图如图11所示。LCD初始化中断定时初始化 定时是否1S N Y Y取数计算数码管显示 图11 系统总体流程图7.2 中断子程序设计开始 中断程序为下降沿触发,从IT0引脚传送到单片机,程序每来一次中断,表明有脉冲触发,计一次脉冲,不断的中断循环,来一个脉冲触发一次中断。中断子程序设计流程图如图12。 是否有脉冲否 是计数脉冲加1 图12 中断子程序流程图7.3 定时子程序设计开始 定时函数为计时50ms的函数,定时

22、器初始化完成后便开始计时,每一次计时为50ms,在定时程序中判断是否计时20次到达1秒,到达1秒后便计时完毕,由单片机相应其它子程序,由重新开始计时。定时子程序设计流程图如图13所示。定时器初始化(50ms) 是否有中断 定时计数器加1 是否定时1S计时1秒完毕 图13 定时子程序流程图7.4 显示子程序设计开始显示程序初始化完毕后,等待由定时器的1秒计时完毕后,将中断函数产生的脉冲值计算后送到液晶显示部分显示,每隔1秒计时刷新一次显示,如此循环。显示子程序设计流程图如图14所示。 显示函数初始化是否定时1S否刷新转速显示是 图14 显示子程序流程图 8 测试方案8.1 电路调试在本次课程设计

23、中我的电路部分出了很多问题,期间我也换了很多次电路,虽然是个很简单的采集电路,但是由于各种原因,总是不能实现作用。我一部分一部分的排查电路,最终搭建成功。传感器模块是电路的核心,主要部件是槽型光耦,我在百度上搜索了槽型光耦的引脚图、内部结构图以及特性参数。通过计算光耦内部的发光二极管的发光电流,设置其下拉电阻的大小,使得发光二极管的发光效率较高。光电三极管在接收光之后,其集电极和发射级之间导通,在它的集电极加上一负载电阻,在集电极做输出。由于集电极输出电压不是TTL电平,所以加上一个三极管,对其进行放大,是其变成TTL电平,即可直接接单片机的I/O口,对其输出脉冲进行计数。8.1 软件调试 由

24、于本程序较大,而C语言编程具有很强的灵活性,便于编写与理解,因此采用C程序语言编写。采用自下而上的调试方法,先调试功能电路,再调试整个系统。 我们所使用的调试软件是51系列单片机开发软件Keil C51,它是一个基于32位Windows环境的应用程序,支持C语言和汇编语言编程,其6.0以上的版本将编译和仿真软件统一为Vision。Keil提供包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案。Keil能以单步执行、过程单步执行、全速执行等多种运行方式进行程序调试。如果发现程序有错,可采用在线汇编功能对程序进行在线修改,不必执行先退出调试环境、修改源程序、对工程重

25、新进行编译/汇编和连接、然后再次进入调试状态的步骤。对于一些必须满足一定条件(如按键被按下等)才能被执行的、难以用单步执行方式进行调试的程序行,可采用断点设置的方法处理。在模拟调试程序后,还须通过编程器将.hex目标文件烧写入单片机中才能观察目标样机真实的运行状况。 这次我们还用到了Protel软件画电路图,在之前的课程设计中我们没有用过Protel,因此我又学习了Protel软件的使用,我运用的是Protel的升级版Altium Designer。Altium Designer是原Protel软件开发商Altium公司推出的的电子产品开发系统,主要运行在Windows操作系统。这套软件通过把

26、原理图设计、电路仿真、PCB绘制编辑、拓扑逻辑自动布线、和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件必将使电路设计的质量和效率大大提高。Altium Designer 除了全面继承包括Protel 99SE、Protel DXP在内的先前一系列版本的功能和优点外,还增加了许多改进和很多高端功能。该平台拓宽了板级设计的传统界面,全面集成了FPGA设计功能和SOPC设计实现功能,从而允许工程设计人员能将系统设计中的FPGA与PCB设计及嵌入式设计集成在一起。主要功能有:原理图设计、印刷电路板设计、FPGA的开发、嵌入式开发、3D PCB设

27、计。 9 心得体会通过此次课程设计,使我更加扎实的掌握了有关电路和单片机设计方面的知识,在设计过程中虽然遇到了一些问题,但是经过同学和老师的帮助都一一解决了,真的非常感谢他们。在这过程中,我的专业知识以及专业技能都有所提升。通过这次课程设计,我也掌握了某些传感器的原理以及电路连接方法。由于我对单片机和C语言的基础知识不是很扎实,因此真的感觉自己走了不少的弯路,甚至课程设计过了很长时间。通过这次课程设计又重新学习了C语言以及单片机。仿真时,主要使用软件keil、Proteus 8 Professional。其中keil用来编写C语言程序,以及编译连接使之产生后缀名为hex的文件,将其烧录在软件P

28、roteus 8 Professional中进行测试仿真调试。还运用到了Altium Designer用来画电路图。这次实习的重点就是如何编写程序以及仿真中的行骗各个管脚的连接问题,主要的元器件有STC89C52、lcd1602液晶显示等。当你用心的去做一件事的时候,这件事就不会轻易的用不知对错的结果去应付你,就像你不会去拿这样的态度去对待它,做一件事和想一件事也不会是一样,如果当时我只是停留在第一天的空想,我就不会在编程和仿真的过程中发现和改正那么多的错误。实践之所以高于理论,或许正是因为它为我们提供了更多犯错误和改正错误的机会吧。本次设计把理论应用到了实践中,同时通过设计,也加深了自己对理

29、论知识的理解和掌握,在解决困难的过程中,获得了许多专业方面的知识,拓展了视野。提高了理论水平和实际的动手能力,学会了解决问题的方法,激发了我的探索精神。这样的课程设计是很好的锻炼机会,只是这已经是我们的最后一个课程设计了,以后只有毕业设计这个巨大的挑战在等待着我。通过实验设计使我深入了解到课程设计在大学学习的重要性,课程设计增强了我们的实践动手能力,也为毕业设计提供了宝贵的经验。10 参考文献1 张毅坤.陈善久,裘雪红. 单片微型计算机原理及应用M. 西安电子科技大学出版社. 2009. 124-162.2 秦曾煌. 电工学M. 高等教育出版社. 2009. 36-86.3 何立民. 单片机应

30、用技术选编M. 北京航空航天大学出版社. 2011. 89-112.4 刘笃仁. 传感器原理及应用技术M. 西安电子科技大学出版社. 2011. 169-185.5 谭浩强. C程序设计(第二版)M. 清华大学出版社. 2001.78-105.6 童诗白. 模拟电子技术基础M. 高等教育出版社. 2010. 128-169.7 马忠梅. 单片机的C语言应用程序设计M. 北京航空航天大学出版社. 2011.189-221.8 周润景. PROTEUS入门实用教程M. 机械工业出版社. 2011.57-85.9 肖婧. 单片机系统设计与仿真基于ProtuesM. 北京航空航天大学出版社. 2010

31、. 124-140.10 李丽荣,张常全,郑建红. 51单片机应用设计M. 北京理工大学出版社. 2012. 194-211.11 蓝和慧,宁武,闫晓金. 全国大学生电子设计竞赛单片机应用技能精解M. 2009. 191-217.11 附录附录一 电路仿真图 附录二 程序清单#include #include unsigned char code cdis1 = SPEED: ;unsigned char code cdis2 = r/min;sbit LCD_RS = P2 3; /寄存器选择位,将RS位定义为P2.3引脚sbit LCD_RW = P2 4;/读写选择位,将RW位定义为P2

32、.4引脚sbit LCD_EN = P2 5;/使能信号位,将EN位定义为P2.5引脚bit sec = 0;unsigned char msec = 0, Hdata = 0, Ldata = 0, Count = 0;unsigned long temp = 0;unsigned char data display = 0x00, 0x00, 0x00, 0x00, 0x00;char code reserve3_at_ 0x3b; /保留0x3b开始的3个字节/* us延时函数 */void delayNOP() _nop_(); _nop_(); _nop_(); _nop_();/*

33、 ms延时函数 */void delayms(unsigned int ms) unsigned char n; while (ms-) for (n = 0; n 114; n+) ; /* 检查LCD忙状态 lcd_busy为1时,忙,等待。 lcd-busy为0时,闲,可写指令与数据。 */bit lcd_busy() bit result; LCD_RS = 0;/根据规定,RS为低电平,RW为高电平时,可以读状态 LCD_RW = 1; LCD_EN = 1;/EN=1,才允许读写 delayNOP();/空操作,给硬件反应时间 result = (bit)(P0 &0x80);/将

34、忙碌标志电平赋给P0.7 LCD_EN = 0; /将E恢复低电平 return (result);/* 写指令数据到LCD RS=L,RW=L,E=高脉冲,D0-D7=指令码。 */void lcd_wcmd(unsigned char cmd) while (lcd_busy() ;/如果忙就等待 LCD_RS = 0; /根据规定,RS和R/W同时为低电平时,可以写入指令 LCD_RW = 0; LCD_EN = 1; /E置低电平(写指令时,E为高脉冲,就是让E从0到1发生正跳变,所以应先置0) P0 = cmd;/将数据送入P0口,即写入指令或地址 delayNOP();/空操作,给

35、硬件反应时间 LCD_EN = 0;/当E由高电平跳变成低电平时,液晶模块开始执行命令/* 将数据(字符的标准ASCII码)写入液晶模块 RS=H,RW=L,E=高脉冲,D0-D7=数据。 */void lcd_wdat(unsigned char dat) while (lcd_busy() ; LCD_RS = 1;/RS为高电平,RW为低电平时,可以写入数据 LCD_RW = 0; LCD_EN = 1; P0 = dat; /将数据送入P0口,即将数据写入液晶模块 delayNOP(); LCD_EN = 0; /当E由高电平跳变成低电平时,液晶模块开始执行命令/* LCD初始化设定

36、*/void lcd_init() delayms(15);/延时15ms,首次写指令时应给LCD一段较长的反应时间 lcd_wcmd(0x38); /显示模式设置:16*2显示,5*7点阵,8位数据 delayms(5);/延时5ms,给硬件一点反应时间 lcd_wcmd(0x38); delayms(5); /延时5ms,给硬件一点反应时间 lcd_wcmd(0x38); /连续三次,确保初始化成功 delayms(5);/延时5ms,给硬件一点反应时间 lcd_wcmd(0x0c); /显示模式设置:显示开,无光标,光标不闪烁 delayms(5);/延时5ms,给硬件一点反应时间 lcd_wcmd(0x06); /显示模式设置:光标右移,字符不移 delayms(5);/延时5ms,给硬件一点反应时间 lcd_wcmd(0x01); /清屏幕指令,将以前的显示内容清除 delayms(5); /延时5ms,给硬件一点反应时间/* 指定字符显示的实际地址 */void lcd_

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号