欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOCX文档下载  

    基于单片机的温度控制系统设计报告.docx

    • 资源ID:6308305       资源大小:268.36KB        全文页数:28页
    • 资源格式: DOCX        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于单片机的温度控制系统设计报告.docx

    ,.智能仪器仪表综合实训题目基于单片机的温度控制系统设计学院专业电子信息工程班级(仪器仪表 )学生姓名学号指导教师完成时间 :;.,.目录一、系统设计 -第 1页(一)系统总体设计方案 -第 1页(二)温度信号采集电路选择和数据处理-第 3页(三)软件设计 -第 3页二、单元电路设计 -第 5页(一)温度信号采集电路 -第 5页(二)步进电机电路 -第 5页(三)液晶显示模块 -第 6页(四)晶振复位电路 -第 7页三、总结体会 -第 7页四、参考文献 -第 8页附录:程序清单 -第 8页;.,.一、系统设计(一 ) 系统总体设计方案设计框图如下所示:温液温步度晶度进信显控电号示制机采及接控集按口制键图 1系统总体设计框图总电路图如下:;.,.图 2系统总电路图简单功能说明:一个显示实时温度的小系统,可以自行设定高温报警和低温报警值,实现温度控制电机带动外围器件功能。本系统通过温度传感器 DS18B20 实现对温度数据的采集,数据处理后显示到液晶屏上,通过数据处理,温度值精确度为 0.1。简单操作方法:系统上电后液晶显示实时温度,通过按键可以设定高低温限定值:A. 按下 K1 ,显示系统的高低温限定值;B.再按 K1 ,进入设定状态,液晶屏光标闪动提示设定,此时设定高温限值还是低温限值可以在 K1 键转换;C.进入设定状态后, K2 键用于值加 1, K3 键用于值减 1;D设定完后,按键 K4 确认后退出,返回显示实时温度!;.,.(二 ) 温度信号采集电路选择和数据处理方案:采用温度传感器DS18B20美国 DALLAS公司的产品可编程单总线数字式温度传感器DS18B20可实现室内温度信号的采集,有很多优点:如直接输出数字信号,故省去了后继的信号放大及模数转换部分,外围电路简单,成本低; 单总线接口,只有一根信号线作为单总线与MCU连接,且每一只都有自己唯一的64 位系列号存储在其内部的ROM存储器中,故在一根信号线上可以挂接多个DS18820,便于多点测量且易于扩展.DS18B20的测温范围较大,集成度较高,故选用此方案。DS18B20内部 1,2 位寄存器存放实时温度值,本系统对以上两寄存器数据处理后精度为 0.1 ; DS18B20第 3, 4 位寄存器分别存放高温限值和低温限值,并且DS18B20内部还有EEPROM,因此通过第3, 4 寄存器与 EEPROM的数据交换就能实现对设定后的值进行贮存。(三 ) 软件设计本实验中我选用Keil编程平台 .主程序流程图:;.,.初始化液晶显示启动 DS18B20 并初始化读取温度数据数据转换显示温度温度比较启动电机YES温度是否大于高温限值或小于低温限值NONOKeyScan?YES显示温度上下限设置温度上下限值温度上下限值存入寄存器图 3 主程序流程图;.,.二、单元电路设计( 一 )温度信号采集电路图 4 温度信号采集电路(二 ) 步进电机电路图 5 步进电机电路;.,.(三 ) 液晶显示模块图 6 液晶显示模块;.,.(四 ) 晶振复位电路图 7 晶振复位电路三、总结体会本次课程设计给我们提供了一个将自己所学的知识应用于实践的良机,通过了两个周的设计我学到了很多非常有价值的东西,懂得了如何将理论知识转化成实际程序的设计;掌握的单片机开发与设计的思路与方案确定;学会了更有效的查找自己所需的资料;同时也意识到了团队协作的重要性;掌握了硬件与程序设计的一般步骤和方法。这对我们以后的学习和工作的是非常有帮助的。设计是我们将来必需的技能,这次课程设计刚好给我们提供了一个应用自己所学知识的机会,从到图书馆和网上查找资料到对硬件与程序模块的设计对各模块的调试再到最后整体设计调试,都对我所学的知识进行了检验,增强了自信心。通过本次课程设计,我进一步温习和巩固了课本的理论知识,对单片机各接口与外部电路之间的连接关系有了更加深刻的理解。同时掌握了Proteus 和 keil软件的基本应用。;.,.同时, 在课程设计过程中,将理论知识应用于实际应用,增强了理论联系实际的能力。虽然设计时有时一个问题需要我们花费很长的时间,很烦很累但当我们通过查找资料解决了之后心里很开心很有成就感。同时也使我明白了要将理论运用于实践还是一种非常重要的能力,要想牢固的掌握所学的知识我们必须将理论与实践结合起来,用理论来指导实践,用实践来验证理论, 增强对理论的理解。不断地充实自己的理论,提高自己的动手能力。最终完成了整个设计之后, 使我更加坚信只要我们努力和采用正确的方法,没有什么事是我们解决不了的。最后,我在这里衷心地感谢所有教给我知识和在课程设计中给予我帮助的老师们和同学们,是他们给我们的知识才使我们得以顺利完成此次课程设计。四、参考文献单片微型计算机原理与应用, 张毅坤、 陈善久、裘雪红西安电子科技大学出版社 51单片机应用从零开始杨欣、王玉凤、李湘黔清华大学出版社 51单片机应用开发范例大全宋戈、黄鹤松、员玉良人民邮电出版社郭天祥 电子工业出版社附录 :程序清单;-; 简单功能说明:一个显示实时温度的小系统,可以自行设; 定高温报警和低温报警值,实现温度控制电机带动外围器; 件功能。;-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_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: SETBDQACALLRESETJBFLAG,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;=把高温和低温限值写入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:SETBFLAGMOV 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 DQCLR 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;=键盘扫描 =KEYSCAN: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;-调高温限值 -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_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: 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,#0CEHACALLWR_COMMACALLDISP0RETMORE0: DB>H,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;.,.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 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,#80HACALL 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,#0C8HACALLWR_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,#0C6HACALLDISP_C;-MOV A,TEMP_TLMOV B,#10DIV ABMOV SHI,A/SHIMOV GEWEI,B /GEMOV A,SHIMOV LCD,#0CCHACALLWR_COMM;.,.ACALLSHUMAMOV A,GEWEIACALLSHUMAMOV A,#0CEHACALLDISP_CRETSETTHL:DBSet TH/TL:,0HTHL:DBTH:TL:,0H;=液晶初始化 =INIT_LCD:MOVLCD,#00000001BACALL WR_COMMMOVLCD,#00111000BACALL WR_COMMMOVLCD,#00001100BACALL WR_COMMMOVLCD,#00000110BACALL WR_COMMRET;=TH 光标闪 =TH_SHAN:MOVLCD,#00001111BACALL WR_COMMMOV LCD,#0C5HACALLWR_COMMRET;=TL 光标闪 =TL_SHAN:MOVLCD,#00001111BACALL WR_COMMMOV LCD,#0CDHACALLWR_COMMRET;.,.;= 液晶写命令 =WR_COMM:CLRRSCLRRWCLREACALL CHECK_BFSETB ERET;=液晶写数据 =WR_DATA:SETB RSCLR RWCLR EACALL CHECK_BFSETB ERET;=液晶是否忙碌 =CHECK_BF:MOV LCD, #0FFHCLR RSSETB RWCLR ENOPSETB EJB LCD.7,CHECK_BFRET;=DELAY20:MOV R5,#50DLY:MOV R6,#100DJNZR6,$DJNZR5,DLYRETEND;.,.;=;.

    注意事项

    本文(基于单片机的温度控制系统设计报告.docx)为本站会员(李医生)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开