ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:202.14KB ,
资源ID:7758856      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-7758856.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机报告--温度控制系统设计.docx)为本站会员(精品资料)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

单片机报告--温度控制系统设计.docx

1、0单片机大作业-温度控制系统设计班级:1302041学号:13020410022姓名:刘云昭1目录目录 1摘要 2ABSTRACT21 设计要求及方案选择 31.1 设计要求 31.2 方案选择 32 理论分析与设计 32.1 温度采集电路的分析及设计 32.3 直流电源电路的分析及设计 43 电路设计 53.1 硬件电路的设计 53.1.1 51 单片机 53.1.2 温度采集部分 63.1.3 温度显示部分 63.1.4 温度处理电路 73.2 软件的设计 74 系统测试 104.1 调试所用的基本仪器清单 104.2 调试结果 104.3 测试结果分析 115 总结 11参考文献 122

2、1 设计要求(1)温度高于 28启动制冷开关,从而使制冷压缩机工作;(2)温度低于 15启动加热开关,从而使加热丝导通工作;(3)以上设定通过用户从键盘上输入实现;(4)温度需要用八段式 LED 显示(温度显示范围-4070) ;(5)制冷和制热需要 LED 灯显示其工作。2 电路设计2.1 硬件电路的设计运用 51 单片机、七段数码管、LED 灯、晶振、电解电容、DS18B20、电阻、排阻、电源等组成全部系统。图 2-1 温度控制系统原理总图2.1.1 51 单片机运用单片机处理温度转化成的串行数字信号,实现信号处理。将获得的结果通过输出装置输出显示在七段数码管上,并且在最后的处理部分也借用

3、了 P2 和 P3 口的三个引3脚,来点亮所需要点亮的 LED 灯。89C52 单片机组成结构中包含运算器、控制器、片内存储器、并行 I/O 口、串行I/O 口、定时/计数器、中断系统、振荡器等功能部件。图 2.1.1 单片机控制部分电路2.1.2 温度采集部分运用一个 DS18B20 温度传感器作为外部温度的检测部分,并将采集好的串行数字信号供单片机处理。图 2.1.2DS18B20 传感器获取外界温度电路42.1.3 温度显示部分六个七段数码管组成显示部分(实际用到五个) 。图 2.1.3 温度显示部分2.1.4 温度状态指示电路温度高于指定温度(28)时,LED-RED 亮(代表制冷工作

4、) ;温度在指定温度(1528)之间时,LED-GREEN 亮;温度低于指定温度(15)时,LED-BLUE 亮(代表制热工作) 。图 2.1.4 状态指示部分 2.2 软件的设计2.2.1 程序全部代码#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;floa

5、t 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)/延时函数8int i,j;for(i=time;i0;i-)for(j=110;j0;j-);void LED(uchar Data5,uint

6、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;i1);return(dat);void xie1wei (uchar dat)/写一字节uint i;uchar j;bit test;for(j=1;j1

7、;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);9uint du_temp_flag()/读存储器中存储的温度,标记正负uchar a,b;uint c;init18b20();delayms(1);xie1wei (0xcc); xie1wei (0xbe);a=du1zijie(); b=du1zijie();

8、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=1500LED2=0;LED3=0;void main()/主函数while(1) xie_temp_zhuanhuan();flag=du_temp_flag();t=du_temp_cunchuqi(flag);Time0=flag

9、;Time1=t/1000;Time2=t%1000/100;Time3=t/10%10;Time4=t%10;LED(Time,2,flag);baojin(flag);2.2.2 部分代码说明1.代码全程引入一关键(全局)变量 flag,代表温度正负,当温度在零上时,flag 为 0,温度在零下时,flag 为 1,作为影响多个子函数的重要参数。2.课题要求中默认 DS1820 初始化和读取程序已知,意为程序中直接代替,但这样就无法实现软件仿真,所以从网上查找了以下六个涉及传感器 DS18B20 的初始化、读写及转换的子函数:init18b20()/DS18B20 复位,初始化函数11du

10、1wei() /读一位数据du1zijie()/读一字节数据xie1wei (uchar dat)/写一字节xie_temp_zhuanhuan()/开始获取温度并转换du_temp_cunchuqi(uint flag)/读存储器中存储的温度,转换其中“du_temp_cunchuqi(uint flag)/读存储器中存储的温度,转换”一子函数,由于搜集到的代码只针对零上温度处理,故添加处理零下温度部分代码如下:if(flag=1)temp=temp;temp=temp+1;对零下温度作按位取反并加 1 的处理,之后和零上温度处理方式相同3.void LED(uchar Data5,uint

11、 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);elseif(dp!=i)W_IO=W_Datai;S_IO=S_DataDatai;elseW_IO=W_Datai;S_IO=S_DataDataidelayms(5);数码管的显示是另一关键,结合主函数可知,该子函数中 i=0-4 代表六联数码管上 2-6 即后五个的对应处理情况,即 i=0 对应符号位, i=1-4 对应数字位。符号位

12、与数字位处理方式不同,故有了 for 循环内第一层 if-else 条件判断区分参数 dp 关系小数点位设定,主函数中取 dp=2,对应 i=2 时的小数点特殊处理,故有了第一层 if-else中 else 下的又一层103 测试结果3.2 仿真结果温度信号模拟,仿真结果如图。图 3.1.1 高温时,LED-RED 亮11图 3.1.2 温度在设定范围内,LED-GREEN 亮图 3.1.3 低温时,LED-BLUE 亮12图 3.1.4 要求上限,LED-RED 亮图 3.1.5 要求下限,LED-BLUE 亮133.2 测试结果分析单击 DS18B20 上的+或-号来实现温度的调节1.温度

13、高于指定温度(28)时,LED-RED 亮(代表制冷工作) ;2.温度在指定温度(1528)之间时,LED-GREEN 亮;3.温度低于指定温度(15)时,LED-BLUE 亮(代表制热工作) ;4.实现了在-4070范围内的温度监测。4 总结本次模拟电路课程设计有较强的综合性,不仅要求设计者能熟练使用单片机来实现温度的采集与读数,熟练编写程序,还要求对单片机的电路连接结构,对数码管芯片有明确清晰的了解与认识,否则在设计的第一步就会遇到障碍。经过一个多星期的资料收集与查询,又经过几天的总体构思,在脑中对温度控制系统的设计有了一个总体的框架,对程序的流程图也有一个基本的结构,最后结合参考资料,又

14、经过两天对程序的编写以及程序的改进,最后终于完成了本次课程设计各项内容。通过运用所学知识、网上查阅资料和努力设计,我从这次课程设计不仅仅只是获得自己亲手做的电子产品,还学到了很多,例如面对问题要保持冷静,特别是在程序的编写这一块,要找出程序的错误一定要有一个冷静的头脑,否则很难发现错误甚至是越改越错。另外我还认识到与他人合作的重要性,虚心向别人学习,充分利用网上资源,都是一些不错的方法。模拟电子技术是一门很有用也是专业基础的学科,一定要学好理论知识,打好基础,而且要学会动手,增强动手能力,通过实践加深对理论知识的理解。本次课程设计中不断翻阅资料,提高了我的分析能力,也让我体会到了动手实践的快乐,受益匪浅!

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报