基于单片机的电烤箱温度控制系统(7)

2019-08-29 23:40

洛阳理工学院毕业设计(论文)

MOV SCON,#00H ;置串行口为方式0 MOV R2,#03H ;显示位数送R2 MOV R0,#T100 ;显示缓冲区首地址送R0

LD: MOV DPTR,#TAB ;指向字型码表首地址 MOV A,@R0 ;取显示数据

MOVC A,@A+DPTR ;查表 MOV SBUF,A

;字型码送串行口

WAIT: JBC TI,NEXT ;发送结束转下一个数据并清中断标志

SJMP WAIT

;发送未完等待

NEXT: INC R0 ;修改显示缓冲区指针

DJNZ R2,LD ;判3位显示完否,未完继续

RET

;字型码表(略)

TAB: … BCD码转换子程序HTB:

HTB: MOV A,BT0

;取二进制显示数据低8位

MOV B,#100 ;除100,确定百位数 DIV AB

MOV T100,A ;百位数送54H单元 MOV A,#10

XCH A, B

;除10,确定十位

DIV A,B

MOV T10,A ;十位数送55H单元 MOV T, B

;个位数送56H单元

MOV A,BT1 ;取二进制显示数据高8位 JNZ LH1 RET

;高位不为0转LH1继续高8位转换

;高位为0结束,返回

LH1: MOV A,#06H ;高位不为0,低位转换结果加256(因为温度数据不会大于500,所以高8位最多为01H,即256)

ADD A,T

DA A

;个位加6(十进制加) ;结果送回个位

29

MOV T,A

洛阳理工学院毕业设计(论文)

MOV A,#05H ADDC A,T10 DAA

;十位加5(十进制加)

MOV T10,A ;结果送回十位

MOV A, #02H ADDC A, T100 DA A MOV T100,A

三 温度检测模块

A/D转换采用查询方式。为提高数据采样的可靠性,对采样温度进行数字滤波。数字滤波的算法很多,这里采用4次采样取平均值的方法。如前所述,本系统A/D转换结果乘2正好是温度值,因此,4次采样的数字量之和除以2就是检测的当前温度。检测结果高位存入50H,低位存入51H。温度检测子程序流程图如图所示。

温度检测子程序TIN:

TIN: MOV TEMP1,#00H ;清检测温度缓冲区

MOV TEMP0,#00H

;取样次数送R2

;指向A/D转换器0通道

RET

;百位加2(十进制加) ;结果送回百位

MOV R2,#04H

MOV DPTR,#7FF8H

LTIN1: MOVX @DPTR,A HERE: JNB IE1,HERE

;启动转换 ;等待转换结束

MOVX A,@DPTR ;读转换结果

ADD A,TEMP0

;累加(双字节加法)

MOV TEMP0,A MOV A,#00H ADDC A,TEMP1 MOV TEMP1,A

DJNZ R2,LTIN1 ;4次采样完否,未完继续

CLR C ;累加结果除2(双字节除法)

30

洛阳理工学院毕业设计(论文)

MOV A,TEMP1

RRC MOV

A TEMP1,A

A清检测结果缓冲区采样次数4→R2NR2-1=0Y4次累加结果除2→检测结果缓冲区启动A/D转换N转换结束Y 返回累加采样结果 结果低8位→51H 高8位→50H A 图3-2 温度检测子程序流程图

MOV A,TEMP0

A

RRC

四 温度控制模块

MOV TEMP0,A RET

将当前温度与预置温度比较,当前温度小于预置温度时,继电器闭合,接通电阻丝加热;当前温度大于预置温度时,继电器断开,停止加热;当二者相等时电炉保持原来状态;当前温度降低到比预置温度低2℃时,再重新启动加热;当前温度超出报警上下限时将启动报警,并停止加热。由于电炉开始加热时,当前温度可能低于报警下限,为了防止误报,在未达到预置温度时,不允许报警,为此设置了报警允许标志F0。模块流程见下图。 温度控制子程序CONT:

31

洛阳理工学院毕业设计(论文)

NY达到过预置温度Y置允许报警标志当前温度<预置温 度-2Y开电炉N关电炉当前温度<预置温度N当前温度与预置温度比较 返回图3-3 温度控制流程图

CONT: MOV A,TEMP0 ;当前温度-预置温度(双字节减)

CLR C SUBB A,ST0 MOV B,A MOV A,TEMP1 SUBB A,ST1

JNC LOFF ;无借位,表示当前温度≥预

置温度,转LOFF

JNB F0,LON ;当前温度<预置温度,判是否达到过预置温度

MOV A,B;若达到过预置温度,判二者差值是否大于2 CLR C SUBB A,#02H

JNC ACC.7,LOFF ;差值不大于2,转LOFF

32

;低8位相减的差值暂存B

洛阳理工学院毕业设计(论文)

LON: CLR P1.7

SJMP

;开电炉

EXIT ;返回

;设置允许报警标志

;关电炉

LOFF: SETB F0

SETB P1.7

EXIT: RET

在此,也可加入PID算法程序来实现PID控制。

五 温度越限报警模块

报警上限温度值为预置温度+5℃,即当前温度上升到高于预置温度+5℃时报警,并停止加热;报警下限温度值为预置温度-5℃,即在当前温度下降到低于预置温度-5℃,且报警允许时报警,这是为了防止开始从较低温度加温时误报警。报警的同时也关闭电炉。图为报警子程序流程图。 报警子程序ALARM ALARM:

MOV A,TEMP0 ;当前温度低字节→A

C

CLR

SUBB A,ST0 ;(当前温度低字节-预置温度低字节)→A

MOV B, A ;低字节相减结果送B暂存

MOV A,TEMP1 ;当前温度高字节→A

SUBB A,ST1 ;(当前温度高字节-预置温度高字节)→A

JC LA0 ;有借位,当前温度小于预置温度转LA0

SETB F0 ;当前温度≥预置温度,允许报警 AJMP LA1

LA0: MOV A,ST0 ;预置温度低字节→A CLR C

SUBB A,TEMP0 ;(预置温度低字节-当前温度低字节)→A MOV B,A ;低字节相减结果送B暂存 MOV A,ST1 ;预置温度高字节→A

SUBB A,TEMP1 ;(预置温度高字节-当前温度高

字节)→A

33


基于单片机的电烤箱温度控制系统(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:近世代数试题库

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: