基于51单片机和热敏电阻的温度控制系统

设计传感器电路 进行 温度采集与显示, 通过继电器或可控硅控制 热得快进行加热,实现对水温的控制。

要求 : 精度±1℃ ,超调≤5% ,PID参数 温度设定值可调, 控制量 温度测量值可显。
请求高手 发电路图 PCB图 原理图 和 单片机程序到我的邮箱 405454372@qq.com

人品保证 收到邮件后必追加100分

给你个网站
你可以去看一下
http://www.sinochip.net/TechSheet/67.htm

本程序工作过程如下:

;1、开机后首先进行初始化,初始化后显示“P”1秒,提示系统进入测试工作状态,显

; 示完成后,进行温度测试。

;2、温度测试的过程是这样的:

; * T0置为计数方式,对T0脚(即P3.5)的脉冲计数,工作方式2,初值为255

; * 将T1置为定时方式,工作方式2,初值为0

; * 从P3.4口送单稳触发脉冲,使555输出单稳脉冲(正脉冲),该脉冲宽度随热敏

; 电阻阻值而变化。

; * 开T0、T1中断,启动T0、T1。此时T1自动对内部机器周期计数,当TL1溢

; 出时,产生T1中断。在T1中断处理程序中,将RAM 21H单元加1(即21H单

; 元存放脉冲宽计数值高位)后返回主程序。

; * 当来自P3.5的单稳脉冲结束(即下降沿到来)时,TL0计数器加1并溢出,产

; 生T0中断。在T0中断处理程序中,关T0、T1中断,并将TL1中的的内容读

; 到RAM 20H单元(20H单元存放脉宽计数值的低位)。

; * 查表求温度值

; NTTAB是脉宽计数值与温度的对照表,按低温到高温的次序存放,即第一、第

; 二单元存放-100C时的脉宽计数值,依此类推,第121和122单元则存放+500C

; 时的脉宽计数值。

; 将20H、21H中的计数值与NTTAB中的计数值依次进行比较,直至20H、21H

; 中的值小于NTTAB中的计数值为止。而比较的次数就对应温度的整数值,二计

; 数值之差与对照表相邻两计数值的商即为小数位。

;3、程序中除了对-100C到+500C进行测试外,还有开路(计数值过大)、短路检测(计

; 数值过小)、负超温检测、正超温检测,并有相应的显示。

;4、将检测值(温度值或其他结果)显示1秒,然后再重复温度检测。

;需要说明的是:本程序虽包括了测温的全过程,但未考虑软硬件的自检,软件滤波等部

;分。

;电容C4、热敏电阻RT的参数决定单稳脉冲的宽度,而最终的计数值除了与单稳

; 脉冲的宽度有关外,还与晶振频率有关,因而在RT的型号确定后要根据系统对精

; 度和分辨率等的要求选择C4的值。本程序中NTTAB脉宽计数值与温度对照表是在

; 热敏电阻为MF53-1型负温热敏电阻加12K精密电阻与之并联,C4为1μ,晶振为

; 4MHz的条件下得到的。数据不十分准,仅做参考。你可以在元件参数定了后,可在

; 调试程序时用可变电阻箱代替热敏电阻,在程序测出计数值处设断点,读出每个标

; 准阻值所对应的计数值(即20H、21H中的内容),自己将NTTAB建立起来。

; * * * * * * * * * * * * * * * * * * * * * * * * * *

; * 用89C2051控制的数字测温仪 *

; * 源程序清单 *

; * * * * * * * * * * * * * * * * * * * * * * * * * *

ORG 0000H

AJMP MAIN ;转主程序

ORG 000BH

AJMP WT0 ;T0中断入口

ORG 001BH

AJMP WT1 ;T1中断入口

;主程序

ORG 030H

MAIN: MOV IE,#00H ;关中断

MOV SP,#40H ;设堆栈指针SP为40H

SETB P3.5 ;将P3.5口置”1”

MOV 30H,#0CH ;“P3 ”送显示缓冲区30H~33H

MOV 31H,#0EH

MOV 32H,#0EH

MOV 33H,#0EH

MAIN0: ACALL D1S ;调显示1秒子程序

MOV P1,#0FFH ;关显示

CLR 20H ;清脉宽计数值存放区20H~21H

CLR 21H

CLR 22H ;清单稳脉冲结束标志22H

MOV TH0,#0FFH ;置T0计数初值255

MOV TL0,#0FFH

MOV TH1,#00H ;置T1的计数初值0

MOV TL1,#00H

MOV TMOD,#26H ;置T0为计数方式,方式2;T1为定时方式。方式2

SETB EA ;允许T0、T1中断

SETB ET0

SETB ET1

SETB TR0 ;开T0中断

CLR P3.5 ;送单稳触发脉冲

NOP

NOP

NOP

NOP

SETB P3.5

SETB TR1 ;开T1中断

MAIN1: CJNE 22H,#01H,MAIN2 ;单稳脉冲未结束,转检查是否超时

AJMP MAIN3 ;单稳脉冲结束,转取脉宽计数值

MAIN2: CJINE 21H,#08H,MAIN1 ;未超时,转等待单稳脉冲结束

CLR EA

CLR ET0

CLR ET1

CLR TR0

CLR TR1

MOV 30H,#0DH ;开路提示“E1”送显示缓冲区,转显示

MOV 31H,#01H

MOV 32H,#0EH

MOV 33H,#0EH

AJMP MAIN0

MAIN3: CJNE 21H,#00H,MAIN4 ;单稳脉冲结束,先判断是否短路。不是,转查表程序。

MOV 30H,#0DH ;短路,短路提示“E2”送显示缓冲区,转显示

MOV 31H,#02H

MOV 32H,#0EH

MOV 33H,#0EH

AJMP MAIN0

MAIN4: ACALL NTTR ;调查表子程序

AJMP MAIN0

;查表求温度值子程序

NTTR: MOV R2,#00H ;清计数与温度对照表偏移量寄存器R2

MOV DPTR,NTTAB ;DPTR指向计数与温度对照表首址

NTTR1: CLR C ;20H、21H中的内容与NTTRB相减,并将差值存23H、24H

MOV R3,#02H

MOV R0,#20H

MOV R1,#23H

NTTR2: MOV A,R2

MOVC A,@A+DPTR

SUBB A,@R0

MOV @R1,A

INC R0

INC R1

INC R2

CJNE R2,#122,NTTR3 ;若未到NTAB表尾,继续比较

POVER:JC NTTR30 ;到表尾,查到对应温度,转求温度值

MOV 30,#0EH ;到表尾,查到对应温度,正超温提示“UUU”送显缓区

MOV 31H,#0BH

MOV 32H,#0BH

MOV 33H,#0BH

RET ;返回主程序

NTTR3: DJNZ R3,NTTR2

JNC NTTR1 ;未查到对应温度值,继续查表

NTTR30:MOV A,R2 ;已查到对应温度,由偏移量求出整数部分,暂存R4

CLR C

SUBB A,#02H

RR A

MOV R4,A

MOV R1,#23H ;求温度值的小数部分:+X/2送B

MOV A,@R1

CPL A

INC A

RR A

MOV B,A

NTTR4: DEC R2 ;Ni+1送20H、21H

MOV R0,#21H

MOV A,R2

MOVC A,@A+DPTR

MOV @R0, A

DEC R0

DEC R2

MOV A, R2

MOVC A,@A+DPTR

MOV @R0, A

DEC R2 ;求+i/2从A

DEC R2

MOV R3,#02H

CLR C

NTTR5: MOV A,R2

MOVC A,@A+DPTR

SUBB A,@R0

JNC NTTR50

CLP A

INC A

NTTR50:RR A

MOV R5,A

MOV A,B ;+x/2*10/+i得到温度值的小数部分

JZ NTTR6

MOV B, #05H

MUL AB

MOV B,R5

DIV AB

MOV 20H,A ;小数部分送20H

AJMP NTTR7

NTTR6: MOV 20H,#00H

NTTR7: MOV A,#0AH ;判整数部分为正还是负

CLR C

SUBB A,R4

JC PTEMP

NTEMP:CJNE A,#0AH,NTEMP1 ;为负

MOV 30H,#0EH ;“-X”送显示缓冲区高三位

MOV 31H,#0AH

MOV 32H,A

AJMP NTEMP2

NTEMP1:MOV 30H,#0AH ;“-10” 送显示缓冲区高三位

MOV 31H,#01H

MOV 32H,#00H

NTEMP2:MOV A,#0AH ;修正小数部分后,将小数部分送显缓低三位

CLR C

SUBB A,20H

MOV 33H,A

RET ;返回主程序

PTEMP: MOV 30H,#0EH ;为正。“ ”送显缓最高位

MOV A,R4 ;温度值整数部分送显缓中间两位

MOV B,#0AH

DIV AB

JNZ PTEMP1

] MOV 31H,#0EH

JMP PTEMP2

PTEMP1:MOV 31H,A

PTEMP2:MOV 32H,B

MOV 33H,20H ;小数部分送显缓最低位

RET ;返回主程序

;显示子程序(将显缓区的内容循环显示一遍,每位显示1ms后,关显示返回主程序)

DSP: MOV R2,#01H

MOV R0,#30H

MOV DPTR,#TAB

DSP1: MOV A,@R0

MOVC A,@A+DPTR

MOV P1,A

ORL P3,R2

ACALL D1MS

MOV A,R2

RL A

MOV R2,A

CJNE R2,#10H,DSP2

ANL P3,#0F0H

RET

DSP2: INC R0

AJMP DSP1

;延时1ms子程序

D1MS: MOV R7,#166

D1MS1: DJNZ R7,D1MS1

RET

;显示1秒子程序

D1S: MOV R6,#04H

D1S1: MOV R5,#250

D1S2: ACALL DSP

DJNZ R5,D1S2

DJNZ R6,D1S1

RET

;段码表

TAB: DB 40H,79H,24H,30H,19H :0.,1.,2.,3.,4.

DB 12H,02H,78H,00H,10H :5.,6.,7.,8.,9.

