📄 1.src
字号:
; .\1.SRC generated from: 1.c
; COMPILER INVOKED BY:
; C:\Keil\C51\BIN\C51.EXE 1.c BROWSE DEBUG OBJECTEXTEND SRC(.\1.SRC)
$NOMOD51
NAME _1
P0 DATA 080H
P1 DATA 090H
P2 DATA 0A0H
P3 DATA 0B0H
T0 BIT 0B0H.4
AC BIT 0D0H.6
T1 BIT 0B0H.5
T2 BIT 090H.0
EA BIT 0A8H.7
IE DATA 0A8H
EXF2 BIT 0C8H.6
RD BIT 0B0H.7
ES BIT 0A8H.4
IP DATA 0B8H
RI BIT 098H.0
INT0 BIT 0B0H.2
CY BIT 0D0H.7
TI BIT 098H.1
INT1 BIT 0B0H.3
RCAP2H DATA 0CBH
PS BIT 0B8H.4
SP DATA 081H
T2EX BIT 090H.1
OV BIT 0D0H.2
RCAP2L DATA 0CAH
C_T2 BIT 0C8H.1
WR BIT 0B0H.6
RCLK BIT 0C8H.5
TCLK BIT 0C8H.4
SBUF DATA 099H
PCON DATA 087H
SCON DATA 098H
TMOD DATA 089H
TCON DATA 088H
IE0 BIT 088H.1
IE1 BIT 088H.3
B DATA 0F0H
CP_RL2 BIT 0C8H.0
ACC DATA 0E0H
ET0 BIT 0A8H.1
ET1 BIT 0A8H.3
TF0 BIT 088H.5
ET2 BIT 0A8H.5
TF1 BIT 088H.7
TF2 BIT 0C8H.7
RB8 BIT 098H.2
TH0 DATA 08CH
EX0 BIT 0A8H.0
IT0 BIT 088H.0
TH1 DATA 08DH
TB8 BIT 098H.3
EX1 BIT 0A8H.2
IT1 BIT 088H.2
TH2 DATA 0CDH
P BIT 0D0H.0
SM0 BIT 098H.7
TL0 DATA 08AH
SM1 BIT 098H.6
TL1 DATA 08BH
SM2 BIT 098H.5
TL2 DATA 0CCH
PT0 BIT 0B8H.1
PT1 BIT 0B8H.3
RS0 BIT 0D0H.3
PT2 BIT 0B8H.5
TR0 BIT 088H.4
RS1 BIT 0D0H.4
TR1 BIT 088H.6
TR2 BIT 0C8H.2
PX0 BIT 0B8H.0
PX1 BIT 0B8H.2
DPH DATA 083H
DPL DATA 082H
EXEN2 BIT 0C8H.3
REN BIT 098H.4
T2CON DATA 0C8H
RXD BIT 0B0H.0
TXD BIT 0B0H.1
sendport BIT 0B0H.0
F0 BIT 0D0H.5
PSW DATA 0D0H
?PR?undisplay?1 SEGMENT CODE
?PR?_delay?1 SEGMENT CODE
?PR?kbscan1?1 SEGMENT CODE
?DT?kbscan1?1 SEGMENT DATA OVERLAYABLE
?PR?kbscan2?1 SEGMENT CODE
?DT?kbscan2?1 SEGMENT DATA OVERLAYABLE
?PR?_display?1 SEGMENT CODE
?PR?_sendh?1 SEGMENT CODE
?PR?_send?1 SEGMENT CODE
?BI?_send?1 SEGMENT BIT OVERLAYABLE
?PR?original?1 SEGMENT CODE
?PR?kbscan?1 SEGMENT CODE
?PR?qudata?1 SEGMENT CODE
?DT?qudata?1 SEGMENT DATA OVERLAYABLE
?PR?main?1 SEGMENT CODE
?C_INITSEG SEGMENT CODE
?BA?1 SEGMENT DATA BITADDRESSABLE
?DT?1 SEGMENT DATA
?BI?1 SEGMENT BIT
EXTRN CODE (?C?CCASE)
EXTRN CODE (?C_STARTUP)
PUBLIC ad7
PUBLIC m
PUBLIC address
PUBLIC key
PUBLIC datayuan7
PUBLIC datayuan
PUBLIC datafan7
PUBLIC datafan
PUBLIC main
PUBLIC qudata
PUBLIC kbscan
PUBLIC original
PUBLIC _send
PUBLIC _sendh
PUBLIC _display
PUBLIC kbscan2
PUBLIC kbscan1
PUBLIC _delay
PUBLIC undisplay
RSEG ?DT?qudata?1
?qudata?BYTE:
y?949: DS 1
RSEG ?BI?_send?1
?_send?BIT:
c?647: DBIT 1
RSEG ?DT?kbscan1?1
?kbscan1?BYTE:
l?241: DS 1
RSEG ?DT?kbscan2?1
?kbscan2?BYTE:
l?342: DS 1
RSEG ?BA?1
datafan: DS 1
datayuan: DS 1
address: DS 1
datafan7 EQU (datafan+0).7
datayuan7 EQU (datayuan+0).7
ad7 EQU (address+0).7
RSEG ?DT?1
key: DS 1
RSEG ?BI?1
m: DBIT 1
RSEG ?C_INITSEG
DB 001H
DB key
DB 000H
DB 0C1H, m + 000H ; bit-init
; #include<REG52.H>
; #define uchar unsigned char
; #define uint unsigned int
; sbit sendport=P3^0;
; uchar bdata address;
; sbit ad7=address^7;
; uchar bdata datafan;
; sbit datafan7=datafan^7;
; uchar bdata datayuan;
; sbit datayuan7=datayuan^7;
; uchar key=0x00;
; bit m=0;
;
;
; /*=========关显示==========*/
;
; void undisplay()
RSEG ?PR?undisplay?1
undisplay:
; SOURCE LINE # 17
; {
; SOURCE LINE # 18
; P2=0x00;
; SOURCE LINE # 19
CLR A
MOV P2,A
; P3=0x00;
; SOURCE LINE # 20
MOV P3,A
; }
; SOURCE LINE # 21
RET
; END OF undisplay
;
;
; /*=========延时函数==========*/
;
; void delay(uint i)
RSEG ?PR?_delay?1
L?0092:
USING 0
L?0093:
MOV R7,#082H
MOV R6,#00H
_delay:
USING 0
; SOURCE LINE # 26
;---- Variable 'i?140' assigned to Register 'R6/R7' ----
; {
; SOURCE LINE # 27
?C0002:
; while(--i);
; SOURCE LINE # 28
MOV A,R7
DEC R7
JNZ ?C0087
DEC R6
?C0087:
DEC A
ORL A,R6
JNZ ?C0002
; }
; SOURCE LINE # 29
?C0004:
RET
; END OF _delay
;
;
; /*=========键盘扫描函数1==========*/
;
; uchar kbscan1()
RSEG ?PR?kbscan1?1
kbscan1:
USING 0
; SOURCE LINE # 34
; {
; SOURCE LINE # 35
; uchar l=0;
; SOURCE LINE # 36
CLR A
MOV l?241,A
; P1=0xff;
; SOURCE LINE # 37
MOV P1,#0FFH
; if(P1==0xff) //没有键按下
; SOURCE LINE # 38
MOV A,P1
CJNE A,#0FFH,?C0005
?C0006:
; while(1)
; SOURCE LINE # 39
; {
; SOURCE LINE # 40
; if(P1!=0xff)
; SOURCE LINE # 41
MOV A,P1
CPL A
JZ ?C0006
; break;
; SOURCE LINE # 42
; }
; SOURCE LINE # 43
?C0005:
;
; if(P1!=0xff) //有键按下
; SOURCE LINE # 45
MOV A,P1
CPL A
JZ ?C0009
; {
; SOURCE LINE # 46
; delay(0x04e1); //延时10毫秒
; SOURCE LINE # 47
MOV R7,#0E1H
MOV R6,#04H
LCALL _delay
; if(P1!=0xff) //确有键按下
; SOURCE LINE # 48
MOV A,P1
CPL A
JZ ?C0009
; {
; SOURCE LINE # 49
; switch(P1)
; SOURCE LINE # 50
MOV R7,P1
MOV A,R7
ADD A,#081H
JZ ?C0019
ADD A,#0C0H
JZ ?C0018
ADD A,#0E0H
JZ ?C0017
ADD A,#0F0H
JZ ?C0016
ADD A,#0F8H
JZ ?C0015
ADD A,#0FCH
JZ ?C0014
ADD A,#0FEH
JZ ?C0013
DEC A
JNZ ?C0009
; {
; SOURCE LINE # 51
; case 0xfe:l=0x06;break;
; SOURCE LINE # 52
?C0012:
MOV l?241,#06H
SJMP ?C0009
; case 0xfd:l=0x5b;break;
; SOURCE LINE # 53
?C0013:
MOV l?241,#05BH
SJMP ?C0009
; case 0xfb:l=0x4f;break;
; SOURCE LINE # 54
?C0014:
MOV l?241,#04FH
SJMP ?C0009
; case 0xf7:l=0x66;break;
; SOURCE LINE # 55
?C0015:
MOV l?241,#066H
SJMP ?C0009
; case 0xef:l=0x6d;break;
; SOURCE LINE # 56
?C0016:
MOV l?241,#06DH
SJMP ?C0009
; case 0xdf:l=0x7d;break;
; SOURCE LINE # 57
?C0017:
MOV l?241,#07DH
SJMP ?C0009
; case 0xbf:l=0x07;break;
; SOURCE LINE # 58
?C0018:
MOV l?241,#07H
SJMP ?C0009
; case 0x7f:l=0x01;break;
; SOURCE LINE # 59
?C0019:
MOV l?241,#01H
; default: break; //读键值
; SOURCE LINE # 60
; }
; SOURCE LINE # 61
; }
; SOURCE LINE # 62
; }
; SOURCE LINE # 63
?C0009:
; return l;
; SOURCE LINE # 64
MOV R7,l?241
; }
; SOURCE LINE # 65
?C0021:
RET
; END OF kbscan1
;
; /*=========键盘扫描函数2==========*/
;
;
;
; uchar kbscan2()
RSEG ?PR?kbscan2?1
kbscan2:
USING 0
; SOURCE LINE # 71
; {
; SOURCE LINE # 72
; uchar l=0;
; SOURCE LINE # 73
CLR A
MOV l?342,A
; P1=0xff;
; SOURCE LINE # 74
MOV P1,#0FFH
; if(P1==0xff) //没有键按下
; SOURCE LINE # 75
MOV A,P1
CJNE A,#0FFH,?C0022
?C0023:
; while(1)
; SOURCE LINE # 76
; {
; SOURCE LINE # 77
; if(P1!=0xff)
; SOURCE LINE # 78
MOV A,P1
CPL A
JZ ?C0023
; break;
; SOURCE LINE # 79
; }
; SOURCE LINE # 80
?C0022:
; if(P1!=0xff) //有键按下
; SOURCE LINE # 81
MOV A,P1
CPL A
JZ ?C0026
; {
; SOURCE LINE # 82
; delay(0x04e1); //延时10毫秒
; SOURCE LINE # 83
MOV R7,#0E1H
MOV R6,#04H
LCALL _delay
; if(P1!=0xff) //确有键按下
; SOURCE LINE # 84
MOV A,P1
CPL A
JZ ?C0026
; {
; SOURCE LINE # 85
; switch(P1)
; SOURCE LINE # 86
MOV R7,P1
MOV A,R7
ADD A,#081H
JZ ?C0036
ADD A,#0C0H
JZ ?C0035
ADD A,#0E0H
JZ ?C0034
ADD A,#0F0H
JZ ?C0033
ADD A,#0F8H
JZ ?C0032
ADD A,#0FCH
JZ ?C0031
ADD A,#0FEH
JZ ?C0030
DEC A
JNZ ?C0026
; {
; SOURCE LINE # 87
; case 0xfe:l=0x7f;break;
; SOURCE LINE # 88
?C0029:
MOV l?342,#07FH
SJMP ?C0026
; case 0xfd:l=0x6f;break;
; SOURCE LINE # 89
?C0030:
MOV l?342,#06FH
SJMP ?C0026
; case 0xfb:l=0x77;break;
; SOURCE LINE # 90
?C0031:
MOV l?342,#077H
SJMP ?C0026
; case 0xf7:l=0x7c;break;
; SOURCE LINE # 91
?C0032:
MOV l?342,#07CH
SJMP ?C0026
; case 0xef:l=0x39;break;
; SOURCE LINE # 92
?C0033:
MOV l?342,#039H
SJMP ?C0026
; case 0xdf:l=0x5e;break;
; SOURCE LINE # 93
?C0034:
MOV l?342,#05EH
SJMP ?C0026
; case 0xbf:l=0x79;break;
; SOURCE LINE # 94
?C0035:
MOV l?342,#079H
SJMP ?C0026
; case 0x7f:l=0x02;break;
; SOURCE LINE # 95
?C0036:
MOV l?342,#02H
; default: break; //读键值
; SOURCE LINE # 96
; }
; SOURCE LINE # 97
; }
; SOURCE LINE # 98
; }
; SOURCE LINE # 99
?C0026:
; return l;
; SOURCE LINE # 100
MOV R7,l?342
; }
; SOURCE LINE # 101
?C0038:
RET
; END OF kbscan2
;
; /*=========显示函数==========*/
; void display(uchar n)
RSEG ?PR?_display?1
_display:
; SOURCE LINE # 104
;---- Variable 'n?443' assigned to Register 'R7' ----
; {
; SOURCE LINE # 105
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -