- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
机械工程系
课程设计说明书
课 程 名 称: 机电一体化系统设计 题 目 名 称: 汽车空调控制器设计
目 录
前言:
一、 4
二、 4
三、 5
四、 6
参考文献:
前言:《机电一体化系统设计》课程设计是大学生在完成《机电一体化系统设计》等专业课学习后进行综合性实践性教学环节,总的目的是在老师的指导下,使学生通过课程设计对所学课程理论知识进行一次系统的回顾检查复习和提高并运用所学理论通过调研设计一个机电控制方面的课题受到从理论到实践应用的综合训练,培养学生独立运用所学理论解决具体问题的能力一、
1.1 空调控制器的硬件组成
本控制系统可以分为五大部分:温度采集、运行状态显示、继电器控制、键盘输入与读取、风向步进电机控制。
下图是利用Proteus仿真软件搭建的汽车空调自动控制系统硬件电路图。
1.2 空调系统的软件编程
由于本系统打算采用Atmel公司生产的AT89c51芯片作为主控制器,所以将采用KEIL C51编写程序。
由于这里采用的5个电路模块进行工作,每个模块之间的运行相对独立,所以这里将使用模块化的程序结构。在模块化的程序结构中,主程序仅仅是执行调度功能,负责轮流调用功能模块程序,主程序每循环一圈。所有的功能都被调用一次。
二、
2.1 温度采集模块
2.1.1 温度采集电路的选择
方案一
由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。
方案二
进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。
DS18B20可以并联在惟一的三线上,实现多点组网功能;
●无须外部器件;
●可通过数据线供电,电压范围为3.0~5.5V;
●零待机功耗;
●温度以9或12位数字;
●用户可定义报警设置;
●报警有哪些信誉好的足球投注网站命令识别并标志超过程序限定温度(温度报警条件)的器件;
●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;
/*===================================
函数名 称:Init_DS18B20
功 能:温度传感器初始化
参 数:无
返回值 :无
=====================================*/
Init_DS18B20(void) //传感器初始化
{
uchar x=0;
DATA = 1; //DQ复位
delay(10); //稍做延时
DATA = 0; //单片机将DQ拉低
delay(80); //精确延时 大于 480us //450
DATA = 1; //拉高总线
delay(20);
x=DATA; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
delay(30);
}
/*===================================
函数名 称:ReadOneChar
功 能:读一个字节
参 数:无
返回值 :读回的数据
=====================================*/
ReadOneChar(void)
{
uchar i=0;
uchar dat = 0;
for (i=8;i0;i--)
{
DATA = 0; // 给脉冲信号
dat=1;
DATA = 1; // 给脉冲信号
if(DATA)
dat|=0x80;
delay(8);
}
return(dat);
}
/*===================================
函数名 称:WriteOneChar
功 能:写一个字节
参 数:dat--写入的数据
返回值 :无
=====================================*/
WriteOneChar(unsigned char dat)
{
uchar i=0;
for (i=8; i0; i--)
{
DATA = 0;
DATA = dat0x01;
delay(10);
DATA = 1;
dat=1;
}
delay(8);
}
/*======
文档评论(0)