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

📄 main.lst

📁 自制方波发生器及频率计 材料: AT89S52 + AT89C2051 1个8位共阳七段显示器 8个NPN三极管 11.0592Mhz晶振x2
💻 LST
📖 第 1 页 / 共 2 页
字号:
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 + -