⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 key_scan.tex.txt

📁 键盘扫描
💻 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 + -