单片机大作业报告.doc

上传人:w****2 文档编号:6540011 上传时间:2020-02-28 格式:DOC 页数:19 大小:226.50KB
返回 下载 相关 举报
单片机大作业报告.doc_第1页
第1页 / 共19页
单片机大作业报告.doc_第2页
第2页 / 共19页
单片机大作业报告.doc_第3页
第3页 / 共19页
点击查看更多>>
资源描述
单片机大作业-温度控制系统设计班级:1302041学号:13020410024姓名: 陈串串1 设计要求项目简介:温度的测量和控制对人类日常生活、工业生产、气象预报、物资仓储等都起着极其重要的作用。在许多场合,及时准确获得目标的温度、湿度信息是十分重要的,近年来,温湿度测控领域发展迅速,并且随着数字技术的发展,温湿度的测控芯片也相应的登上历史的舞台,能够在工业、农业等各领域中广泛使用。鉴于此,本文对基于单片机的温湿度计系统进行了相关研究。本系统是通过单片机控制来实现对周围环境的温湿度进行测量。本系统是以AT89C52单片机为控制单元、温度传感器DS18B20为主要检测器件,实现温度、湿度的测量、显示、控制,并利用单片机之间的通信功能,将所采集到的温度和湿度值在液晶屏中显示出来。温度测量范围为测温范围 4070,精度0.0625。 (1)温度高于28启动制冷开关,从而使制冷压缩机工作;(2)温度低于15启动加热开关,从而使加热丝导通工作;(3)以上设定通过用户从键盘上输入实现;(4)温度需要用八段式LED显示(温度显示范围-4070);(5)制冷和制热需要LED灯显示其工作。2电路设计硬件电路的设计运用51单片机、七段数码管、LED灯、晶振、电解电容、DS18B20、电阻、排阻、电源等组成全部系统。DS18B20可以程序设定912位的分辨率,精度为0.5C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20的性能是新一代产品中最好的!性能价格比也非常出色!DS1822与 DS18B20软件兼容,是DS18B20的简化版本。省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为2C,适用于对性能要求不高,成本控制严格的应用,是经济型产品。 继“一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念。DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。设计框图如下:项目视图 图2-1 温度控制系统原理总图单片机 运用单片机处理温度转化成的串行数字信号,实现信号处理。将获得的结果通过输出装置输出显示在七段数码管上,并且在最后的处理部分也借用了P2和P3口的三个引脚,来点亮所需要点亮的LED灯。 89C52单片机组成结构中包含运算器、控制器、片内存储器、并行I/O口、串行I/O口、定时/计数器、中断系统、振荡器等功能部件。 图2.1.1 单片机控制部分电路温度采集部分运用一个DS18B20温度传感器作为外部温度的检测部分,并将采集好的串行数字信号供单片机处理。图2.1.2 DS18B20传感器获取外界温度电路温度显示部分六个七段数码管组成显示部分。图2.1.3 温度显示部分温度状态指示电路 温度高于指定温度(28)时,LED-RED亮(代表制冷工作); 温度在指定温度(1528)之间时,LED-GREEN亮; 温度低于指定温度(15)时,LED-BLUE亮(代表制热工作)。图2.1.4 状态指示部分 软件的设计#include #define W_IO P1 /片选线从左往右分别与P1.0-P1.4相连#define S_IO P0 /段选线从A-DP,分别与P0.0-p0.7相连#define uchar unsigned char#define ulong unsigned long#define uint unsigned intint t,a;uint temp,flag;float ftemp;sbit LED1=P20;sbit LED2=P24;sbit LED3=P31;sbit ds=P34;uchar Time5;/数码管要显示的4位数字和温度正负int code S_Data10=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90;int code W_Data5=0x01,0x02,0x04,0x08,0x10;void delayms(int time)/延时函数int i,j;for(i=time;i0;i-)for(j=110;j0;j-);void LED(uchar Data5,uint dp,uint flag)/七段数码管上的显示程序 int i=0,j=0;P0=0XFF;for(i=0;i0)i-; ds=1; i=4; while(i0)i-;bit du1wei() /读一位数据 uint i; bit dat; ds=0;i+; ds=1;i+;i+; dat=ds; i=8;while(i0)i-; return (dat);uchar du1zijie()/读一字节数据 uchar i,j,dat; dat=0; for(i=1;i=8;i+) j=du1wei(); dat=(j1); return(dat);void xie1wei (uchar dat)/写一字节 uint i; uchar j; bit test; for(j=1;j1; if(test) ds=0;i+;i+;ds=1;i=8; while(i0)i-; else ds=0;i=8; while(i0)i-; ds=1;i+;i+; void xie_temp_zhuanhuan()/开始获取温度并转换 init18b20(); delayms(1); xie1wei (0xcc); xie1wei (0x44);uint du_temp_flag()/读存储器中存储的温度,标记正负 uchar a,b; uint c; init18b20(); delayms(1); xie1wei (0xcc); xie1wei (0xbe); a=du1zijie(); b=du1zijie();temp=b;temp0xf000) c=1;return c; uint du_temp_cunchuqi(uint flag)/读存储器中存储的温度,转换 uchar a,b; init18b20(); delayms(1); xie1wei (0xcc); xie1wei (0xbe); a=du1zijie(); b=du1zijie();temp=b;temp=8;temp=temp|a; if(flag=1)temp=temp;temp=temp+1;ftemp=temp*0.0625;temp=ftemp*100+0.5;return temp; void baojin(uint flag)/温度状态处理 if(flag=1)LED1=0;LED2=1;LED3=0; else if(flag=0)if(temp=1500&temp2800)LED1=1;LED2=0;LED3=0;void main()/主函数while(1) xie_temp_zhuanhuan(); flag=du_temp_flag(); t=du_temp_cunchuqi(flag); Time0=flag; Time1=t/1000; Time2=t%1000/100; Time3=t/10%10; Time4=t%10; LED(Time,2,flag); baojin(flag);部分代码说明1.代码全程引入一关键(全局)变量flag,代表温度正负,当温度在零上时,flag为0,温度在零下时,flag为1,作为影响多个子函数的重要参数。2.void LED(uchar Data5,uint dp,uint flag)/八段数码管上的显示程序 int i=0,j=0;P0=0XFF;for(i=0;i5;i+) if(i=0) W_IO=W_Datai; if(flag=0) S_IO=0xff; else S_IO=0xbf;delayms(5); else if(dp!=i)W_IO=W_Datai;S_IO=S_DataDatai; elseW_IO=W_Datai;S_IO=S_DataDatai&0x7f; delayms(5); 数码管的显示是另一关键,结合主函数可知,该子函数中i=0-4代表六联数码管上2-6即后五个的对应处理情况,即i=0对应符号位,i=1-4对应数字位。符号位与数字位处理方式不同,故有了for循环内第一层if-else条件判断区分参数dp关系小数点位设定,主函数中取dp=2,对应i=2时的小数点特殊处理,故有了第一层if-else中else下的又一层3测试结果仿真结果温度信号模拟,仿真结果如图。 温度大于28度时,系统开启制冷措施(红灯亮) 温度小于15度时,系统开启取暖措施(蓝灯亮) 温度在指定范围15-28之间时,系统不采取任何措施(绿灯亮) 温度低于测量下限时,系统发出警报(蓝灯亮) 温度高于测量上限时,系统发出警报(红灯亮)4 总结本次单片机课程设计,不仅要求设计者能熟练使用单片机来实现温度的采集与读数,熟练编写程序,还要求对单片机的电路连接结构,对数码管芯片有明确清晰的了解与认识。刚开始拿到老师给的题目,我们就开始分析应该需要用到哪些知识,我们发现首先应该了解Keil和protel软件的使用,其次就是DS18B20的数据采集和编程问题。由于汇编程序是非常晦涩难懂的,所以我们决定采用C语言进行编程,而我们本身学的是汇编,所以我就在网上下载了一个郭天祥的基于C的单片机教学视频,开始前几天我基本就在看视频学习。在学习过程中,我学到了很多编程技巧,对我之后写编程序有很大的帮助。本次课程设计中不断翻阅资料,提高了我的分析能力,也让我体会到了动手实践的快乐,当看到电路仿真成功时,内心十分欣喜。参考文献:1李广弟、朱月秀、冷祖祁.单片机基础M.北京:北京航空航天大学出版社,20072张俊谟、张迎新.单片机教程M.北京:单片机教程,20083马斌.单片机原理及应用M.北京:人民邮电出版社,20094于帆、赵妮.程序设计基础M.北京:清华大学出版社,20065郭天祥单片机教程
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!