版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电控设计机油压力检测控制设计资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。交通与汽车工程学院课程设计说明书课程名称:汽车电控系统实习及课程设计课程代码:6010319题目:机油压力控制系统年级/专业/班:级汽车电子一班 学生姓名: 学号: 开始时间:年1月6日完成时间:年1月10日课程设计成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)说明书(计算书、图纸、分析报告)撰写质量(45)总分(100)指导教师签名:年月日目录摘要…………………………21引言………………………31.1问题的提出……………31.2任务与分析……………32方案设计…………………42.1系统设计方案…………42.2系统总体框图…………4 3系统硬件设计……………53.1AT89C51单片机……………………53.2ADC0808………………83.3时钟电路………………113.4复位电路………………113.5MPX4115压力传感器…………………123.6LM061L液晶显示器…………………123.7直流电机控制电路 ……………………133.8黄灯预警电路…………144系统软件设计……………154.1Proteus软件环境介绍………………154.2KileuVision4软件环境介绍………15 4.3Protel软件环境介绍………………16 4.4程序流程图…………174.5位置式PID控制原理………………195系统调试过程…………20设计总结……………………26致谢…………………………27参考文献……………………28附录1………………………29摘要机油压力是汽车发动机的重要参数之一。如何利用已学知识模拟机油压力检测,而且对机油压力进行电控是开始本设计的初衷。本此设计经过以AT89C51单片机为中心,经过MPX4115模拟产生一个信号,经过ADC0808数据转换送入单片机进行处理,再从单片机P0口将电平信号送入液晶显示器C实现动态显示。并在超过机油压力安全值时由单片机控制LED进行光报警,同时当机油压力过高或者过低时经过电机控制活塞阀进行放油处理。此说明书给出了系统的设计原理图,以及PCD印制板图,并在Proteus软件中进行仿真实现设计功能。关键词:AT89C51单片机机油压力电机控制
1引言1.1问题的提出随着进入电气时代,越来越多的电子技术被应用在现代汽车上。汽车也将由单纯的机械产品向高级的机电一体化产品方向发展。由于实时驾驶信息系统及多媒体设备在汽车上普及,汽车更具个性化、通用性、安全性和舒适性。汽车在人们的生活中不但仅是代步工具,而逐步成为一种生活的方式。在汽车电子领域的研究成为汽车研发中最活跃的一部分。随着进入电气时代,电子测控装置被广泛应用于各种电器机械产品上,本次课程设计的任务就是基于单片机设计机油压力电控系统,检测机油压力,对油压超过预定值则使用LED报警,而且能够进行控制。1.2任务与分析本次设计的任务是基于单片机机油压力电控系统设计。要求是本此设计经过以AT89C51单片机为中心,经过MPX4115模拟产生一个信号,经过ADC0808数据转换送入单片机进行处理,再从单片机P0口将电平信号送入液晶显示器LM061L实现动态显示。并在超过机油压力安全值时由单片机控制LED进行光报警,同时当机油压力过时经过电机控制活塞阀进行控制。此说明书给出了系统的设计原理图,以并在Proteus软件中进行仿真实现设计功能。本系统能够分为以下6大主要模块:(1)AT89C51模块:用于数据处理,初值设定。(2)ADC0808:进行数据转换,将压力传感器采集的模拟信号转换为数字信号。(3)MPX4115:采集模拟压力信号。(4)液晶显示器LM061L:用于实时的显示机油压力信息。(5)LED二极管:超过机油压力下限值,则LED亮灯报警。(6)直流电机:当机油压力过高时,经过电机控制活塞阀,从而控制机油压力。2系统方案设计2.1系统设计方案本此设计经过以AT89C51单片机为中心,经过MPX4115模拟产生一个信号,经过ADC0808数据转换送入单片机进行处理。指定机油压力正常的范围是20—80(MPa),当机油压力在正常范围内时,仅仅从单片机P0口将电平信号送入液晶显示器LM061L实现动态显示。当检测到低于机油压力安全值(即<=20Mpa)时,由单片机控制LED进行亮光报警,当检测到高于机油压力安全值(即>=80Mpa)时,由单片机经过电机控制活塞阀进行放油等紧急措施。2.2系统总体框图 当程序启动后,程序进入初始化阶段。时钟电路的晶振产生外部振荡脉冲信号送入AT89C51单片机的XTAL2口。单片机AT89C51执行编写在其内部的程序,处理从ADC0808送来的信号,并送到P0口输出到液晶显示器LM061L显示。当检测到低于机油压力安全值(即<=20Mpa)时,由单片机控制LED进行亮光报警,当检测到高于机油压力安全值(即>=80Mpa)时,由单片机经过电机控制活塞阀进行放油等紧急措施。3系统硬件电路设计3.1AT89C51单片机
经过对多种单片机性能的分析,最终认为89C51是最理想的电子时钟开发芯片。89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,而且它与MCS-51兼容,且具有4K字节可编程闪烁存储器和1000写/擦循环,数据保留时间为等特点,是最好的选择。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的8051/8751/8031芯片的外部引脚和指令系统完全兼容,只不过用FlashROM替代了ROM/EPROM而已。89C51单片机内部结构如图所示。图3-289C51单片机内部结构示意图各引脚的功能如下:·VCC:供电电压。·GND:接地。
·P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它能够被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。·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口输出地址的高八位。在给出地址”1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
·P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个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位的、以逐次逼近原理进行模/数转换的器件。其内部有一个8通道多路开关,它能够根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。ADC0808是ADC0809的简化版本,功能基本相同。一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行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。(5)模拟输入电压范围:单极性0~5V;双极性±5V,±10V(需外加一定电路)。(6)具有可控三态输出缓存器。(7)启动转换控制为脉冲式(正脉冲),上升沿使所有内部寄存器清零,下降沿使A/D转换开始。(8)使用时不需进行零点和满刻度调节。2)内部结构和外部引脚ADC0808/0809的内部结构和外部引脚分别如图11.19和图11.20所示。内部各部分的作用和工作原理在内部结构图中已一目了然,在此就不再赘述,下面仅对各引脚定义分述如下:图3-4ADC0808/0809内部结构框图(1)IN0~IN7——8路模拟输入,经过3根地址译码线ADDA、ADDB、ADDC来选通一路。(2)D7~D0——A/D转换后的数据输出端,为三态可控输出,故可直接和微处理器数据线连接。8位排列顺序是D7为最高位,D0为最低位。(3)ADDA、ADDB、ADDC——模拟通道选择地址信号,ADDA为低位,ADDC为高位。地址信号与选中通道对应关系如表11.3所示。(4)VR(+)、VR(-)——正、负参考电压输入端,用于提供片内DAC电阻网络的基准电压。在单极性输入时,VR(+)=5V,VR(-)=0V;双极性输入时,VR(+)、VR(-)分别接正、负极性的参考电压。表3-1地址信号与选中通道的关系地址选中通道ADDCADDBADDA000011110011001101010101IN0IN1IN2IN3IN4IN5IN6IN7(5)ALE——地址锁存允许信号,高电平有效。当此信号有效时,A、B、C三位地址信号被锁存,译码选通对应模拟通道。在使用时,该信号常和START信号连在一起,以便同时锁存通道地址和启动A/D转换。(6)START——A/D转换启动信号,正脉冲有效。加于该端的脉冲的上升沿使逐次逼近寄存器清零,下降沿开始A/D转换。如正在进行转换时又接到新的启动脉冲,则原来的转换进程被中止,重新从头开始转换。(7)EOC——转换结束信号,高电平有效。该信号在A/D转换过程中为低电平,其余时间为高电平。该信号可作为被CPU查询的状态信号,也可作为对CPU的中断请求信号。在需要对某个模拟量不断采样、转换的情况下,EOC也可作为启动信号反馈接到START端,但在刚加电时需由外电路第一次启动。(8)OE——输出允许信号,高电平有效。当微处理器送出该信号时,ADC0808/0809的输出三态门被打开,使转换结果经过数据总线被读走。在中断工作方式下,该信号往往是CPU发出的中断请求响应信号。3)工作时序与使用说明当通道选择地址有效时,ALE信号一出现,地址便马上被锁存,这时转换启动信号紧随ALE之后(或与ALE同时)出现。START的上升沿将逐次逼近寄存器SAR复位,在该上升沿之后的2μs加8个时钟周期内(不定),EOC信号将变低电平,以指示转换操作正在进行中,直到转换完成后EOC再变高电平。微处理器收到变为高电平的EOC信号后,便立即送出OE信号,打开三态门,读取转换结果。模拟输入通道的选择能够相对于转换开始操作独立地进行(当然,不能在转换过程中进行),然而一般是把通道选择和启动转换结合起来完成(因为ADC0808/0809的时间特性允许这样做)。这样能够用一条写指令既选择模拟通道又启动转换。在与微机接口时,输入通道的选择可有两种方法,一种是经过地址总线选择,一种是经过数据总线选择。如用EOC信号去产生中断请求,要特别注意EOC的变低相对于启动信号有2μs+8个时钟周期的延迟,要设法使它不致产生虚假的中断请求。为此,最好利用EOC上升沿产生中断请求,而不是靠高电平产生中断请求。3.3时钟系统利用芯片内部振荡电路,在XTAL1、XTAL2引脚上外接定时元件,内部振荡电路便产生自激振荡,用示波器能够观察到XTAL2输出时钟信号。振荡晶体选择12MHz。电容只无严格要求,但电容取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,C1和C2可在20-100pF取值,但在,60-70pF时振荡器有较高的频率稳定性。 图3-5内部时钟电路3.4复位电路复位电路一般采用上电自动复位和按钮复位两种方式。本次设计采用按键复位电路。按键复位电路是在按键瞬间接地来实现的,其电路如图所示。按下复位按钮后,电源对按键RESET端维持两个机器周期的高电平实现复位的。图3-6复位电路3.5MPX4115压力传感器MPX4115系列压电电阻传感器是一个硅压力传感器。这个传感器结合了高级的微电机技术,薄膜镀金属。还能为高水准模拟输出信号提供一个均衡压力。在0℃-85℃的温度下误差不超过1.5%,温度补偿是-40℃-125℃。图3-7压力传感器3.6液晶显示器LM061LLM016L液晶模块采用HD44780控制器,hd44780具有简单而功能较强的指令集,能够实现字符移动,闪烁等功能,LM016L与单片机MCU通讯可采用8位或4位并行传输两种方式,hd44780控制器由两个8位寄存器,指令寄存器(IR)和数据寄存器(DR)忙标志(BF),显示数RAM(DDRAM),字符发生器ROMA(CGOROM)字符发生器RAM(CGRAM),地址计数器RAM(AC)。IR用于寄存指令码,只能写入不能读出,DR用于寄存数据,数据由内部操作自动写入DDRAM和CGRAM,或者暂存从DDRAM和CGRAM读出的数据,BF为1时,液晶模块处于内部模式,不响应外部操作指令和接受数据,DDTAM用来存储显示的字符,能存储80个字符码,CGROM由8位字符码生成5*7点阵字符160中和5*10点阵字符32种.8位字符编码和字符的对应关系,CGRAM是为用户编写特殊字符留用的,它的容量仅64字节,能够自定义8个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能够完全免费,也能够花微不足道的费用注册达到更好的效果。Proteus是当前最好的模拟单片机外围器件的工具。能够仿真51系列、AVR、PIC等常见的MCU及其外围电路(如LCD,RAM,ROM,键盘,马达,LED,AD/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语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,经过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。C51工具包的整体结构,uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),能够完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创立生成库文件,也能够与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也能够直接写入程序存贮器如EPROM中。4.3Protel软件介绍Protel印制板设计软件包是澳大利亚ProtelTechnology公司与1990年推出的电子CAD产品,具有方便、易学、实用、快速以及高速度、高步通率的特点。它采用了分层次下拉窗口菜单结构形式,用户基本上不需要记背太多的键盘命令,用鼠标点击菜单命令就能操作,Protel有着很高的自动布线布通率。布通率是电子产CAD产品的一项重要指标,它反映电子元件在电路图中连接关系有多少能在印刷版图中实现。在设计常见的单、双面印制板时只要选择适当的元件布局和布线策略方法,Protel就能够轻易的达到98%-100%的布通率。对于极少数不能布通的定方,Protel能够用飞线指示出来,引导用户用手工方法连通。另外,Protel有强大的宏命令设置功能,利用宏命令功能多定义的热键能够大大提高操作速度。 Protel已成为印制板设计加工方面的工业标准。据初步统计Protel在CAD的市场占有率达95%,成为电子产品制造业界的首选CAD软件。4.4程序流程图(1)主程序流程图开始开始系统初始化采集数据,数据转化子程序采集数据,数据转化子程序调用显示程序,调用显示程序,LCD显示是否超过油压上下限?是否超过油压上下限?NY低于油压下限,使用警示灯超过油压上限,使用电机控制低于油压下限,使用警示灯超过油压上限,使用电机控制结束图4-1主程序流程图主程序流程图说明:程序初期,定时器、寄存器初始化,将传感器采集的数据经传给ADC0808,经过数据转换子程序将模拟信号转换为数字信号信号经过显示子程序,将数字显示在LCD上。而且判断机油压力是否低于最低值,低于则经过P3.7口LED报警;机油压力是否高于最高值高于则经过电机转动控制活塞阀调节,相反则返回程序,继续测量油压。(2)A/D转换子程序流程图:AD子程序流程图说明:在此流程图中,主要说明的是本次设计的A/D数据转换过程。单片机AT89C51的P3.1、P3.0、P3.3口连接ADC0808的OE、START和EOC端口,压力信号经过IN0端口传给ADC0808进行模数转换,将检测的数据传送给单片机。显示子程序流程说明: 开始阶段,将液晶显示器初始化,然后将写入光标跳到目标位,单片机P0口控制LCD的D0-D7口,读入数据显示实时机油压力。调用延时程序,返回程序继续显示。4.5位置式PID控制原理当今的自动控制技术都是基于反馈的概念。反馈理论的要素包括三个部分:测量、比较和执行。测量关心的变量,与期望值相比较,用这个误差纠正调节控制系统的响应。PD控制器由比例单元(P)、微分单元(D)组成。其输入e(t)与输出u(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系统调试过程经过上面的硬件设计和软件设计过程,设计的工作已经基本完成,接下来的工作就是对所设计好的应用系统进行调试。经过调试能够检查出系统出现的一些错误,从而进行下一步的修改。Protel电路调试 在Protel的元件库里建立89C51,没有LCD液晶显示器,单击【Edit】按键,对元件库的进行编辑,再建立新的封装库编写其封装,连线。电路调试:单击【ERC】按键,进行节气点ERC检查;单击【BillofMaterial】生成元件列表,检查元器件封装;单击【CreatNetlist】生成网络列表。图5-1Protel原理图 KeiluVision3中程序编写与调试将已经设计好的程序写入KeiluVision3软件中,用C语言进行程序编译。将有错误提示的程序修改过来,显示0error,0warning,最后hex文件的生成,为电路仿真做准备。(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单片机为中心,在MPX4115模拟产生一个信号后,经过ADC0808将模拟信号转化为数字数据转换送入单片机进行处理,再从单片机P0口将电平信号送入液晶显示器LM061L实现动态显示。并在高于或低于机油压力安全值时由单片机控制LED以及直流电机分别作出相应的反应。 设计一个控制系统,最重要的是要深刻理解其原理以及其实际用途,然后才能根据其原理进行整个系统的设计。用理论指导实践能够达到事倍功半的效果,而有坚实的理论做基础也会使设计变得得心应手。在设计电路的过程中应注意充分利用并扩展所学过的基础知识,设计的过程就是学习的过程,在设计过程中验证理论的正确性,弥补知识的漏洞。正确对待设计过程中遇到的错误,遇到错误与问题要敢于面对并设法找到解决的办法。经过对该电路的设计过程,而且我还查阅了不少相关资料,更深刻地认识和巩固了平时所学的知识,使理论与实践有机结合,提高了我对所学专业的兴趣并积累了一些相关经验。我认为这就是一种很好的提高自身能力的方法。这个设计的大部分内容都是在网上和书籍上找的内容,自己做了一点点小小的改动,在上网找资料的同时也学到了许多东西,找到了很多学习单片机的网站,里面的内容都比较适合我初学者去学,有些网站还专门介绍这种单片机的类型、用法、功能等等。经过这个课程设计,使我发现,小小的一片单片机有这么强大的功能,能应用于各种领域。我应该在自己以后的学习中,不但要有刻苦努力,要有钻研精神,还要有创新,对自己感兴趣的一定要用心去学。虽然自己尽了很大的努力,可是还有很多不尽人意的地方,我想大概是由于开展独立开发经验不足的缘故吧,作为一个学汽车电子的学生,我想我有必要经过这次课更多的了解自己的不足,从而在以后的学习工作中不断增强自己的动手能力,争取在电路设计方面取进步。该电路还有很多缺陷。今后我要加强学习,去认识更深层的科学知识,使我设计出来的东西更加完美。要严格要求自己,就像严格要求设计的每一个细节一样。致谢在赵玲老师以及同学的指导和帮助之下,我终于完成了本次的课程设计,其中关于单片机设计的各种书籍也给了我很大的帮助和指导。也正是经过这次的课程设计的学习与提高,让我对单片机有了更进一步的认识,对硬件以及软件的设计也有很大的提高。让我能够将以前在课堂上学到的知识与实践紧密的结合起来,对自己的能力也是一种很好的锻炼。在此,我向赵老师和帮助过我的老师和同学们,表示崇高的敬意和衷心的感谢
参考文献[1]张毅刚,彭喜元.单片机原理与应用设计.电子工业出版社,.[2]先锋工作室.单片机程序设计实例.清华大学出版社,.[3]周国雄,晏密英.单片机应用系统设计精讲.中国铁道部出版社,.[4]赵佩华.单片机接口技术及应用.机械工业出版社,.1.[5]唐岚.汽车测试技术.机械工业出版社,.7.[6]彭忆强、吴琼、葛晓成.电子线路辅助分析软件在汽车电子方向相关课程中的应用.高等教育研究,,No.2.[7]张西振.汽车发动机电控技术.北京:机械工业出版社,.附录1源程序代码:/******************************级汽电一班:杜晨瑞*******************************/#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); //显示器开、光标开、闪烁开}/****************电机控制部分******************/voidPWMset(intpwm){ if(pwm>=0) { DI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论