基于单片机的温度控制系统设计报告(共25页).doc

上传人:飞****2 文档编号:14039908 上传时间:2022-05-02 格式:DOC 页数:25 大小:363KB
返回 下载 相关 举报
基于单片机的温度控制系统设计报告(共25页).doc_第1页
第1页 / 共25页
基于单片机的温度控制系统设计报告(共25页).doc_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《基于单片机的温度控制系统设计报告(共25页).doc》由会员分享,可在线阅读,更多相关《基于单片机的温度控制系统设计报告(共25页).doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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

2、通过数据处理,温度值精确度为0.1。简单操作方法:系统上电后液晶显示实时温度,通过按键可以设定高低温限定值: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编程平台.主程序流程图:初始化液晶显示启动D

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

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

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

7、红 西安电子科技大学出版社 51单片机应用从零开始 杨欣、王玉凤、李湘黔 清华大学出版社 51单片机应用开发范例大全 宋戈、黄鹤松、员玉良 人民邮电出版社 郭天祥 电子工业出版社附录:程序清单;-; 简单功能说明:一个显示实时温度的小系统,可以自行设; 定高温报警和低温报警值,实现温度控制电机带动外围器; 件功能。; ;-DQEQUP1.7;DS18B20控制口RS EQU P2.4 RW EQU P2.5 E EQU P2.6 LCD EQU P0 FLAGEQU30H GEWEIEQU29HSHIEQU28HXIAOSHUEQU27HTEMP_TLEQU20H ;低温限值TEMP_THEQ

8、U21H ;高温限值TEMPHEQU22H ;温度高字节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_TEM

9、P;液晶显示实时温度ACALLKEYSCAN;键盘设定高温限值和低温限值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,#0CCHACAL

10、LWR_1820MOVA,#4EHACALLWR_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 DJNZR

11、5,$SETBDQ NOPMOVR5,#25HRESET1: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,#

12、4MOVR1,#TEMPLRE1:MOVR6,#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,#BMOVXIAOSHU,A RET;

13、=键盘扫描=KEYSCAN: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

14、:ACALLTH_SHAN;光标闪,进入设定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

15、_L:ACALLTL_SHANKEY2L: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用于

16、退出设定JMPSET_HL/JMPSET_HLEXIT:ACALLDELAY20JNBK4,$ MOV LCD,#B ;设置液晶光标不显示、不闪烁 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

17、.7是温度传感器的控制口;避免冲突,电机接口按位控制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,DLY2DJNZ

18、R5,DLY1RET;=清屏=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,#0D

19、FH ACALLWR_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 MO

20、VA,#0CCHACALLDISP_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

21、:DB00H,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_T

22、HL:/ACALLRE_PROMMOVA,TEMP_THMOVB,#10DIVABMOVSHI,A /SHIMOVGEWEI,B/GEMOVA,SHIMOVLCD,#0C4HACALLWR_COMMACALLSHUMAMOVA,GEWEIACALLSHUMAMOVA,#0C6HACALLDISP_C;-MOVA,TEMP_TLMOVB,#10DIVABMOVSHI,A /SHIMOVGEWEI,B/GEMOVA,SHIMOVLCD,#0CCHACALLWR_COMMACALLSHUMAMOVA,GEWEIACALLSHUMAMOVA,#0CEHACALLDISP_CRETSETTHL:DBSe

23、t TH/TL:,0HTHL:DBTH: TL:,0H;=液晶初始化=INIT_LCD: MOV LCD,#B ACALL WR_COMM MOV LCD,#B ACALL WR_COMM MOV LCD,#B ACALL WR_COMM MOV LCD,#B ACALL WR_COMM RET;=TH光标闪=TH_SHAN:MOV LCD,#B ACALL WR_COMM MOVLCD,#0C5HACALLWR_COMMRET;=TL光标闪=TL_SHAN:MOV LCD,#B ACALL WR_COMM MOVLCD,#0CDHACALLWR_COMMRET ;=液晶写命令=WR_COMM: CLR RS CLR RW CLR E ACALL CHECK_BF SETB E RET ;=液晶写数据= WR_DATA: SETB RS CLR RW CLR E ACALL CHECK_BF SETB E RET ;=液晶是否忙碌= CHECK_BF: MOV LCD, #0FFH CLR RS SETB RW CLR E NOP SETB E JB LCD.7,CHECK_BF RET ;= DELAY20: MOVR5,#50 DLY:MOVR6,#100 DJNZR6,$DJNZR5,DLYRET END ;=

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