基于单片机的温度控制系统设计报告_第1页
基于单片机的温度控制系统设计报告_第2页
基于单片机的温度控制系统设计报告_第3页
基于单片机的温度控制系统设计报告_第4页
基于单片机的温度控制系统设计报告_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、,.智能仪器仪表综合实训题目基于单片机的温度控制系统设计学院专业电子信息工程班级(仪器仪表 )学生姓名学号指导教师完成时间 :;.,.目录一、系统设计 -第 1页(一)系统总体设计方案 -第 1页(二)温度信号采集电路选择和数据处理-第 3页(三)软件设计 -第 3页二、单元电路设计 -第 5页(一)温度信号采集电路 -第 5页(二)步进电机电路 -第 5页(三)液晶显示模块 -第 6页(四)晶振复位电路 -第 7页三、总结体会 -第 7页四、参考文献 -第 8页附录:程序清单 -第 8页;.,.一、系统设计(一 ) 系统总体设计方案设计框图如下所示:温液温步度晶度进信显控电号示制机采及接控集

2、按口制键图 1系统总体设计框图总电路图如下:;.,.图 2系统总电路图简单功能说明:一个显示实时温度的小系统,可以自行设定高温报警和低温报警值,实现温度控制电机带动外围器件功能。本系统通过温度传感器 ds18b20 实现对温度数据的采集,数据处理后显示到液晶屏上,通过数据处理,温度值精确度为 0.1。简单操作方法:系统上电后液晶显示实时温度,通过按键可以设定高低温限定值:a. 按下 k1 ,显示系统的高低温限定值;b.再按 k1 ,进入设定状态,液晶屏光标闪动提示设定,此时设定高温限值还是低温限值可以在 k1 键转换;c.进入设定状态后, k2 键用于值加 1, k3 键用于值减 1;d设定完

3、后,按键 k4 确认后退出,返回显示实时温度!;.,.(二 ) 温度信号采集电路选择和数据处理方案:采用温度传感器ds18b20美国 dallas公司的产品可编程单总线数字式温度传感器ds18b20可实现室内温度信号的采集,有很多优点:如直接输出数字信号,故省去了后继的信号放大及模数转换部分,外围电路简单,成本低; 单总线接口,只有一根信号线作为单总线与mcu连接,且每一只都有自己唯一的64 位系列号存储在其内部的rom存储器中,故在一根信号线上可以挂接多个ds18820,便于多点测量且易于扩展.ds18b20的测温范围较大,集成度较高,故选用此方案。ds18b20内部 1,2 位寄存器存放实

4、时温度值,本系统对以上两寄存器数据处理后精度为 0.1 ; ds18b20第 3, 4 位寄存器分别存放高温限值和低温限值,并且ds18b20内部还有eeprom,因此通过第3, 4 寄存器与 eeprom的数据交换就能实现对设定后的值进行贮存。(三 ) 软件设计本实验中我选用keil编程平台 .主程序流程图:;.,.初始化液晶显示启动 ds18b20 并初始化读取温度数据数据转换显示温度温度比较启动电机yes温度是否大于高温限值或小于低温限值nonokeyscan?yes显示温度上下限设置温度上下限值温度上下限值存入寄存器图 3 主程序流程图;.,.二、单元电路设计( 一 )温度信号采集电路

5、图 4 温度信号采集电路(二 ) 步进电机电路图 5 步进电机电路;.,.(三 ) 液晶显示模块图 6 液晶显示模块;.,.(四 ) 晶振复位电路图 7 晶振复位电路三、总结体会本次课程设计给我们提供了一个将自己所学的知识应用于实践的良机,通过了两个周的设计我学到了很多非常有价值的东西,懂得了如何将理论知识转化成实际程序的设计;掌握的单片机开发与设计的思路与方案确定;学会了更有效的查找自己所需的资料;同时也意识到了团队协作的重要性;掌握了硬件与程序设计的一般步骤和方法。这对我们以后的学习和工作的是非常有帮助的。设计是我们将来必需的技能,这次课程设计刚好给我们提供了一个应用自己所学知识的机会,从

6、到图书馆和网上查找资料到对硬件与程序模块的设计对各模块的调试再到最后整体设计调试,都对我所学的知识进行了检验,增强了自信心。通过本次课程设计,我进一步温习和巩固了课本的理论知识,对单片机各接口与外部电路之间的连接关系有了更加深刻的理解。同时掌握了proteus 和 keil软件的基本应用。;.,.同时, 在课程设计过程中,将理论知识应用于实际应用,增强了理论联系实际的能力。虽然设计时有时一个问题需要我们花费很长的时间,很烦很累但当我们通过查找资料解决了之后心里很开心很有成就感。同时也使我明白了要将理论运用于实践还是一种非常重要的能力,要想牢固的掌握所学的知识我们必须将理论与实践结合起来,用理论

