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

📄 ck.lst

📁 红外线遥控Proteus仿真电路 发射接收程序
💻 LST
字号:
C51 COMPILER V9.00   CK                                                                    06/04/2011 12:13:06 PAGE 1   


C51 COMPILER V9.00, COMPILATION OF MODULE CK
OBJECT MODULE PLACED IN CK.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE CK.c BROWSE DEBUG OBJECTEXTEND CODE

line level    source

   1          
   2          //串口使用2400,N,8,1
   3          
   4          #include <STC89C52RC.H>
   5          #include <intrins.h> 
   6          
   7          #define uchar unsigned char    
   8          #define uint  unsigned int  
   9          
  10          void UartInit(void);
  11          uchar HEX2ASCII(uchar dat);
  12          void Tx1Send(uchar i);
  13          void PrintString(uchar code *p);
  14          void SJZ(uint i);
  15          void InitT0(void);
  16          
  17          
  18          /*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
  19          串口初始化函数          字符  2400bps@12MHz   校验位N 数据位8 停止位1
  20          ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
  21          void UartInit(void)             //2400bps@12MHz
  22          {
  23   1              PCON &= 0x7f;           //波特率不倍速
  24   1              SCON = 0x50;            //8位数据,可变波特率
  25   1              AUXR &= 0xbf;           //定时器1时钟为Fosc/12,即12T
  26   1              AUXR &= 0xfe;           //串口1选择定时器1为波特率发生器
  27   1              TMOD &= 0x0f;           //清除定时器1模式位
  28   1              TMOD |= 0x20;           //设定定时器1为8位自动重装方式
  29   1              TL1 = 0xF3;             //设定定时初值
  30   1              TH1 = 0xF3;             //设定定时器重装值
  31   1              ET1 = 0;                //禁止定时器1中断
  32   1              TR1 = 1;                //启动定时器1
  33   1      }
  34          
  35          /*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
  36          十六进制转ASCII函数 
  37          ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
  38          uchar HEX2ASCII(uchar dat)
  39          {
  40   1              dat &= 0x0f;
  41   1              if(dat <= 9) return(dat+'0');       //数字0~9
  42   1              return (dat-10+'A');                        //字母A~F
  43   1      }
  44          
  45          /*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
  46          发送函数
  47          ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
  48          void Tx1Send(uchar i)
  49           {
  50   1         SBUF=i;
  51   1         while(!TI);
  52   1         TI=0;
  53   1       }
  54          
  55          /*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
C51 COMPILER V9.00   CK                                                                    06/04/2011 12:13:06 PAGE 2   

  56          字符串发送函数
  57          ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
  58          void PrintString(uchar code *p)             //发送一串字符串
  59          {
  60   1          for(; *p != 0; p++) Tx1Send(*p);    //遇到停止符0结束
  61   1      }
  62          
  63          /*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
  64          双字节十进制发送函数 
  65          ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
  66          void SJZ(uint i)
  67          {        
  68   1          bit BT;
  69   1          uchar n1,n2,n3,n4,n5;       
  70   1      
  71   1              BT = 0;
  72   1              n1 = i/10000;
  73   1              n2 = i/1000%10;
  74   1              n3 = i/100%10;
  75   1              n4 = i/10%10;
  76   1              n5 = i%10;
  77   1      
  78   1          if(n1)     { Tx1Send(HEX2ASCII(n1)); BT = 1;}
  79   1              else         PrintString(" ");
  80   1      
  81   1              if(n2 | BT){ Tx1Send(HEX2ASCII(n2)); BT = 1;}
  82   1              else         PrintString(" ");
  83   1      
  84   1              if(n3 | BT){ Tx1Send(HEX2ASCII(n3)); BT = 1;}
  85   1              else         PrintString(" ");
  86   1      
  87   1              if(n4 | BT)  Tx1Send(HEX2ASCII(n4));
  88   1              else         PrintString(" ");
  89   1      
  90   1              Tx1Send(HEX2ASCII(n5)); 
  91   1      }  
  92          
C51 COMPILER V9.00   CK                                                                    06/04/2011 12:13:06 PAGE 3   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION UartInit (BEGIN)
                                           ; SOURCE LINE # 21
                                           ; SOURCE LINE # 22
                                           ; SOURCE LINE # 23
0000 53877F            ANL     PCON,#07FH
                                           ; SOURCE LINE # 24
0003 759850            MOV     SCON,#050H
                                           ; SOURCE LINE # 25
0006 538EBF            ANL     AUXR,#0BFH
                                           ; SOURCE LINE # 26
0009 538EFE            ANL     AUXR,#0FEH
                                           ; SOURCE LINE # 27
000C 53890F            ANL     TMOD,#0FH
                                           ; SOURCE LINE # 28
000F 438920            ORL     TMOD,#020H
                                           ; SOURCE LINE # 29
0012 758BF3            MOV     TL1,#0F3H
                                           ; SOURCE LINE # 30
0015 758DF3            MOV     TH1,#0F3H
                                           ; SOURCE LINE # 31
0018 C2AB              CLR     ET1
                                           ; SOURCE LINE # 32
001A D28E              SETB    TR1
                                           ; SOURCE LINE # 33
001C 22                RET     
             ; FUNCTION UartInit (END)

             ; FUNCTION _HEX2ASCII (BEGIN)
                                           ; SOURCE LINE # 38
;---- Variable 'dat' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 39
                                           ; SOURCE LINE # 40
0000 53070F            ANL     AR7,#0FH
                                           ; SOURCE LINE # 41
0003 EF                MOV     A,R7
0004 D3                SETB    C
0005 9409              SUBB    A,#09H
0007 EF                MOV     A,R7
0008 5004              JNC     ?C0002
000A 2430              ADD     A,#030H
000C FF                MOV     R7,A
000D 22                RET     
000E         ?C0002:
                                           ; SOURCE LINE # 42
000E 2437              ADD     A,#037H
0010 FF                MOV     R7,A
                                           ; SOURCE LINE # 43
0011         ?C0003:
0011 22                RET     
             ; FUNCTION _HEX2ASCII (END)

             ; FUNCTION L?0022 (BEGIN)
0000 120000      R     LCALL   _HEX2ASCII
             ; FUNCTION _Tx1Send (BEGIN)
                                           ; SOURCE LINE # 48
;---- Variable 'i' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 49
                                           ; SOURCE LINE # 50
0003 8F99              MOV     SBUF,R7
C51 COMPILER V9.00   CK                                                                    06/04/2011 12:13:06 PAGE 4   

0005         ?C0004:
                                           ; SOURCE LINE # 51
0005 3099FD            JNB     TI,?C0004
0008         ?C0005:
                                           ; SOURCE LINE # 52
0008 C299              CLR     TI
                                           ; SOURCE LINE # 53
000A 22                RET     
             ; FUNCTION _Tx1Send (END)

             ; FUNCTION L?0020 (BEGIN)
0000         L?0021:
0000 7E00        R     MOV     R6,#HIGH ?SC_0
0002 7F00        R     MOV     R7,#LOW ?SC_0
             ; FUNCTION _PrintString (BEGIN)
                                           ; SOURCE LINE # 58
;---- Variable 'p' assigned to Register 'DPTR' ----
0004 8F82              MOV     DPL,R7
0006 8E83              MOV     DPH,R6
                                           ; SOURCE LINE # 59
                                           ; SOURCE LINE # 60
0008         ?C0007:
0008 E4                CLR     A
0009 93                MOVC    A,@A+DPTR
000A FF                MOV     R7,A
000B 6006              JZ      ?C0010
000D 120000      R     LCALL   _Tx1Send
0010 A3                INC     DPTR
0011 80F5              SJMP    ?C0007
                                           ; SOURCE LINE # 61
0013         ?C0010:
0013 22                RET     
             ; FUNCTION _PrintString (END)

             ; FUNCTION _SJZ (BEGIN)
                                           ; SOURCE LINE # 66
;---- Variable 'i' assigned to Register 'R2/R3' ----
0000 AB07              MOV     R3,AR7
0002 AA06              MOV     R2,AR6
                                           ; SOURCE LINE # 67
                                           ; SOURCE LINE # 71
0004 C200        R     CLR     BT
                                           ; SOURCE LINE # 72
0006 7C27              MOV     R4,#027H
0008 7D10              MOV     R5,#010H
000A 120000      E     LCALL   ?C?UIDIV
000D 8F00        R     MOV     n1,R7
                                           ; SOURCE LINE # 73
000F 7C03              MOV     R4,#03H
0011 7DE8              MOV     R5,#0E8H
0013 AF03              MOV     R7,AR3
0015 AE02              MOV     R6,AR2
0017 120000      E     LCALL   ?C?UIDIV
001A 7C00              MOV     R4,#00H
001C 7D0A              MOV     R5,#0AH
001E 120000      E     LCALL   ?C?UIDIV
0021 8D00        R     MOV     n2,R5
                                           ; SOURCE LINE # 74
0023 7C00              MOV     R4,#00H
0025 7D64              MOV     R5,#064H
0027 AF03              MOV     R7,AR3
0029 AE02              MOV     R6,AR2
C51 COMPILER V9.00   CK                                                                    06/04/2011 12:13:06 PAGE 5   

002B 120000      E     LCALL   ?C?UIDIV
002E 7C00              MOV     R4,#00H
0030 7D0A              MOV     R5,#0AH
0032 120000      E     LCALL   ?C?UIDIV
0035 8D00        R     MOV     n3,R5
                                           ; SOURCE LINE # 75
0037 7C00              MOV     R4,#00H
0039 7D0A              MOV     R5,#0AH
003B AF03              MOV     R7,AR3
003D AE02              MOV     R6,AR2
003F 120000      E     LCALL   ?C?UIDIV
0042 7C00              MOV     R4,#00H
0044 7D0A              MOV     R5,#0AH
0046 120000      E     LCALL   ?C?UIDIV
0049 8D00        R     MOV     n4,R5
                                           ; SOURCE LINE # 76
004B AE02              MOV     R6,AR2
004D AF03              MOV     R7,AR3
004F 7C00              MOV     R4,#00H
0051 7D0A              MOV     R5,#0AH
0053 120000      E     LCALL   ?C?UIDIV
;---- Variable 'n5' assigned to Register 'R5' ----
                                           ; SOURCE LINE # 78
0056 E500        R     MOV     A,n1
0058 6008              JZ      ?C0011
005A FF                MOV     R7,A
005B 120000      R     LCALL   L?0022
005E D200        R     SETB    BT
0060 8003              SJMP    ?C0012
0062         ?C0011:
                                           ; SOURCE LINE # 79
0062 120000      R     LCALL   L?0020
0065         ?C0012:
                                           ; SOURCE LINE # 81
0065 A200        R     MOV     C,BT
0067 E4                CLR     A
0068 33                RLC     A
0069 4500        R     ORL     A,n2
006B 6009              JZ      ?C0013
006D AF00        R     MOV     R7,n2
006F 120000      R     LCALL   L?0022
0072 D200        R     SETB    BT
0074 8003              SJMP    ?C0014
0076         ?C0013:
                                           ; SOURCE LINE # 82
0076 120000      R     LCALL   L?0020
0079         ?C0014:
                                           ; SOURCE LINE # 84
0079 A200        R     MOV     C,BT
007B E4                CLR     A
007C 33                RLC     A
007D 4500        R     ORL     A,n3
007F 600C              JZ      ?C0015
0081 AF00        R     MOV     R7,n3
0083 120000      R     LCALL   _HEX2ASCII
0086 120000      R     LCALL   _Tx1Send
0089 D200        R     SETB    BT
008B 8003              SJMP    ?C0016
008D         ?C0015:
                                           ; SOURCE LINE # 85
008D 120000      R     LCALL   L?0021
0090         ?C0016:
C51 COMPILER V9.00   CK                                                                    06/04/2011 12:13:06 PAGE 6   

                                           ; SOURCE LINE # 87
0090 A200        R     MOV     C,BT
0092 E4                CLR     A
0093 33                RLC     A
0094 4500        R     ORL     A,n4
0096 600A              JZ      ?C0017
0098 AF00        R     MOV     R7,n4
009A 120000      R     LCALL   _HEX2ASCII
009D 120000      R     LCALL   _Tx1Send
00A0 8003              SJMP    ?C0018
00A2         ?C0017:
                                           ; SOURCE LINE # 88
00A2 120000      R     LCALL   L?0021
00A5         ?C0018:
                                           ; SOURCE LINE # 90
00A5 AF05              MOV     R7,AR5
00A7 120000      R     LCALL   _HEX2ASCII
00AA 020000      R     LJMP    _Tx1Send
             ; FUNCTION _SJZ (END)



MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    251    ----
   CONSTANT SIZE    =      2    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       4
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -