人人范文网 范文大全

protues仿真单片机温度控制

发布时间:2020-03-03 05:47:43 来源:范文大全 收藏本文 下载本文 手机版

51单片机的温度控制的Protues仿真

目 录

一、设计任务和指标要求....................................................3

二、设计框图及整机概述...................................................4

三、各单元电路的设计方案及原理说明........................................5

四、仿真调试过程及结果分析................................................9

五、设计、安装及调试中的体会..............................................9

六、对本次课程设计的意见及建议............................................10

七、参考资料..............................................................10

八、附录..................................................................15 附件1 整机逻辑电路图...................................................15 附件2 元器件清单.......................................................16 附件3 程序清单 ....................................................... 16

一、设计任务和指标要求

1、设计时间:2010.7.5~2010.7.9

2、地点:I404

3、课程设计题目:水温控制系统设计

4、1)设计任务及内容:

要求设计一个水温控制系统设计,能正常控制和测量温度范围。控温通道输出为双向晶闸管或继电器,一组转换点为市电(220V,10A); 测温和控温范围:室温~80℃(实时控制); 控温精度:正负1℃。 2)设计要求:

①选取单元电路及元件; ②设计总体电路原理图;

③整体电路的联调(完成全电路理论设计、仿真、调试); ④撰写设计报告。

二、设计框图及整机概述 2.1 原理框图

2.1 整个原理图 2.2 设计思想

通过温度传感器,对被控对象进行温度与数字转换,由温度传感器输出的电压经过IO口,由单片机读出数值,并显示在数码管上,按键可以提高或者降低所需的温度,实际温度再经过与目标温度的比较,若所测温度大于基准温度,则输出低的门限电压,即:D1灯不亮,不执行加热环节。反之,若所测电压小于基准电压。则输出高的门限电压,即D1灯亮,执行加热环节。反之,则执行冷却环节,这样就可以把温度控制在一定的范围内。

三、各单元电路的设计方案及原理说明

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); //读取温度寄存器等(共可读9个寄存器) 前两个就是温度 a=ReadOneChar(); b=ReadOneChar(); t=b; t

Q50043l是开关晶体控制器件。当低压电源端开关接通后实现了低压控制高压,。

图3.3 双向晶闸管原理图 3)电路原理图

图3-3 驱动模块模块

3.4 加热模块 1)工作原理:

加热电阻是很简单的加热器串联电路,加热电路中串联保险丝防止电流过大产生危险 2)参数计算:

接入220V交流电压, R9=22Ω,(来代替发热丝)

保险丝可以通过最大电流为I=10A 3.5.显示模块

unsigned char code duan[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0x88,}; ///////////////段码//////////////////////////////////////// /////////////////当前温度显示///////////////////////////// ////////////wendu—1为实际温度////////////////// ///////////////hao为目标温度/////////////// P11=1; P0=duan[wendu_1/1000]; for(k=0;k

四、仿真调试过程及结果分析 1.仿真调试过程

在原理图设计完后,利用protues软件绘制了原理图。在原理图绘制完后,即进行了仿真调试。调试过程中,开始数码管灯不亮,以为是电路出现问题,花了2个小时也没有解决问题,我于是上网查数码管的资料,结果发现,仿真中用的数码管是共阳极的,而不是平时用的共阴极的,也就是程序中的断码出现了问题。 2.结果分析

能够从温度传感器中获得温度数据,并且能通过按键纠正目标温度,程序能正常执行,电阻丝也能按目标温度的高低调整自身的工作状态。效果还行,不过其一精度不高,只能到一度,其二程序执行得慢,不过由于时间太仓促,这些问题可以解决。 五.设计、安装及调试中的体会

此次课程设计考查了我们的设计电路的能力和动手能力。从中我学到了很多东西。设计上的电路在实际中运用可能不是像仿真那样理想,由于购买元件的误差及元件的大小在实际中比没有很好的匹配,所以按照设计的电路焊出来的实物在调试过程中遇到了一些问题,但我都一步一步地解决了。

由于是第一次课程设计,所以花的时间很多。通过这次课程设计,我学会了如何使用仿真软件Protel和protues,进一步巩固了电路的焊接能力。

最重要的是通过这次课程设计我深深体会到能把所学的知识运用到实践中才是真正掌握。这次的课程设计时间有些仓促,我们刚学完模电的相关知识就运用到电路中,刚开始觉得很难,相关的知识掌握得不到位,但随着设计的深入,发现所学的知识在我设计的电路中得到了很好的运用,在课程设计的同时,巩固和掌握了现学的知识,这才是设计的目的。

特别是在电路调试成功的那一刻,出现了我所预料的现象,着实让我高兴了一番,自己所设计的东西没有白费,并且从中获得了知识,是一件很开心的事。

这只是一次简单的课程设计,只是一个开始,设计的东西在实际中的运用还尚欠缺,但从中我学到了遇到困难要解决,不能浮躁,要静心,耐心,细心的做事,坚持下去,总能看到成功的曙光的。

六、对本次课程设计的意见及建议 这次课程设计就更加难忘,可以让同学们更加充分的发挥自己想象力和创造力,同时也可以让我们从中得到的知识面更加广阔,但是我们还是积极的查阅资料,努力用自己所学到的知识来完成设计。并且从中体会到了一种成就感和使命感。 建议:课程时间安排还应该改进。下午上课应该迟一些,保证同学们的良好睡眠和精神状态。

七、参考资料

1.任囯燕主编 模拟电子技术实验指导书 重庆科技学院 2008年11月

2.康华光主编 电子技术基础-模拟部分(第五版) 高等教育出版社 2006年12月 3.王振红 电子技术综合实验及综合设计 机械工业出版社 2007年3月 4.赵淑范 电子技术实验与课程设计 清华大学出版社 2006年8月 5。张宝会 电力系统继电保护 中国电力出版社 2005年5月 八 附录

附录 一 原理图

名称 标号 大小 电容 C1 15P 电容 C2 15p 电容 C3 1u 电容 C4 1u Led D1 电阻 R1 1k 电阻 R2 1k 电阻 R3 20k 电阻 R4 1k 晶振 X1 11.0592M 51单片机 U1 温度传感器(ds18b20) U2 光电耦合器 U3 按键 Button 数码管(74eg-mp4-ca) 电阻丝 R 20 附录二 元件表

附录三 程序代码

#include sbit P11=P1^1; sbit P12=P1^2; sbit P13=P1^3; sbit P14=P1^4;/////数码管1断码控制/////////////// sbit P15=P1^5; sbit P16=P1^6; sbit P17=P1^7; sbit P32=P3^2;/////数码管2段码控制//////////////// sbit up=P3^7; sbit down=P3^6; ////按键操作端口////////////////// sbit P35=P3^5; ////////控制晶闸管端口///////// sbit DQ =P3^3; ///////温度传感器端口/////////

#define THCO 0xee #define THLO 0x00 unsigned char code duan[]={ 0xc0,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); //精确延时 大于 480us DQ = 1; //拉高总线

delay(14); x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败 delay(20); } //////////////////////////////////////////// ReadOneChar(void) { unsigned char i=0; unsigned char dat = 0; for (i=8;i>0;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; i>0; i--) { DQ = 0; DQ = dat&0x01; delay(5); DQ = 1; dat>>=1; } //delay(4); } /////////////////////////////////////////////// //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(); t=b; t

前两个就是温度 xianshi() { /////////////////当前温度显示///////////////////////////// P11=1; P0=duan[wendu_1/1000]; for(k=0;k

xianshi(); ///显示系统数据//////////////////// /////////////////操作函数//////////////////////////////////// if(down==0) {hao--;} if(up==0){hao++;} ////////////////////////////////////////////////////////////// /////hao为理想温度

/////wendu_1为实际环境温度

///////////////////////////////////////////////////////////// ////P35为高时 led灯工作///////////////////////////////////// P35=0; pwm=hao-wendu_1; if(pwm>0) {P35=1;} if(pwm protues仿真单片机温度控制

点击下载文档
相关范文推荐
点击下载本文文档