7、来指导实践,用实践来验证理论, 增强对理论的理解。不断地充实自己的理论,提高自己的动手能力。最终完成了整个设计之后, 使我更加坚信只要我们努力和采用正确的方法,没有什么事是我们解决不了的。最后,我在这里衷心地感谢所有教给我知识和在课程设计中给予我帮助的老师们和同学们,是他们给我们的知识才使我们得以顺利完成此次课程设计。四、参考文献单片微型计算机原理与应用, 张毅坤、 陈善久、裘雪红西安电子科技大学出版社 51单片机应用从零开始杨欣、王玉凤、李湘黔清华大学出版社 51单片机应用开发范例大全宋戈、黄鹤松、员玉良人民邮电出版社郭天祥 电子工业出版社附录 :程序清单;-; 简单功能说明:一个显示实时温

8、度的小系统,可以自行设; 定高温报警和低温报警值,实现温度控制电机带动外围器; 件功能。;-dqequ p1.7;ds18b20 控制口rsequp2.4rwequp2.5eequp2.6lcdequp0flagequ 30hgeweiequ 29hshi equ 28hxiaoshu equ 27htemp_tl equ 20h ; 低温限值;.,.temp_th equ 21h ;高温限值temphequ22h; 温度高字节templequ23h; 温度低字节tempequ24hk1equ p3.0k2equ p3.1k3equ p3.2k4equ p3.3;=main:mov temp_

9、th,#25mov temp_tl,#01acallinit_lcd; 初始化液晶acallwr_thl; 写入高温限值和低温限值寄存器acallwr_promacallre_prom; 从 eeprom中返回高温限值和低温限值acallreset; 初始化 1820jbflag,loopacallerror; 报错loop:acallread_t;1820 读取温度acalldisp_temp; 液晶显示实时温度acallkeyscan; 键盘设定高温限值和低温限值acalltemp_compjmp loop;=启动 1820 读取温度 =read_t: setbdqacallresetjb

10、flag,read_t1retread_t1:mov a,#0cchacallwr_1820mov a,#44hacallwr_1820acallreset;.,.mov a,#0cchacallwr_1820mov a,#0behacallwr_1820acallread_1820ret;=把高温和低温限值写入寄存器=wr_thl: jbflag,wr_hlretwr_hl: acallresetmov a,#0cchacallwr_1820mov a,#4ehacallwr_1820mov a,temp_thacallwr_1820mov a,temp_tlacallwr_1820ret;

11、=把高温和低温限值写入eeprom=wr_prom:acall resetmov a,#0cchacallwr_1820mov a,#48hacallwr_1820ret;=把 eeprom的值返回到高温和低温限值寄存器=re_prom:acallresetmov a,#0cchacallwr_1820mov a,#0b8hacallwr_1820;.,.ret;=初始化 1820=reset:setbdqnopclr dqmov r5,#250djnzr5,$setbdqnopmov r5,#25hreset1: jnb dq,flag1djnzr5,reset1jmp ndqflag1:s

12、etbflagmov r5,#100djnzr5,$setbdqmov r5,#100djnzr5,$jmp retundq:clr flagacallerrorretu:setbdqret;=1820 写字节 =wr_1820:mov r6,#8clr cwr1:clr dq;.,.mov r5,#7djnzr5,$rrc amov dq,cmov r5,#25djnzr5,$setbdqnopnopdjnzr6,wr1setbdqret;=读取 1820 数据 =read_1820:mov r2,#4mov r1,#templre1:mov r6,#8re2:setbdqnopclr dq

13、clr cnopnopsetbdqmov r5,#9djnzr5,$mov c,dqmov r5,#24djnzr5,$rrc adjnzr6,re2mov r1,adec r1;.,.djnzr2,re1ret;=转换数据 =turn:mov xiaoshu,templ; 保存 templ值,后面用于取低4 位转换小数部分mov a,templmov c,16;22h 的位寻址rrc amov c,17rrc amov c,18rrc amov c,19rrc amov temp,amov a,xiaoshuanl a,#00001111bmov xiaoshu,aret;=键盘扫描 =ke

14、yscan:jbk1,retun; 按下 k1, 进入键盘扫描acalldelay20jnb k1,$acallclr_lcd; 清屏acalldisp_thl; 显示高温限值和低温限值acallset_hl; 设定限值acallwr_thl; 把高温限值和低温限值写入ram/./acall ledacall wr_prom; 限值复制到 eeprom中retun: ret;-设定高低限值-set_hl: /jnbk4,exitjbk1,key4;.,.acalldelay20jnb k1,$cpl 20h.1; 标志位,标志设定高温限值或低温限值jb20h.1,set_hjmp set_l;

