专业:电气工程及其自动化指导老师:刘益剑答辩人:陈允超学号:13080310南京师范大学泰州学院2012年6月基于STC89C52单片机的多点温度检测系统课题基本介绍课题基本介绍:1.引言2.器件的选择3.硬件电路的设计4.系统软件的设计5.结论6.仿真演示一、引言1.1选题背景随着现代信息技术的飞速发展,温度测量控制系统在工业、农业及人们的日常生活中扮演着一个越来越重要的角色,它对人们的生活具有很大的影响,所以温度采集控制系统的设计与研究有十分重要的意义。1.2选题目的本次设计的目的在于学习基于51单片机的多路温度采集控制系统设计的基本流程。可以实现多路温度信号采集与显示,可以使用按键来设置温度限定值,通过进行温度数据的运算处理,发出控制信号达到控制蜂鸣器和警示灯的目的。二、器件的选择温度传感器热敏电阻的特点及应用对温度灵敏度高,热惰性小,寿命长,体积小,结构简单,以及可制成各种不同外形。随着工农业生产以及科学技术的发展,这种元件已获得了广泛的应用,如温度测量、温度控制、温度补偿、液面测定、气压测定、火灾报警、气象探空、开关电路、过荷保护、脉动电压抑制、时间延迟、稳定振幅、自动增益调整、微波和激光功率测量等等。热敏电阻MF5A5KR(25℃):5KTolerance:±5%B(25/50):3740Tolerance:±1%NTTBNTRR11exp:在温度T(K)时的NTC热敏电阻阻值。:在额定温度TN(K)时的NTC热敏电阻阻值。T:规定温度(K)[K=273.15+T]。K:开尔文温度B:NTC热敏电阻的材料常数,又叫热敏指数。exp:以自然数e为底的指数(e=2.71828…)TRNRSTC89C52主要性能特点STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。另外STC89X52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选二、器件的选择系统设计框图三、硬件电路的设计测温电路的设计三、硬件电路的设计A/D转换电路设计ADDA~ADDCALE/STARTEOCOED0~D7地址锁存启动转换时间三、硬件电路的设计显示报警电路的设计通讯接口连线图四、系统软件设计主程序设计四、系统软件设计A/D转换开始A/D转换开始延时等待转换结束取转换值通道数减一,指向下一个通道指向8255A的A口置通道数,置初始通道通道数=0返回否否是是查表,存入缓冲区置缓冲区首地址修改缓冲区指针DETECT:CLREX1MOVR0,#30HMOVP2,#18H;指向0通道MOVR1,#08H;置通道数MOVDPTR,#18FFH;A口地址给指针LOOP:CLRP2.7;开启转换SETBP2.7CLRP2.7MOVR2,#20HDELY:DJNZR2,DELYJNBP3.0,$MOVXA,@DPTR;取转换值PUSHDPHPUSHDPLMOV25H,AMOV27H,#0CLRAQUZHI:MOVDPTR,#TTABMOVCA,@A+DPTRDBJ:CJNEA,25H,XBJSJMPNEXXTXBJ:JNCMBJINC27HMOVA,27HLJMPQUZHIMBJ:DEC27HNEXXT:MOV@R0,27HPOPDPLPOPDPHINCP2;下一个通道INCR0DJNZR1,LOOPSETBEX1RET四、系统软件设计开始置缓冲区首地址温度是否超出限值通道号加一显示温度和通道置通道数,置初始通道号取缓冲区数据缓冲区地址加一通道号=8小于下限显示“AA”和通道数,报警显示“BB”和通道数,报警结束是否是否否是显示延时1秒BCD转换DISPALM:MOVR0,#30HMOVR1,#00HMOVR2,#08HDISLOOP:MOVA,@R0CJNEA,20H,LP1LP1:JCLMINCJNEA,21H,LP2LP2:JNCGMAXMOVDPTR,#03FFFHLCALLBCDMOVX@DPTR,AMOVDPTR,#05FFFHMOVA,R1SWAPAORLA,#0FHMOVX@DPTR,ASJMPNEXLMIN:MOVP1,#0FEHMOVDPTR,#03FFFHMOVA,#0AAHMOVX@DPTR,AMOVDPTR,#05FFFHMOVA,R1ORLA,#0F0HMOVX@DPTR,ASJMPNEXTGMAX:MOVP1,#0FDHMOVDPTR,#03FFFHMOVA,#0BBHMOVX@DPTR,AMOVDPTR,#05FFFHMOVA,R1ORLA,#0F0HMOVX@DPTR,ANEXT:MOV22H,#20LCALLDELAYSINCR0INCR1DJNZR2,DISLOOPRET显示与报警四、系统软件设计平均值开始40H,41H清零置缓冲区首地址30H累加和赋给41H,进位赋给40H缓冲区地址=38H缓冲区地址加一求平均值整数赋40H,小数赋41H退出否是BCD转换开始待转换数赋AA除以100,将商赋R3余数赋A,再除以10,余数赋BA半字节交换与B或退出PJZ:MOV40H,#0MOV41H,#0MOVR0,#30HLOP:MOVA,41HADDA,@R0MOV41H,AJNC$+4INC40HINCR0CJNER0,#38H,LOPMOVA,41HANLA,#0F8HADDA,40HRLASWAPAMOV50H,A;平均值整数.MOVA,41HMOVB,#8DIVABXCHA,BMOVB,#100MULABMOV40H,BMOV41H,AMOVA,41HANLA,#0F8HADDA,40HRLASWAPAMOV51H,AMOVDPTR,#03FFFHMOVA,50HLCALLBCDMOVX@DPTR,AMOVA,51HLCALLBCDMOVDPTR,#05FFFHMOVX@DPTR,ARETBCD:MOVB,#100DIVABMOVR3,AMOVA,#10XCHA,BDIVABSWAPAORLA,BRET四、系统软件设计中断开始保护现场按键是否按下转向相应程序上限值加一程序下限值加一程序上限值减一程序下限值减一程序显示,延时执行加一减一指令BCD转换键盘扫描是否退出中断0=限值=99显示“EE”,等待恢复现场退出中断否否是是否是延时去抖动外部中断调节温度限值子程序流程图功能:调节温度的上限值和下限值TIAOWEN:PUSHPSWPUSHACCTU1:MOVA,P1JNBACC.3,EI0JNBACC.4,EI1JNBACC.5,EI2JNBACC.6,EI3JBACC.7,TU1POPACCPOPPSWRETIEI0:MOVA,20H;比较大小CJNEA,#63H,EI00;如果不等于100,则转移再判断EI00:JNCEEI1;判断是否比一百小,如果是顺序执行加一;如果大于则等待INC20HMOVA,20HLCALLBCDMOVDPTR,#05FFFHMOVX@DPTR,ALCALLDELAY0SLJMPTU1EI1:MOVA,20H;比较大小JZEEI1;如果为0则等待DEC20HMOVA,20HLCALLBCDMOVDPTR,#05FFFHMOVX@DPTR,ALCALLDELAY0SLJMPTU1EI2:MOVA,21H;比较大小CJNEA,#63H,EI20;如果不等于100,则转移再判断EI20:JNCEEI2;判断是否比一百小,如果是顺序执行加一;如果大于则等待INC21HMOVA,21HLCALLBCDMOVDPTR,#03FFFHMOVX@DPTR,ALCALLDELAY0SLJMPTU1EI3:MOVA,21H;比较大小JZEEI2;如果为0则等待DEC21HMOVA,21HLCALLBCDMOVDPTR,#03FFFHMOVX@DPTR,ALCALLDELAY0SLJMPTU1EEI1:MOVA,#0EEHMOVDPTR,#05FFFHMOVX@DPTR,ALJMPTU1EEI2:MOVA,#0EEHMOVDPTR,#03FFFHMOVX@DPTR,ALJMPTU1四、系统软件设计中断开始保护现场置缓冲区首地址,置通道数,置初始通道号BCD转换显示温度和通道号,延时1S通道号=8键盘扫描缓冲区地址加一,通道号加一键盘是否按下是否推出中断恢复现场退出中断是否否是否是外部中断选择查看子程序流程图功能:可以单独查看每个通道的温度值DANDU:PUSHPSWPUSHACCTU4:MOVR0,#30HMOVR1,#00HMOVR2,#09HTU3:JBP3.3,TU2MOVA,@R0MOVDPTR,#05FFFHLCALLBCDMOVX@DPTR,AMOVDPTR,#03FFFHMOVA,R1SWAPAORLA,#0FHMOVX@DPTR,AINCR0INCR1LCALLDELAY0SDJNZR2,TU3;如果R2为零转中断程序的开始,判读是否重新开始LCALLDELAY0SLCALLPJZLJMPTU4TU2:JBP1.7,TU3POPACCPOPPSWRETI总结本文详细阐述了基于单片机为核心的温度控制系统。它是利用热敏电阻采集温度信号,将阻值变化转换为电压信号,经放大电路放大、A/D转换后送到单片机中,判断并显示温度。从而构成了一个可以显示多路温度的系统。最后针对温度显示系统进行了实验仿真,通过对仿真的调试表明本文所述的基于单片机的多路温度采集系统的设计是合理可行的。本系统实现以下要求:以一定时间间隔对8个温度通道进行巡回采集,温度检测范围0℃~99℃;可用键盘单独显示通道情况;LED数码管显示温度,同时显示通道号;对8个温度求平均值,并显示;键盘设置温度的上、下限值;具有超限报警功能;实现用Proteus的仿真。Proteus仿真1.测温电路演示2.主电路演示3AD1674