单片机温度控制18992541.doc
文本预览下载声明
PA EQU 8000H;8255PA口地址
PB EQU 8001H;8255PB口地址
PCO EQU 8002H;8255PC口地址
PCTL EQU 8003H;8255控制口地址
SDA EQU P1.3;I2C数据线
SCL EQU P1.4;I2C时钟线
SLAW EQU 70H;SAA1064写命令,地址为10h,最低位为0表示写
DQ EQU P1.5;3-WIRE数据线
CLK EQU P1.6;3-WIRE时钟线
NRST EQU P1.7;3-WIRE复位线
DSEG AT 20H
SE: DS 1
TH: DS 1;温度上限值
BUF: DS 4
TL: DS 1;温度下限值
NUMBYT: DS 1;向SA1064传送的字节数n存放单元
BUFTC: DS 2;向SA1064传送命令缓冲区
BUFTD: DS 4;向SA1064传送的数据缓冲区
BUFRD: DS 6;从SA1064接收数据缓冲区
DAT: DS 1;小数点前温度值存储单元
POINT: DS 1;小数点后温度值的存储单元
CSEG AT 0000H
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: CLR P1.0
MOV SP,#60H
MOV PSW,#00H
MOV R3,#100
MOV TH,#40;温度上线默认值
MOV TL,#20;温度下线默认值
MOV SE,#35;温度设定值的默认值
MOV DPTR,#PCTL;设置8255工作方式0
MOV A,#88H;PA口,PB口,pc口低4位作为输出用
MOVX @DPTR,A;pc口高4位作为输入使用
MOV DPTR,#PB
MOV A,#0FH
MOVX @DPTR,A
MOV DPTR,#PA
MOV A,#00H
MOVX @DPTR,A
MAIN1: LCALL BEGIN;复位命令
MOV A,#0CH;写配置寄存器
LCALL W8BIT
MOV A,#0AH;连续转换模式数据
LCALL W8BIT
LCALL BEGIN;结束上次通讯,开始下一次通讯
MOV A,#01H
LCALL W8BIT
MOV A,TH;写最高温度值
MOV POINT,#0
LCALL W9BIT
LCALL BEGIN
MOV A,#02H
LCALL W8BIT
MOV A,TL;写最低温度值
MOV POINT,#0
LCALL W9BIT
LCALL BEGIN
MOV A,#0EEH
LCALL W8BIT
CLR NRST;结束上一次通讯
MOV R2,0FFH
K555: LCALL DISPLY;8255显示设置温度
DJNZ R2,K555
RENU: LCALL BEGIN;复位命令
MOV A,#0AAH;写入度温度值
LCALL W8BIT
LCALL R9BIT;读9位温度值
MOV DAT,A
CLR C
SUBB A ,TH
JC SW3
CLR P3.4;开电热器
CLR P3.4
CLR P3.4
SJMP SW33
SW3: SETB P3.4;关加热器
SW33: MOV A,DAT;当前的温度-(设定温度+2)
CLR C
SUBB A,TL
JNC SW4;当前的温度(设定温度+2)转SW4
CLR P3.4
SJMP SW44;当前的温度(设定温度-2)转SW44
SW4: SETB P3.4;关加热器
SW44: MOV A,DAT
CLR C
ADD A,#2
SUBB A,SE
JC SWK ;温度低于设定值2摄氏度时
MOV A,DAT
CLR C
SUBB A,#2
SUBB A,SE
JNC SWG;温度高于设定值2摄氏度时
SJMP SW
SWK:
显示全部