教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 资格考试 >

简易温度控制器设计

来源:网络收集 时间:2026-07-10
导读: ;====变量及常数定义段==== INCLUDE VARDFN.ASM ;=============== ORG 0000H LJMP MAIN ORG 0003H LJMP INTS ORG 000BH ;添加变量等定义模块 LJMP T0SER ;转T0中断服务子程序 ORG 002BH LJMP T2SER ORG 0030H MAIN: INCLUDE INITIAL.ASM ;添加初始化模块 MLO

;====变量及常数定义段====

INCLUDE "VARDFN.ASM"

;===============

ORG 0000H

LJMP MAIN

ORG 0003H

LJMP INTS

ORG 000BH ;添加变量等定义模块

LJMP T0SER ;转T0中断服务子程序

ORG 002BH

LJMP T2SER

ORG 0030H

MAIN: INCLUDE "INITIAL.ASM" ;添加初始化模块

MLOOP: DJNZ T100MS,A2

MOV T100MS,#25

CLR TR1

MOV R2,TH1

MOV R3,TL1

SETB TR1

MOV TH1,#00H

MOV TL1,#00H

LCALL FTEMP

LCALL FTCTRL

A2: JNB TF0,$ ;4mS到?

CLR TF0 ;清定时标志

MOV TH0,#0F0H ;4mS定时重设

MOV TL0,#60H

LCALL RDKEY ;调用读键状态及去抖处理

LCALL DISP ;调用数码管动态显示

MOV A,STA ;根据状态值散转相应模块

ANL A,#03H

RL A

MOV DPTR,#MTAB

JMP @A+DPTR

MTAB: AJMP WORK0 ;转移到待机模块

AJMP WORK1 ;转移到赋值模块

AJMP WORK2 ;转移到查询模块

AJMP WORK3

AJMP WORK0 ;冗余

;====温度计模块====

WORK0: SETB KKG

MOV R0,#TEMP1

ACALL DSBUDT1

MOV DSB2,#00H

MOV DSB3,#00H

MOV DSB4,#01H

JB ESW1,WK01

JB ESW2,WK02

AJMP MLOOP

WK01: MOV STA,#02H

AJMP MLOOP

WK02: MOV STA,#01H

WK03: AJMP MLOOP

;====设置控制温度模块====

WORK1: SETB KKG

MOV DSB3,#00H

MOV DSB2,#00H

MOV R0,#TEMP0

ACALL DSBUDT1

MOV DSB4,#02H

JNB ESW2,WK11

MOV STA,#00H

SJMP WK13

WK11: CLR A

JB EK0,WK12

INC A

JB EK1,WK12

INC A

JB EK2,WK12

INC A JB EK3,WK12 INC A JB EK4,WK12 INC A JB EK5,WK12 INC A JB EK6,WK12 INC A JB EK7,WK12 ;数据2送显缓 ;LD2亮 ;下次主循环返回WORK0模块 ;查询"0"键 ;查询"1"键 ;查询"2"键 ;查询"3"键 ;查询"4"键 ;查询"5"键 ;查询"6"键 ;查询"7"键

INC A ;查询"8"键

JB EK8,WK12

INC A ;查询"9"键

JNB EK9,WK13

WK12: XCH A,TEMP0 ;键值从数据2的右边移入 SWAP A

ANL A,#0F0H

ORL TEMP0,A

WK13: AJMP MLOOP

;====开关方式温度控制器模块====

WORK2: MOV R1,#TEMP0 ;数据2送显缓

ACALL DSBUDT2

MOV R0,#TEMP1

ACALL DSBUDT1

MOV DSB4,#04H

MOV A,TEMP1

CLR C

SUBB A,TEMP0

JNC WK22

WK21: CLR KKG

SETB LD8

AJMP WK23

WK22: SETB KKG

WK23: JNB ESW1,WK24

MOV STA,#03H

SETB KKG

WK24: AJMP MLOOP

;====脉冲式温度控制模块====

WORK3: SETB EA

MOV R1,#TEMP0

ACALL DSBUDT2

MOV R0,#TEMP1

ACALL DSBUDT1

MOV DSB4,#08H

JNB ESW1,WK31

CLR EA

MOV STA,#00H

WK31: AJMP MLOOP

;====将压缩BCD码送显缓====

DSBUDT1:MOV A,@R0

ANL A,#0FH

MOV DSB0,A

MOV A,@R0