15、-调高温限值 -set_h:acallth_shan; 光标闪,进入设定key2h:jnb k1,set_l; 高温限值与低温限值间设定转换jnb k4,exitjbk2,key3h; 按下 k2,值加 1acalldelay20jnb k2,$inc temp_thmov a,temp_thcjnea,#99,a0mov temp_th,#00a0: acalldisp_thlkey3h:jbk3,key2h; 按下 k3,值减 1acalldelay20jnb k3,$dectemp_thmova,temp_thcjnea,#0,a1mov temp_th,#99a1: acalldisp

16、_thljmp set_h;-调低温限值 -set_l:acalltl_shankey2l:jnb k1,set_h; 高温限值与低温限值间设定转换jnb k4,exitjbk2,key3l; 按下 k2,值加 1;.,.acalldelay20jnb k2,$inc temp_tlmov a,temp_tlcjnea,#99,a2mov temp_tl,#00a2: acalldisp_thlkey3l:jbk3,key2l; 按下 k3,值减 1acalldelay20jnb k3,$dec temp_tlmov a,temp_tlcjnea,#0,a3mov temp_tl,#99a3:

17、 acalldisp_thljmp set_l;-key4:jnb k4,exit;k4用于退出设定jmp set_hl/jmpset_hlexit:acalldelay20jnb k4,$movlcd,#00001100b;设置液晶光标不显示、不闪烁acallwr_commacallclr_lcdacalldisp_tempret;=温度比较 =temp_comp:mov a,temp_thsubba,tempacalldianjimov a,temp;.,.subba,temp_tlacalldianjiret;=/*more: mov dptr,#more0mov lcd,#0cehac

18、allwr_commacalldisp0retmore0: dbh,0h*/;=启动电机 =; 电机接口是p1 低 4 位,因为p1.7 是温度传感器的控制口; 避免冲突,电机接口按位控制dianji: jcdian0retdian0:mov r0,#4/acall moredian1:setbp1.0clr p1.1clr p1.2clr p1.3acalldelayclr p1.0setbp1.1acalldelayclr p1.1setbp1.2acalldelayclr p1.2setbp1.3acalldelay/rladjnzr0,dian1clr p1.0clr p1.1;.,.

19、clr p1.2clr p1.3retdelay:mov r5,#5dly1:mov r6,#10dly2:mov r7,#50djnzr7,$djnzr6,dly2djnzr5,dly1ret;=清屏 =clr_lcd:mov lcd,#80hacallwr_commmov r0,#16clr1:mov lcd,# acallwr_datadjnzr0,clr1mov lcd,#0c0hacallwr_commmov r0,#16clr2:mov lcd,# acallwr_datadjnzr0,clr2ret;=报错 =error: mov lcd,#80hacallwr_commmov

20、dptr,#erortabacalldisp0reterortab:dbinit error!,0h;=温度标志 =;.,.disp_c: mov lcd,aacall wr_commmov lcd,#0dfhacallwr_datamov lcd,#cacallwr_dataret;=数码显示 =shuma: mov dptr,#shutabmovca,a+dptrmov lcd,aacallwr_dataretshutab: db 30h,31h,32h,33h,34hdb35h,36h,37h,38h,39h;=显示实时温度 =disp_temp:acallturnmovlcd,#80h

21、acall wr_commmovdptr,#currentacall disp0mov lcd,#0cahacall wr_commmov lcd,#2eh; 小数点acallwr_datamov a,#0cchacalldisp_c; 温度标志;-mov a,xiaoshumov dptr,#xiao;.,.movca,a+dptrmov xiaoshu,amov a,tempmov b,#10div abmov shi,amov gewei,bmov a,xiaoshumov lcd,#0cbhacallwr_commacallshumamov a,shimov lcd,#0c8hacal

22、lwr_commacallshumamov a,geweiacallshuma/movlcd,#0d0h; 把光标移到别处/acall wr_commretcurrent:db tempreture now: ,0hxiao:db00h,00h,01h,01h,02h,03h,03h,04hdb05h,05h,06h,06h,07h,08h,08h,09h;=字符显示 =disp0: movr1,#0next:mova,r1movca,a+dptrjzrettmovlcd,aincr1acallwr_datajmp nextrett:ret;=显示高温限值和低温限值=;.,.disp_thl:mov dptr,#setthlmov lcd,#80hacallwr_commacalldisp0mov dptr,#thlmov lcd,#0c1hacallwr_commacalldisp0;-f5_thl:/acall re_prommov a,temp_thmov b,#10div abmov shi,a/shimov gewei,b /gemov a,shimov lcd,#0c4hacallwr_commacallshumamov a,geweiacallshumamov a,#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论