DB 3FH,41H,0CH,06H,0FFH :-.,U.,P.,E.,灭

;T0中断处理程序

WT0: MOV A,TL1 ;将T1计数值送20H

MOV 20H,A

CLR EA ;关中断

CLR TR0 ;T0停止计数

CLR TR1 ;T1停止计数

MOV 22H,#01H ;置单稳脉冲结束标志

RETI ;返回主程序

;T1中断处理程序

WT1: INC 21H ;脉宽计数值高位加1

RETI ;返回主程序

;脉宽计数与温度对照表

NTTBL: DB 0D0H,05H,0B2H,05H,96H,05H,72H,05H

DB 52H,05H,35H,05H,15H,05H,0F6H,04H

DB 0D8H,04H,0B9H,04H,9CH,04H,81H,04H

DB 65H,04H,4AH,04H,30H,04H,14H,04H

DB 0FAH,03H,0E0H,03H,0C6H,03H,0ADH,03H

DB 95H,03H,7CH,03H,64H,03H,4CH,03H
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-09-10
ni de xiangfa hen hao
下面有,但是不是最适合你的,知道为什么吗?
第2个回答  2009-09-09
没有吧

基于51单片机和热敏电阻的温度控制系统
设计传感器电路进行温度采集与显示,通过继电器或可控硅控制热得快进行加热,实现对水温的控制。要求:精度±1℃,超调≤5%,PID参数温度设定值可调,控制量温度测量值可显。请求高手... 设计传感器电路 进行 温度采集与显示, 通过继电器或可控硅控制 热得快进行加热,实现对水温的控制。 要求: 精度±1℃ ,超调≤5% ,PID参...

51单片机的温度采集系统设计
本系统的功能主要有数据采集、数据处理、输出控制。能对0~1000 �0�2c范围内的各种电加热炉的温度进行精密测量,同时,四位LED显示器直接跟踪显示被控对象的温度值,准确度高,显示清晰,稳定可靠,使用方便(在具体设计编程、调试过程中,为了调试方便,编程把温度范围设在0~100 &#...

怎么用三极管和热敏电阻做成简易温度计来测温度求原理图!
手动画的,本电路的热敏电阻是1K的,不知道你用的是多大的?电流表是100MA的,左边10K的是调温度的电位器,如果你的热敏电阻小于于1K,可以去掉中间那10K的电阻,20欧的电阻可以改小点,10欧也行,保护用,以防烧管。做好了,你可以调节电位器,在电流表上用笔刻写上读数方便看。

基于51单片机的温度检测模块设计
12-基于51单片机无线温度控制系统-多点测温

单片机,热敏电阻测温?
1、单片机热敏电阻测温首先要设计电路原理图,如图所示:上图R3为上拉电阻,T1为接热敏电阻端,TC1为单片机AD采集口、电阻R4和电热C6为阻容滤波电路。2、上拉电阻R3的选择:根据所用温度的范围,选择热敏电阻对应阻值范围的中间值最好,这样检测的温度偏差较小。3、上拉电阻选定后,根据热敏电阻阻值表...

基于51单片机的温度计中什么可以代替DS18B20
DS18B20属于数字温度计。如果要代替的话,可以试试LM75,当然LM75是I2C接口的。然后就是模拟信号输出的温度计了,什么NPT、铂电阻、热电偶、AD590、LM35之类的,就要用ADC了。如果你的单片机自带了ADC,还差不多。

贴片热敏电阻与单片机组合能测温度吗
贴片 热敏电阻 与单片机组合能测温度:1、热敏电阻具有随温度的变化电阻值变化的特性。2、通过测量热敏电阻的阻值,就可以测量出温度。热敏电阻器 是 敏感元件 的一类,按照 温度系数 不同分为 正温度系数热敏电阻 器(PTC)和 负温度系数热敏电阻 器(NTC)。热敏电阻器的典型特点是对温度敏感,不同...

求单片机温度控制系统的论文
本文设计了一种基于MSP430单片机的温度测量和控制装置,能对环境温度进行测量,并能根据温度给定值给出调节量,控制执行机构,实现调节环境温度的目的。1 整体方案设计 单片机温度控制系统是以MSP430单片机为控制核心。整个系统硬件部分包括温度检测系统、信号放大系统、A\/D转换、单片机、I\/O设备、控制执行系统...

用AT89C51单片机和温度传感器DS18B20S设计数字式温度计
该设计控制器使用的是51单片机AT89S52,AT89S52单片机在工控、测量、仪器仪表中应用还是比较广泛的。测温传感器使用的是DS18B20,DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。显示是用4位共阴极LED数码管实现温度显示,...

...电阻测温度的程序?我用单片机AD测的热敏电阻的AD值,怎样把数字量转...
那么测量的实际温度 为A,根据线性传感器、AD转换器转换器的转换信号的关系:可以推出 A=(Am-A0)*N\/(255-0)+A0 可以编程由程序实现上述的计算过程。参考自己实际的情况,就可以写出类似上述的公式,作为编写用热敏 电阻测温度的程序的算法。算法有了,程序就自己写吧,不是很难了。

相似回答