1、89c52温度控论文目录一、设计任务和指标要求3二、设计框图及整机概述4三、各单元电路的设计方案及原理说明5四、仿真调试过程及结果分析9五、设计、安装及调试中的体会9六、对本次课程设计的意见及建议10七、参考资料10八、附录15附件1 整机逻辑电路图15附件2 元器件清单16附件3 程序清单 16一、 设计任务和指标要求1、设计时间:2010.7.52010.7.92、地点:I4043、课程设计题目:水温控制系统设计4、1)设计任务及内容:要求设计一个水温控制系统设计,能正常控制和测量温度范围。控温通道输出为双向晶闸管或继电器,一组转换点为市电(,);测温和控温范围:室温(实时控制);控温精度
2、:正负。2)设计要求:选取单元电路及元件; 设计总体电路原理图;整体电路的联调(完成全电路理论设计、仿真、调试);撰写设计报告。二、设计框图及整机概述2.1 原理框图2.1 整个原理图2.2 设计思想通过温度传感器,对被控对象进行温度与数字转换,由温度传感器输出的电压经过IO口,由单片机读出数值,并显示在数码管上,按键可以提高或者降低所需的温度,实际温度再经过与目标温度的比较,若所测温度大于基准温度,则输出低的门限电压,即:D1灯不亮,不执行加热环节。反之,若所测电压小于基准电压。则输出高的门限电压,即D1灯亮,执行加热环节。反之,则执行冷却环节,这样就可以把温度控制在一定的范围内。三、各单元
3、电路的设计方案及原理说明 3.1温度传感器 图3-2 Ds18b20图3-3 单片机从温度传感器上读出温度/DS18B20程序读取温度ReadTemperature(void)unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x44); / 启动温度转换Init_DS18B20();WriteOneChar(0xCC); /跳过读序号列号的操作WriteOneChar(0xBE); /读取温度寄存
4、器等(共可读9个寄存器) 前两个就是温度a=ReadOneChar();b=ReadOneChar();t=b;t=8;t=t|a;tt=t*0.0625;return(t);3.3 驱动器模块:(1)工作原理:Q50043l是开关晶体控制器件。当低压电源端开关接通后实现了低压控制高压,。 图3.3 双向晶闸管原理图3)电路原理图 图3-3 驱动模块模块 3.4 加热模块1)工作原理:加热电阻是很简单的加热器串联电路,加热电路中串联保险丝防止电流过大产生危险2)参数计算: 接入220V交流电压,R9=22,(来代替发热丝)保险丝可以通过最大电流为I=10A3.5.显示模块unsigned ch
5、ar code duan= 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0x88,;/段码/当前温度显示/wendu1为实际温度/hao为目标温度/ P11=1; P0=duanwendu_1/1000; for(k=0;k1000;k+); P1=0; P12=1; P0=duanwendu_1/100%10; for(k=0;k1000;k+); P1=0; P13=1; P0=duanwendu_1%100/10; for(k=0;k1000;k+); P1=0; P14=1; P0=duanwendu_1%10; for(k=0;
6、k1000;k+); P1=0; /目标电压显示/ P15=1; P2=duanhao/1000; for(k=0;k1000;k+); P1=0; P16=1; P2=duanhao/100%10; for(k=0;k1000;k+); P1=0; P17=1; P2=duanhao%100/10; for(k=0;k1000;k+); P1=0; P32=1; P2=duanhao%10; for(k=0;k1000;k+); P32=0; 四、仿真调试过程及结果分析1仿真调试过程在原理图设计完后,利用protues软件绘制了原理图。在原理图绘制完后,即进行了仿真调试。调试过程中,开始数码
7、管灯不亮,以为是电路出现问题,花了2个小时也没有解决问题,我于是上网查数码管的资料,结果发现,仿真中用的数码管是共阳极的,而不是平时用的共阴极的,也就是程序中的断码出现了问题。2结果分析能够从温度传感器中获得温度数据,并且能通过按键纠正目标温度,程序能正常执行,电阻丝也能按目标温度的高低调整自身的工作状态。效果还行,不过其一精度不高,只能到一度,其二程序执行得慢,不过由于时间太仓促,这些问题可以解决。五设计、安装及调试中的体会此次课程设计考查了我们的设计电路的能力和动手能力。从中我学到了很多东西。设计上的电路在实际中运用可能不是像仿真那样理想,由于购买元件的误差及元件的大小在实际中比没有很好的
8、匹配,所以按照设计的电路焊出来的实物在调试过程中遇到了一些问题,但我都一步一步地解决了。由于是第一次课程设计,所以花的时间很多。通过这次课程设计,我学会了如何使用仿真软件Protel和protues,进一步巩固了电路的焊接能力。最重要的是通过这次课程设计我深深体会到能把所学的知识运用到实践中才是真正掌握。这次的课程设计时间有些仓促,我们刚学完模电的相关知识就运用到电路中,刚开始觉得很难,相关的知识掌握得不到位,但随着设计的深入,发现所学的知识在我设计的电路中得到了很好的运用,在课程设计的同时,巩固和掌握了现学的知识,这才是设计的目的。特别是在电路调试成功的那一刻,出现了我所预料的现象,着实让我
9、高兴了一番,自己所设计的东西没有白费,并且从中获得了知识,是一件很开心的事。这只是一次简单的课程设计,只是一个开始,设计的东西在实际中的运用还尚欠缺,但从中我学到了遇到困难要解决,不能浮躁,要静心,耐心,细心的做事,坚持下去,总能看到成功的曙光的。六、对本次课程设计的意见及建议这次课程设计就更加难忘,可以让同学们更加充分的发挥自己想象力和创造力,同时也可以让我们从中得到的知识面更加广阔,但是我们还是积极的查阅资料,努力用自己所学到的知识来完成设计。并且从中体会到了一种成就感和使命感。建议:课程时间安排还应该改进。下午上课应该迟一些,保证同学们的良好睡眠和精神状态。七、参考资料1任囯燕主编 模拟
10、电子技术实验指导书 重庆科技学院 2008年11月2康华光主编 电子技术基础-模拟部分(第五版) 高等教育出版社 2006年12月3王振红 电子技术综合实验及综合设计 机械工业出版社 2007年3月4赵淑范 电子技术实验与课程设计 清华大学出版社 2006年8月5。张宝会 电力系统继电保护 中国电力出版社 2005年5月 八 附录 附录 一 原理图名称标号大小电容C115P电容C215p电容C31u电容C41uLedD1电阻R11k电阻R21k电阻R320k电阻R41k晶振X111.0592M51单片机U1温度传感器(ds18b20)U2光电耦合器U3按键Button数码管(74eg-mp4-
11、ca)电阻丝R20附录二 元件表附录三 程序代码#includesbit P11=P11;sbit P12=P12;sbit P13=P13;sbit P14=P14;/数码管1断码控制/sbit P15=P15;sbit P16=P16;sbit P17=P17;sbit P32=P32;/数码管2段码控制/sbit up=P37;sbit down=P36; /按键操作端口/sbit P35=P35; /控制晶闸管端口/sbit DQ =P33; /温度传感器端口/ #define THCO 0xee#define THLO 0x00unsigned char code duan= 0xc
12、0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0x88,; /int b=0;char pwm=0;int k;char r=0,q=0;static char wendu_1;char hao=20;/void delay(unsigned int i)while(i-);/Init_DS18B20(void)unsigned char x=0;DQ = 1; /DQ复位delay(8); /稍做延时DQ = 0; /单片机将DQ拉低delay(80); /精确延时 大于 480usDQ = 1; /拉高总线delay(14);x=DQ; /稍
13、做延时后 如果x=0则初始化成功 x=1则初始化失败delay(20);/ReadOneChar(void)unsigned char i=0;unsigned char dat = 0;for (i=8;i0;i-)DQ = 0; / 给脉冲信号dat=1;DQ = 1; / 给脉冲信号if(DQ)dat|=0x80;delay(4);return(dat);/WriteOneChar(unsigned char dat)unsigned char i=0;for (i=8; i0; i-)DQ = 0;DQ = dat&0x01;delay(5);DQ = 1;dat=1;/delay(4
14、);/DS18B20程序读取温度ReadTemperature(void)unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x44); / 启动温度转换Init_DS18B20();WriteOneChar(0xCC); /跳过读序号列号的操作WriteOneChar(0xBE); /读取温度寄存器等(共可读9个寄存器) 前两个就是温度a=ReadOneChar();b=ReadOneChar()
15、;t=b;t=8;t=t|a;tt=t*0.0625;return(t);xianshi()/当前温度显示/ P11=1; P0=duanwendu_1/1000; for(k=0;k1000;k+); P1=0; P12=1; P0=duanwendu_1/100%10; for(k=0;k1000;k+); P1=0; P13=1; P0=duanwendu_1%100/10; for(k=0;k1000;k+); P1=0; P14=1; P0=duanwendu_1%10; for(k=0;k1000;k+); P1=0; /目标电压显示/ P15=1; P2=duanhao/1000; for(k=0;k1000;k+); P1=0; P16=1; P2=duanhao/100%10; for(k=0;k1000;k+); P1=0; P17=1; P2=duanhao%100/10; for(k=0;k1000;k+); P1=0; P32=1; P2=duanhao%10; for(k=0;k0) P35=1; if(pwm0) P35=0; if(pwm=0) P35=0;/
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2