电控设计机油压力检测控制设计_第1页
电控设计机油压力检测控制设计_第2页
电控设计机油压力检测控制设计_第3页
电控设计机油压力检测控制设计_第4页
电控设计机油压力检测控制设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

{情绪压力与情商}电控设计机油压力检测控制设计汽车电控实习及课程设计说明书指导教师签名:年月日目录摘要…………………………21引言………………………31.1问题的提出……………31.2任务与分析……………32方案设计…………………42.1系统设计方案…………42.2系统总体框图…………43系统硬件设计……………53.1AT89C51单片机……………………5汽车电控实习及课程设计说明书3.2ADC0808………………83.3时钟电路………………113.4复位电路………………113.5MPX41一五压力传感器…………………123.6LM061L液晶显示器…………………123.7直流电机控制电路……………………一三3.8黄灯预警电路…………144系统软件设计……………一五4.1Proteus软件环境介绍………………一五4.2KileuVision4软件环境介绍………一五4.3Protel软件环境介绍………………16汽车电控实习及课程设计说明书4.4程序流程图…………174.5位置式PID控制原理………………195系统调试过程…………20设计总结……………………26致谢…………………………27参考文献……………………28附录1………………………29摘要机油压力是汽车发动机的重要参数之一。如何利用已学知识模拟机油AT89C51单片机为中心,通过MPX41一五模拟产生一个信号,通过ADC0808数据转换送入单片机进行处理,再从单片机P0口将电平信号送入液晶显示器CLED进行光报汽车电控实习及课程设计说明书PCDProteus软件中进行仿真实现设计功能。关键词:AT89C51单片机机油压力电机控制汽车电控实习及课程设计说明书1引言1.1问题的提出LED制。1.2任务与分析以AT89C51MPX41ADC0808数据转换送入单片机进行处理,再从单片机P0口将电平信号送入液晶显示器LM061LLED进行光报警,原理图,以并在Proteus软件中进行仿真实现设计功能。本系统可以分为以下6大主要模块:(1)AT89C51模块:用于数据处理,初值设定。(2)ADC0808:进行数据转换,将压力传感器采集的模拟信号转换为数字信号。(3)MPX41一五:采集模拟压力信号。汽车电控实习及课程设计说明书(4)液晶显示器LM061L:用于实时的显示机油压力信息。(5)LED二极管:超过机油压力下限值,则LED亮灯报警。(6力。2系统方案设计2.1系统设计方案本此设计通过以AT89C51MPX41过ADC0808数据转换送入单片机进行处理。指定机油压力正常的范围是20—80(MPaP0口将电平信号送入液晶显示器LM061L实现动态显示。当检测到低于机油压力安全值(即<=20Mpa)时,由单片机控制LED进行亮光报警,当检测到高于机油压力安全值(即>=80Mpa)时,由单片机通过电机控制活塞阀进行放油等紧急措施。2.2系统总体框图入AT89C51单片机的XTAL2AT89C51从ADC0808P0口输出到液晶显示器LM061L低于机油压力安全值(即<=20Mpa)时,由单片机控制LED进行亮光报警,当检测到高于机油压力安全值(即>=80Mpa)时,由单片机通过电机控制活塞阀进行放油等紧急措施。3系统硬件电路设计3.1AT89C51单片机通过对多种单片机性能的分析,最终认为89C51是最理想的电子时钟开发芯片。汽车电控实习及课程设计说明书89C51是一种带4KCMOS8位微处理器,器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-518位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51MCS-514K字节可编程闪烁存储器和1000写/擦循环,数据保留时间为10年等特点,是最好的选择。MCS-51系列单片机是Intel公司1980年推出的高性能8位单片微型计算机主要有8031、8051、8751这三种机型,他们的指令系统与芯片引脚完全兼容,仅片内ROM有所不同。主要功能为:·8位CPU;·片内带振荡器,振荡频率f的范围为1.2-12MHZ,可有时钟输出;·128B片内数据存储器;·4KB片内程序存储器;·程序存储器的寻址范围为64KB;·片外数据存储器的寻址范围为64KB;·21B专用寄存器;·4个8位并行I/O口:P0,P1,P2,P3;·1个全双工串行I/O口,可多机通信;·2个16位定时/计数器;·中断系统有5个中断源,可编程为两个优先级;·111条指令,含乘法指令和除法指令;·有强的位寻址,位处理能力;汽车电控实习及课程设计说明书·片内采用单总线结构;图3-189C51单片机引脚图89C51单片机与早期Intel的1芯片的外部引脚和指令系统完全兼容,只不过用FlashROM替代了ROM/EPROM而已。89C51单片机内部结构如图所示。图3-289C51单片机内部结构示意图各引脚的功能如下:·VCC:供电电压。·GND:接地。·P0P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。·P1P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTLP1口管脚写入1P1口FLASH编程和校验时,P1口作为第八位地址接收。·P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作P2部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。汽车电控实习及课程设计说明书·P3P3口管脚是8个带内部上拉电阻的双向I/O4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。·RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期高电平时间。·ALE/PROG的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。·:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次有效。但在访问外部数据存储器时,这两次有效的信号将不出现。·:当保持低电平时,则在此期间CPU只访问外部程序存储器(0000H-FFFFH不管是否有内部程序存储器。注意加密方式1时,将内部锁定为RESET;当端保FLASH于施加12V编程电源(VPP·XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。·XTAL2:来自反向振荡器的输出。3.2ADC0808汽车电控实习及课程设计说明书的ADC芯片。仅美国AD公司的ADC产品就有几十个系列、近百种型号之多。从具有A/D括多路开关、采样保持器等,已发展为一个单片的小型数据采集系统。ADC0808是采样分辨率为8/有一个88路模拟输入信号中的一个进行A/D转换。ADC0808是ADC0809的简化版本,功能基本相ADC0808进行A/DADC0809进行A/D转换。ADC0808是CMOS单片型逐次逼近式A/D转换器,它有8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器。图3-3AD0808引脚图1)主要技术指标和特性(1)分辨率:8位。(2)总的不可调误差:ADC0808为±1/2LSB,ADC0809为±1LSB。(3)转换时间:取决于芯片时钟频率,如CLK=500kHz时,TCONV=128μs。(4)单一电源:+5V。(50~5V5V,±10V(需外加一定电路)。(6)具有可控三态输出缓存器。(7(正脉冲),上升沿使所有内部寄存器清零,下降沿使A/D转换开始。(8)使用时不需进行零点和满刻度调节。汽车电控实习及课程设计说明书2)内部结构和外部引脚ADC0808/0809的内部结构和外部引脚分别如图11.19和图11.20所示。内部对各引脚定义分述如下:图3-4ADC0808/0809内部结构框图(1)IN0~IN7——8路模拟输入,通过3根地址译码线ADDA、ADDB、ADDC来选通一路。(2D7~D0——A/D处理器数据线连接。8位排列顺序是D7为最高位,D0为最低位。(3ADDA、ADDB、ADDC——模拟通道选择地址信号,ADDA为低位,ADDC为高位。地址信号与选中通道对应关系如表11.3所示。(4)VR(+)、VR(-)——正、负参考电压输入端,用于提供片内DAC电阻网络的基准电压。在单极性输入时,VR(+)=5V,VR(-)=0VVR(+)、VR(-)分别接正、负极性的参考电压。表3-1地址信号与选中通道的关系地址选中通道ADDCADDBADDA000IN0001IN1010IN2011IN3100IN4汽车电控实习及课程设计说明书101IN5110IN6111IN7(5)ALE——地址锁存允许信号,高电平有效。当此信号有效时,A、B、CSTART信号连在一起,以便同时锁存通道地址和启动A/D转换。(6)START——A/D转换启动信号,正脉冲有效。加于该端的脉冲的上升沿A/D动脉冲,则原来的转换进程被中止,重新从头开始转换。(7EOC——转换结束信号,高电平有效。该信号在A/D转换过程中为低电平,其余时间为高电平。该信号可作为被CPU查询的状态信号,也可作为对CPU的中断请求信号。在需要对某个模拟量不断采样、转换的情况下,EOC也可作为启动信号反馈接到START端,但在刚加电时需由外电路第一次启动。(8)OE——输出允许信号,高电平有效。当微处理器送出该信号时,ADC0808/0809作方式下,该信号往往是CPU发出的中断请求响应信号。3)工作时序与使用说明当通道选择地址有效时,ALE信号一出现,地址便马上被锁存,这时转换启动信号紧随ALE之后(或与ALE同时)出现。START的上升沿将逐次逼近寄存器SAR2μs加8个时钟周期内(不定)EOC信号将变低电EOC汽车电控实习及课程设计说明书到变为高电平的EOCOE模拟输入通道的选择可以相对于转换开始操作独立地进行(当然,不能在转换过程中进行),然而通常是把通道选择和启动转换结合起来完成(因为ADC0808/0809的时间特性允许这样做)。这样可以用一条写指令既选择模拟通道总线选择,一种是通过数据总线选择。如用EOC信号去产生中断请求,要特别注意EOC的变低相对于启动信号有2μs+8个时钟周期的延迟,要设法使它不致产生虚假的中断请求。为此,最好利用EOC上升沿产生中断请求,而不是靠高电平产生中断请求。3.3时钟系统利用芯片内部振荡电路,在XTAL1、XTAL2引脚上外接定时元件,内部振荡电路便产生自激振荡,用示波器可以观察到XTAL2输出时钟信号。振荡晶体选择12MHzC1和C2可在20-100pF60-70pF时振荡器有较高的频率稳定性。图3-5内部时钟电路3.4复位电路后,电源对按键RESET端维持两个机器周期的高电平实现复位的。图3-6复位电路3.5MPX41一五压力传感器MPX41一五系列压电电阻传感器是一个硅压力传感器。这个传感器结合了高级的汽车电控实习及课程设计说明书0℃-85℃的温度下误差不超过1.5%,温度补偿是-40℃-125℃。图3-7压力传感器3.6液晶显示器LM061LLM016L液晶模块采用HD44780控制器,hd44780具有简单而功能较强的LM016L与单片机MCU通讯可采用8位或4hd44780控制器由两个8IR)和数据寄存器(DR)忙标志(BFRAM(DDRAM),字符发生器ROMA(CGOROMRAM(CGRAMRAM(AC)IR用于寄存指令码,只能写入不能读出,DR用于寄存数据,数据由内部操作自动写入DDRAM和CGRAM,或者暂存从DDRAM和CGRAM读出的数据,BF为1DDTAM80个CGROM由8位字符码生成5*7点阵字符160中和5*10点阵字符32种.8位字符编码和字符的对应关系,CGRAM是为用户编写特殊字符留用的,它的容量仅648个5*7点阵字符或者4个5*10点阵字符,AC可以存储DDRAM和CGRAM的地址,如果地址码随指令写入IR,则IR自动把地址码装入AC,同时选择DDRAM或CGRAM但愿,LM016L液晶模块的引脚功能如下表所示:图3-8LM061L引脚图3.7直流电机控制电路流发电机,将机械能转换为电能。汽车电控实习及课程设计说明书直流电机的结构应由定子和转子两大部分组成。直流电机运行时静止不动的部分称为定子,定子的主要作用是产生磁场,由机座、主磁极、换向极、端盖、轴、电枢铁心、电枢绕组、换向器和风扇等组成。直流电机在控制中使用了脉宽调制(PWM)控制的方法。PWM的占空比决定输出到直流电机的平均电压.PWM不是调节电流的。PWM的意思是脉宽调节,也就是调节方波高电平和低电平的时间比,一个20%占空比波形,会有20%的高电平时间和80%的低电平时间,而一个60%占空比的波形则具有60%的高电平时间和40%的低电平时间,占空比越大,高电平时间越长,则输出的脉冲幅度越高,即电压越高.如果占空比为0%,那么高电平时间为0,则没有电压输出.如果占空比为100%,那么输出全部电压。所以通过调节占空比,可以实现调节输出电压的目的,而且输出电压可以无级连续调节.脉宽调制(PWM)在对电机的转速控制方面,可大大节省能量。PWM具有很强的抗噪性,且有节约空间、比较经济等特点。模拟控制电路有以下缺陷:模拟电路容易随时间漂移,PWM以上的缺陷,实现了用数字方式来控制模拟信号,可以大幅度降低成本和功耗。图3-8直流电机控制电路3.8黄灯预警电路当油压在正常范围内(20—80Mpa)时黄灯不亮,当油压低于最低的阀值时,汽车电控实习及课程设计说明书单片机控制黄灯亮起,达到警示的作用。图3-9黄灯警示电路4系统软件设计4.1Proteus软件环境介绍本系统的硬件设计首先是在Proteus软件环境中仿真实现的。Proteus软件是来自英国Labcenterelectronics公司的EDA工具软件,Proteus软件有十多年的历史,在全球广泛使用,除了具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,它的电路仿真是互动的。辑分析仪等,还能看到运行后输入输出的效果。Proteus建立了完备的电子设计ProteusLite注册达到更好的效果。Proteus51系列、AVR、PIC等常用的MCU及其外围电路(如LCDRAMROMLEDAD/DA,部分SPI器件,部分IIC器件...Proteus与multisim比较类似,只不过它可以仿真MCU,当然,软件仿真精度有限,而且不可能所有的器件都找得到能性比较小。当然,硬件实践还是必不可少的。在没有硬件的情况下,Proteus能像pspice仿真模拟/数字电路那样仿真MCU及外围电路。另外,即使有硬件,在程序编写早期用软件仿真一下也是很有必要的。Proteus软件主要具有以下几个方面的特点:汽车电控实习及课程设计说明书1)设计和仿真软件Proteus是一个很有用的工具,它可以帮助学生和专业人士提高他们的模拟和数字电路的设计能力。2)它允许对电路设计采用图形环境,在这种环境中,可以使用一个特定符号来代替元器件,并完成不会对真实电路造成任何损害的电路仿真操作。3)它可以仿真仪表以及可描述在仿真过程中所获得的信号的图表。4)它可以仿真目前流行的单片机,如PICS,ATMEL-AVR,MOTOROLA,8051等。5)在设计综合性方案中,还可以利用ARES开发印制电路板。4.2KeilμVision软件环境介绍KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系CKeil提供了包括C强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C具也会令你事半功倍。C51工具包的整体结构,uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE)开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)ABS文件由OH51转换成标准的HexdScope51或tScope51使用进行源代码级调试,汽车电控实习及课程设计说明书也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。4.3Protel软件介绍Protel印制板设计软件包是澳大利亚ProtelTechnology公司与1990年推出的电子CAD采用了分层次下拉窗口菜单结构形式,用户基本上不需要记背太多的键盘命令,用鼠标点击菜单命令就能操作,Protel子产CAD线策略方法,Protel就可以轻易的达到98%-100%的布通率。对于极少数不能布通的定方,ProtelProtelProtel已成为印制板设计加工方面的工业标准。据初步统计Protel在CAD的市场占有率达95%,成为电子产品制造业界的首选CAD软件。4.4程序流程图(1)主程序流程图N是否超过油压上汽车电控实习及课程设计说明书Y结束图4-1主程序流程图主程序流程图说明:程序初期,定时器、寄存器初始化,将传感器采集的数据经传给ADC0808,通过LCD上。并且判断机油压力是否低于最低值,低于则通过P3.7口LED续测量油压。(2)A/D转换子程序流程图:AD子程序流程图说明:A/DAT89C51的P3.1P3.0P3.3口连接ADC0808的OESTART和EOCIN0端口传给ADC0808进行模数转换,将检测的数据传送给单片机。显示子程序流程说明:开始阶段,将液晶显示器初始化,然后将写入光标跳到目标位,单片机P0口控制LCD的D0-D7显示。4.5位置式PID控制原理当今的自动控制技术都是基于反馈的概念。反馈理论的要素包括三个部分:汽车电控实习及课程设计说明书制系统的响应。PD控制器由比例单元(PDe(tu(t)的关系为其中kp为比例系数;TD为微分时间常数的差分方程代替连续系统的微分方程,离散化后的PID表达式是为:根据递推原理,可以写出k-1的PID输出表达式则其中k简单许多。在程序设计中,Now_speed[1]=Now_speed[0]表示E(t-1)Now_speed[0]=(int)(setspeed-speed);E(t)由此就可以得到相应的比例部分,积分部分,微分部分:P=KP*(Now_speed[0]);I=KI*(Now_speed[0]+pre_speed);D=KD*(Now_speed[0]-Now_speed[1]);注:pre_speed表示的之前差值之和。5系统调试过程汽车电控实习及课程设计说明书错误,从而进行下一步的修改。(1)Protel电路调试在Protel的元件库里建立89C51,没有LCD液晶显示器,单击【Edit】按键,对元件库的进行编辑,再建立新的封装库编写其封装,连线。电路调试:单击【ERC】按键,进行节气点ERC检查;单击【BillofMaterial】生成元件列表,检查元器件封装;单击【CreatNetlist】生成网络列表。图5-1Protel原理图(2)KeiluVision3中程序编写与调试将已经设计好的程序写入KeiluVision3软件中,用C语言进行程序编译。将有0error0warninghex路仿真做准备。(3)在Proteus中,对硬件电路图进行设计和绘制、仿真。首先列出单片机芯片AT89C51,ADC0808,内部时钟电路,复位电路,电机控制电Keil软件里已经编译好的程序输入单片机。双击单片机,加载编译好的程序生成的.hex文件,按下仿真按钮,观察仿真是否正常进行。当机油压力值处于正常范围内也就是在20—80Mpa电机不转动,此时程序只执行显示子程序。图5-2proteus电路仿真全图(机油压力正常时)图5-3proteus电路仿真电机部分图(机油压力正常时)图5-4proteus电路仿真显示部分图(机油压力正常时)当机油压力值超过最高峰也就是高于80Mpa汽车电控实习及课程设计说明书阀推动,使燃烧油路通畅的供应燃油,发动机正常运转。图5-5proteus电路仿真图1(机油压力为84Mpa时)图5-5proteus电路仿真电机部分1(机油压力为84Mpa时)图5-6proteus电路仿真图2(机油压力为92Mpa时)图5-7proteus电路仿真电机部分图2(机油压力为92Mpa时)当机油压力低于最低值也就是低于20Mpa图5-6proteus电路仿真图(机油压力为17时)设计总结本次课程设计是要求我们基于单片机设计机油压力电控系统,其功能是以AT89C51单片机为中心,在MPX41一五模拟产生一个信号后,通过ADC0808将模拟信号转化为数字数据转换送入单片机进行处理,再从单片机P0口将电平信号送入液晶显示器LM061L实现动态显示。并在高于或低于机油压力安全值时由单片机控制LED以及直流电机分别作出相应的反应。的提高自身能力的方法。这个设计的大部分内容都是在网上和书籍上找的内容,汽车电控实习及课程设计说明书学。虽然自己尽了很大的努力,但是还有很多不尽人意的地方,我想大概是由于能力,争取在电路设计方面取进步。该电路还有很多缺陷。今后我要加强学习,像严格要求设计的每一个细节一样。致谢在赵玲老师以及同学的指导和帮助之下,我终于完成了本次的课程设计,其中关于单片机设计的各种书籍也给了我很大的帮助和指导。也正是通过这次的课程设计的学习与提高,让我对单片机有了更进一步的认识,对硬件以及软件的设对自己的能力也是一种很好的锻炼。在此,我向赵老师和帮助过我的老师和同学们,表示崇高的敬意和衷心的感谢汽车电控实习及课程设计说明书参考文献[1]张毅刚,彭喜元.单片机原理与应用设计.电子工业出版社,2008.[2]先锋工作室.单片机程序设计实例.清华大学出版社,2003.[3]周国雄,晏密英.单片机应用系统设计精讲.中国铁道部出版社,2011.[4]赵佩华.单片机接口技术及应用.机械工业出版社,2003.1.[5]唐岚.汽车测试技术.机械工业出版社,2006.7.[6].电子线路辅助分析软件在汽车电子方向相关课程中的应用.高等教育研究,2008,No.2.[7]张西振.汽车发动机电控技术.北京:机械工业出版社,2004.附录1源程序代码:/******************************2010级汽电一班:杜晨瑞*******************************/

#include<reg52.h>#include<math.h>#include<absacc.h>

#include<intrins.h>

#defineLCDP0#defineOUT_MAX10000

#defineOUT_MIN-10000

#defineKP80#defineKI8#defineKD10typedefunsignedcharuchar;

typedefunsignedintuint;

/*LCD显示屏控制*/汽车电控实习及课程设计说明书sbitRS=P2^2;

sbitRW=P2^3;

sbitE=P2^1;/*控制部分*/

sbitSTART=P3^0;

sbitOE=P3^1;

sbitEOC=P3^3;

sbitLED=P2^0;

sbitPWM=P2^6;

sbitDIR=P2^7;

intPWML=0;intcount=0;intflag=0;intsetspeed=60;

intspeed=0;intNow_speed[2]={0,0};

intpre_speed=0;

intnum=0;intj=0;ucharhighh,highl,lowh,lowl;

inthigh=10000;ucharAD;voidad_0808()

{START=0;//启动转换START=1;START=0;while(!EOC)//等待转换完毕的信号,当EOC=1时转换完毕{;}OE=1;//输出三态门打开,将转换的结果输出到数据总线上AD=P1*100/255;//OE=0;汽车电控实习及课程设计说明书}voidadc(){ad_0808();setspeed=(int)AD;}voiddelay(uinta){uinti,j;for(i=0;i<a;i++)for(j=0;j<200;j++);}voidDelay(){uinti;for(i=0;i<225;i++);}/*************LCD显示部分*******************//*把1个命令写入LCD*/voidvWriteLM(ucharlcdCommand){Delay();//先延时。E=1;//然后把LCD改为写入命令状态。RS=0;RW=0;LCD=lcdCommand;//再输出命令。E=0;//最后执行命令。}/*把1个数据写入LCD*/voidvWriteData(ucharlcdData){Delay();//先延时。E=1;//然后把LCD改为写入数据状态。RS=1;汽车电控实习及课程设计说明书RW=0;LCD=lcdData;//再输出数据。E=0;//最后显示数据。}/*把1个字符显示到当前光标处*/voidvShowOneChar(ucharlcdChar){switch(lcdChar){case'':vWriteData(0x20);break;

case':':vWriteData(0x3A);break;

case'0':vWriteData(0x30);break;

case'1':vWriteData(0x31);break;

case'2':vWriteData(0x32);break;

case'3':vWriteData(0x33);break;

case'4':vWriteData(0x34);break;

case'5':vWriteData(0x35);break;

case'6':vWriteData(0x36);break;

case'7':vWriteData(0x37);break;

case'8':vWriteData(0x38);break;

case'9':vWriteData(0x39);break;

case'A':vWriteData(0x41);break;

case'B':vWriteData(0x42);break;

case'C':vWriteData(0x43);break;

case'D':vWriteData(0x44);break;

case'E':vWriteData(0x45);break;case'F':vWriteData(0x46);break;case'G':vWriteData(0x47);break;case'H':vWriteData(0x48);break;case'I':vWriteData(0x49);break;case'J':vWriteData(0x4A);break;case'K':vWriteData(0x4B);break;case'L':vWriteData(0x4C);break;case'M':vWriteData(0x4D);break;汽车电控实习及课程设计说明书case'N':vWriteData(0x4E);break;case'O':vWriteData(0x4F);break;case'P':vWriteData(0x50);break;case'Q':vWriteData(0x51);break;case'R':vWriteData(0x52);break;case'S':vWriteData(0x53);break;case'T':vWriteData(0x54);break;case'U':vWriteData(0x55);break;case'V':vWriteData(0x56);break;case'W':vWriteData(0x57);break;case'X':vWriteData(0x58);break;case'Y':vWriteData(0x59);break;case'Z':vWriteData(0x5A);break;default:break;}}/*把1个字符串显示到当前光标处*/voidvShowChar(ucharlcdaChar[]){ucharlcdCount;for(lcdCount=0;;lcdCount++){vShowOneChar(lcdaChar[lcdCount]);if(lcdaChar[lcdCount+1]=='\0')break;

}}/*把一个三位数字显示出来*/voidvShowNumber(uintuiNumber){ucharlcdaNumber[3],lcdNumCount;if(uiNumber>999)uiNumber=999;lcdaNumber[0]=uiNumber/100;//把计算数字的每个位存入数组。汽车电控实习及课程设计说明书lcdaNumber[1]=(uiNumber-100*(int)lcdaNumber[0])/10;lcdaNumber[2]=uiNumber-100*(int)lcdaNumber[0]-10*lcdaNumber[1];for(lcdNumCount=0;lcdNumCount<3;lcdNumCount++){vShowOneChar(lcdaNumber[lcdNumCount]+48);//从首位到末位逐一输出。}}voidLCD_init(){vWriteLM(0x01);//清屏vWriteLM(0x38);//显示模式设置:8位2行5x7点阵vWriteLM(0x0C);//(0x0C)文字不动,光标自动右移vWriteLM(0x0F);//显示器开、光标开、闪烁开}/****************电

温馨提示

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

评论

0/150

提交评论