机油压力测试设计
交通与汽车工程学院
课程设计说明书
课 程 名 称: 微机测控系统课程设计 课 程 代 码: 6010339 题 目: 机油压力检测系统
/专业/班: 2010级汽车电子一班 学 生 姓 名:
学 号:
开 始 时 间: 2013 年 12 月 9 日 完 成 时 间: 2014 年 12 月 30 日 课程设计成绩:
学习态度及平技术水平与实际说明书,计算书、图纸、分析总 分创新,5, 时成绩,30, 能力,20,
,撰写质量,45, ,100,
指导教师签名: 年 月 日
微机测控系统课程设计
目 录
摘要„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„2 1 引言„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„3 1.1 问题的提出„„„„„„„„„„„„„„„„„„„„„„„„„„„„„3 1.2 任务与分析„„„„„„„„„„„„„„„„„„„„„„„„„„„„„3 2
设计„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„4 2.1 系统设计方案„„„„„„„„„„„„„„„„„„„„„„„„„„„„4 2.2 系统总体框图„„„„„„„„„„„„„„„„„„„„„„„„„„„„4 3 系统硬件设计„„„„„„„„„„„„„„„„„„„„„„„„„„„„„5 3.1 AT89C51单片机 „„„„„„„„„„„„„„„„„„„„„„„„„„5 3.2 ADC0808 „„„„„„„„„„„„„„„„„„„„„„„„„„„„„„8 3.3 时钟电路„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„11 3.4复位电路„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„11 3.5 MPX4115压力传感器„„„„„„„„„„„„„„„„„„„„„„„„„12 3.6 LM061L液晶显示器„„„„„„„„„„„„„„„„„„„„„„„„„12 4系统软件设计„„„„„„„„„„„„„„„„„„„„„„„„„„„„„13 4.1 Proteus软件环境介绍„„„„„„„„„„„„„„„„„„„„„„„„13 4.2 Kile uVision4软件环境介绍„„„„„„„„„„„„„„„„„„„„„14 4.3 Protel软件环境介绍 „„„„„„„„„„„„„„„„„„„„„„„„15 4.4 程序流程图 „„„„„„„„„„„„„„„„„„„„„„„„„„„„15 5 系统调试过程 „„„„„„„„„„„„„„„„„„„„„„„„„„„„17 设计总结„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„21 致谢„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„22 参考文献„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„23 附录1 „„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„24
摘 要
- 1 -
微机测控系统课程设计
机油压力是汽车发动机的重要
之一。如何利用已学知识模拟机油压力检测~并且对机油压力进行电控是开始本设计的初衷。本此设计通过以AT89C51单片机为中心~通过MPX4115模拟产生一个信号~通过ADC0808数据转换送入单片机进行处理~再从单片机P0口将电平信号送入液晶显示器C实现动态显示。并在超过机油压力安全值时由单片机控制LED进行光报警~同时当机油压力过高或者过低时通过电机控制活塞阀进行放油处理。此说明书给出了系统的设计原理图~以及PCD印制板图~并在Proteus软件中进行仿真实现设计功能。
关键词:AT89C51单片机 机油压力 电机控制
- 2 -
微机测控系统课程设计
1 引 言
1.1 问题的提出
随着进入电气时代,越来越多的电子技术被应用在现代汽车上。汽车也将由单纯的机械产品向高级的机电一体化产品方向发展。由于实时驾驶信息系统及多媒体设备在汽车上普及,汽车更具个性化、通用性、安全性和舒适性。汽车在人们的生活中不仅仅是代步工具,而逐步成为一种生活的方式。在汽车电子领域的研究成为汽车研发中最活跃的一部分。随着进入电气时代,电子测控装置被广泛应用于各种电器机械产品上,本次课程设计的任务就是基于单片机设计机油压力测控系统,检测机油压力。
1.2任务与分析
本次设计的任务是基于单片机机油压力电控系统设计。要求是本此设计通过以AT89C51单片机为中心,通过MPX4115模拟产生一个信号,通过ADC0808数据转换送入单片机进行处理,再从单片机P0口将电平信号送入液晶显示器LM061L实现动态显示。此说明书给出了系统的设计原理图,以并在Proteus软件中进行仿真实现设计功能。
本系统可以分为以下6大主要模块:
(1)AT89C51模块:用于数据处理,初值设定。
(2)ADC0808:进行数据转换,将压力传感器采集的模拟信号转换为数字信号。
(3)MPX4115:采集模拟压力信号。
(4)液晶显示器LM061L:用于实时的显示机油压力信息。
- 3 -
微机测控系统课程设计
2 系统方案设计
2.1 系统设计方案
本此设计通过以AT89C51单片机为中心,通过MPX4115模拟产生一个信号,通过ADC0808数据转换送入单片机进行处理。指定机油压力正常的范围是20—80(MPa),从单片机P0口将电平信号送入液晶显示器LM061L实现动态显示。
2.2 系统总体框图
AT89C51时钟电路
LCD显示机油压
复位电路力
ADC0808
模拟油压采集
图2-1系统总体框图
当程序启动后,程序进入初始化阶段。时钟电路的晶振产生外部振荡脉冲信号送入AT89C51单片机的XTAL2口。单片机AT89C51执行编写在其内部的程序,处理从ADC0808送来的信号,并送到P0口输出到液晶显示器LM061L显示。
- 4 -
微机测控系统课程设计
3 系统硬件电路设计
3.1 AT89C51单片机
通过对多种单片机性能的分析,最终认为89C51是最理想的电子时钟开发芯片。89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,器件采用ATMEL高密度非易失存储器制造技术制造,与工业
的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,而且它与MCS-51兼容,且具有4K字节可编程闪烁存储器和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条指令,含乘法指令和除法指令;
?有强的位寻址,位处理能力;
?片内采用单总线结构;
- 5 -
微机测控系统课程设计
图3-1 89C51单片机引脚图
89C51单片机与早期Intel的8051/8751/8031芯片的外部引脚和指令系统完全兼容,只不过用Flash ROM 替代了ROM/EPROM而已。89C51单片机内部结构如图所示。
图3-2 89C51单片机内部结构示意图
- 6 -
微机测控系统课程设计
各引脚的功能如下:
?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的输出可在SFR 8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
?:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周PSEN
- 7 -
微机测控系统课程设计
期两次有效。但在访问外部数据存储器时,这两次有效的信号将不出现。 PSENPSEN
?:当保持低电平时,则在此期间CPU只访问外部程序存储器(0000H-FFFFH),EA
不管是否有内部程序存储器。注意加密方式1时,将内部锁定为RESET;当端保持高EA
电平时,则执行内部程序存储器中的程序。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
?XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
?XTAL2:来自反向振荡器的输出。
3.2 ADC0808
为了满足多种需要,目前国内外各半导体器件生产厂家设计并生产出了多种多样的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-3 AD0808引脚图
- 8 -
微机测控系统课程设计
1) 主要技术指标和特性
(1)分辨率: 8位。
(2)总的不可调误差: ADC0808为?1/2LSB,ADC 0809为?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-4 ADC0808/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(-)分别接正、
- 9 -
微机测控系统课程设计
负极性的参考电压。
-1 地址信号与选中通道的关系 表3
地 址 选中通道 ADDC ADDB ADDA
0 0 0 IN0
0 0 1 IN1
0 1 0 IN2
0 1 1 IN3
1 0 0 IN4
1 0 1 IN5
1 1 0 IN6
1 1 1 IN7
(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信号,打开三态门,读取转换结果。
- 10 -
微机测控系统课程设计
模拟输入通道的选择可以相对于转换开始操作独立地进行(当然,不能在转换过程中进行),然而通常是把通道选择和启动转换结合起来完成(因为ADC0808/0809的时间特性允许这样做)。这样可以用一条写指令既选择模拟通道又启动转换。在与微机接口时,输入通道的选择可有两种方法,一种是通过地址总线选择,一种是通过数据总线选择。
如用EOC信号去产生中断请求,要特别注意EOC的变低相对于启动信号有2μs+8个时钟周期的延迟,要设法使它不致产生虚假的中断请求。为此,最好利用EOC上升沿产生中断请求,而不是靠高电平产生中断请求。
3.3 时钟系统
利用芯片内部振荡电路,在XTAL1、XTAL2引脚上外接定时元件,内部振荡电路便产生自激振荡,用示波器可以观察到XTAL2输出时钟信号。
振荡晶体选择12MHz。电容只无严格要求,但电容取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,C1和C2可在20-100pF取值,但在,60-70pF时振荡器有较高的频率稳定性。
图3-5 内部时钟电路
3.4复位电路
复位电路通常采用上电自动复位和按钮复位两种方式。本次设计采用按键复位电路。按键复位电路是在按键瞬间接地来实现的,其电路如图3-6所示。按下复位按钮后,电源对按键RESET端维持两个机器周期的高电平实现复位的。
- 11 -
微机测控系统课程设计
图3-6 复位电路
3.5 MPX4115压力传感器
MPX4115系列压电电阻传感器是一个硅压力传感器。这个传感器结合了高级的微电机技术,薄膜镀金属。还能为高水准模拟输出信号提供一个均衡压力。在0?-85?的温度下误差不超过1.5%,温度补偿是-40?-125?。
图3-7 压力传感器
3.6液晶显示器LM061L
LM016L液晶模块采用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
- 12 -
微机测控系统课程设计
种.8位字符编码和字符的对应关系, CGRAM是为用户编写特殊字符留用的,它的容量仅64字节,可以自定义8个5*7点阵字符或者4个5*10点阵字符,AC可以存储DDRAM和CGRAM的地址,如果地址码随指令写入IR,则IR自动把地址码装入AC,同时选择DDRAM或CGRAM但愿,LM016L 液晶模块的引脚功能如下表所示:
图3-8 LM061L引脚图
4 系统软件设计
4.1 Proteus软件环境介绍
本系统的硬件设计首先是在Proteus软件环境中仿真实现的。Proteus软件是来自英国Labcenter electronics公司的EDA工具软件,Proteus软件有十多年的历史,在全球广泛使用,除了具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,它的电路仿真是互动的。针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试。如果有显示及输出,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,还能看到运行后输入输出的效果。Proteus建立了完备的电子设计开发环境,尤其重要的是Proteus Lite可以完全免费,也可以花微不足道的费用注册达到更好的效果。
Proteus是目前最好的模拟单片机外围器件的工具。可以仿真51系列、AVR、PIC等常用的MCU及其外围电路(如LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分SPI器件,部分IIC器件...)。其实Proteus 与 multisim比较类似,只不过它可以仿真MCU,当然,软件仿真精度有限,而且不可能所有的器件都找得到相应的仿真模型,用开发板和仿真器当然是最好选择,可是初学者拥有它们的可能性比较小。当然,硬件实践还是必不可少的。在没有硬件的情况下,Proteus能像pspice 仿真模拟/数字电路那样仿真MCU及外围电路。另外,即使有硬件,在程序编写早期用软件仿真一下也是很有必要的。Proteus软件主要具有以下几个方面的特点:
- 13 -
微机测控系统课程设计
1)设计和仿真软件Proteus 是一个很有用的工具,它可以帮助学生和专业人士提高他们的模拟和数字电路的设计能力。
2)它允许对电路设计采用图形环境,在这种环境中,可以使用一个特定符号来代替元器件,并完成不会对真实电路造成任何损害的电路仿真操作。
3)它可以仿真仪表以及可描述在仿真过程中所获得的信号的图表。
4)它可以仿真目前流行的单片机,如PICS, ATMEL-AVR, MOTOROLA, 8051 等。
5)在设计综合性方案中,还可以利用ARES开发印制电路板。
4.2 KeilμVision软件环境介绍
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
Keil公司是一家业界领先的微控制器(MCU)软件开发工具的独立供应商。Keil公司由两家私人公司联合运营,分别是德国慕尼黑的Keil Elektronik GmbH和美国德克萨斯的Keil Software Inc。Keil公司制造和销售种类广泛的开发工具,包括ANSI C编译器、宏汇编程序、调试器、连接器、库管理器、固件和实时操作系统核心(real-time kernel)。有超过10万名微控制器开发人员在使用这种得到业界认可的解决方案。其Keil C51编译器自1988年引入市场以来成为事实上的行业标准,并支持超过500种8051变种。 Keil公司在2007年被ARM公司收购。其两家公司分别更名为ARM Germany GmbH和ARM Inc和。Keil公司首席执行官Reinhard Keil表示:“作为ARM Connected Community中的一员,Keil和ARM保持着长期的良好关系。通过这次收购,我们将能更好地向高速发展的32位微控制器市场提供完整的解决方案,同时继续在uVision环境下支持我们的8051和C16x编译器。”
C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接
- 14 -
微机测控系统课程设计
定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
4.3 Protel软件介绍
Protel印制板设计软件包是澳大利亚Protel Technology公司与1990年推出的电子CAD产品,具有方便、易学、实用、快速以及高速度、高步通率的特点。它采用了分层次下拉窗口菜单结构形式,用户基本上不需要记背太多的键盘命令,用鼠标点击菜单命令就能操作,Protel有着很高的自动布线布通率。布通率是电子产CAD产品的一项重要指标,它反映电子元件在电路图中连接关系有多少能在印刷版图中实现。在设计常用的单、双面印制板时只要选择适当的元件布局和布线策略方法,Protel就可以轻易的达到98%-100%的布通率。对于极少数不能布通的定方,Protel可以用飞线指示出来,引导用户用手工方法连通。另外,Protel有强大的宏命令设置功能,利用宏命令功能多定义的热键可以大大提高操作速度。
Protel已成为印制板设计加工方面的工业标准。据初步统计Protel在CAD的市场占有率达 95%,成为电子产品制造业界的首选CAD软件。
4.4程序流程图
(1)主程序流程图
开始
系统初始化
采集数据,数据转化子程
序
调用显示程序,LCD显
示
结束
图4-1 主程序流程图
- 15 -
微机测控系统课程设计
主程序流程图说明:
程序初期,定时器、寄存器初始化,将传感器采集的数据经传给ADC0808,通过数据转换子程序将模拟信号转换为数字信号信号通过显示子程序,将数字显示在LCD上。
(2)A/D转换子程序流程图:
开 始
启动A/D转换
N A/D转换是否完
成,
Y
A/D转换
返回
图4-2 A/D转换流程图
子程序流程图说明:
在此流程图中,主要说明的是本次设计的A/D数据转换过程。单片机AT89C51的P3.1、 P3.0、P3.3口连接ADC0808的OE、START和EOC端口,压力信号通过IN0端口传给ADC0808进行模数转换,将检测的数据传送给单片机。
- 16 -
微机测控系统课程设计
显示子程序流程说明:
开始阶段,将液晶显示器初始化,然后将写入光标跳到目标位,单片机P0口控制LCD的D0-D7口,读入数据显示实时机油压力。调用延时程序,返回程序继续显示。
5 系统调试过程
通过上面的硬件设计和软件设计过程,设计的工作已经基本完成,接下来的工作就是对所设计好的应用系统进行调试。通过调试可以检查出系统出现的一些错误,从而进行下一步的修改。
(1)Protel电路调试
在Protel的元件库里建立89C51,没有LCD液晶显示器,单击【Edit】按键,对元件库的进行编辑,再建立新的封装库编写其封装,连线。电路调试:单击【ERC】按键,进行节气点ERC检查;单击【Bill of Material】生成元件列表,检查元器件封装;单击【Creat Netlist】生成网络列表。
图5-1 Protel原理图
(2)Keil uVision3中程序编写与调试
- 17 -
微机测控系统课程设计
将已经设计好的程序写入Keil uVision3软件中,用C语言进行程序编译。将有错误提示的程序修改过来,显示0error,0warning,最后hex文件的生成,为电路仿真做准备。
(3)在Proteus中,对硬件电路图进行设计和绘制、仿真。
首先列出单片机芯片AT89C51,ADC0808,内部时钟电路,复位电路,电机控制电路等,然后连线。将在Keil软件里已经编译好的程序输入单片机。双击单片机,加载编译好的程序生成的.hex文件,按下仿真按钮,观察仿真是否正常进行。
图5-2 Protues仿真图
当对机油压力值实时检测时,会根据检测到值得改变相应的显示不同的值。 当机油压力为49Mpa时,传感器和显示器的数值分别如下:
- 18 -
微机测控系统课程设计
图5-3 Protues仿真传感器图1
图5-4 Protues仿真LM061L显示图1
- 19 -
微机测控系统课程设计 当机油压力为71Mpa时,传感器和显示器的数值分别如下:
图5-5 Protues仿真传感器图2
图5-6 Protues仿真LM061L显示图2
- 20 -
微机测控系统课程设计
设计总结
本次课程设计是要求我们基于单片机设计机油压力电控系统,其功能是以AT89C51单片机为中心,在 MPX4115模拟产生一个信号后,通过ADC0808将模拟信号转化为数字数据转换送入单片机进行处理,再从单片机P0口将电平信号送入液晶显示器LM061L实现动态显示。
设计一个控制系统,最重要的是要深刻理解其原理以及其实际用途,然后才能根据其原理进行整个系统的设计。用理论指导实践可以达到事倍功半的效果,而有坚实的理论做基础也会使设计变得得心应手。在设计电路的过程中应注意充分利用并扩展所学过的基础知识,设计的过程就是学习的过程,在设计过程中验证理论的正确性,弥补知识的漏洞。正确对待设计过程中遇到的错误,遇到错误与问题要敢于面对并设法找到解决的办法。通过对该电路的设计过程,而且我还查阅了不少相关资料,更深刻地认识和巩固了平时所学的知识,使理论与实践有机结合,提高了我对所学专业的兴趣并积累了一些相关经验。我认为这就是一种很好的提高自身能力的方法。这个设计的大部分内容都是在网上和书籍上找的内容,自己做了一点点小小的改动,在上网找资料的同时也学到了许多东西,找到了很多学习单片机的网站,里面的内容都比较适合我初学者去学,有些网站还专门介绍这种单片机的类型、用法、功能等等。通过这个课程设计,使我发现,小小的一片单片机有这么强大的功能,能应用于各种领域。我应该在自己以后的学习中,不仅要有刻苦努力,要有钻研精神,还要有创新,对自己感兴趣的一定要用心去学。虽然自己尽了很大的努力,但是还有很多不尽人意的地方,我想大概是由于开展独立开发经验不足的缘故吧,作为一个学汽车电子的学生,我想我有必要通过这次课更多的了解自己的不足,从而在以后的学习工作中不断增强自己的动手能力,争取在电路设计方面取进步。该电路还有很多缺陷。今后我要加强学习,去认识更深层的科学知识,使我设计出来的东西更加完美。要严格要求自己,就像严格要求设计的每一个细节一样。
- 21 -
微机测控系统课程设计
致 谢
在赵玲老师以及同学的指导和帮助之下,我终于完成了本次的课程设计,其中关于单片机设计的各种书籍也给了我很大的帮助和指导。也正是通过这次的课程设计的学习与提高,让我对单片机有了更进一步的认识,对硬件以及软件的设计也有很大的提高。让我能够将以前在课堂上学到的知识与实践紧密的结合起来,对自己的能力也是一种很好的锻炼。在此,我向赵老师和帮助过我的老师和同学们,表示崇高的敬意和衷心的感谢
- 22 -
微机测控系统课程设计
参考文献
[1] 张毅刚,彭喜元.单片机原理与应用设计.电子工业出版社,2008. [2] 先锋工作室.单片机程序设计实例.清华大学出版社,2003. [3] 周国雄,晏密英.单片机应用系统设计精讲.中国铁道部出版社,2011. [4] 赵佩华.单片机接口技术及应用. 机械工业出版社,2003.1. [5] 唐岚.汽车测试技术.机械工业出版社,2006.7.
[6] 彭忆强、吴琼、葛晓成.电子线路辅助分析软件在汽车电子方向相关课程中的应用.高等教育研究,2008,No. 2.
[7] 张西振.汽车发动机电控技术(北京:机械工业出版社,2004.
- 23 -
微机测控系统课程设计 附录1
源程序代码:
/****************************** 2010级汽电一班:杜晨瑞
*******************************/
#include
#include
#include
#include
#define LCD P0
typedef unsigned char uchar; typedef unsigned int uint;
/*LCD显示屏控制*/
sbit RS=P2^2;
sbit RW=P2^3;
sbit E =P2^1;
/*AD转化控制部分*/
sbit START =P3^0;
sbit OE =P3^1;
sbit EOC =P3^3;
int setspeed;
uchar AD;
- 24 -
微机测控系统课程设计
void ad_0808()
{
START = 0; //启动转换
START = 1;
START = 0;
while(!EOC) //等待转换完毕的信号,当EOC=1时转换完毕
{
;
}
OE = 1; //输出三态门打开,将转换的结果输出到数据总线上
AD = P1*100/255; //
OE = 0;
}
void adc()
{
ad_0808();
setspeed = (int)AD; }
void delay(uint a) {
uint i,j;
for(i=0;i999)
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); //从首位到末位逐一输出。
}
}
void LCD_init()
{
vWriteLM(0x01); // 清屏
vWriteLM(0x38); //显示模式设置:8位2行5x7点阵
vWriteLM(0x0C); //(0x0C)文字不动,光标自动右移
- 29 -
微机测控系统课程设计
vWriteLM(0x0F); //显示器开、光标开、闪烁开 }
void main(void)
{
LCD_init();
delay(20);
vWriteLM(0x01); // 清屏
vWriteLM(0x80); //写入显示起始地址
vShowChar("NOWPRESS:");
while(1)
{
delay(50);
adc();
vWriteLM(0x89);
vShowNumber(setspeed);
}
}
- 30 -