基于89C51的轮胎自动充气压力控制器设计.docx
- 文档编号:4049420
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:27
- 大小:264.94KB
基于89C51的轮胎自动充气压力控制器设计.docx
《基于89C51的轮胎自动充气压力控制器设计.docx》由会员分享,可在线阅读,更多相关《基于89C51的轮胎自动充气压力控制器设计.docx(27页珍藏版)》请在冰豆网上搜索。
基于89C51的轮胎自动充气压力控制器设计
单片机原理与接口技术
课程设计
课程设计名称:
基于89C51的轮胎自动充气压力控制器设计
专业班级:
学生姓名:
学号:
指导教师:
课程设计地点:
31-630
课程设计时间:
2013-12-16~2013-12-27
1概述
1.1研究背景
信息化时代的到来,使得人们的生活速度和生活质量有了大幅度提高。
智能化的产品设计也让人们生活更加舒适。
方便、智能的产品的也得到了人们的欢迎。
如今,随着人们生活水平的提高,小汽车将成为家家户户必备的交通工具。
再加上生活节奏的加快,时间已是最宝贵的东西。
市面的充气机不但不是自动的,而且气压也是不可调的。
在人们追求方便、智能的生活体验中,市面上普通手动控制的充气机,显然已满足不了人们的需求,因此,我们就想到了设计一个智能化的充气机。
在智能化产品中,单片机的应用已经越来越广泛,单片机以它体积小、质量轻、耗电省、可靠性高、价格低等优点,开始不断发展,并广泛应用于仪器仪表、家用电器、医疗设备、航天航空领域、工业专用设备的管理及过程控制等领域,在很多的大中型的电气设备以及小型的电子产品中也用到了单片机进行控制。
1.2设计思想及基本功能
本设计就是根据人们对智能化,方便化的需求,而设计的基于单片机控制的智能化产品。
同时在选取设计方案和采用元器件方面,该系统本着简单、经济、实用的思想,尽量简化电路设计,用最简单的电路布线和选用最经济实用的器件来达到设计要求。
轮胎自动充气压力控制系统具有以下几个基本功能:
(1)能够利用按键设定充气值;
(2)能够显示设定充气压力和充气过程中轮胎动态压力;
(3)当轮胎压力达到设定值时,能自动关闭气泵停止充气。
2方案设计
2.1系统框图
根据设计方案要实现:
充气前,通过键盘上设定所要充气的气压,并能够显示设定值;数值输入完毕后,按下启动键启动充气装置开始充气,显示电路要能够显示当前轮胎内的动态气压;充气到达设定的值后,系统要能够自动切断气泵的电源,停止充气的功能。
我们把本设计初步分为以下几个模块,系统框图如图2-1所示:
图2-1系统框图
2.2方案选取
有上述系统框图可知,自动充气装置由:
压力检测模块、核心控制模块、键盘模块、显示模块、充气模块等几部分构成。
以下,我们将对各模块做具体分析、设计。
2.2.1压力检测模块
方案
(一):
采用英飞凌的SPl2压力传感器。
Infineon(英飞凌)推出的胎压传感器SPl2整合了压力,温度,惯性传感器,以及一个电源控制监测器。
SPl2的压力范围从100到450kpa,通过MEMS技术集成了压力和温度、加速度、电压的检测电路,直接以数字形式输出各物理量的示值,但是价格昂贵,应用也不是十分普遍。
方案
(二):
采用常见的电阻应变片式的压力传感器和模数转换芯片。
压力传感器其本质是利用惠斯通电桥,它具有温度特性好,温度变化带来的误差小。
利用膜片上的压力使得电桥不平衡,产生一个差动的输出信号。
这种结构的基本特性之一是它的差动输出电压U与偏置电压
U成正比关系,这种关系隐含压力测量精度直接决定偏置电源的容限值,当四个桥臂电阻达到相应的关系时,电桥输出为零。
利用压力电桥获得的压力量模拟值通过ADC0809转换后即可供单片机分析使用。
这二个方案都是基于单片机控制的,都能准确的采集获得轮胎内当前压力值。
但是,前一种方案SPl2压力传感器价格昂贵,应用也不是很广;第二种方案采用压力电桥价格低、应用范围广、技术成熟,而且实验室有现成的实验器材。
通过以上比较,综合个方案利弊,我们最终选用了第二种方案。
2.2.2键盘模块
方案
(一):
利用独立按键控制,设定充气预定值和气泵的启停。
方案
(二):
利用矩阵键盘控制,设定充气预定值和气泵的启停。
由于本设计需要设定充气预定值和气泵启停,所需要的按键较多,若采用方案一所占单片机I/O资源较多,而矩阵键盘按键多,占用I/O口少很好的满足了设计与需求。
考虑到键盘需要设置0-9十个数字和设置启、停按钮,所以我们最终选定使用3x4的矩阵键盘。
2.2.3显示模块
方案
(一):
利用LCD显示屏显示设定值和轮胎内的当前压力值。
方案
(二):
利用七段数码管显示设定值和轮胎内的当前压力值。
考虑到设计需要显示的信息量小,亮度要求高,而LCD虽然可显示内容信息量大,但是可视偏转角度过小、亮度和对比度低、而且容易“坏点”寿命有限等;数码管显示无闪烁,亮度高,软件控制比较容易,功耗小耐冲击,长寿命等优点。
最终我们选用数码管作为显示工具。
2.2.3其它模块
此外,在考虑到价格低廉、使用方便、电路简单等要求,充气模块我们选用继电器驱动气泵工作;控制模块选用AT89C51作为轮胎自动充气压力控制系统的控制核心。
2.3总体方案设计
通过上述讨论我们可以看出,本设计轮胎自动充气压力控制系统是基于满足设计要求的前提并且根据理论上的可实现性和硬件上的经济实用性,综合考虑各种因素的情况下,而得来的系统方案。
方案总体构架如图2-2所示:
图2-2轮胎自动充气压力控制系统结构框图
3硬件电路设计
3.1压力检测电路
轮胎自动充气压力控制系统要根据轮胎内压力当前值的大小来确定充气是否完成,需不需要关闭气泵。
因而需要使用到压力应变传感器。
电阻应变式传感器按其用途不同,可分为应变测力传感器、应变压力传感器、应变式加速度传感器等。
本设计中我们使用的是压力传感器,这种传感器主要用于对气体、液体的动态和静态的压力的测量。
如对内燃机管道和动力设备管道进出、出气孔流液的压力、发动机喷口的压力等的测量。
这种传感器主要采用膜片、薄板、筒式等组成的弹性元件。
传感器所用的应变片电阻值国内标准有:
60、120、350、和600
等各种阻值,其中以120
为最常用。
利用电桥测量原理,通过对电路输出电压和标准压强的线性关系,建立具体的数学模型,将电压量的变化改为压力的变化,即可以测出一定范围内的压力值。
其中测量电路中最主要的元器件就是电阻应变式传感器。
设计还利用了运算放大电路的作用就是把传感器输出的微弱的模拟信号进行一定倍数的放大,以满足A/D转换器对输入信号电平的进行各种转换处理的要求。
压力检测部分连接如图3-1所示。
图3-1压力检测电路原理图
此部分压力传感器参照了LAB6000使用说明书电路原理图,传感器的工作原理,本质上是惠斯通电桥,该电桥温度特性好。
当膜片上受到压力使得电桥不平衡,从而产生一个差动的输出信号,这种结构的基本特性之一是它的差动输出电压U与偏置电压
U成正比关系,当四个桥臂电阻达到相应的关系时,电桥输出为零,当然它也能提供一种温度补偿最通用的方法。
该电路三部分组成
(1)电源电路部分;
(2)电桥电路部分;(3)放大电路部分。
如图所示,传感器采用15V恒压源Vcc供电,经过
与
分压(电容C1起滤波作用),U2A起到电压跟随器的作用,所以点1、2、3三点处有相同电压
:
(4.1.1)
根据上式,带入数据
,
,
,求得
经过电路分析电桥部分可等效为如图3-2所示
图3-2压力传感器电桥电路
设桥臂电阻分别为
,
,
,则当压力传感器受力时,电阻变化对应的输出电压值为
,由于
<<1,则上式可化简为
(4.1.2)
带入电阻、电压值得Uo=0.25△R/R最后经过放大部分,压力传感器的微弱采样电压,经过放大电路输出的放大。
3.2A/D转换电路
A/D转换的作用是进行模数转换,把接收到的模拟信号转换成数字信号输出。
在选择A/D转换时,先要确定A/D转换精度、转换速度以及转换位数等,A/D转换的位数确定与整个测量控制系统所需测量控制范围和精度有关,在轮胎自动充气压力控制系统中采用了8位A/D转换器ADC0809引脚如图3-3所示
图3-3ADC0809
引脚图
ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D转换器。
8路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道抵制锁存用译码电路,其转换时间为100μs左右。
ADC0809的主要特性有:
(1)8路输入通道,8位A/D转换器,即分辨率为8位。
(2)具有转换起停控制端。
(3)转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时)
(4)模拟输入电压范围0~+5V,不需零点和满刻度校准。
ADC0809主要引脚功能如下:
IN0~IN7:
八路模拟量的输入端。
D0~D7:
A/D转换后的数据输出端,为三态可控输出,可直接与总线相连。
A、B、C:
模拟通道地址选择断,A为低位,C为高位。
ALE:
地址锁存允许信号,当此信号有效时,A、B、C三位地址信号被锁存
电路选通对应的模拟输入通道。
SC:
启动转换信号。
通常与单片机的写信号线连接,启动A/D转换。
EOC:
转换结束信号,表示一次转换结束。
常作为中断触发信号。
OE:
输出允许控制信号,通常与系统的读信号线连接,打开
三态门,此时可通过数据线读到转换结果。
本系统ADC0809与单片机和压力传感器连接如图3-4所示:
图3-4单片机和压力传感器连接
如原理图所示,ADC0809的A、B、C共同接地选中第0通道,即模拟信号从IN-0输入到A/D转换器,通过单片机P2.4引脚start送出一个正脉冲,从而启动转换;转换完成后,EOC输出一个由低到高的跳变沿,经过一个非门取反变为下降沿,出发已经设置为边沿触发的I外部中断0;在中段程序中通过P.3引脚enable送出高电平,控制ADc0809数字量允许输出,信号经过74HC573锁存器流入P0口;通过单片机读程序,把转换后的数字读入片内,进行相应操作后显示在数码管上。
3.3显示电路
本设计采用LED数码管进行显示是因为LED数码管具有以下几个优点:
(1)能在低电压、小电流条件下驱动发光,能与CMOS、ITL电路兼容。
(2)发光响应时间极短(<0.1μs),高频特性好,单色性好,亮度高。
(3)体积小,重量轻,抗冲击性能好。
数码管有共阴极和共阳极两种类型,为位选端主要进行位控制,断选端则是进行字符控制,数码管有静态显示和动态显示两种方法,说明如下:
(1)静态显示驱动:
静态驱动也称直流驱动。
静态驱动是指每个数码管的每一个段码都由一个单片机的I/O进行驱动,或者使用如BCD码二—十进位器进行驱动。
静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O多,如驱动5个数码管静态显示则需要5×8=40根I/O来驱动,要知道一个89C51单片机可用的I/O才32个。
故实际应用时必须增加驱动器进行驱动,增加了硬体电路的复杂性。
(2)动态显示驱动:
数码管动态显示是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a、b、c、d、e、f、g、dp"的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。
透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位元数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O口,而且功耗更低。
在本设计中过程中,我们查询了大量与车胎压强相关的资料得知汽车轮胎压强一般在1.5-2.2bar(即150-220kpa)比较适宜,具体冬夏也有少许差别。
所以我们采用3位共阴极数码管作为显示部件。
数码管显示部分电路图3-5所示:
图3-5数码管显示电路
如上述电路图所示,数码管采用动态扫描显示,系统段选码和位选码均是通过74HC573分时送出。
74HC573是八个透明的D型锁存器,当使能C为高电平时,Q输出将随数据D的输入而变。
当使能C为低电平时,输出将锁存在已建立的数据电平上。
当系统需要显示数码时,先通过单片机引脚P0口送出相应位选码,再控制P2.0引脚输出高电平,74HC573(U6)被打开,位选码送到数码管阴极。
P2.0再输出低电平把位选信号所存到Q端;此后,单片机P0口输出相应段选码,P2.1引脚输出高电平,打开74HC573(U5)被打开,段选码送到数码管段选端,点亮选中的数码管,并延时1ms;以此为原理第二个、第三个数
码管一次被点亮;最后重复上述过程。
3.4键盘电路
由于本设计需要设定充气预定值和气泵启停,所需要的按键较多,若采用方案一所占单片机I/O资源较多,而矩阵键盘按键多,占用I/O口少很好的满足了设计与需求。
考虑到键盘需要设置0-9十个数字和设置启、停按钮,所以我们最终选定使用3x4的矩阵键盘功能如图3-6所示:
图3-6矩阵键盘功能图
如图按照键盘扫描至获得键号编写程序对应如上图所示。
矩阵键盘在系统中原理图如图3-7所示:
图3-7阵键盘原理图
矩阵键盘工作是利用P1口分别对某一行赋低电平,其余行赋值高电平,然后分别扫描各列是否出现低电平,若无退出扫描,然后检测列线的状态。
只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与行线相交叉的4个按键之中。
若所有列线均为高电平,则键盘中无键按下。
断闭合键所在的位置是通过读取P1口的值,与预设值比对,确定是哪个键按下,在确认有键按下后,就可以进入相应操作程序。
3.5气泵控制电路
如图3-8所示为电磁继电器控制电路气泵的工作电路。
图3-8电磁继电器控制电路
要控制气泵工作,只需控制电磁阀的闭合与断开。
单片机的pump(P2.7)引脚控制三极管的工作在放大区和截止区。
当该引脚输出高电平时,使三极管导通,继电器的内部线圈有电流通过,产生吸合力,将公共端吸合到常开端,则气泵开始充气;当轮胎的气充足后,pump引脚输出低电平,使三极管截止,则继电器不会产生吸合力,从而断开了气泵的工作。
3.6电源电路
51单片机正常工作电压为5V,因此我们设计了电源电路为单片机工作供电。
如下图3-9是为单片机提供电源的电路。
在这个电路中采用了三端集成稳压芯片7805,来为单片机提供稳定的5V的直流电压。
图3-9电源电路图
3.7复位电路
复位电路的主要功能是使单片机进行初始化,在初始化的过程中需要在复位引脚上加大于24个时钟周期的高点平。
本设计复位电路如图3-9所示:
图3-10复位电路
3.8时钟电路
电路利用晶振产生固定周期的震荡脉冲。
由于石英晶体震荡器具有非常好的频率稳定性和抗外界干扰的能力,所以,石英晶体震荡器是用来产生基准频率的。
通过基准频率来控制电路中的频率的准确性。
同时,它还可以产生振荡电流,向单片机发出时钟信号。
如图3-11为单片机时钟电路
图3-11单片机时钟电路
4软件设计
系统软件设计主要包括压力检测及数模转换程序、数码管显示程序,键盘扫描程序,外部中断0服务程序构成。
4.1压力检测及A/D转换程序设计
压力电桥和发明和放大电路由硬件控制始终处于工作状态。
AD转换结束方式是选择使用结束限号,触发外部中断0的方式。
具体工作是:
由于ADC0809的A、B、C共同接地,选中第0通道,模拟信号从IN-0输入到A/D转换器,通过单片机P2.4引脚start送出一个正脉冲,从而启动转换;转换完成后,EOC输出一个由低到高的跳变沿,经过一个非门取反变为下降沿,出发已经设置为边沿触发的I外部中断0;在中段程序中通过P.3引脚enable送出高电平,控制ADC0809数字量允许输出,。
AD转换流程如图4-1所示:
图4-1A/D转换流程
4.2数码管显示程序设计
本设计数码管采用动态扫描方式,通过单片机引脚分别送出相应位选码,选通相应数码管,再用单片机输出相应段选码,,点亮选中的数码管,并延时1ms;以此为原理第二个、第三个数码管依次被点亮,再循环此过程。
数码管显示流程如图4-2所示:
图4-2数码管显示流程图
4.3键盘扫描程序设计
矩阵键盘工作是利用键盘扫描,依次检测按键是否按下。
首先对某一行赋低电平,其余行赋值高电平,然后分别扫描各列是否出现低电平,若无退出扫描,然后检测列线的状态。
只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与行线相交叉的4个按键之中。
若所有列线均为高电平,则键盘中无键按下。
断闭合键所在的位置是通过读键盘行取列值,与预设值比对确定的。
键盘扫描流程如图4-3所示:
图4-3键盘扫描流程图
4.4外部中断0服务程序设计
本设计采用外部中断0监测A/D是否完成,当完成后触发中断,在中断处理中获得此时轮胎气压值,比较是否达到设定值,若是气泵停止工作,若否等待下一次中断。
中断处理流程如图4-4所示:
图4-4中断处理流程图
4.5系统总体程序设计
根据设计要求,系统工作开始首先调用键盘子程序等待用户输入需要冲气的多少,并把所设定的气压值再数码管上显示一段时间,帮助使用者确定是否有误操作,若有重新输入,若无则按下start键,启动气泵开始工作,启泵启动后应该立即调用AD转换子程序及显示子程序,动态的显示轮胎内的气压,以及比较现在的气压是否达到用户的要求。
由于LED显示是动态的。
所以必须循环的调用AD转换子程序和显示子程序,这样做不仅实时性强,可以让用户了解轮胎内气压的变换,而且可以增强LED显示亮度。
此外,在设计过程中,我们查阅了大量与轮胎胎压相关的资料,我们查询了大量与车胎压强相关的资料得知汽车轮胎压强一般在1.5-2.2bar(即150-220kpa)比较适宜,具体冬夏也有少许差别。
故在考虑到实际情况和软件编制的简易性的情况下,我们规定用户输入的充气气压只能位于0~255kpa的范围内。
这样一来,由于ADC0809的精度为八位,其输出的数字量的范围也是0~255。
量化后正好是一对一的关系,就大大的减轻了软件编制的困难。
如下图4-5所示为软件设计总流程图。
图4-5软件设计总流程图
5总结
本次单片机课程设计历时两周,从刚开始刚拿到题目的懵懵懂懂,不知如何下手,到后来的通过查阅大量相关资料,对整个系统有了一定的认识,通过讨论,争辩,有了清晰的思路,又经过画图,修改,到最终确定整个设计方案,做出完整的实验报告,在这个过程中我们收获很多。
从方案选择的激烈讨论,到查找每个芯片引脚功能和用法,从对芯片工作原理的熟悉,到实际应用编程的斟酌,这个过程中的每一个小的步骤都有我们犯下的错误,也有我们改正错误后学到知识的喜悦。
当然这个设计的成功完成,是我和我的小伙伴们共同努力的结果。
此外,在以前学习时我学习软件花费的精力远比硬件多的多,在对单片机的实践学习,也是基于在自己买来的开发板上,根据别人设计好的原理图根据其工作原理,在例程基础上改来改去、模仿设计,所以在硬件设计过程中,遇到了很多困难。
也正是遇到的这些问题提醒了我,在以后的学习过程中,要注重对硬件的学习。
参考文献
[1]张迎新.单片微型计算机原理、应用及接口技术(第2版)[M].北京:
国防工业出版社,2004
[2]伟福LAB6000系列单片机仿真实验系统使用说明书
[3]阎石.数字电路技术基础(第五版).北京:
高等教育出版社,2006
[4]夏路易石宗义.Protel99se电路原理图与电路板设计教程.北京:
北京希望电子出版社,2006
[5]何立民编著.单片机应用系统设计.北京[M]:
北京航天航空大学出版社,1994
[6]杨家成.单片机原理与应用及C51程序设计.北京:
清华大学出版社,2007
[7]邓兴成.单片机原理与实践指导.北京:
机械工业出版社,2010
[8]李朝青编著.单片机原理及接口技术.北京[M]:
北京航天航空大学出版社,1994
[9]潘新民,王燕芳编著.微型计算机与传感器.北京[M]:
人民邮电出版社,1998
[10]何立民.单片机应用技术选编[M].北京航空航天大学出版社,2003
[11]王化祥,张淑英,传感器应用及原理.天津[M]:
天津大学出版社,1991
[12]赖麒文.8051单片机C语言彻底应用.北京[M]:
科学技术出版社,2002
[13]童长飞.C8051F系列单片机开发与C语言编程[M].北京:
北京航空航天大学出版社,2005.
附录A系统原理图
附录B源程序清单
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitdula=P2^0;
sbitwela=P2^1;
sbitadc_out=P2^2;
sbitenable=P2^3;
sbitstart=P2^4;
sbitpump=P2^7;
uintnum=0,temp=0,t=0,k;
uinthigh,mid,low;
//共阴极数码管编码
ucharcodetable[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,0};
//子程序声明
voiddelay(uintz);//延时函数
ucharkeyscan();//键盘扫描程序
display(ucharbai,ucharshi,ucharge);//数码管显示程序
//主程序
voidmain()
{uchara,b,c,d,e;
//开始
e=keyscan();
while(e!
=11)
{
e=keyscan();
}
//获取设定值
t=keyscan();
while(t==0)
{
t=keyscan();
}
if(t!
=0)
{
a=t;
t=0;
t=keyscan();
while(t==0)
{
t=keyscan();
}
b=t;
t=0;
t=keyscan();
while(t==0)
{
t=keyscan();
}
c=t;
t=0;
t=a*100+b*10+c;//设定值
}
//显示设定值
d=50;
while(d--)
{
display(a,b,c);
}
//等待启动气泵开始工作
pump=1;
//启动AD转换
EA=1;
IT0=1;
EX0=1;
start=0;
start=1;
start=0;
delay(10);
while
(1)
{
display(high,mid,low);
delay(10);
}
}
//中断服务程序
voidINT_0()interrupt0using1
{
EA=0;
enable=1;
adc_out=1;
adc_out=0;
k=P0;
if(k {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 89 C51 轮胎 自动 充气 压力 控制器 设计