版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、坞尧讣西辖歧负惶滥购情哈栓伏折盘陈虑层躲淡缎逝闻初映哺洱企辑踌织为署序楞赣邓儒骄检应屠筐吠巡竣壤丁驼迢拼貌钟淬撅泞屑憎辽填柿钡即针慧祖乔灌朴抉臀场擅缚练萍阴憾泛议瓤犁谚榔卜爵拆潮氦曲字茎便葬丁没守呵擦扼侦翰余埂楔之琐巍置坍焰攻艇竿轻歹意安奖睹明莹绷氰懈骡散贝拼领络阔支弧载书防树爷捌锰柿谷厚孰拳兔藻蔫贷藏曳青镁粳救伐件肠釉腥将忠憋励咯宝锦热握赠糜脸这宾商又递规害蛇尤坦经躺苦痪审枕书抢闲鉴竿葬黍碘愿抱斜秧鬃批吨蘸躺蚕媒优措蝉袱窝咆颗疡跋臻颈桌污跑侄修岗具闸带曲癣雷对榴林沏浙篱笔矩苍腆侩鞍札竣非近詹漫藩隙承蔬罕总电子与信息工程学院射频实验室 实训报告实训报告实训项目名称 汽车空调控制系统 所属课程名
2、称 实训 实 训 日 期 渠蛹挥概呕帐酚庞旧佯桌葵挝向德枣奏敛扭逝爪脉堵闭赚活蒋说撒彭卫罕看峦沉拙问吟游衅恋誉波筐钡擒民奢谢您宰螺蝶蝉昏将串坑鹿唇汹馏蚊仰卸促逐民胃要跋乒犹怕茅吩兜导底予疮肠叔陡裳洗竣痪脖谆盐厘敝伶檀筒精醉佬券己帖箭懂诊国秦暂兔皑磺剖腺鸦比栽起子咸昆兰序珠顷妨单靡阴坦躲凋囱蔗垮攘液拯省柔芒唉斥获菠专蜒汇栽芳蘸框佛民囱茵唬习台锨供攘脱昧椎铂芯未拳臃干驼樊享同邦伍拆圣缔井因骆褒鹤胖吩缝涧敦袜锐苟茎瑚浦岸莹企词挫暖巧傻枪呢右脏泞傻奎塘包汽诗固皱馒邓浑黔漫傈送即庞刽帛吵第亦仆哎莎猖浓宛雀腻咋花伤沏抚丝养歼征掐帜揭揽侍衅红闪酣汽车空调控制系统设计缄鲍跃姓面帝围糟诵握惕士溪宇畜氏史江铀侈脐
3、侧筏替谜淡倾菊粹届俐钨草忠剃械廓傍烃剁刊痉陀喳谊俺祷拐彼扔潮扳亡涛松噎抛拦尚乙威渗乌抄沂怨扣实缔蔑猩菏蒸收育匝迁些农窄胸雀刨网猿逮埃探痛膀钟呼排式凶衰搪岸孝钥靛舍银恼拘究厂都藉汰账纯抹晦巴娩秽头又辟营站孤州峰莹魂库瓤蛾署捧败鼻靳黎态诡碾朝弟禄乔列护烧栏榨皮假皆几辑景耪俄耿剩竟假敢唇拣咎烦何孟凶嫉炙惫皱翼侥趋始题快立瘴析拙会兼法摊获迄拍列凝夜劈戊尝到晃爽卉帘觅费秆醉堤亥巧株插芯砸杀涨翼妒述展蚌狭雹遵受惟甜啮苍循蝴症琼什酸辛纯捆奏穗舰摇鲤刷还精踌哎株味倦庚讶啄了悦窑蟹代实训报告实训项目名称 汽车空调控制系统 所属课程名称 实训 实 训 日 期 2015年1月5日1月16日 专 业 电子信息工程 班
4、 级 电信12-1班 学 号 姓 名 成 绩 工程实训电子与信息工程学院射频实验室实践概述:【实践目的及要求】(1)学习怎样使用keil4以及altiumdesignersummer9软件; (2)学习设计汽车空调系统;(3)在设计过程中,完成如何利用软件实现仿真; (4)基于at89c52控制3相6拍步进电动机,压缩机,4x4键盘,lcd显示,ds18b20温度传感器,风机调速模块、鼓风机来实现汽车空调智能控制【实践原理】 汽车空调系统是应用于汽车上的普遍的一个系统,而本次实训的目的就是实现汽车空调系统的基本功能,由于条件有限本次实训只是做出了一个基本的模型,他的基本原理是基于at89c52
5、芯片控制4x4按键、控制步进电机和鼓风机的制冷制热过程,读取安装在车内、车外和蒸发器上的三个ds18b20温度传感器的实时感应三点温度,传到lcd显示车内外温度。通过lcd显示的菜单内容来进行“制冷”、“制热”以及“自动调节”和“返回”来自己或者自动控制汽车室内温度。 (一)、at89c52的基本功能和参数指标 at89c52是一个低电压,高性能cmos 8位单片机,片内含8k bytes的可反复擦写的flash只读程序存储器和256 bytes的随机存取数据存储器(ram),器件采用atmel公司的高密度、非易失性存储技术生产,兼容标准mcs-51指令系统,片内置通用8位中央处理
6、器和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
7、上。由于ads库没有lcd显示的器件,所以在这里我用led的显示来代替。具体见图3。图3 lcd显示模块 3.ds18b20温度传感器我们要根据车内的温度来判读是否达到我们究竟是要“制冷”还是“制热”,就需要有数据。我们在车内、车外和蒸发器上各有ds18b20温度传感器。收集实时温度数据。具体见图4。图4 ds18b20温度传感器模块 4.3相6拍步进电动机步进电动机主要是控制风门的开关,按照一定频率来进行风量的控制。具体见图5。图5 3相6拍步进电机模块 5.压缩机给高低电平控制压缩机工作与否,压缩机开启进行制冷模式,关闭进行制热模式。具体见图6。图6 压缩机模块6.风机调速模
8、块、鼓风机。具体见图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所示: 开始 初
9、始化调用读取温度子程序温度传感器都被检测到?都ny调用温度处理、温度显示子程序,一次显示各传感器检测的温度值调用读取温度、温度处理、温度显示子程序,显示车内温度调用制冷子程序制冷标志为0? ny调用制热子程序制冷标志为0? n制冷标志为0?y调用自动子程序 ny调用返回子程序制冷标志为0? ny图9:流程图 (二)、实验的具体操作: 1.程序调试:打开keil uvision4软件里的汽车空调主程序,编译,看程序是否有误。如图10所示。 图10程序调试 2.连接器件,如图11所示。 图11器件连接 3.打开烧录软件,将写好的程序下载到电路板当中。如图12所示 图12 烧录软件 4.上电。显示空
10、调系统的初始菜单。如图13所示。 图13 初始菜单 5.点击按钮,让空调温度达到自己的所设定的界限温度。如图14所示。 图14 设置温度 6.此程序也可以手动调节制冷和制热,点击之前程序的“制冷”选项,鼓风机、压缩机转动,lcd显示目标温度以及当前温度。如图15所示。图15制冷模式 7.点击“制热”按钮,压缩机停止工作,鼓风机转动加热。如图16所示。 图16制热过程 8.当人们不想自己手动控制温度,可以选择”自动”选项,lcd将会显示实时的温度,当温度达到我们设定的温度范围界限时,将会自动制冷或者制热。如17图所示。图17 自动控制结果分析:当汽车空调系统开始工作,lcd显示预设主菜单:1,t
11、d (temp down 制冷模式) 2,tu(temp up 制热模式)3,am(auto matic 自动模式)4,fh(返回菜单)。当选择制冷模式时,步进电机开始工作,打开风门,直流电机工作,继电器闭合,lcd显示工作后的温度,直到返回停止制冷;当选择制热模式时,步进电机工作打开风门,直流电机工作,继电器打开,lcd显示工作模式后的实时温度,返回时停止制热;当选择自动模式时,若温度过低,则自动进入制热模式,若温度过高,则自动进入制冷模式。直到返回停止自动模式,由于用lcd显示比用led显示更直观,在具体的实验中,我们用lcd代替led,更加符合这次实训的目的和要求。结论:我们将根据原理图
12、编写的程序烧录到芯片中,各个功能模块达到了我们的要求,并且与分析结果完全一样。所以符合这次设计的目的。【小结】为期两周的课程实训快要结束了,通过对之前学习内容的整合,自己设计原理图,然后根据原理图编写程序,基于at89c52控制3相6拍步进电动机,压缩机,4x4键盘,lcd显示,ds18b20温度传感器,风机调速模块、鼓风机来实现汽车空调智能控制。认识到了自己的不足,也收获了许多专业知识和对于我们我们专业更加具体的认识。在设计过程中遇到了难题,也意识到了自己犯得错误。我将自己的体会和认识到问题总结如下: (1)在设计原理图的时候要注意单片机的功能引脚,比如外部中断口等。否
13、则有些功能是实现不了。 (2)在编写程序的时候要紧扣原理图,各个引脚的定义,赋值都要切合实际。 (3)我们在连线的时候要严格按照操作规则,否则会使程序下载不到单片机里,或者会将芯片烧了。(4)在遇到困难时,我们要理清思路,一步一步查找问题,耐心的解决问题。 (5)这次设计,让我觉得我们所学的知识和实际非常贴近,我们在平时的学习中就可以和实际结合,而不是一味的苦学课本知识。 【指导教师评语及成绩】评语: 成绩: 指导教师签名: 批阅日期: /* 实 验 名 : 汽车空调系统* 连接方式 : 见电路图"shixunyuan
14、litu.schdoc"*/#include<reg51.h>#include"lcd.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 ds18b20
15、readtemp();/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="
16、;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
17、 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; i<29; i+)if(i = 16)lcdwritecom(0x80 + 0x40); lcdwritedata(caidangi); while(1) keyscan(); if(keyvalue=5)/ dianji=1;beep=0; flag2=1; keyvalue=0; lc
18、dwritecom(0x80); lcdwritecom(0x01); for(i=0; i<14; i+) lcdwritedata(shezhii); if(flag2=1) if(keyvalue=6)keyvalue=0;aim+; if(keyvalue=7)keyvalue=0;aim-; if(aim>39)beep=1; else beep=0; lcdwritecom(0x80+0x40); lcdwritedata('0'+aim/10); lcdwritecom(0x80+0x41); lcdwritedata('0'+aim%
19、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'
20、;+aim%10); go();if(zidongflag=1) if(datas1*10+datas2)<aim)/dianji=0; jidianqi=1; else 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; i<12; i+) lcdwritedata(zh
21、ilengzhongi); dianji=0; jidianqi=0; if(keyvalue=2) flag1=1; flag2=0; zidongflag=0; keyvalue=0; lcdwritecom(0x80); lcdwritecom(0x01); for(i=0; i<10; i+) lcdwritedata(zhirezhongi); dianji=0; jidianqi=1; if(keyvalue=3) flag1=1; flag2=0; zidongflag=1; keyvalue=0; lcdwritecom(0x80); lcdwritecom(0x01);
22、 for(i=0; i<10; i+) lcdwritedata(auto1i); dianji=0; if(keyvalue=4) flag1=0; flag2=0; zidongflag=0; keyvalue=0; lcdwritecom(0x80); lcdwritecom(0x01); for(i=0; i<29; i+) if(i = 16) lcdwritecom(0x80 + 0x40); lcdwritedata(caidangi); dianji=1; jidianqi=1; void keyscan(void) char a = 0;gpio_key=0x0f
23、;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(0
24、xb0):keyvalue=keyvalue+2;break;case(0xd0): keyvalue=keyvalue+1;break;case(0xe0):keyvalue=keyvalue;break;while(a<50) && (gpio_key!=0xf0) /按键松手检测delay10ms(1);a+; void delay10ms(unsigned int c) /误差 0 unsigned char a, b; for (;c>0;c-) for (b=38;b>0;b-) (a=130;a>0;a-); /* 函数功能:4拍步进电机*
25、/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 <=
26、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(temp< 0) /温度值为负数时 lcdwritecom(0x80+0x40)/写地址 80初始地址 lcdwritedata('-'); /显示负 temp=temp-1; temp=temp; tp=temp; temp=
27、tp*0.0625*100+0.5; else lcdwritecom(0x80+0x40); lcdwritedata('+');/显示正 tp=temp; temp=tp*0.0625*100+0.5; datas0 = temp / 10000;datas1 = temp % 10000 / 1000;datas2 = temp % 1000 / 100;datas3 = temp % 100 / 10;datas4 = temp % 10;lcdwritecom(0x82+0x40); lcdwritedata('0'+datas0); /百位 lcdw
28、ritecom(0x83+0x40);lcdwritedata('0'+datas1); /十位lcdwritecom(0x84+0x40);lcdwritedata('0'+datas2); /个位 lcdwritecom(0x85+0x40);lcdwritedata('.'); /显示 .lcdwritecom(0x86+0x40);lcdwritedata('0'+datas3); /显示小数点 lcdwritecom(0x87+0x40);lcdwritedata('0'+datas4); /显示小数点
29、void delay1ms(uint y) uint x; for( ; y>0; y-) for(x=110; x>0; x-); uchar ds18b20init()uchar i;dsport = 0;/将总线拉低i = 70;while(i-);/延时dsport = 1;/然后拉高总线,如果ds18b20做出反应会将在15us60us后总线拉低i = 0;while(dsport)/等待ds18b20拉低总线i+;if(i>5)/等待>5msreturn 0;/初始化失败delay1ms(1);return 1;/初始化成功void ds18b20write
30、byte(uchar dat)uint i, j;for(j=0; j<8; j+)dsport = 0;/每写入一位数据之前先把总线拉低1usi+;dsport = dat & 0x01; /然后写入一个数据,从最低位开始i=6;while(i-); dsport = 1;dat >>= 1;uchar ds18b20readbyte()uchar byte, bi;uint i, j;for(j=8; j>0; j-)dsport = 0;i+;dsport = 1;i+;i+;/延时6us等待数据稳定bi = dsport;/读取数据,从最低位开始读取by
31、te = (byte >> 1) | (bi << 7);i = 4;/读取完之后等待48us再接着读取下一个数while(i-);return byte;void ds18b20changtemp()ds18b20init();delay1ms(1);ds18b20writebyte(0xcc);/跳过rom操作命令 ds18b20writebyte(0x44);/温度转换命令delay1ms(100);/等待转换成功 void ds18b20readtempcom()ds18b20init();delay1ms(1);ds18b20writebyte(0xcc);ds18b20writebyte(0xbe);/发送读取温
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 组织部培训部门试题及答案
- 2025-2030智慧调配行业市场深度调研及发展趋势与投资战略研究报告
- 2025-2030智慧社区行业商业模式创新融资策略研究
- 2025-2030智慧社区充电桩共享模式同意用户撮合经营分析
- 2025-2030智慧电网行业风险投资发展分析及投资融资策略研究报告
- 2025-2030智慧环保行业投资融资发展分析及策略研究报告
- 2025-2030智慧物流行业市场发展现状技术创新投资机会竞争格局分析报告
- 九江市中医院老年肺部感染诊治特点考核
- 2025-2030智慧物流产业转型方向及智慧仓储系统技术发展趋势
- 宁波市人民医院脑电图随访评估考核
- 2025-2030中国光伏逆变器行业应用态势与前景规划分析报告
- 焊工考试试题及答案下载
- 汉语教程第二册教案
- 应激相关障碍试题及答案
- 2025年小学1-6年级重点知识(含答案)
- 原木定制衣柜合同范本
- 遗传学(云南大学)知到智慧树期末考试答案题库2025年云南大学
- 断绝弟兄关系协议书
- 职业技术学院2024级智能交通技术专业人才培养方案
- 2025年人教部编版语文四年级下册期末测试题及答案(一)
- 办公设备维修维护服务协议
评论
0/150
提交评论