ANL A,#0F0H

SWAP A

MOV DSB1,A

RET

DSBUDT2:MOV A,@R1

ANL A,#0FH

MOV DSB2,A

MOV A,@R1

ANL A,#0F0H

SWAP A

MOV DSB3,A

RET

;====T0中断服务子程序====

;====中断服务子程序====

INTS: ;MOV DSB4,#0AAH

MOV TL2,TCTRL1

MOV TH2,TCTRL0

SETB TR2 ;外部中断;开启T2并允许中断

SETB ET2 ;允许T2中断

CLR TF2

RETI

T2SER: ;MOV DSB4,#55H

CLR KKG ;T2中断触发可控硅

CLR TR2

CLR TF2

CLR ET2

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

SETB KKG

RETI

T0SER: RETI

;====通用子程序段====

INCLUDE "RDKEY.ASM" ;添加读键状态及去抖处理子程序 INCLUDE "DISP.ASM" ;添加数码管动态扫描显示子程序 INCLUDE "FTEMP.ASM" ;脉冲计数值转换温度值子程序 INCLUDE "FTCTRL.ASM" ;求控制时间或T2定时器初值子程序 END

INITIAL:MOV SP,#60H

MOV R0,#20H

MOV R1,#60H

QINGLIN:CLR A

MOV @R0,A

INC R0

DJNZ R1,QINGLIN

MOV KC2,#30

MOV TCMAX0,#0E0H

MOV TCMAX1,#0C0H

MOV SECL,#250

MOV T100MS,#25

MOV TEMP0,#00H

MOV STA,#00H

MOV DSW,#00H

MOV DSB0,#02H

MOV DSB1,#05H

MOV DSB2,#09H

MOV DSB3,#08H

MOV DSB4,#0FFH

MOV TMOD,#51H

SETB TR0

A1: JNB TF0,$

CLR TF0

MOV TH0,#0F0H

MOV TL0,#60H

LCALL DISP

DJNZ SECL,A1

SETB TR1

SETB EX0

SETB IT0

;====读矩阵、独立按键子程序(延时去抖)====

RDKEY: ORL P2,#0FFH ;关闭LED数码显示器

CLR ROW0 ;ROW0=0,扫描K0~3键

NOP ;延时,键盘线越长延时越长

NOP

MOV A,P2

ANL A,#0FH ;K0~3键位保留

XRL A,#0FH ;求反转正逻辑

MOV R6,A ;新的键状态暂存R6

ORL P2,#0FFH ;关闭LED数码显示器

CLR ROW1 ;ROW1=0,扫描K4~7键

NOP ;延时,键盘线越长延时越长

NOP MOV A,P2 ANL A,#0FH XRL A,#0FH SWAP A ADD A,R6 MOV R6,A ORL P2,#0FFH CLR ROW2 NOP NOP MOV A,P2 ;K4~7键位保留 ;求反转正逻辑 ;新的键状态暂存R6 ;关闭LED数码显示器 ;ROW2=0,扫描K8~11键 ;延时,键盘线越长延时越长

ANL A,#03H ;K8~9键位保留

XRL A,#03H ;求反转正逻辑

MOV R7,A ;新的键状态暂存R7

ORL P2,#0FFH ;关闭矩阵键盘

ORL P1,#0C0H

MOV A,P1

ANL A,#0C0H

XRL A,#0C0H

ADD A,R7

MOV R7,A

;读独立按键 ;接独立键盘的位保留 ;求反转正逻辑 CJNE A,KEY0,RDK0 ;键状态变化则转移 CJNE A,KEY1,RDK0

MOV KTMR,#05H ;去抖延时器加载初值 SJMP RDK1

RDK0: MOV A,KTMR ;过了延时时间?

JZ RDK1

DEC KTMR ;延时未结束

MOV R7,KEY1 ;放弃不稳定的键状态

MOV R6,KEY0

RDK1: MOV A,KEY1 ;键前沿提取

XRL A,R7

ANL A,R7

MOV EKEY1,A

MOV KEY1,R7 ;启用键的新状态

MOV A,KEY0 ;键前沿提取

XRL A,R6

ANL A,R6

MOV EKEY0,A

MOV KEY0,R6 ;启用键的新状态

RET

;====脉冲计数值查表转换为温度==== …… 此处隐藏:3318字,全部文档内容请下载后查看。喜欢就下载吧 ……

简易温度控制器设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/98603.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)