📄 main.lst
字号:
C51 COMPILER V6.12 MAIN 12/02/2007 22:57:01 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\main.c DEBUG OBJECTEXTEND CODE
stmt level source
1 #include <reg51.h>
2 unsigned long count = 0;
3 unsigned long show_count = 0;
4
5 unsigned char digest[11] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x83,0xF8,0x80,0x98,0xC6};
6 unsigned char scancode[8] = {0x1,0x2,0x4,0x8,0x10,0x20,0x40,0x80};
7
8 sbit P1_0 = P1^0;
9
10 #define HIGH_BIT 0xFB
11 #define LOW_BIT 0x80
12
13 void Disp(int id)
14 {
15 1 P2 = 0;
16 1 P2 = scancode[id];
17 1 P0 = 0xff;
18 1 switch (id)
19 1 {
20 2 case 0: P0 = digest[(show_count / 10000000) % 10]; break;
21 2 case 1: P0 = digest[(show_count / 1000000) % 10]; break;
22 2 case 2: P0 = digest[(show_count / 100000) % 10]; break;
23 2 case 3: P0 = digest[(show_count / 10000) % 10]; break;
24 2 case 4: P0 = digest[(show_count / 1000) % 10]; break;
25 2 case 5: P0 = digest[(show_count / 100) % 10]; break;
26 2 case 6: P0 = digest[(show_count /10) % 10]; break;
27 2 case 7: P0 = digest[show_count % 10]; break;
28 2 }
29 1 }
30
31 void Timer0() interrupt 1
32 {
33 1 static unsigned int scount = 0;
34 1 static unsigned char rcount = 0;
35 1 TH0 = HIGH_BIT;
36 1 TL0 = LOW_BIT + 34;
37 1 scount++;
38 1
39 1 if (scount == 800) //1 second
40 1 {
41 2 scount = 0;
42 2 show_count = count;
43 2 count = 0;
44 2 }else if (scount % 2 == 0)
45 1 {
46 2 rcount++;
47 2 if (rcount == 8) rcount = 0;
48 2 Disp(rcount);
49 2 }
50 1
51 1 count += (TH1 << 8) | TL1;
52 1 TH1 = TL1 = 0;
53 1 }
54
55 void main()
C51 COMPILER V6.12 MAIN 12/02/2007 22:57:01 PAGE 2
56 {
57 1 TMOD = 0x51;
58 1 // 11.0592 Mhz 1.152 ms
59 1 TH0 = HIGH_BIT;
60 1 TL0 = LOW_BIT;
61 1 //initalize output counter
62 1 TH1 = 0;
63 1 TL1 = 0;
64 1
65 1 EA=1;
66 1 ET0=1;
67 1 TR0=1;
68 1 TR1=1;
69 1
70 1 for (;;);
71 1 }
C51 COMPILER V6.12 MAIN 12/02/2007 22:57:01 PAGE 3
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION _Disp (BEGIN)
;---- Variable 'id' assigned to Register 'R6/R7' ----
; SOURCE LINE # 13
; SOURCE LINE # 14
; SOURCE LINE # 15
0000 E4 CLR A
0001 F5A0 MOV P2,A
; SOURCE LINE # 16
0003 7400 R MOV A,#LOW scancode
0005 2F ADD A,R7
0006 F8 MOV R0,A
0007 E6 MOV A,@R0
0008 F5A0 MOV P2,A
; SOURCE LINE # 17
000A 7580FF MOV P0,#0FFH
; SOURCE LINE # 18
000D EE MOV A,R6
000E 6003 JZ $ + 5H
0010 020000 R LJMP ?C0010
0013 EF MOV A,R7
0014 B40800 CJNE A,#08H,?C0019
0017 ?C0019:
0017 4003 JC $ + 5H
0019 020000 R LJMP ?C0010
001C 900000 R MOV DPTR,#?C0020
001F F8 MOV R0,A
0020 28 ADD A,R0
0021 28 ADD A,R0
0022 73 JMP @A+DPTR
0023 ?C0020:
0023 020000 R LJMP ?C0002
0026 020000 R LJMP ?C0003
0029 020000 R LJMP ?C0004
002C 020000 R LJMP ?C0005
002F 020000 R LJMP ?C0006
0032 020000 R LJMP ?C0007
0035 020000 R LJMP ?C0008
0038 020000 R LJMP ?C0009
; SOURCE LINE # 19
; SOURCE LINE # 20
003B ?C0002:
003B 7B80 MOV R3,#080H
003D 7A96 MOV R2,#096H
003F 7998 MOV R1,#098H
0041 7800 MOV R0,#00H
0043 AF00 R MOV R7,show_count+03H
0045 AE00 R MOV R6,show_count+02H
0047 AD00 R MOV R5,show_count+01H
0049 AC00 R MOV R4,show_count
004B 120000 E LCALL ?C?ULDIV
004E E4 CLR A
004F 7B0A MOV R3,#0AH
0051 FA MOV R2,A
0052 F9 MOV R1,A
0053 F8 MOV R0,A
0054 120000 E LCALL ?C?ULDIV
0057 7400 R MOV A,#LOW digest
0059 2B ADD A,R3
005A F8 MOV R0,A
C51 COMPILER V6.12 MAIN 12/02/2007 22:57:01 PAGE 4
005B E6 MOV A,@R0
005C F580 MOV P0,A
005E 22 RET
; SOURCE LINE # 21
005F ?C0003:
005F 7B40 MOV R3,#040H
0061 7A42 MOV R2,#042H
0063 790F MOV R1,#0FH
0065 7800 MOV R0,#00H
0067 AF00 R MOV R7,show_count+03H
0069 AE00 R MOV R6,show_count+02H
006B AD00 R MOV R5,show_count+01H
006D AC00 R MOV R4,show_count
006F 120000 E LCALL ?C?ULDIV
0072 E4 CLR A
0073 7B0A MOV R3,#0AH
0075 FA MOV R2,A
0076 F9 MOV R1,A
0077 F8 MOV R0,A
0078 120000 E LCALL ?C?ULDIV
007B 7400 R MOV A,#LOW digest
007D 2B ADD A,R3
007E F8 MOV R0,A
007F E6 MOV A,@R0
0080 F580 MOV P0,A
0082 22 RET
; SOURCE LINE # 22
0083 ?C0004:
0083 7BA0 MOV R3,#0A0H
0085 7A86 MOV R2,#086H
0087 7901 MOV R1,#01H
0089 7800 MOV R0,#00H
008B AF00 R MOV R7,show_count+03H
008D AE00 R MOV R6,show_count+02H
008F AD00 R MOV R5,show_count+01H
0091 AC00 R MOV R4,show_count
0093 120000 E LCALL ?C?ULDIV
0096 E4 CLR A
0097 7B0A MOV R3,#0AH
0099 FA MOV R2,A
009A F9 MOV R1,A
009B F8 MOV R0,A
009C 120000 E LCALL ?C?ULDIV
009F 7400 R MOV A,#LOW digest
00A1 2B ADD A,R3
00A2 F8 MOV R0,A
00A3 E6 MOV A,@R0
00A4 F580 MOV P0,A
00A6 22 RET
; SOURCE LINE # 23
00A7 ?C0005:
00A7 E4 CLR A
00A8 7B10 MOV R3,#010H
00AA 7A27 MOV R2,#027H
00AC F9 MOV R1,A
00AD F8 MOV R0,A
00AE AF00 R MOV R7,show_count+03H
00B0 AE00 R MOV R6,show_count+02H
00B2 AD00 R MOV R5,show_count+01H
00B4 AC00 R MOV R4,show_count
00B6 120000 E LCALL ?C?ULDIV
00B9 E4 CLR A
C51 COMPILER V6.12 MAIN 12/02/2007 22:57:01 PAGE 5
00BA 7B0A MOV R3,#0AH
00BC FA MOV R2,A
00BD F9 MOV R1,A
00BE F8 MOV R0,A
00BF 120000 E LCALL ?C?ULDIV
00C2 7400 R MOV A,#LOW digest
00C4 2B ADD A,R3
00C5 F8 MOV R0,A
00C6 E6 MOV A,@R0
00C7 F580 MOV P0,A
00C9 22 RET
; SOURCE LINE # 24
00CA ?C0006:
00CA E4 CLR A
00CB 7BE8 MOV R3,#0E8H
00CD 7A03 MOV R2,#03H
00CF F9 MOV R1,A
00D0 F8 MOV R0,A
00D1 AF00 R MOV R7,show_count+03H
00D3 AE00 R MOV R6,show_count+02H
00D5 AD00 R MOV R5,show_count+01H
00D7 AC00 R MOV R4,show_count
00D9 120000 E LCALL ?C?ULDIV
00DC E4 CLR A
00DD 7B0A MOV R3,#0AH
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -