📄 key_scan.tex.txt
字号:
XIAO_SHU EQU 26H
ZHENG_SHU_H EQU 27H
ZHENG_SHU_L EQU 28H
;籉0做为标志为为0是温度,1是PID
;R0为PID参数的确定PIDWEI为0时是P,1时是I,2时是D
MAIN:
MOV A,#0
MOV XIAO_SHU,A
MOV ZHENG_SHU_H,A
MOV ZHENG_SHU_L,A
LCALL DISP
LCALL SCAN_KEY
LCALL DISP
LJMP MAIN
SCAN_KEY:
LCALL DISP
MOV P2,#06H
MOV A,P2
CJNE A,#06H,HAVE
SJMP SCAN_KEY
HAVE:
ACALL DELAY_10MS
MOV P2,#0D6H
MOV C,P2.2
JC DIER12
MOV B,#1
LJMP WEN
DIER12:
MOV P2,#0D6H
MOV C,P2.1
JC DIER21
MOV B,#1
LJMP WEN1
DIER21:
MOV P2,#0B6H
MOV C,P2.2
JC DIER22
MOV B,#10
LJMP WEN
DIER22:
MOV P2,#0B6H
MOV C,P2.1
JC DIER31
MOV B,#10
LJMP WEN1
DIER31:
MOV P2,#076H
MOV C,P2.2
JC DIER32
MOV B,#100
LJMP WEN
DIER32:
MOV B,#100
LJMP WEN1
WEN:
CLR C
MOV A,ZHENG_SHU_L
ADD A,B
MOV ZHENG_SHU_L,A
MOV A,ZHENG_SHU_H
ADDC A,#0
MOV ZHENG_SHU_H,A
SJMP GOOD
WEN1:
CLR C
MOV A,ZHENG_SHU_L
SUBB A,B
MOV ZHENG_SHU_L,A
MOV A,ZHENG_SHU_H
SUBB A,#0
MOV ZHENG_SHU_H,A
JC QING
GOOD:
MOV P2,#0E6H
MOV C,P2.2
JC SCAN_KEY
SJMP TOTO
QING:
MOV ZHENG_SHU_H,#0
MOV ZHENG_SHU_L,#0
TOTO:
RET
;*****************************************
;*******************************************
;数码管显示
DISP:
MOV R1,#30
AA:
MOV DPTR,#TAB
MOV P2,#00H
MOV R4,ZHENG_SHU_H
MOV R5,ZHENG_SHU_L
MOV R7,#100
LCALL CHU_FA
MOV A,R3
CLR C
SUBB A,#0AH
JNC LING
MOV A,R3
MOVC A,@A+DPTR
MOV P0,A
SETB P2.4
LCALL DELAY_1MS
CLR P2.4
MOV A,R4
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV P0,A
SETB P2.7
LCALL DELAY_1MS
CLR P2.7
MOV A,B
CLR C
MOVC A,@A+DPTR
SUBB A,#80H
MOV P0,A
SETB P2.6
LCALL DELAY_1MS
CLR P2.6
MOV A,XIAO_SHU
MOVC A,@A+DPTR
MOV P0,A
SETB P2.5
LCALL DELAY_1MS
CLR P2.5
DJNZ R1,AA
SJMP OUTT
LING:
MOV ZHENG_SHU_H,#0
MOV ZHENG_SHU_L,#0
LJMP DISP
OUTT:
RET
;********************************************
CHU_FA:
CLR C
MOV A,R4
SUBB A,R7
JC DV50
SETB OV ;商溢出
RET
DV50: MOV R6,#8 ;求平均值(R4R5/R7-→R3)
DV51: MOV A,R5
RLC A
MOV R5,A
MOV A,R4
RLC A
MOV R4,A
MOV F0,C
CLR C
SUBB A,R7
ANL C,/F0 ;精妙
JC DV52
MOV R4,A
DV52: CPL C
MOV A,R3
RLC A
MOV R3,A
DJNZ R6,DV51
RET
;*****************************************
DELAY_10MS:
MOV B,#20
OK:
MOV R0,#250
DJNZ R0,$
DJNZ B,OK
RET
;**********************************************
;延时1MS
DELAY_1MS:
MOV R0,#250
DE:
NOP
NOP
DJNZ R0,DE
RET
;***********************************************
TAB: DB 0x88,0xdd,0x92,0xa2,0xe1,0xa4,0x84,0xe8,0x80,0xa0
;*******************************************
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -