Ⅰ 基于单片机的PID温度控制器的问题
单片机是数据采集和调理过程,PID是相当于控制器,得出控制量,再通过单片机放大输出到加热和继电器装置,传感器采回的信号经过单片机调理后进行反馈控制。
Ⅱ 急求:基于MCS-51单片机的温度控制器汇编语言软件设计和硬件电路图
第2章 硬件电路详细设计
DS18B20的性能特点:1、采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位),2、测温范围为-55℃-+125℃,测量分辨率为0.0625℃,3、内含64位经过激光修正的只读存储器ROM,4、适配各种单片机或系统机,5、用户可分别设定各路温度的上、下限,6、内含寄生电源。温度传感器DS18B20连接方式:在寄生电源供电方式下,DS18B20从单线信号线上汲取能量,在信号线DQ处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。如图2.3所示。
2.4 复位电路的设计
本设计采用人工复位,将一个按扭开关并联于上电自动复位电路按一下开关就在RST端出现一段时间的高电平,即器件复位。
2.5 晶振电路的设计
2.6 DS18B20温度传感器与单片机的接口电路
DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。
当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。
2.7 温度测量系统整体硬件电路
Wei1 BIT P3.0 ;;数码管第1位
Wei2 BIT P3.1 ;;数码管第2位
Wei3 BIT P3.2 ;;数码管第3位
Wei4 BIT P3.3 ;;数码管第4位
Dian EQU 20H ;;小数点状态状态保存字节
DisData1 EQU 30H ;;第1位显示数据
DisData2 EQU 31H ;;第2位显示数据
DisData3 EQU 32H ;;第3位显示数据
DisData4 EQU 33H ;;第4位显示数据
DisTime EQU 34H ;;设置显示几次后读取温度值
;;温度数据存储单元标号定义
TempL EQU 35H ;;温度高位
TempH EQU 36H ;;温度低位
;;与DS18B20通迅部分存储单元及标号定义
DS18B20 BIT P1.0 ;;与DS18B20通迅的位地址
RFail BIT 21H.0 ;;复位失败标记
Var EQU 22H ;;变量字节,温度数据处理时用到
Var2 EQU 3FH ;;变量字节
主程序部分:
ORG 00H
LJMP START
ORG 100H
START: ;;-----初始化
MOV SP,#60H ;;初始化堆栈指针
Set18B20:;;-----DS18B20初始化
;;DS18B20复位
ACALL Reset
JB RFail,LOOP ;;复位失败则直接跳至显示部分
;;对DS18B20发出Skip ROM命令
MOV A,#0CCH
ACALL Write
;;对DS18B20发出温度转换命令
MOV A,#44H
ACALL Write
SetDisT:MOV DisTime,#3 ;;设置下一个循环体的循环8次
LOOP:
ACALL Display ;;显示
JB RFail,Set18B20 ;;DS18B20复位失败时,在显示完一次后重新复位
DJNZ DisTime,LOOP
JNB DS18B20,$ ;;判断DS18B20是否已完成温度转换
ACALL GetTemp ;;从DS18B20读出温度值
ACALL DealTemp ;;温度值处理
ACALL SendDisDT ;;根据当前系统状态设置显示内容
SJMP SetDisT ;;;;;;;
;;根据当前状态给显示模块设置显示参数
SendDisDT:
MOV Dian,#7FH ;;最高位为0代表显示小数点
;;传送温度值
MOV A,TempH ;;送高位数据
MOV VAR,TempL ;;送低位数据
ACALL TransData
RET
;;A中保存高位值,Var中保存低位值
TransData:
;;取个位值
MOV B,#10
DIV AB
MOV DisData2,B
;;取十位值
JZ HavNot1 ;;判断商是否为0
MOV B,#10
DIV AB
MOV DisData3,B
JZ HavNot2 ;;判断商是否为0
MOV DisData4,A
SJMP XiaoShu ;;跳至百位符号处理部分
HavNot1:MOV DisData3,#10 ;;十位开始没有数字
HavNot2:MOV DisData4,#10 ;;百位开始没有数字
SignJudge:;;符号处理部分
JNB VAR.7,XiaoShu ;;当为负数显示符号
MOV A,#10
CJNE A,DisData3,BWSign
MOV DisData3,#11 ;;负号在十位
SJMP XiaoShu
BWSign:MOV DisData4,#11 ;;负号在百位
XiaoShu:;;小数处理部分,用查表法获取小数值,精确到小数点后1位
MOV A,VAR
ANL A,#0FH
MOV DPTR,#XSTab
MOVC A,@A+DPTR
MOV DisData1,A
RTransTemp:
RET
XSTab: DB 0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9
DS18B20通迅模块组
-------复位模块
Reset: ;;3微秒高电平
SETB DS18B20
MOV R7,#250
CLR RFail ;;清0复位失败标记
CLR DS18B20
;;延迟501uS
DJNZ R7,$
SETB DS18B20 ;;释放总线(拉高数据线)
;;等待DS18B20作出复位成功反应,最大等待时间为69uS
MOV R7,#17
Wait:
JNB DS18B20,RReset ;;若DS18B20在作出复位成功反应,不再等待
DJNZ R7,Wait
SETB RFail ;;70uS内DS18B20作出复位成功反应,置1复位失败标记
RReset:
;;延迟350Us
MOV R7,#174
DJNZ R7,$
SETB DS18B20
RET
/
;;-------向DS18B20写一个字的模块,要写的内容提前装入ACC中
Write:
MOV R6,#8 ;写8位
WriteBit:
;;2微秒高电平
SETB DS18B20
MOV R7,#3
;;7微秒低电平
CLR DS18B20
DJNZ R7,$
;;ACC低位送至DS18B20
RRC A
MOV DS18B20,C
;;延迟60Us
MOV R7,#28
DJNZ R7,$
;;是否已写完8位
DJNZ R6,WriteBit
RWrite:
SETB DS18B20
RET
; /
;;-------从DS18B20读回一个字节的内容,读回的内容装入ACC中
Read:
MOV R6,#8 ;;读回8位
MOV A,#0 ;;读回的内容装入ACC中
ReadBit:
;;2微秒高电平
SETB DS18B20
MOV R7,#7
;;2微秒低电平
CLR DS18B20
NOP
;;16微秒高电平
SETB DS18B20
DJNZ R7,$
;;读回一位数据放入ACC中
MOV C,DS18B20
RRC A
;;延迟66Us
MOV R7,#33
DJNZ R7,$
;;是否已读完8位
DJNZ R6,ReadBit
RRead:
SETB DS18B20
RET
/
;;-------与DS18B20通迅,读回两字节温度值,并装入ACC中TempL和TempH中
GetTemp:
ACALL Reset ;;复位
JB RFail,RGetTemp ;;判断复位是否成功
;;复位成功
;;对DS18B20发出Skip ROM命令
MOV A,#0CCH
ACALL Write
;;对DS18B20发出读命令
MOV A,#0BEH
ACALL Write
;;从DS18B20读回低8位温度值
ACALL Read
MOV TempL,A
;;从DS18B20读回高8位温度值
ACALL Read
MOV TempH,A
ACALL Reset ;;复位
JB RFail,RGetTemp ;;判断复位是否成功
;;对DS18B20发出Skip ROM命令
MOV A,#0CCH
ACALL Write
;;对DS18B20发出温度转换命令
MOV A,#44H
ACALL Write
RGetTemp:
RET
温度数据处理模块
DealTemp:
;;将整数的二进制数部分移到一个字节,符号位和小数部分移到一个字节
MOV R1,#Var
MOV Var,TempH
MOV A,TempL
XCHD A,@R1 ;;符号位、小数部分至VAR(@R1),整数部分至ACC
SWAP A
;;整数部分处理
JNB Var.7,NotNeg ;;判断是否为负数
CPL A ;;为负数,取反后加1得其绝对值
;;小数部分取反
XRL Var,#1FH ;;
INC Var
NotNeg:
MOV TempH,A
MOV TempL,Var
RET
显示模块
-------显示DisData(30H)从开始的三个字节保存显示信息
Display:
MOV DPTR,#Tab
;;**显示小数部分
MOV A,DisData1
MOVC A,@A+DPTR
MOV P2,A
CLR Wei1
ACALL Delay
SETB Wei1
;;**显示个位
MOV A,DisData2
MOVC A,@A+DPTR
;;小数点处理
ANL A,Dian
MOV P2,A
CLR Wei2
ACALL Delay
SETB Wei2
;;**显示十位
MOV A,DisData3
MOVC A,@A+DPTR
MOV P2,A
CLR Wei3
ACALL Delay
SETB Wei3
;;**显示百位
MOV A,DisData4
MOVC A,@A+DPTR
MOV P2,A
CLR Wei4
ACALL Delay
SETB Wei4
RET
Tab: ;;0~9、空白、负号的编码
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0BFH
;;延迟
Delay:
MOV R6,#6
DD1:MOV R5,#250
DJNZ R5,$
DJNZ R6,DD1
RET
END
这里面插不了图,我有这个的整套课程设计报告,想要找我,[email protected]
Ⅲ 基于单片机的恒温控制系统
我刚帮别人做了一个,是按这个要求做的,你可以提出任意修改要求。
程序是汇编的,已经调试通过。
ProteUS仿真文件下载地址:
推荐:70电加热PRE.rar( http://ishare.iask.sina.com.cn/f/7033603.html )
; 设计基于单片计算机的温度控制器。用于控制电加热炉的温度。具体要求如下:
; 1. 温度连续可调,范围为30℃~150℃
; 2. 超调量σ%≤20%
; 3. 温度误差≤±0.5℃
; 4. 人-机对话方便
; 5. 控制算法采用PID或改进的PID或其他算法.
; (我用的是AT89C52的单片机:
; A.电加热炉经由温度传感器测量后,
; 通过V/F变换器的模数转换,
; 将电压或电流量转换为数字信号进入单片机内,
; 然后通过移位寄存器和译码器的信息转换,
; 通过显示驱动器来进行LED数码管的温度显示;
; B.单片机也通过双向可控硅来控制炉内的温度;
; C.用户通过按键来设置温度上限、下限值)
Ⅳ 基于单片机的温度控制系统
加热部件可以在淘宝上买个
usb
5v
加热片,usb供电的电流不会超过
500ma,
控制可以用单片机脚控制一个
c8050三极管控制加热片的通断电。
Ⅳ 基于单片机的温度控制系统(毕业论文)
必须要有实物啊,理论的东西都是要靠实物来验证的啊。温度控制系统不难吧,学过电子、单片机的都很轻松的,同学看来你大学过得还挺滋润的啊。去文库看看,基本都会有资料参考的。知识要点:
1,AD采样,
也就是温度的数据采集。2,中断,
采集数据后比较,做相应的处理。
Ⅵ 基于单片机的热水器温度控制系统
东华理工大学毕业设计(论文)
基于单片机的热水器温度控制
摘 要
温度是日常生活中不可缺少的物理量,温度在各个领域都有积极的意义。很多行业中以及日常生活中都有大量的用电加热设备,如用于加热处理的加热热水器,用于洗浴的电热水器及各种不同用途的温度箱等,采用单片机对它们进行控制具有控制方便、简单、灵活性大等特点,而且还可以大幅提高被控系统的性能,从而能被大大提高产品的质量。因此,智能化温度控制技术正被广泛地应用。
本温度设计采用现在流行的AT89C51单片机为控制器,用PID控制方法,再配以其他电路对热水器的水温进行控制。
关键词:89C51; PID; 温度控制
I
1/41页
东华理工大学毕业设计(论文)
ABSTRACT
Temperature is essential physical in daily life ,and in various fields has positive implications.A lot of businesses and daily lives have a lot of electric heating equipment.Such as electric water heater for bathing and variety of different uses of the temperature boxes. MCU to control them with easy to control,simple,flexibility and other characteristics,also can significantly improve the performance of the controlled system,which can be greatly improved proct quality. Therefore,intelligent temperature control technology is being widely used.
The temperature control design uses the now popular AT89C51 MCU controller,with PID control method, which together with
Ⅶ 基于单片机的温度控制系统怎么控制温度的
加热部件可以在淘宝上买个 USB 5V 加热片,USB供电的电流不会超过 500mA, 控制可以用单片机脚控制一个 C8050三极管控制加热片的通断电。
Ⅷ 51单片机空调温度控制器要买什么器件
买“MCS-51单片机”。
基于MCS-51单片机的空调智能温控器的设计与开发, 肯定可以更好的进行温度的控制和调节。