本帖最后由 youlingcao 于 2013-5-2 20:54 编辑
ORG 5000H
MAIN:MOV SP,#60H
MOV 30H,#0 ;30H-33H显示缓冲区
MOV 31H,#0
MOV 32H,#0
MOV 33H,#0
MOV 50H,#5 ;存放温度设定值
MOV 51H,#2
MOV DPTR,#07100H ;选中8155
MOV A,#3H
MOVX @DPTR,A
MOV IP,#0FH ;中断优先级
MOV TCON,#05H ;外部中断脉冲触发有效
MOV IE,#8FH ;中断总允许,允许定时器和外部中断
MOV TMOD,#55H ;接通外部技术引脚T0T1
MOV TH0,#0FFH
MOV TL0,#0FFH
MOV TH1,#0FFH
MOV TL1,#0FFH
SETB TR0 ;启动定时器
SETB TR1
CLR P2.4
CLR P2.6
TURN:
LCALL WATER
LCALL ZHUANHUAN ;调用读温度子程序
LCALL DISPLAY
LCALL WARN ;水温水位报警
AJMP TURN
PLUS: ;温度加1中断
PUSH 30H
PUSH 31H
MOV TH0,#0FFH
MOV TL0,#0FFH
MOV A,50H
CJNE A,#9,CC
MOV 50H,#0
INC 51H
AJMP CC1
CC:INC 50H
CC1:
MOV 30H,50H
MOV 31H,51H
MOV R1,#07FH
CFU:LCALL DISP1 ;将设定值显示一段时间
DJNZ R1,CFU
POP 31H
POP 30H
RETI
MINUS: ;温度减1中断
PUSH 30H
PUSH 31H
MOV TH1,#0FFH
MOV TL1,#0FFH
MOV A,50H
CJNE A,#0,CC2
MOV 50H,#9
DEC 51H
AJMP CC3
CC2:DEC 50H
CC3:
MOV 30H,50H
MOV 31H,51H
MOV R1,#07FH
CFU1:LCALL DISP1
DJNZ R1,CFU1
POP 31H
POP 30H
RETI
有时会复位,有时又正常,是什么原因?
|