📄 main.src
字号:
; .\main.SRC generated from: main.c
; COMPILER INVOKED BY:
; D:\Program Files\Keil 8.08\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND SRC(.\main.SRC)
$NOMOD51
NAME MAIN
P0 DATA 080H
P1 DATA 090H
P2 DATA 0A0H
P3 DATA 0B0H
T0 BIT 0B0H.4
AC BIT 0D0H.6
T1 BIT 0B0H.5
EA BIT 0A8H.7
IE DATA 0A8H
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
PS BIT 0B8H.4
SP DATA 081H
OV BIT 0D0H.2
WR BIT 0B0H.6
LED_G1 BIT 0A0H.1
LED_G2 BIT 0A0H.4
SBUF DATA 099H
PCON DATA 087H
P30 BIT 0B0H.0
P31 BIT 0B0H.1
SCON DATA 098H
TMOD DATA 089H
TCON DATA 088H
LED_R1 BIT 0A0H.3
LED_R2 BIT 0A0H.6
IE0 BIT 088H.1
IE1 BIT 088H.3
LED_Y1 BIT 0A0H.2
LED_Y2 BIT 0A0H.5
B DATA 0F0H
ACC DATA 0E0H
ET0 BIT 0A8H.1
ET1 BIT 0A8H.3
TF0 BIT 088H.5
TF1 BIT 088H.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
P BIT 0D0H.0
SM0 BIT 098H.7
TL0 DATA 08AH
SM1 BIT 098H.6
TL1 DATA 08BH
SM2 BIT 098H.5
PT0 BIT 0B8H.1
PT1 BIT 0B8H.3
RS0 BIT 0D0H.3
TR0 BIT 088H.4
RS1 BIT 0D0H.4
TR1 BIT 088H.6
PX0 BIT 0B8H.0
PX1 BIT 0B8H.2
DPH DATA 083H
DPL DATA 082H
REN BIT 098H.4
RXD BIT 0B0H.0
TXD BIT 0B0H.1
F0 BIT 0D0H.5
PSW DATA 0D0H
?PR?display?MAIN SEGMENT CODE
?PR?main?MAIN SEGMENT CODE
?CO?MAIN SEGMENT CODE
?DT?MAIN SEGMENT DATA
EXTRN CODE (?C_STARTUP)
PUBLIC TEMP
PUBLIC DBUF
PUBLIC Second2
PUBLIC Second1
PUBLIC LedMap
PUBLIC main
PUBLIC display
RSEG ?DT?MAIN
Second1: DS 1
Second2: DS 1
DBUF: DS 4
TEMP: DS 4
RSEG ?CO?MAIN
LedMap:
DB 03FH
DB 006H
DB 05BH
DB 04FH
DB 066H
DB 06DH
DB 07DH
DB 007H
DB 07FH
DB 06FH
DB 077H
DB 07CH
DB 058H
DB 05EH
DB 07BH
DB 071H
DB 000H
DB 040H
; #include <reg51.h>
; typedef unsigned char BYTE;
;
; sbit LED_G1=P2^1;
; sbit LED_Y1=P2^2;
; sbit LED_R1=P2^3;
;
; sbit LED_G2=P2^4;
; sbit LED_Y2=P2^5;
; sbit LED_R2=P2^6;
;
; sbit P30=P3^0;
; sbit P31=P3^1;
;
; BYTE Second1;
; BYTE Second2;
; BYTE DBUF[4]; //显示码缓冲区1
; BYTE TEMP[4];
; BYTE code LedMap[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,
; 0x7D,0x07,0x7F,0x6F,0x77,0x7C,
; 0x58,0x5E,0x7B,0x71,0x00,0x40};
;
; void display()
RSEG ?PR?display?MAIN
L?0073:
USING 0
L?0074:
MOV R4,#014H
L?0075:
DEC Second1
DEC Second2
display:
USING 0
; SOURCE LINE # 23
; {
; SOURCE LINE # 24
; BYTE dis_i;
; BYTE dis_j;
; BYTE offset;
;
; DBUF[3]=Second1/10;
; SOURCE LINE # 29
MOV A,Second1
MOV B,#0AH
DIV AB
MOV DBUF+03H,A
; DBUF[2]=Second1%10;
; SOURCE LINE # 30
MOV A,Second1
MOV B,#0AH
DIV AB
MOV DBUF+02H,B
; DBUF[1]=Second2/10;
; SOURCE LINE # 31
MOV A,Second2
MOV B,#0AH
DIV AB
MOV DBUF+01H,A
; DBUF[0]=Second2%10;
; SOURCE LINE # 32
MOV A,Second2
MOV B,#0AH
DIV AB
MOV DBUF,B
;
; dis_i=4;
; SOURCE LINE # 34
;---- Variable 'dis_i?040' assigned to Register 'R7' ----
MOV R7,#04H
; offset=0;
; SOURCE LINE # 35
;---- Variable 'offset?042' assigned to Register 'R6' ----
CLR A
MOV R6,A
?C0003:
; do
; {
; SOURCE LINE # 37
; TEMP[offset]=LedMap[DBUF[offset]];
; SOURCE LINE # 38
MOV A,#LOW (DBUF)
ADD A,R6
MOV R0,A
MOV A,@R0
MOV DPTR,#LedMap
MOVC A,@A+DPTR
MOV R5,A
MOV A,#LOW (TEMP)
ADD A,R6
MOV R0,A
MOV @R0,AR5
; offset++;
; SOURCE LINE # 39
INC R6
; }while(--dis_i);
; SOURCE LINE # 40
DJNZ R7,?C0003
;
; dis_i=0x04;
; SOURCE LINE # 42
MOV R7,#04H
; offset=0;
; SOURCE LINE # 43
CLR A
MOV R6,A
?C0006:
;
; do
; {
; SOURCE LINE # 46
; dis_j=0x08;
; SOURCE LINE # 47
;---- Variable 'dis_j?041' assigned to Register 'R5' ----
MOV R5,#08H
; ACC=TEMP[offset];
; SOURCE LINE # 48
MOV A,#LOW (TEMP)
ADD A,R6
MOV R0,A
MOV A,@R0
?C0009:
;
; do
; {
; SOURCE LINE # 51
;
; #pragma asm
; RLC A
RLC A
; #pragma endasm
;
; P30=CY;
; SOURCE LINE # 57
MOV P30,C
; P31=0;
; SOURCE LINE # 58
CLR P31
; P31=1;
; SOURCE LINE # 59
SETB P31
; }while(--dis_j);
; SOURCE LINE # 60
DJNZ R5,?C0009
; offset++;
; SOURCE LINE # 61
INC R6
; }while(--dis_i);
; SOURCE LINE # 62
DJNZ R7,?C0006
;
; }
; SOURCE LINE # 64
RET
; END OF display
;
; main()
RSEG ?PR?main?MAIN
main:
USING 0
; SOURCE LINE # 66
; {
; SOURCE LINE # 67
; BYTE delay_count; //延时次数
; BYTE second;
; BYTE flash;
;
; TMOD=0x01;
; SOURCE LINE # 72
MOV TMOD,#01H
; TH0 =0x3C;
; SOURCE LINE # 73
MOV TH0,#03CH
; TL0 =0xB0;
; SOURCE LINE # 74
MOV TL0,#0B0H
; TF0 =0;
; SOURCE LINE # 75
CLR TF0
; TR0 =1;
; SOURCE LINE # 76
SETB TR0
; P1 =0x00;
; SOURCE LINE # 77
CLR A
MOV P1,A
?C0011:
;
; while(1)
; SOURCE LINE # 79
; {
; SOURCE LINE # 80
; /******wait1******/
; delay_count=20;
; SOURCE LINE # 82
;---- Variable 'delay_count?143' assigned to Register 'R4' ----
MOV R4,#014H
; second=20;
; SOURCE LINE # 83
;---- Variable 'second?144' assigned to Register 'R3' ----
MOV R3,#014H
; Second1=25;
; SOURCE LINE # 84
MOV Second1,#019H
; Second2=25;
; SOURCE LINE # 85
MOV Second2,#019H
; display();
; SOURCE LINE # 86
LCALL display
;
; LED_G1=1;
; SOURCE LINE # 88
SETB LED_G1
; LED_Y1=0;
; SOURCE LINE # 89
CLR LED_Y1
; LED_R1=0;
; SOURCE LINE # 90
CLR LED_R1
; LED_G2=0;
; SOURCE LINE # 91
CLR LED_G2
; LED_Y2=0;
; SOURCE LINE # 92
CLR LED_Y2
; LED_R2=1;
; SOURCE LINE # 93
SETB LED_R2
;
; do
; {
; SOURCE LINE # 96
; do
; {
; SOURCE LINE # 98
?C0019:
; while(!TF0);
; SOURCE LINE # 99
JNB TF0,?C0019
?C0020:
; TF0=0;
; SOURCE LINE # 100
CLR TF0
; TH0=0x3C;
; SOURCE LINE # 101
MOV TH0,#03CH
; TL0=0xB0;
; SOURCE LINE # 102
MOV TL0,#0B0H
; }while(--delay_count);
; SOURCE LINE # 103
DJNZ R4,?C0019
;
; delay_count=20;
; SOURCE LINE # 105
; Second1--;
; SOURCE LINE # 106
; Second2--;
; SOURCE LINE # 107
; display();
; SOURCE LINE # 108
LCALL L?0073
; }while(--second);
; SOURCE LINE # 109
DJNZ R3,?C0019
;
;
; /******wait2******/
; delay_count=5;
; SOURCE LINE # 113
MOV R4,#05H
; second=3;
; SOURCE LINE # 114
MOV R3,#03H
; flash=4;
; SOURCE LINE # 115
;---- Variable 'flash?145' assigned to Register 'R2' ----
MOV R2,#04H
; Second1=5;
; SOURCE LINE # 116
MOV Second1,#05H
; Second2=5;
; SOURCE LINE # 117
MOV Second2,#05H
; display();
; SOURCE LINE # 118
LCALL display
;
; do
; {
; SOURCE LINE # 121
; do
; {
; SOURCE LINE # 123
; do
; {
; SOURCE LINE # 125
?C0032:
; do
; {
; SOURCE LINE # 127
; LED_Y1=0;
; SOURCE LINE # 128
CLR LED_Y1
; LED_R1=0;
; SOURCE LINE # 129
CLR LED_R1
; LED_G2=0;
; SOURCE LINE # 130
CLR LED_G2
; LED_Y2=0;
; SOURCE LINE # 131
CLR LED_Y2
; LED_R2=1;
; SOURCE LINE # 132
SETB LED_R2
; }while(!TF0);
; SOURCE LINE # 133
JNB TF0,?C0032
;
; TF0=0;
; SOURCE LINE # 135
CLR TF0
; TH0=0x3C;
; SOURCE LINE # 136
MOV TH0,#03CH
; TL0=0xB0;
; SOURCE LINE # 137
MOV TL0,#0B0H
; }while(--flash);
; SOURCE LINE # 138
DJNZ R2,?C0032
; LED_G1=~LED_G1;
; SOURCE LINE # 139
CPL LED_G1
; flash=4;
; SOURCE LINE # 140
MOV R2,#04H
; }while(--delay_count);
; SOURCE LINE # 141
DJNZ R4,?C0032
; delay_count=5;
; SOURCE LINE # 142
MOV R4,#05H
;
; Second1--;
; SOURCE LINE # 144
; Second2--;
; SOURCE LINE # 145
; display();
; SOURCE LINE # 146
LCALL L?0075
;
; }while(--second);
; SOURCE LINE # 148
DJNZ R3,?C0032
;
;
; /******wait3******/
; delay_count=20;
; SOURCE LINE # 152
MOV R4,#014H
; second=2;
; SOURCE LINE # 153
MOV R3,#02H
; Second1=2;
; SOURCE LINE # 154
MOV Second1,#02H
; Second2=2;
; SOURCE LINE # 155
MOV Second2,#02H
; display();
; SOURCE LINE # 156
LCALL display
;
; do
; {
; SOURCE LINE # 159
; do
; {
; SOURCE LINE # 161
?C0041:
; do
; {
; SOURCE LINE # 163
; LED_G1=0;
; SOURCE LINE # 164
CLR LED_G1
; LED_R1=0;
; SOURCE LINE # 165
CLR LED_R1
; LED_G2=0;
; SOURCE LINE # 166
CLR LED_G2
; LED_Y2=0;
; SOURCE LINE # 167
CLR LED_Y2
; LED_R2=1;
; SOURCE LINE # 168
SETB LED_R2
; LED_Y1=1;
; SOURCE LINE # 169
SETB LED_Y1
; }while(!TF0);
; SOURCE LINE # 170
JNB TF0,?C0041
;
; TF0=0;
; SOURCE LINE # 172
CLR TF0
; TH0=0x3C;
; SOURCE LINE # 173
MOV TH0,#03CH
; TL0=0xB0;
; SOURCE LINE # 174
MOV TL0,#0B0H
; }while(--delay_count);
; SOURCE LINE # 175
DJNZ R4,?C0041
; delay_count=20;
; SOURCE LINE # 176
; Second1--;
; SOURCE LINE # 177
; Second2--;
; SOURCE LINE # 178
; display();
; SOURCE LINE # 179
LCALL L?0073
;
; }while(--second);
; SOURCE LINE # 181
DJNZ R3,?C0041
;
; /******wait4******/
; delay_count=20;
; SOURCE LINE # 184
; second=20;
; SOURCE LINE # 185
MOV R3,#014H
; Second1=25;
; SOURCE LINE # 186
MOV Second1,#019H
; Second2=25;
; SOURCE LINE # 187
MOV Second2,#019H
; display();
; SOURCE LINE # 188
LCALL display
;
; do
; {
; SOURCE LINE # 191
; do
; {
; SOURCE LINE # 193
?C0050:
; do
; {
; SOURCE LINE # 195
; LED_G1=0;
; SOURCE LINE # 196
CLR LED_G1
; LED_Y1=0;
; SOURCE LINE # 197
CLR LED_Y1
; LED_R1=1;
; SOURCE LINE # 198
SETB LED_R1
; LED_G2=1;
; SOURCE LINE # 199
SETB LED_G2
; LED_Y2=0;
; SOURCE LINE # 200
CLR LED_Y2
; LED_R2=0;
; SOURCE LINE # 201
CLR LED_R2
; }while(!TF0);
; SOURCE LINE # 202
JNB TF0,?C0050
;
; TF0=0;
; SOURCE LINE # 204
CLR TF0
; TH0=0x3C;
; SOURCE LINE # 205
MOV TH0,#03CH
; TL0=0xB0;
; SOURCE LINE # 206
MOV TL0,#0B0H
; }while(--delay_count);
; SOURCE LINE # 207
DJNZ R4,?C0050
;
; delay_count=20;
; SOURCE LINE # 209
; Second1--;
; SOURCE LINE # 210
; Second2--;
; SOURCE LINE # 211
; display();
; SOURCE LINE # 212
LCALL L?0074
; }while(--second);
; SOURCE LINE # 213
DJNZ R3,?C0050
;
; /******wait5******/
; delay_count=5;
; SOURCE LINE # 216
MOV R4,#05H
; second=4;
; SOURCE LINE # 217
MOV R3,#04H
; flash=3;
; SOURCE LINE # 218
MOV R2,#03H
;
; Second1=5;
; SOURCE LINE # 220
MOV Second1,#05H
; Second2=5;
; SOURCE LINE # 221
MOV Second2,#05H
; display();
; SOURCE LINE # 222
LCALL display
;
; do
; {
; SOURCE LINE # 225
; do
; {
; SOURCE LINE # 227
; do
; {
; SOURCE LINE # 229
?C0062:
; do
; {
; SOURCE LINE # 231
; LED_G1=0;
; SOURCE LINE # 232
CLR LED_G1
; LED_Y1=0;
; SOURCE LINE # 233
CLR LED_Y1
; LED_R1=1;
; SOURCE LINE # 234
SETB LED_R1
; LED_Y2=0;
; SOURCE LINE # 235
CLR LED_Y2
; LED_R2=0;
; SOURCE LINE # 236
CLR LED_R2
; }while(!TF0);
; SOURCE LINE # 237
JNB TF0,?C0062
;
; TF0=0;
; SOURCE LINE # 239
CLR TF0
; TH0=0x3C;
; SOURCE LINE # 240
MOV TH0,#03CH
; TL0=0xB0;
; SOURCE LINE # 241
MOV TL0,#0B0H
; }while(--second);
; SOURCE LINE # 242
DJNZ R3,?C0062
;
; LED_G2=~LED_G2;
; SOURCE LINE # 244
CPL LED_G2
; second=4;
; SOURCE LINE # 245
MOV R3,#04H
; }while(--delay_count);
; SOURCE LINE # 246
DJNZ R4,?C0062
; delay_count=5;
; SOURCE LINE # 247
MOV R4,#05H
; Second1--;
; SOURCE LINE # 248
; Second2--;
; SOURCE LINE # 249
; display();
; SOURCE LINE # 250
LCALL L?0075
; }while(--flash);
; SOURCE LINE # 251
DJNZ R2,?C0062
;
;
; /******wait6******/
; delay_count=20;
; SOURCE LINE # 255
MOV R4,#014H
; second=2;
; SOURCE LINE # 256
MOV R3,#02H
; Second1=2;
; SOURCE LINE # 257
MOV Second1,#02H
; Second2=2;
; SOURCE LINE # 258
MOV Second2,#02H
; display();
; SOURCE LINE # 259
LCALL display
;
; do
; {
; SOURCE LINE # 262
; do
; {
; SOURCE LINE # 264
?C0071:
; do
; {
; SOURCE LINE # 266
; LED_G1=0;
; SOURCE LINE # 267
CLR LED_G1
; LED_Y1=0;
; SOURCE LINE # 268
CLR LED_Y1
; LED_R1=1;
; SOURCE LINE # 269
SETB LED_R1
; LED_G2=0;
; SOURCE LINE # 270
CLR LED_G2
; LED_R2=0;
; SOURCE LINE # 271
CLR LED_R2
; LED_Y2=1;
; SOURCE LINE # 272
SETB LED_Y2
; }while(!TF0);
; SOURCE LINE # 273
JNB TF0,?C0071
;
; TF0=0;
; SOURCE LINE # 275
CLR TF0
; TH0=0x3C;
; SOURCE LINE # 276
MOV TH0,#03CH
; TL0=0xB0;
; SOURCE LINE # 277
MOV TL0,#0B0H
; }while(--delay_count);
; SOURCE LINE # 278
DJNZ R4,?C0071
; delay_count=20;
; SOURCE LINE # 279
; Second1--;
; SOURCE LINE # 280
; Second2--;
; SOURCE LINE # 281
; display();
; SOURCE LINE # 282
LCALL L?0074
; }while(--second);
; SOURCE LINE # 283
DJNZ R3,?C0071
; }
; SOURCE LINE # 284
LJMP ?C0011
; END OF main
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -