下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机课程设计报告设计题目:水温控制系统级:自动化081号:200808425名:刘帅军指导教师:董唯光评语:成绩2011 年 7 月 8 日1问题分析及解决方案 11.1题目要求 11.2题目分析 11.3解决方案12. 单片机选型及硬件配置 22.1单片机及扩展模块选择 2单片机及输入输出模块选型 2电源模块的选择22.2 I/O地址分配22.3系统硬件原理图 3系统原理框图 3晶振及复位电路 3数码管驱动电路4温度显示模块 4温度控制系统整体仿真图 52.3.6 DS18B20温度传感器 53. 软件实现93.1控制流程图 93.2软件代码93.3程序调试153.4设计结果153.5结果
2、分析174. 结论和体会174.1结论174.2心得体会17参考书目181.问题分析及解决方案1.1题目要求器。要求设计一个水温控制系统,能正常控制和测量温度范围,控温通道输出为继电测温和控温范围:室温80C(实时控制);控温精度:正负C。1.2题目分析本系统为水温控制系统,采用单片机作为控制器控制继电器的导通和关断, 利用 温度传感器实时监测水的温度,通过数码管显示实际温度和设定的目标温度,然后利 用加热和冷却装置进行加减温度, 使水的温度维持在一定的范围之内。 通过调节目标 温度按钮,可以任意调节水的温度范围。1.3解决方案根据题目要求,采用5V电源给单片机供电。供电电源可以利用 220/
3、9V变压器 先将220V的电压将为9V,然后利用7805稳压芯片,得到5V供电电源。在控制环 节,利用5551型三极管充当开关,通过单片机控制三极管的导通和关断,从而进一 步控制继电器的开关,更进一步控制加热、冷却装置的工作状态。在整个控制系统中,通过温度传感器(DS18B20),对被控对象进行温度和数字转 换,由温度传感器输出的温度信号经过I/O 口,由单片机读出数值,并在数码管上显 示,通过按键可以升高或者降低所需的温度。实际温度再经过和目标温度进行比较, 若所测温度大于目标温度,则输出低的门限电压,即D1灯不亮,不执行加热环节,同时指示灯D4亮,开始执行制冷环节;反之,若所测电压小于目标
4、电压,则输出高 的门限电压,即D1灯亮,执行加热环节这样就可以把温度控制在一定的范围之内。2.单片机选型及硬件配置2.1单片机及扩展模块选择单片机及输入输出模块选型在该题目当中,单片机选用 STC89C52,温度检测模块采用 DS18B20作为温度 传感器对水温进行实时检测,温度显示模块选用两个四位一体共阳极数码管, 分别显 示实际温度和目标温度。电源模块的选择由于单片机输出的是TTL电平信号,因此对单片机单独提供5V电源。该电源可 以由220V交流电源经整流、降压和稳压后获得。对继电器线圈端子提供经 5V放大 后的8V电源供电,触头端子直接接入 220V电源。2.2 I/O地址分配将单片机P
5、0 口作为实际水温的段选端,P2 口作为目标水温的段选端。P1作为 位选端,其中作为实际水温位选,P1.4 P1.7作为目标水温位选。P3 口 主要作为信号指示以及读取温度传感器的温度数据使用。单片机引脚分配图如图2-1所示:11和2 33314556>16 7m 8FAIML1XTAL2PO1MD1 P02/AD2 PC 旳 D3RSTP0.4'AD4 POS/ADS P0J&TAD6 P07/AD7P2.O/A8P2 1jA9PSEN ALEP2.2/A10rx. JJAl 1 P2.4/A12EArjf.a/Al JP27/A1SP1.0P3.0ff?XDrl .1
6、rd.1 JIXDPI 2P3.2ffljrro_PI .3P3.3JIN 11Pi .4PI .r35/T1Fl .QPI .7P3.7ru)U19 *片丹戶Ei图2-1单片机引脚图35 PP0101112131422 P2J23P2224咧25 Pd26 PH27 P2E28 卩 2?P2.3系统硬件原理图系统原理框图该系统的原理框图如图2-2所示:图2-2系统原理框图晶振及复位电路该系统中单片机外部晶振选为 11.0592MHZ,通过两个电容和XTAL1和XTAL2 引脚连接构成单片机的外部时钟电路如图 2-3所示。C320pF <TEXT>C1X1CRYSTAL uTEXT
7、n20pF图2-3单片机外部时钟电路复位操作有上电自动复位和按键手动复位两种方式。该系统复位电路由RC微分电路产生的脉冲来实现,电路如图2-4所示,按下开关即可产生复位信号,通过导线 引入单片机RST引脚即可发生复位。VCCC222UF邑1匚程R51k <TEXO卒D315ETH06 <TEXT>图2-4单片机复位电路数码管驱动电路该系统选择四位一体的共阳极数码管作为温度显示元件。 通过测试,我们发现单 片机上电后输出电流不能达到要求, 导致数码管显示亮度不够,因此在本电路中对位 选端加了三极管驱动电路。如图 2-5所示:图2-5数码管驱动电路温度显示模块由P0 口控制实际水
8、温的段选,P2 口控制目标水温的段选。P1 口作为位选端, 其中P1.0- P1.3作为实际水温位选,P1.4 P1.7作为目标水温位选。显示模块如图 2-6所示。实际水温目标温度图2-6温度显示模块温度控制系统整体仿真图同时还利用Protues对该系统进行了仿真,仿真图如图2-7所示:图2-7 Protues仿真图实际水温冃标温度R3L RL1 亠L1| fa 尢一用2.3.6 DS18B20温度传感器1. DS18B20的主要特性1、 适应电压范围更宽,电压范围为3.05.5V,在寄生电源方式下可由数据线供 电2、独特的单线接口方式,DS18B20在和微处理器连接时仅需要一条口线即可实 现
9、微处理器和DS18B20的双向通讯3、DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形 如一只三极管的集成电路内4、温范围55C+ 125C,在-10+85C时精度为±)5C5、 可编程的分辨率为912位,对应的可分辨温度分别为 0.5C、0.25C、0.125C和0.0625C,可实现高精度测温&在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在 750ms内把温度值转换为数字,速度更快7、测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传 送CRC校验码,具有极强的抗干扰纠错能力2.指
10、令约定代码操作说明DS18B20的初始化(1) 先将数据线置高电平“ 1”(2) 延时(该时间要求的不是很严格,但是尽可能的短一点)(3) 数据线拉到低电平“0”(4) 延时750微秒(该时间的时间范围可以从480到960微秒)。(5) 数据线拉到高电平“ 1”(6) 延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平 “0”据该状态可以来确定它的存在,但是应注意不能 无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。(7) 若CPU读到了数据线上的低电平“0后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要 480微
11、秒。(8)将数据线再次拉高到高电平“1后结束/*DS18B20初始化*/In it_DS18B20(void) un sig ned char x=0;DQ = 1;delay(8);DQ = 0;delay(80);DQ = 1; delay(14);x=DQ;delay(20);DS18B20的写操作/DQ复位/稍做延时/单片机将DQ拉低精确延时大于 480us/拉高总线稍做延时后如果 x=0则初始化成功(1) 数据线先置低电平 “0。(2) 延时确定的时间为 15微秒(3) 按从低位到高位的顺序发送字节(一次只发送一位)。(4) 延时时间为45微秒。(5) 将数据线拉到高电平。(6) 重
12、复上(1 )到(6)的操作直到所有的字节全部发送完为止(7) 最后将数据线拉咼。/*向DS18B20写命令*/Write On eChar( un sig ned char dat)un sig ned char i=0;for (i=8; i>0; i-)DQ = 0;DQ = dat&0x01;delay(5);DQ = 1;dat>>=1;/dela y;DS18B20的读操作(1) 将数据线拉高 “ 1”(2) 延时2微秒。(3) 将数据线拉低 “0”(4) 延时15微秒。(5) 将数据线拉高 “ 1。(6) 延时15微秒。(7) 读数据线的状态得到1个状态位
13、,并进行数据处理。(8) 延时30微秒。DS18B20温度值格式表,如表2-1所示。这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二 进制中的前面5位是符号位,如果测得的温度大于 0,这5位为0,只要将测到的数 值乘于0.0625即可得到实际温度;如果温度小于 0,这5位为1,测到的数值需要取 反加1再乘于0.0625即可得到实际 温度。例如+125T的数字输出为 07D0H, +25.0625C的数字输出为0191H, -25.0625C的数字输出为 FE6FH,-55C的数字输出 为 FC90H 。表2-1 DS18B20温度值格式表Hl 7bit 65bj(4
14、bit 5bi t 2bit LS Byte丄|壬1| tI cT1V22寸已btt 1$bil LIhit13画12bit IIbA 10bit 9biLSMS Byw| S1 1|負§S2*/DS18B20程序读取温度ReadTemperature(void)un sig ned char a=0;un sig ned char b=0;un sig ned int t=0;In it_DS18B20();Write On eChar(0xCC);/跳过读序号列号的操作Write On eChar(0x44);/ 启动温度转换In it_DS18B20();Write On eC
15、har(0xCC);/跳过读序号列号的操作Write On eChar(0xBE);读取温度寄存器等(共可读9个寄存器)前两个就是温度a=ReadO neChar();/ 低八位b=ReadO neChar();/ 高八位t=b;t<<=8;t=t|a;/合并高八位和低八位return(t);此函数得到的值为温度值,最小分度为0.0625,其中低四位为小数部分,(即:把一度分为16等分)。中间七位为其整数部分,高五位为符号位,若高五位为0,则说明得到的温度为正数。若高五位为1,则说明得到的温度为负数3.软件实现3.1控制流程图程序控制流程图如图3-1所示:开始图3-1程序流程图单片
16、机I/O 口初始化3.2软件代码在整码如下:DS18B20初始化数码管显示初始化C语言编程,所用的编程环境是Keil 2。该程序源代#in clude<reg51.h>#def in e卖取Un的实际温gped int#defi ne uchar| un sig ned char sbit PNsbit数码管1断码控制P13=P1Asbit控制继电器导A4,进行加热A0;sbitP实际温度是否低于目标温度?sbitsbitPitsbitsbit启动报警装置P3同:时控制继电器关/蜂鸣器 sbit P31断进街降温/继电器控制位NP15=P1A$;1A6;YP34=P3A4;设定的最
17、大温度?控制继电器关断,进行降温NY启动报警装置,同时控制继电器导 通进行加热2段电源指示灯实际温度是否低于设定的最小温度?sbitsbitsbitsbitup=P3A7;ldown=p3A6;结束P35=P35;DQ =P3A3;/* *按键操作端口-加热指示灯端口温度传感器端口温度小数部分表* */uchar code ditab16=0x00,0x01,0x01,0x02,结束0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;/* *共阳极数码管显示表*/un sig ned char code dua n1=0xc0
18、,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0XD8, 0x80,0x90,0x88,;/* 共阳极数码管(带小数点)显示表*/un sig ned char code dua n2=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78, 0x00,0x10,;void delay_1( uint z);intb=0,k,we ndu_1,mubiao=200;char pwm=0,r=0,q=0;uint t=0;/*延时函数*/void delay (un sig ned int i)while(i-);/* *ds18B20初始化*/In i
19、t_DS18B20(void)un sig ned char x=0;DQ = 1;DQ 复位delay(8);/稍做延时DQ = 0;单片机将DQ拉低delay(80);精确延时大于480usDQ = 1;/拉高总线delay(14);x=DQ;稍做延时后如果x=0则初始化成功x=1则初始化失败delay(20);/* 从 DS18B20 读入数据 */ReadO neChar(void) uchar i=0;uchar dat = 0;for(i=8;i>0;i-)DQ = 0;/给脉冲信号dat>>=1;DQ = 1;/给脉冲信号 if(DQ) dat|=0x80; d
20、elay(4); return(dat);/*向 DS18B20 写命令 */Write On eChar( un sig ned char dat)uchar i=0;for(i=8;i>0;i-)DQ = 0;DQ = dat&0x01;delay(5);DQ = 1;dat>>=1;*/*DS18B20 程序读取温度 *ReadTemperature(void) uchar a=0;uchar b=0;uint t=0;In it_DS18B20();/跳过读序号列号的操作/启动温度转换WriteO neChar(0xCC);WriteO neChar(0x44
21、);In it_DS18B20();/跳过读序号列号的操作/读取温度寄存器等,前两个就是温度/低八位/高八位合并高八位和低八位WriteO neChar(0xCC);WriteO neChar(0xBE); a=Read On eChar(); b=Read On eChar();t=b;t<<=8;t=t|a; return(t);/*当前温度显示* */xia nshi()int x;int zhe nshu;int xiaoshu;int num=5;wen du_1=ReadTemperature();x=we ndu_1;zhe nshu=x/16;/ 整数部分xiaos
22、hu=x&0x0f;小数部分wen du_1=zhe nshu*10+ditabxiaoshu;P10=1;P0=dua n1zhe nshu/10;/ 百位delay_1( nu m);P10=0;P11=1;P0=dua n2zhe nshu%10;/ 十位delay_1( nu m);P11=0;P12=1;P0=dua n1ditabxiaoshu;/ 个位delay_1( nu m);P12=0;P13=1;P0=0xc6;/显示 Cdelay_1( nu m);P13=0;/*目标温度显示*/P14=1;P2=duan1mubiao/100; 百位 delay_1( nu
23、m);P14=0;P15=1;P2=dua n2mubiao/10%10;/ 十位delay_1( nu m);P15=0;P16=1;P2=dua n1mubiao%10; delay_1( nu m);P16=0;P17=1;P2=0xc6; delay_1( nu m);P17=0;mai n(void)P10=0;P11=0;P12=0;P13=0;P14=0;P15=0;P16=0;P17=0;/关闭位选段P35=0;/加热指示灯P32=0;单片机上电指示灯P30=0;/蜂鸣器驱动口P31=0;/P31低电平时驱动继电器P34=0;/*进入循环*/while(1)xian shi()
24、;/显示系统数据if(dow n=0)mubiao-;delay_1(20);if(up=0)mubiao+;delay_1(20);if(mubiao>400|mubiao<200)P30=1;/目标设置错误时报警elseP30=0;/目标设置正常,则蜂鸣器不响/*/P35=0;pwm=mubiao-we ndu_1;if(pwm>0)P35=1;P31=1;P34=0;/实际温度高于目标温度,红色指示灯发光,加热器加热elseP35=0;P31=0;P34=1;/实际温度低于目标温度,指示灯不发光,不加热void delay_1( uint z)uint x,y; for
25、(x=z;x>0;x_)for(y=110;y>0;y-);3.3程序调试在整个系统调试过程中,由于时间仓促没有来得及做实物。最终通过Protues仿真 软件进行仿真,得到的结果和预想的结果一致。调试步骤如下:1. 先在Protues仿真软件中搭建硬件电路;2. 根据设计思想和硬件电路在Keil 2中编写程序代码,调试通过并生成.hex文 件;3. 双击Protues仿真电路中的单片机,将.hex文件下载到单片机中,然后运行观 察结果。3.4设计结果在该电路中,D1代表加热指示灯,D2代表电源指示灯,D4代表冷却指示灯, D5代表报警指示灯,利用灯泡L1代表加热器,电动机代表冷却装
26、置。整个设计结果 分为三个部分,分别是实际温度高于设定的目标温度、实际温度低于目标温度、目标温度高于或低于设定的温度范围。1. 当水的实际温度低于目标温度时,指示灯D1亮,加热器开始加热,同时将单 片机P3.4 口置0,使三极管断开,关闭D4及冷却装置。仿真结果如图3-2所示。实际水温« J.-Wait*3!的" *2.if A*!*町 BFKX" Fj.vrwp rjjfinp F3JIITT>KTAL1KTAL3AfifTF31H 51«TE<1>L1U 口C-ICSMLT 盟益:誥 EECECECEfl s- J B- -5 fl
27、 JL -图3-2实际温度高于目标温度时的工作状态2.当水的实际温度高于目标温度时,指示灯D1不亮,加热器停止加热,同时将 单片机P3.4 口置1,使三极管导通,点亮D4指示灯,电动机开始旋转,对水进行降 温处理。仿真结果如图3-3所示:实际水温RigR19R5rurOCi-111zinL1KZV Ton>3HWIzSm LrarrrairTfcCFu 5*.4.TE»J-e uTM*J RJ.3k口 Rrdc+,Ji”Jri rS医i吐,涔TfCl r IHazbr _C2=_时5F3BM卜 KTa.LTuaME#a.i/Abi Q2i»ZXFXL3 J.4M AS
28、T*n.as.ia- fDJMbTPZJVaS FZ.W- zjywiuFOCfHH.K-IP2A*.i3£*M.I riP2J!#.iC- 口JlfRXD IQF I IF3 M-KliFMlfE*I3oiflrn tpi r/wtr j a r 罕J-fc F2+Mb fA -r? F3s JM mrdp ih Z冃标温度冃标温度J图3-3实际温度低于目标温度时的工作状态3.当设定的目标温度超过或者低于设定的温度范围时(2040C),启动报警装置,同时报警指示灯D5发光,并且启动制冷装置。仿真结果如图3-4所示:实际水温K13D£1 raiwi »"DK目标温度rn 珂 d+ raiMKOfc KUW FUT4j*D7FfOrHXV2 g rzsAm ra-RMii m>aMt2 rzjfA 13 P3-A-A1-L F3.TM1f"EinViFJ.1rt2«jfcJjrfTTO ra+rrn raariPS ACTE PJ.lflTUQT IDS3R3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 应届毕业生实习协议书样本
- 院校与企业合作培养就业协议
- 平房工厂出租合同范本
- 2024年乡里租房改造合同范本
- 定制商品厨具合同范本
- 2024年采购合同办公用品采购协议
- 影视剧摄制贷款合同参考文本
- 物业承包合同范本(基础版)
- 甘肃省靖远县2023-2024学年高三4月质量检查数学试题试卷
- 落后人员培训课程设计
- 汽车场地越野赛突发事件应急预案
- 神奇的世界文档
- 头痛的鉴别诊断--ppt课件完整版
- 7上unit2reading
- 王维的生平经历
- 某粮食仓库屋面预应力拱板制作分项施工方案(附图)
- 监控系统施工组织设计
- 命题作文“懂你”写作指导与佳作示例
- 浅谈高支模安全隐患及控制措施
- 精选-中药病例分析.doc
- 宿舍心理信息员的培训
评论
0/150
提交评论