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

下载本文档

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

文档简介

1、 智能仪器仪表综合实训题 目 基于单片机的温度控制系统设计 学 院 专 业 电子信息工程 班 级 (仪器仪表) 学生姓名 学 号 指导教师 完成时间:目录(1) (2)(3) (1) (2)(3)(4) 一、系统设计 (一) 系统总体设计方案设计框图如下所示:液晶显示及按键设置温度信号采集温度控制接口步进电机控制图1 系统总体设计框图总电路图如下:图2 系统总电路图简单功能说明:一个显示实时温度的小系统,可以自行设定高温报警和低温报警值,实现温度控制电机带动外围器件功能。本系统通过温度传感器ds18b20实现对温度数据的采集,数据处理后显示到液晶屏上,通过数据处理,温度值精确度为0.1。简单操

2、作方法:系统上电后液晶显示实时温度,通过按键可以设定高低温限定值:a.按下k1,显示系统的高低温限定值;b.再按k1,进入设定状态,液晶屏光标闪动提示设定,此时设定高温限值还是低温限值可以在 k1键转换;c.进入设定状态后,k2键用于值加1,k3键用于值减1;d设定完后,按键k4确认后退出,返回显示实时温度! (二) 温度信号采集电路选择和数据处理方案:采用温度传感器ds18b20美国dallas公司的产品可编程单总线数字式温度传感器ds18b20可实现室内温度信号的采集,有很多优点:如直接输出数字信号,故省去了后继的信号放大及模数转换部分,外围电路简单,成本低;单总线接口,只有一根信号线作为

3、单总线与mcu连接,且每一只都有自己唯一的64位系列号存储在其内部的rom存储器中,故在一根信号线上可以挂接多个ds18820,便于多点测量且易于扩展.ds18b20的测温范围较大,集成度较高,故选用此方案。ds18b20内部1,2位寄存器存放实时温度值,本系统对以上两寄存器数据处理后精度为0.1;ds18b20第3,4位寄存器分别存放高温限值和低温限值,并且ds18b20内部还有eeprom,因此通过第3,4寄存器与eeprom的数据交换就能实现对设定后的值进行贮存。 (三) 软件设计本实验中我选用keil编程平台.主程序流程图:初始化液晶显示启动ds18b20并初始化读取温度数据数据转换显

4、示温度显示温度上下限值keyscan?kkk1k设置温度上下限值温度上下限值存入寄存器温度比较启动电机温度是否大于高温限值或小于低温限值yesnoyeskno图3 主程序流程图二、单元电路设计 (一) 温度信号采集电路图4 温度信号采集电路(二) 步进电机电路图5 步进电机电路 (三) 液晶显示模块图6液晶显示模块(四) 晶振复位电路图7 晶振复位电路三、总结体会本次课程设计给我们提供了一个将自己所学的知识应用于实践的良机,通过了两个周的设计我学到了很多非常有价值的东西,懂得了如何将理论知识转化成实际程序的设计;掌握的单片机开发与设计的思路与方案确定;学会了更有效的查找自己所需的资料;同时也意

5、识到了团队协作的重要性;掌握了硬件与程序设计的一般步骤和方法。这对我们以后的学习和工作的是非常有帮助的。设计是我们将来必需的技能,这次课程设计刚好给我们提供了一个应用自己所学知识的机会,从到图书馆和网上查找资料到对硬件与程序模块的设计对各模块的调试再到最后整体设计调试,都对我所学的知识进行了检验,增强了自信心。 通过本次课程设计,我进一步温习和巩固了课本的理论知识,对单片机各接口与外部电路之间的连接关系有了更加深刻的理解。同时掌握了proteus和keil软件的基本应用。同时,在课程设计过程中,将理论知识应用于实际应用,增强了理论联系实际的能力。虽然设计时有时一个问题需要我们花费很长的时间,很

6、烦很累但当我们通过查找资料解决了之后心里很开心很有成就感。同时也使我明白了要将理论运用于实践还是一种非常重要的能力,要想牢固的掌握所学的知识我们必须将理论与实践结合起来,用理论来指导实践,用实践来验证理论,增强对理论的理解。不断地充实自己的理论,提高自己的动手能力。最终完成了整个设计之后,使我更加坚信只要我们努力和采用正确的方法,没有什么事是我们解决不了的。 最后,我在这里衷心地感谢所有教给我知识和在课程设计中给予我帮助的老师们和同学们,是他们给我们的知识才使我们得以顺利完成此次课程设计。四、参考文献 单片微型计算机原理与应用 , 张毅坤、陈善久、裘雪红 西安电子科技大学出版社 51单片机应用

7、从零开始 杨欣、王玉凤、李湘黔 清华大学出版社 51单片机应用开发范例大全 宋戈、黄鹤松、员玉良 人民邮电出版社 郭天祥 电子工业出版社附录:程序清单;-; 简单功能说明:一个显示实时温度的小系统,可以自行设; 定高温报警和低温报警值,实现温度控制电机带动外围器; 件功能。; ;-dqequp1.7;ds18b20控制口rs equ p2.4 rw equ p2.5 e equ p2.6 lcd equ p0 flagequ30h geweiequ29hshiequ28hxiaoshuequ27htemp_tlequ20h ;低温限值temp_thequ21h ;高温限值temphequ22h

8、 ;温度高字节templequ23h ;温度低字节tempequ24hk1equp3.0 k2equp3.1k3equp3.2k4equp3.3;=main:movtemp_th,#25movtemp_tl,#01acall init_lcd;初始化液晶acallwr_thl;写入高温限值和低温限值寄存器acallwr_promacallre_prom ;从eeprom中返回高温限值和低温限值acallreset ;初始化1820jbflag,loopacallerror;报错loop:acallread_t;1820读取温度acalldisp_temp;液晶显示实时温度acallkeysca

9、n;键盘设定高温限值和低温限值acalltemp_compjmploop;=启动1820读取温度=read_t:setbdqacallresetjbflag,read_t1retread_t1:mova,#0cchacallwr_1820mova,#44hacallwr_1820acallresetmova,#0cchacallwr_1820mova,#0behacallwr_1820acallread_1820ret;=把高温和低温限值写入寄存器=wr_thl:jbflag,wr_hlretwr_hl:acallresetmova,#0cchacallwr_1820mova,#4ehacal

10、lwr_1820mova,temp_thacallwr_1820mova,temp_tlacallwr_1820ret;=把高温和低温限值写入eeprom=wr_prom:acallresetmova,#0cchacallwr_1820mova,#48hacallwr_1820ret;=把eeprom的值返回到高温和低温限值寄存器=re_prom:acallresetmova,#0cchacallwr_1820mova,#0b8hacallwr_1820ret;=初始化1820=reset:setb dqnopclrdqmovr5,#250 djnzr5,$setbdq nopmovr5,#2

11、5hreset1:jnbdq,flag1djnzr5,reset1jmpndqflag1:setbflagmovr5,#100djnzr5,$setbdqmovr5,#100djnzr5,$jmpretundq:clrflagacallerrorretu:setbdqret;=1820写字节=wr_1820:movr6,#8clrcwr1:clrdqmovr5,#7djnzr5,$rrcamovdq,cmovr5,#25djnzr5,$setbdqnopnopdjnzr6,wr1setbdqret;=读取1820数据=read_1820:movr2,#4movr1,#templre1:movr

12、6,#8re2:setbdqnopclrdqclrcnopnopsetbdqmovr5,#9djnzr5,$movc,dqmovr5,#24djnzr5,$rrcadjnzr6,re2movr1,adecr1djnzr2,re1ret;=转换数据=turn:movxiaoshu,templ ;保存templ值,后面用于取低4位转换小数部分mova,templmovc,16 ;22h的位寻址rrcamovc,17rrcamovc,18rrcamovc,19rrcamovtemp,a mova,xiaoshuanla,#00001111bmovxiaoshu,a ret;=键盘扫描=keyscan

13、:jbk1,retun;按下k1,进入键盘扫描acalldelay20jnbk1,$acallclr_lcd;清屏acalldisp_thl;显示高温限值和低温限值acallset_hl;设定限值acallwr_thl;把高温限值和低温限值写入ram/./acallledacall wr_prom;限值复制到eeprom中retun:ret;-设定高低限值-set_hl:/jnbk4,exitjbk1,key4 acalldelay20jnbk1,$cpl20h.1;标志位,标志设定高温限值或低温限值jb20h.1,set_hjmpset_l;-调高温限值-set_h:acallth_shan

14、;光标闪,进入设定key2h:jnbk1,set_l ;高温限值与低温限值间设定转换jnbk4,exitjbk2,key3h;按下k2,值加1acalldelay20jnbk2,$ inctemp_thmova,temp_thcjnea,#99,a0movtemp_th,#00a0:acalldisp_thl key3h: jbk3,key2h ;按下k3,值减1acalldelay20jnbk3,$dec temp_thmov a,temp_thcjnea,#0,a1movtemp_th,#99a1:acalldisp_thljmpset_h ;-调低温限值-set_l:acalltl_sh

15、ankey2l:jnbk1,set_h;高温限值与低温限值间设定转换jnbk4,exitjbk2,key3l;按下k2,值加1acalldelay20jnbk2,$inctemp_tlmova,temp_tlcjnea,#99,a2movtemp_tl,#00a2:acalldisp_thl key3l:jbk3,key2l ;按下k3,值减1acalldelay20jnbk3,$dectemp_tlmova,temp_tlcjnea,#0,a3movtemp_tl,#99a3:acalldisp_thljmpset_l ;-key4:jnbk4,exit ;k4用于退出设定jmpset_hl

16、/jmpset_hlexit:acalldelay20jnbk4,$ mov lcd,#00001100b ;设置液晶光标不显示、不闪烁 acall wr_comm acallclr_lcdacalldisp_tempret;=温度比较=temp_comp:mova,temp_thsubba,tempacalldianjimova,tempsubba,temp_tlacalldianjiret;=/*more:movdptr,#more0movlcd,#0cehacallwr_commacalldisp0retmore0:dbh,0h*/;=启动电机=;电机接口是p1低4位,因为p1.7是温度

17、传感器的控制口;避免冲突,电机接口按位控制dianji:jcdian0retdian0:movr0,#4/acallmoredian1:setbp1.0clrp1.1clrp1.2clrp1.3 acalldelayclrp1.0setbp1.1acalldelayclrp1.1setbp1.2acalldelayclrp1.2setbp1.3acalldelay/rladjnzr0,dian1clrp1.0clrp1.1clrp1.2clrp1.3retdelay:movr5,#5dly1:movr6,#10dly2:movr7,#50djnzr7,$djnzr6,dly2djnzr5,dl

18、y1ret;=清屏=clr_lcd:movlcd,#80hacallwr_commmovr0,#16clr1:movlcd,# acallwr_datadjnzr0,clr1movlcd,#0c0hacallwr_commmovr0,#16clr2:movlcd,# acallwr_datadjnzr0,clr2ret;=报错=error:movlcd,#80hacallwr_commmovdptr,#erortabacalldisp0reterortab:dbinit error!,0h;=温度标志=disp_c: movlcd,a acall wr_comm movlcd,#0dfh ac

19、allwr_data movlcd,#c acallwr_data ret;=数码显示=shuma:movdptr,#shutabmovca,a+dptrmovlcd,aacallwr_dataretshutab:db30h,31h,32h,33h,34hdb35h,36h,37h,38h,39h ;=显示实时温度= disp_temp:acallturnmov lcd,#80h acall wr_comm mov dptr,#current acall disp0 movlcd,#0cah acall wr_comm movlcd,#2eh;小数点 acall wr_data mova,#0

20、cchacalldisp_c;温度标志 ;- mova,xiaoshu movdptr,#xiaomovc a,a+dptrmovxiaoshu,amova,tempmovb,#10divabmovshi,amovgewei,bmova,xiaoshumovlcd,#0cbhacallwr_commacallshumamova,shimovlcd,#0c8hacallwr_commacallshumamova,geweiacallshuma/movlcd,#0d0h ;把光标移到别处 /acallwr_comm retcurrent:dbtempreture now: ,0hxiao:db00

21、h,00h,01h,01h,02h,03h,03h,04hdb05h,05h,06h,06h,07h,08h,08h,09h ;=字符显示=disp0: mov r1,#0 next: mov a,r1 movc a,a+dptr jzrettmov lcd,a inc r1 acall wr_data jmpnext rett: ret ;=显示高温限值和低温限值=disp_thl:movdptr,#setthlmovlcd,#80hacallwr_commacalldisp0movdptr,#thlmovlcd,#0c1hacallwr_commacalldisp0 ;-f5_thl:/acallre_prommova,temp_thmovb,#10divabmovshi,a /shimovgewei,b/gemova,shimovlcd,#0c4hacallwr_commacallshumamova,geweiacallshumamova,#0c6hacalldisp_c;-mova,temp_tlmovb,#10divabmovshi,a /shimovg

温馨提示

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

评论

0/150

提交评论