📄 keyboard.src
字号:
; if(PinScanKey2==TRUE)
; SOURCE LINE # 142
JNB P1_5,?C0020
; { delay(DELAY_VALUE); //假如判断还有信号,则再延时
; SOURCE LINE # 143
LCALL L?0058
; if(PinScanKey2==TRUE)
; SOURCE LINE # 144
JNB P1_5,?C0020
; return 6;} //确认确实有按键信号,返回键值
; SOURCE LINE # 145
MOV R7,#06H
RET
?C0020:
; if(PinScanKey3==TRUE)
; SOURCE LINE # 146
JNB P1_6,?C0022
; PinLamp=FALSE;
; SOURCE LINE # 147
CLR P0_0
?C0022:
; PinSpeaker=FALSE;
; SOURCE LINE # 148
; delay(DELAY_VALUE); //如果判断有信号,则延时一次
; SOURCE LINE # 149
LCALL L?0057
; PinLamp=TRUE;
; SOURCE LINE # 150
SETB P0_0
; PinSpeaker=TRUE;
; SOURCE LINE # 151
SETB P0_1
; if(PinScanKey3==TRUE)
; SOURCE LINE # 152
JNB P1_6,?C0023
; { delay(DELAY_VALUE); //假如判断还有信号,则再延时
; SOURCE LINE # 153
LCALL L?0058
; if(PinScanKey3==TRUE)
; SOURCE LINE # 154
JNB P1_6,?C0023
; return 0;} //确认确实有按键信号,返回键值
; SOURCE LINE # 155
MOV R7,#00H
RET
?C0023:
; if(PinScanKey4==TRUE)
; SOURCE LINE # 156
JNB P1_7,?C0025
; PinLamp=FALSE;
; SOURCE LINE # 157
CLR P0_0
?C0025:
; PinSpeaker=FALSE;
; SOURCE LINE # 158
; delay(DELAY_VALUE); //如果判断有信号,则延时一次
; SOURCE LINE # 159
LCALL L?0057
; PinLamp=TRUE;
; SOURCE LINE # 160
SETB P0_0
; PinSpeaker=TRUE;
; SOURCE LINE # 161
SETB P0_1
; if(PinScanKey4==TRUE)
; SOURCE LINE # 162
JNB P1_7,?C0026
; { delay(DELAY_VALUE); //假如判断还有信号,则再延时
; SOURCE LINE # 163
LCALL L?0058
; if(PinScanKey4==TRUE)
; SOURCE LINE # 164
JNB P1_7,?C0026
; return 13;} //确认确实有按键信号,返回键值
; SOURCE LINE # 165
MOV R7,#0DH
RET
?C0026:
; PinDrvKey2=FALSE; //以上语句扫描第二列
; SOURCE LINE # 166
CLR P1_1
; PinDrvKey3=TRUE;
; SOURCE LINE # 167
SETB P1_2
; if(PinScanKey1==TRUE)
; SOURCE LINE # 168
JNB P1_4,?C0028
; PinLamp=FALSE;
; SOURCE LINE # 169
CLR P0_0
?C0028:
; PinSpeaker=FALSE;
; SOURCE LINE # 170
; delay(DELAY_VALUE); //如果判断有信号,则延时一次
; SOURCE LINE # 171
LCALL L?0057
; PinLamp=TRUE;
; SOURCE LINE # 172
SETB P0_0
; PinSpeaker=TRUE;
; SOURCE LINE # 173
SETB P0_1
; if(PinScanKey1==TRUE)
; SOURCE LINE # 174
JNB P1_4,?C0029
; { delay(DELAY_VALUE); //假如判断还有信号,则再延时
; SOURCE LINE # 175
LCALL L?0058
; if(PinScanKey1==TRUE)
; SOURCE LINE # 176
JNB P1_4,?C0029
; return 3;} //确认确实有按键信号,返回键值
; SOURCE LINE # 177
MOV R7,#03H
RET
?C0029:
; if(PinScanKey2==TRUE)
; SOURCE LINE # 178
JNB P1_5,?C0031
; PinLamp=FALSE;
; SOURCE LINE # 179
CLR P0_0
?C0031:
; PinSpeaker=FALSE;
; SOURCE LINE # 180
; delay(DELAY_VALUE); //如果判断有信号,则延时一次
; SOURCE LINE # 181
LCALL L?0057
; PinLamp=TRUE;
; SOURCE LINE # 182
SETB P0_0
; PinSpeaker=TRUE;
; SOURCE LINE # 183
SETB P0_1
; if(PinScanKey2==TRUE)
; SOURCE LINE # 184
JNB P1_5,?C0032
; { delay(DELAY_VALUE); //假如判断还有信号,则再延时
; SOURCE LINE # 185
LCALL L?0058
; if(PinScanKey2==TRUE)
; SOURCE LINE # 186
JNB P1_5,?C0032
; return 7;} //确认确实有按键信号,返回键值
; SOURCE LINE # 187
MOV R7,#07H
RET
?C0032:
; if(PinScanKey3==TRUE)
; SOURCE LINE # 188
JNB P1_6,?C0034
; PinLamp=FALSE;
; SOURCE LINE # 189
CLR P0_0
?C0034:
; PinSpeaker=FALSE;
; SOURCE LINE # 190
; delay(DELAY_VALUE); //如果判断有信号,则延时一次
; SOURCE LINE # 191
LCALL L?0057
; PinLamp=TRUE;
; SOURCE LINE # 192
SETB P0_0
; PinSpeaker=TRUE;
; SOURCE LINE # 193
SETB P0_1
; if(PinScanKey3==TRUE)
; SOURCE LINE # 194
JNB P1_6,?C0035
; { delay(DELAY_VALUE); //假如判断还有信号,则再延时
; SOURCE LINE # 195
LCALL L?0058
; if(PinScanKey3==TRUE)
; SOURCE LINE # 196
JNB P1_6,?C0035
; return 10;} //确认确实有按键信号,返回键值
; SOURCE LINE # 197
MOV R7,#0AH
RET
?C0035:
; if(PinScanKey4==TRUE)
; SOURCE LINE # 198
JNB P1_7,?C0037
; PinLamp=FALSE;
; SOURCE LINE # 199
CLR P0_0
?C0037:
; PinSpeaker=FALSE;
; SOURCE LINE # 200
; delay(DELAY_VALUE); //如果判断有信号,则延时一次
; SOURCE LINE # 201
LCALL L?0057
; PinLamp=TRUE;
; SOURCE LINE # 202
SETB P0_0
; PinSpeaker=TRUE;
; SOURCE LINE # 203
SETB P0_1
; if(PinScanKey4==TRUE)
; SOURCE LINE # 204
JNB P1_7,?C0038
; { delay(DELAY_VALUE); //假如判断还有信号,则再延时
; SOURCE LINE # 205
LCALL L?0058
; if(PinScanKey4==TRUE)
; SOURCE LINE # 206
JNB P1_7,?C0038
; return 14;} //确认确实有按键信号,返回键值
; SOURCE LINE # 207
MOV R7,#0EH
RET
?C0038:
; PinDrvKey3=FALSE; //以上语句扫描第三列
; SOURCE LINE # 208
CLR P1_2
; PinDrvKey4=TRUE;
; SOURCE LINE # 209
SETB P1_3
; if(PinScanKey4==TRUE)
; SOURCE LINE # 210
JNB P1_7,?C0040
; PinLamp=FALSE;
; SOURCE LINE # 211
CLR P0_0
?C0040:
; PinSpeaker=FALSE;
; SOURCE LINE # 212
; delay(DELAY_VALUE); //如果判断有信号,则延时一次
; SOURCE LINE # 213
LCALL L?0057
; PinLamp=TRUE;
; SOURCE LINE # 214
SETB P0_0
; PinSpeaker=TRUE;
; SOURCE LINE # 215
SETB P0_1
; if(PinScanKey1==TRUE)
; SOURCE LINE # 216
JNB P1_4,?C0041
; { delay(DELAY_VALUE); //假如判断还有信号,则再延时
; SOURCE LINE # 217
LCALL L?0058
; if(PinScanKey1==TRUE)
; SOURCE LINE # 218
JNB P1_4,?C0041
; return 4;} //确认确实有按键信号,返回键值
; SOURCE LINE # 219
MOV R7,#04H
RET
?C0041:
; if(PinScanKey2==TRUE)
; SOURCE LINE # 220
JNB P1_5,?C0043
; PinLamp=FALSE;
; SOURCE LINE # 221
CLR P0_0
?C0043:
; PinSpeaker=FALSE;
; SOURCE LINE # 222
; delay(DELAY_VALUE); //如果判断有信号,则延时一次
; SOURCE LINE # 223
LCALL L?0057
; PinLamp=TRUE;
; SOURCE LINE # 224
SETB P0_0
; PinSpeaker=TRUE;
; SOURCE LINE # 225
SETB P0_1
; if(PinScanKey2==TRUE)
; SOURCE LINE # 226
JNB P1_5,?C0044
; { delay(DELAY_VALUE); //假如判断还有信号,则再延时
; SOURCE LINE # 227
LCALL L?0058
; if(PinScanKey2==TRUE)
; SOURCE LINE # 228
JNB P1_5,?C0044
; return 8;} //确认确实有按键信号,返回键值
; SOURCE LINE # 229
MOV R7,#08H
RET
?C0044:
; if(PinScanKey3==TRUE)
; SOURCE LINE # 230
JNB P1_6,?C0046
; PinLamp=FALSE;
; SOURCE LINE # 231
CLR P0_0
?C0046:
; PinSpeaker=FALSE;
; SOURCE LINE # 232
; delay(DELAY_VALUE); //如果判断有信号,则延时一次
; SOURCE LINE # 233
LCALL L?0057
; PinLamp=TRUE;
; SOURCE LINE # 234
SETB P0_0
; PinSpeaker=TRUE;
; SOURCE LINE # 235
SETB P0_1
; if(PinScanKey3==TRUE)
; SOURCE LINE # 236
JNB P1_6,?C0047
; { delay(DELAY_VALUE); //假如判断还有信号,则再延时
; SOURCE LINE # 237
LCALL L?0058
; if(PinScanKey3==TRUE)
; SOURCE LINE # 238
JNB P1_6,?C0047
; return 11;} //确认确实有按键信号,返回键值
; SOURCE LINE # 239
MOV R7,#0BH
RET
?C0047:
; if(PinScanKey4==TRUE)
; SOURCE LINE # 240
JNB P1_7,?C0049
; PinLamp=FALSE;
; SOURCE LINE # 241
CLR P0_0
?C0049:
; PinSpeaker=FALSE;
; SOURCE LINE # 242
; delay(DELAY_VALUE); //如果判断有信号,则延时一次
; SOURCE LINE # 243
LCALL L?0057
; PinLamp=TRUE;
; SOURCE LINE # 244
SETB P0_0
; PinSpeaker=TRUE;
; SOURCE LINE # 245
SETB P0_1
; if(PinScanKey4==TRUE)
; SOURCE LINE # 246
JNB P1_7,?C0050
; { delay(DELAY_VALUE); //假如判断还有信号,则再延时
; SOURCE LINE # 247
LCALL L?0058
; if(PinScanKey4==TRUE)
; SOURCE LINE # 248
JNB P1_7,?C0050
; return 15;} //假如判断还有信号,则再延时
; SOURCE LINE # 249
MOV R7,#0FH
RET
?C0050:
; PinDrvKey3=FALSE; //以上语句扫描第四列
; SOURCE LINE # 250
CLR P1_2
; return 16;
; SOURCE LINE # 251
MOV R7,#010H
; }
; SOURCE LINE # 252
?C0006:
RET
; END OF keyscan
;
;
; void delay(short i)
RSEG ?PR?_delay?KEYBOARD
L?0056:
USING 0
L?0057:
CLR P0_1
L?0058:
MOV R7,#03H
MOV R6,#00H
_delay:
USING 0
; SOURCE LINE # 255
;---- Variable 'i?341' assigned to Register 'R6/R7' ----
; {
; SOURCE LINE # 256
; int j=0;
; SOURCE LINE # 257
;---- Variable 'j?342' assigned to Register 'R2/R3' ----
CLR A
MOV R3,A
MOV R2,A
; int k=0;
; SOURCE LINE # 258
;---- Variable 'k?343' assigned to Register 'R4/R5' ----
MOV R4,A
; k=i*DELAY_VALUE;
; SOURCE LINE # 259
MOV R5,#03H
LCALL ?C?IMUL
MOV R4,AR6
MOV R5,AR7
?C0052:
; while (j<k)j++;
; SOURCE LINE # 260
CLR C
MOV A,R3
SUBB A,R5
MOV A,R4
XRL A,#080H
MOV R0,A
MOV A,R2
XRL A,#080H
SUBB A,R0
JNC ?C0054
INC R3
CJNE R3,#00H,?C0055
INC R2
?C0055:
SJMP ?C0052
; }
; SOURCE LINE # 261
?C0054:
RET
; END OF _delay
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -