




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子与信息工程学院射频实验室 实训报告实训报告实训项目名称 汽车空调控制系统 所属课程名称 实训 实 训 日 期 2015年1月5日1月16日 专 业 电子信息工程 班 级 电信12-1班 学 号 姓 名 成 绩 工程实训电子与信息工程学院射频实验室实践概述:【实践目的及要求】(1)学习怎样使用keil4以及AltiumDesignerSummer9软件; (2)学习设计汽车空调系统;(3)在设计过程中,完成如何利用软件实现仿真; (4)基于AT89C52控制3相6拍步进电动机,压缩机,4X4键盘,LCD显示,DS18B20温度传感器,风机调速模块、鼓风机来实现汽车空调智能控制【实践原理】 汽车空调系统是应用于汽车上的普遍的一个系统,而本次实训的目的就是实现汽车空调系统的基本功能,由于条件有限本次实训只是做出了一个基本的模型,他的基本原理是基于AT89C52芯片控制4X4按键、控制步进电机和鼓风机的制冷制热过程,读取安装在车内、车外和蒸发器上的三个DS18B20温度传感器的实时感应三点温度,传到LCD显示车内外温度。通过LCD显示的菜单内容来进行“制冷”、“制热”以及“自动调节”和“返回”来自己或者自动控制汽车室内温度。 (一)、AT89C52的基本功能和参数指标 AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元。具体见图1。图1 AT89C52单片机 汽车空调系统的主要模块有4X4键盘、LCD显示、DS18B20温度传感、3相6拍步进电机、压缩机以及风机调速模块控制下的鼓风机等,下面介绍上述各模块。1.4X4键盘 4X4键盘的“5”“6”“7”“8”分别控制“制冷”“制热”“自动”“返回”。“1”对应“目标温度”即自己想要达到的温度。“2”和“3”则是对应目标温度的加减。具体见图2 图2 4X4键盘模块 2.LCD显示 车内、车外和蒸发器上的三个DS18B20温度传感器的实时感应温度通过芯片显示在LCD上,还有我们根据实时温度需要做出一系列的操作,我们的操作指令也会显示在LCD上。由于ADS库没有LCD显示的器件,所以在这里我用LED的显示来代替。具体见图3。图3 LCD显示模块 3.DS18B20温度传感器我们要根据车内的温度来判读是否达到我们究竟是要“制冷”还是“制热”,就需要有数据。我们在车内、车外和蒸发器上各有DS18B20温度传感器。收集实时温度数据。具体见图4。图4 DS18B20温度传感器模块 4.3相6拍步进电动机步进电动机主要是控制风门的开关,按照一定频率来进行风量的控制。具体见图5。图5 3相6拍步进电机模块 5.压缩机给高低电平控制压缩机工作与否,压缩机开启进行制冷模式,关闭进行制热模式。具体见图6。图6 压缩机模块6.风机调速模块、鼓风机。具体见图7。图7 风机调速模块、鼓风机模块实验设备:实验硬件:(1)仿真器1台。 (2)+5V的直流稳压电源1台。 (3)PC机1台。实验软件:AltiumDesignerSummer9,Keil uVision4。实践内容:【实践过程】(实践步骤、记录、数据、分析)实验步骤: 1.设计汽车空调系统示意图如图8所示: AT89C514X4键盘LED显示 车内温度 DS18B20 车外温度 DS18B20蒸发器温度 DS18B203相6拍步进电动机风门执行机构 驱动电路压缩机电磁离合器DC-SSR鼓风机风机调速模块图8:示意图 2. 汽车空调控制系统主程序流程图如图9所示: 开始 初始化调用读取温度子程序温度传感器都被检测到?都NY调用温度处理、温度显示子程序,一次显示各传感器检测的温度值调用读取温度、温度处理、温度显示子程序,显示车内温度调用制冷子程序制冷标志为0? NY调用制热子程序制冷标志为0? N制冷标志为0?Y调用自动子程序 NY调用返回子程序制冷标志为0? NY图9:流程图 (二)、实验的具体操作: 1.程序调试:打开Keil uVision4软件里的汽车空调主程序,编译,看程序是否有误。如图10所示。 图10程序调试 2.连接器件,如图11所示。 图11器件连接 3.打开烧录软件,将写好的程序下载到电路板当中。如图12所示 图12 烧录软件 4.上电。显示空调系统的初始菜单。如图13所示。 图13 初始菜单 5.点击按钮,让空调温度达到自己的所设定的界限温度。如图14所示。 图14 设置温度 6.此程序也可以手动调节制冷和制热,点击之前程序的“制冷”选项,鼓风机、压缩机转动,LCD显示目标温度以及当前温度。如图15所示。图15制冷模式 7.点击“制热”按钮,压缩机停止工作,鼓风机转动加热。如图16所示。 图16制热过程 8.当人们不想自己手动控制温度,可以选择”自动”选项,LCD将会显示实时的温度,当温度达到我们设定的温度范围界限时,将会自动制冷或者制热。如17图所示。图17 自动控制结果分析:当汽车空调系统开始工作,LCD显示预设主菜单:1,TD (Temp Down 制冷模式) 2,TU(Temp Up 制热模式)3,am(auto matic 自动模式)4,fh(返回菜单)。当选择制冷模式时,步进电机开始工作,打开风门,直流电机工作,继电器闭合,LCD显示工作后的温度,直到返回停止制冷;当选择制热模式时,步进电机工作打开风门,直流电机工作,继电器打开,LCD显示工作模式后的实时温度,返回时停止制热;当选择自动模式时,若温度过低,则自动进入制热模式,若温度过高,则自动进入制冷模式。直到返回停止自动模式,由于用LCD显示比用LED显示更直观,在具体的实验中,我们用LCD代替LED,更加符合这次实训的目的和要求。结论:我们将根据原理图编写的程序烧录到芯片中,各个功能模块达到了我们的要求,并且与分析结果完全一样。所以符合这次设计的目的。【小结】为期两周的课程实训快要结束了,通过对之前学习内容的整合,自己设计原理图,然后根据原理图编写程序,基于AT89C52控制3相6拍步进电动机,压缩机,4X4键盘,LCD显示,DS18B20温度传感器,风机调速模块、鼓风机来实现汽车空调智能控制。认识到了自己的不足,也收获了许多专业知识和对于我们我们专业更加具体的认识。在设计过程中遇到了难题,也意识到了自己犯得错误。我将自己的体会和认识到问题总结如下:(1)在设计原理图的时候要注意单片机的功能引脚,比如外部中断口等。否则有些功能是实现不了。(2)在编写程序的时候要紧扣原理图,各个引脚的定义,赋值都要切合实际。(3)我们在连线的时候要严格按照操作规则,否则会使程序下载不到单片机里,或者会将芯片烧了。(4)在遇到困难时,我们要理清思路,一步一步查找问题,耐心的解决问题。(5)这次设计,让我觉得我们所学的知识和实际非常贴近,我们在平时的学习中就可以和实际结合,而不是一味的苦学课本知识。 【指导教师评语及成绩】评语: 成绩: 指导教师签名: 批阅日期: /* 实 验 名 : 汽车空调系统* 连接方式 : 见电路图shixunyuanlitu.SchDoc*/#include#includelcd.h/定义I O口/#define GPIO_KEY P1#define speed 1sbit DSPORT=P37;/声明函数/void Delay1ms(uint );uchar Ds18b20Init();void Ds18b20WriteByte(uchar com);uchar Ds18b20ReadByte();void Ds18b20ChangTemp();void Ds18b20ReadTempCom();void Go();int Ds18b20ReadTemp();/Motor sbit I01 = P02;sbit I11 = P03;sbit I02 = P04;sbit I12 = P05;sbit dianji=P20;sbit jidianqi=P36; sbit beep=P30;void delay(int time);/定义变量/unsigned char PuZh17=Zhe ge zhi :;unsigned char caidang=1.ZHILENG 2.ZHIRE 3.ZIDONG 4.FANHUI;unsigned char zhilengzhong=ZHILENGZHONG ;unsigned char zhirezhong=ZHIREZHONG ;unsigned char shezhi=Gianbian;unsigned char auto1=Zidong;unsigned char KeyValue;unsigned char datas = 0, 0, 0, 0, 0; /定义数组static int flag1,flag2,zidongflag;static int aim=0;/声明函数/ void LcdDisplay(int temp);void KeyScan(void);void Delay10ms(unsigned int c); /误差 0void main(void)unsigned char i;LcdInit();/dianji=1;jidianqi=1;beep=0;/while(Ds18b20Init() ;for(i=0; i29; i+)if(i = 16)LcdWriteCom(0x80 + 0x40); LcdWriteData(caidangi); while(1) KeyScan(); if(KeyValue=5)/ dianji=1;beep=0; flag2=1; KeyValue=0; LcdWriteCom(0x80); LcdWriteCom(0x01); for(i=0; i39)beep=1; else beep=0; LcdWriteCom(0x80+0x40); LcdWriteData(0+aim/10); LcdWriteCom(0x80+0x41); LcdWriteData(0+aim%10); LcdWriteCom(0x80+0x43); LcdWriteData(C);if(flag1=1)LcdDisplay(Ds18b20ReadTemp(); LcdWriteCom(0x80+0x49);LcdWriteData(t);LcdWriteCom(0x80+0x4A);LcdWriteData(o); LcdWriteCom(0x80+0x4C); LcdWriteData(0+aim/10); LcdWriteCom(0x80+0x4D); LcdWriteData(0+aim%10); GO();if(zidongflag=1) if(datas1*10+datas2)aim)dianji=0; jidianqi=0; else dianji=1; jidianqi=1; if(KeyValue=1) flag1=1; flag2=0; zidongflag=0; KeyValue=0; LcdWriteCom(0x80); LcdWriteCom(0x01); for(i=0; i12; i+) LcdWriteData(zhilengzhongi); dianji=0; jidianqi=0; if(KeyValue=2) flag1=1; flag2=0; zidongflag=0; KeyValue=0; LcdWriteCom(0x80); LcdWriteCom(0x01); for(i=0; i10; i+) LcdWriteData(zhirezhongi); dianji=0; jidianqi=1; if(KeyValue=3) flag1=1; flag2=0; zidongflag=1; KeyValue=0; LcdWriteCom(0x80); LcdWriteCom(0x01); for(i=0; i10; i+) LcdWriteData(auto1i); dianji=0; if(KeyValue=4) flag1=0; flag2=0; zidongflag=0; KeyValue=0; LcdWriteCom(0x80); LcdWriteCom(0x01); for(i=0; i29; i+) if(i = 16) LcdWriteCom(0x80 + 0x40); LcdWriteData(caidangi); dianji=1; jidianqi=1; void KeyScan(void) char a = 0;GPIO_KEY=0x0f;if(GPIO_KEY!=0x0f)/按键是否按下Delay10ms(1);/延迟10ms消除抖动if(GPIO_KEY!=0x0f)/再次检测按键是否按下/列GPIO_KEY=0X0F;switch(GPIO_KEY)case(0X07):KeyValue=0;break;case(0X0b):KeyValue=4;break;case(0X0d):KeyValue=8;break;case(0X0e):KeyValue=12;break; /行GPIO_KEY=0XF0;switch(GPIO_KEY)case(0X70):KeyValue=KeyValue+3;break;case(0Xb0):KeyValue=KeyValue+2;break;case(0Xd0): KeyValue=KeyValue+1;break;case(0Xe0):KeyValue=KeyValue;break;while(a0;c-) for (b=38;b0;b-) (a=130;a0;a-); /* 函数功能:4拍步进电机*/void Go() /A I01 = 0;I11 = 0; /最大电流输出 I02 = 1;I12 = 1; /输出0delay(speed);/0I01 = 1; /输出0I11 = 1;I02 = 0; /最大电流输出I12 = 0;delay(speed);/B I01 = 0; /以最大电流输出I11 = 0;I02 = 1; /输出0I12 = 1; delay(speed);/0 I01 = 1;I11 = 1;I02 = 0;I12 = 0;delay(speed); /*延时函数*/void delay(int time) int i,j; for(j=0; j = time; j+) for(i =0 ; i = 120; i+);void LcdDisplay(int temp) /lcd显示float tp;unsigned char datas = 0, 0, 0, 0, 0; /定义数组datas0 =0;datas1 =0;datas2 =0;datas3 =0;datas4 =0; if(temp0; y-) for(x=110; x0; x-); uchar Ds18b20Init()uchar i;DSPORT = 0;/将总线拉低i = 70;while(i-);/延时DSPORT = 1;/然后拉高总线,如果DS18B20做出反应会将在15us60us后总线拉低i = 0;while(DSPORT)/等待DS18B20拉低总线i+;if(i5)/等待5MSreturn 0;/初始化失败D
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业电源技术及其发展趋势
- 工业设计与商业价值的结合实践
- 工作中的时间管理工具应用
- 工作效率优化与管理效能提升
- 工业风格建筑特色及设计要素
- 工程制图中对于坐标和空间的理解及表达方式
- 工作场所安全管理与职业病预防
- 工作汇报中的有效表达策略-基于故事化的视角
- 工厂设备的日常维护与保养
- 工程设计与施工技术探讨
- 医院护士辞职申请书集合六篇(护士岗位辞职申请书)
- 静脉注射 Microsoft PowerPoint 演示文稿课件
- 同济大学论文答辩通用PPT模板
- AFC检测技术规程
- 部编人教版二年级下学期数学期末学业质量监测复习课堂知识练习题
- 餐饮行业抖音代运营方案
- 《聪明人和傻子和奴才》 课件
- Fleischner指南解读
- 建筑工地安全生产百日攻坚行动实施方案
- 电厂度电机维修技术规范书正式
- 年产40万吨甲醇合成工艺设计
评论
0/150
提交评论