📄 temp.asm
字号:
BEEP EQU P3.7
LED EQU P1.3
STATE EQU P3.6
KEY EQU P1.2
VIN EQU P1.0
COUNTER EQU 40H
ALARM_BIT BIT 50H ;1:报警 0:关闭
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP INTERRUPT_1S
ORG 0030H
MAIN:
;---------------------初始化
MOV SP,#50H
MOV P1,#00H
MOV COUNTER,#0 ;计数器清零
CLR BEEP ;关报警
SETB LED ;关指示灯
MOV TMOD,#01H ;定时器0,方式1 ,定时50ms
MOV TH0,#15H
MOV TL0,#9FH
SETB EA
SETB TR0
SETB ET0
SETB P1.0 ; P1.0,P1.1数字悬空
SETB P1.1
LOOP:JNB ALARM_BIT,NEXT1
LCALL ALARM
CLR LED
AJMP NEXT2
NEXT1:CLR BEEP
SETB LED
NEXT2:NOP
LJMP LOOP
;----------------------
INTERRUPT_1S:
PUSH PSW
PUSH ACC
MOV TH0,#15H
MOV TL0,#9FH
INC COUNTER
MOV A,COUNTER
CJNE A,#20,EXIT
SETB P1.0
SETB P1.1
MOV A,P3
ANL A,#40H ;读取比较结果
CJNE A,#40H,TEMP_LOW
SETB ALARM_BIT
;LCALL ALARM ;温度超限,开始报警
;CLR LED ;开报警灯
LJMP EXIT_ALARM
TEMP_LOW:
;SETB LED ;温度正常
CLR ALARM_BIT
;CLR BEEP ;关报警灯
EXIT_ALARM: MOV COUNTER,#0
EXIT: NOP
POP ACC
POP PSW
RETI
;----------------------
ALARM:
SETB BEEP
LCALL DELAY
CLR BEEP
LCALL DELAY
RET
DELAY:
MOV R6,#100
DELAY2:MOV R7,#0FFH
DELAY1:DJNZ R7,DELAY1
DJNZ R6,DELAY2
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -