最新汽车冷却液单片机课程设计解读.docx
《最新汽车冷却液单片机课程设计解读.docx》由会员分享,可在线阅读,更多相关《最新汽车冷却液单片机课程设计解读.docx(16页珍藏版)》请在冰豆网上搜索。
最新汽车冷却液单片机课程设计解读
桂林航天工业学院
课程设计报告
系(部):
汽车工程系 专业班级:
学生姓名:
学号:
设计题目:
完成日期 年 月 日
指导教师评语:
_____________________________________
_______________________________________________________ ___________________________________________________
成绩(五级记分制):
指导教师(签字):
_____________________
摘要
汽车的发动机冷却液具有冷却、防腐蚀、防垢和防冻四大功能,是发动机正常运转不可缺少的散热介质。
水温高分很多种,各种不同现象会带来不同影响。
最严重的水温高会带来发动机报废,需更换新发动机才能解决问题。
一般水温高会导致油耗增加、水箱爆裂、水管爆裂、发动机中各金属元件膨胀带来磨损、发动机冲床、供油系统与尾气排放超表等许许多多不利的影响。
所以冷却液的温度需要实时监测并显示,这是很重要的,影响力汽车的行驶各方各面。
这次是对冷却液的温度监测,使用单片机加传感器来监测。
由于使用环境比较复杂,要求实时监测,并且监测温度要求100多度。
所以使用18b20来监测,
各个方面上这个传感器监测比较快速,反应速度快,而且只需要接一条线就可以监测。
关键词:
温度检测、单片机、传感器
目录
引言(四号黑体)…………………………………………………………1
1(空两格)(四号黑体)……………………………………………………3
1.1(空一格)(小四号黑体)……………………………………………………………3
1.1.1(不用空格)(楷体小四号)…………………………………………………………6
5结论(四号黑体)……………………………………………………34
参考文献(四号黑体)……………………………………………………35
附录(四号黑体)…………………………………………………………36
1设计内容
设计题目:
汽车冷却液温度测量电路设计
能在液体内工作并测试0-128度的温度。
并且实时检查温度显示在数码管上。
2.设计要求
学生姓名
课程名称
汽车单片机应用技术课程设计
专业班级
地点
起止时间
设计内容
以单片机为主控制芯片,设计一个温度测量电路,实现对汽车冷却液温度的测量。
设计参数
实现对冷却液温度的实时测量,并在数码管上显示出来。
设计进度
1.电子产品总体设计技能实训(5学时)
2.电子产品单元电路设计技能实训(5学时)
3.总体电路仿真调试实训(5学时)
4.印制电路设计与制作技能实训(5学时)
5.电子产品总体电路装配与性能指标测试技能实训(10学时)
设计成果
1.利用proteus软件完成电路原理图的设计
2.利用Keil软件里编写应的控制程序,并与proteus实现联调
3.完成汽车冷却液温度测量电路PCB板设计与组装,下载程序,实现相应功能
参考资料
[1]陈忠平.51单片机C语言程序设计经典实例[M].北京:
电子工业出版社,2012
[2]曹家喆.汽车电子控制基础[M].北京:
机械工业出版社,2007
[3]张毅刚.基于Proteus的单片机课程的基础实验与课程设计.北京:
人民邮电出版社,2012
说明
1.本表应在每次实施前由指导教师填写一式2份,审批后所在系(部)和指导教师各留1份。
2.多名学生共用一题的,在设计内容、参数、要求等方面应有所区别。
3.若填写内容较多可另纸附后。
3.设计进度
3.1系统硬件设计
3.1.1单片机主控模块设计
方案采用AT89C51八位单片机实现。
单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。
3.1.2温度采集模块设计
采用温度芯片DS18B20测量温度。
该芯片的物理化学性很稳定,它能用做工业测温元件,且此元件线形较好。
在0~100摄氏度时,最大线形偏差小于1摄氏度。
该芯片直接向单片机传输数字信号,便于单片机处理及控制。
最大特点之一就是直接采用温度芯片对温度进行测量,使数据传输和处理简单化。
TO-92封装的DS18B20的引脚排列见图示,其引脚功能描述见下:
(1)GND地信号;
(2)DQ数据输入/输出引脚。
开漏单总线接口引脚。
当被用着在寄生电源下,也可以向器件提供电源;
(3)VDD可选择的VDD引脚。
当工作于寄生电源时,此引脚必须接地。
DS18B20的测温原理,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。
器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。
其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。
3.1.3液晶显示模块设计
7段LED数码管是利用7个LED(发光二极管)外加一个小数点的LED组合而成的显示设备,可以显示0~9等10个数字和小数点,使用非常广泛。
这类数码管可以分为共阳极与共阴极两种,共阳极就是把所有LED的阳极连接到共同接点com,而每个LED的阴极分别为a、b、c、d、e、f、g及dp(小数点);共阴极则是把所有LED的阴极连接到共同接点com,而每个LED的阳极分别为a、b、c、d、e、f、g及dp(小数点),如下图所示。
图中的8个LED分别与上面那个图中的A~DP各段相对应,通过控制各个LED的亮灭来显示数字
3.1.4系统整体模块设计
从最小的系统带上ds18B20与显示系统,选用四位数码管,由于只有12针脚却要显示32个灯,所以需要在极短的时间内连续闪烁,通过极快的速度的顺序闪烁达到人眼看到的一直显示,眼睛在极快的闪烁时时无法发现的。
Ds18b20可以直接使用,只需要接一个到单片机就可以使用,而且不需要单片机供电,可以外接一个电源给它,同时在电路板上做出一个电源输入的位置。
3.2系统软件设计
3.2.1程序设计流程图
18B20的程序由时序表编写。
并在单片机内处理数据,经过程序转换为可读数据
读取温度
↓
转换数据
↓
显示温度
3.2.2程序功能模块说明
读取温度是设置18B20芯片,令其工作调查温度并传输给单片机。
转换数据是通过单片机的程序把2进制的温度转成十进制并且传输给四位数码管
显示温度是单片机通过12个管口输出给数码管显示的过程
3.3PCB电路板设计与制作
3.3.1PCB原理图设计
3.3.2PCB布线图设计
3.3.3PCB板制作
4设计成果
4.1仿真调试
使用软件联合调试,程序可行。
4.2实物调试
5.结论
参考文献
[1] 赵建领.51单片机开发与应用技术详解.电子工业出版社,2009.1
[2] 陈家瑞.汽车构造(上册).机械工业出版社,2009.2
[3] 林 立.单片机原理及应用.电子工业出版社,2013.1
[4]谢维成.单片机原理与应用及C51程序设计(第二版).清华大学出版社.2009
[5]何力民.单片机高级教.北京航空大学出版社,2000
[6]金发庆.传感器技术与应用.北京机械工业出版社,2002
[7]楼然苗.单片机课程设计指导.北京航空航天大学出版社,2007
[8]汪桂平.新编单片机原理及应用.机械工业出版社.2009
[9]程国钢.51单片机应用开发案例手册.电子工业出版社.2011
[10]彭伟.单片机c语言程序设计实训北京航天航空.大学出版社.2010
附录
元器件清单
四位数码管1
电容230uf
极性电容11uf
排阻1
电阻2220*1,10k*1
晶振1
AT89C511
按键1
DS18B201
PROTEUS仿真图
PROTEL电路原理图
PCB布线图
完整C语言程序加注释)
#include
#defineuintunsignedint
#defineucharunsignedchar
sbitDQ=P3^6;//温度传感器引脚
sbits0=P3^0;//各个位码对应的端口
sbits1=P3^1;
sbits2=P3^2;
sbits3=P3^3;
charmark=0;
ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
voiddelay_1ms(uintz)
/*************************延时程序**********************/
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
voiddelay(uintt)
{
while(t--);
}
/*****************************************************/
/********************DS18b20的初始化程序******************/
voidinit_DS18b20()
{
intn;
DQ=1;
delay(8);
DQ=0;
delay(80);
DQ=1;
delay(8);
n=DQ;
delay(4);
}
ucharread_byte()
{
uchari,value;
for(i=0;i<8;i++)
{
DQ=0;
value>>=1;
DQ=1;
if(DQ)
value|=0x80;
delay(4);
}
return(value);
}
voidwrite_byte(uchardat)
{
chari;
for(i=0;i<8;i++)
{
DQ=0;
DQ=dat&0x01;
delay(4);
DQ=1;
dat>>=1;
}
delay(4);
}
ucharread_temp()
{
uchara,b;
init_DS18b20();
write_byte(0xcc);//跳过ROM
write_byte(0x44);//启动温度测量
delay(300);
init_DS18b20();