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

📄 com.lst

📁 很好的用io口模拟串口的程序
💻 LST
字号:
C51 COMPILER V8.08   COM                                                                   04/17/2007 09:26:38 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE COM
OBJECT MODULE PLACED IN com.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE com.c OBJECTADVANCED OPTIMIZE(9,SPEED) BROWSE DEBUG CODE

line level    source

   1          /**********************************************
   2          
   3                          IO 口模拟232通讯程序
   4          
   5                          占用定时器0 
   6          
   7          **********************************************/
   8          
   9          #include <reg51.h>
  10          
  11          #define Fosc 11059200L
  12          #define Baud 9600L
  13          
  14          sbit BT_REC =P3^3;
  15          
  16          /*********************************************************************************************************
             -*
  17          
  18          ** 函数名称 :Timer0_Interrupt()
  19          ** 函数功能 :定时器0中断服务程序
  20          ** 入口参数 :无
  21          ** 出口参数 :无
  22          **********************************************************************************************************
             -/
  23          unsigned char status=8,Rec_Dat;
  24          
  25          unsigned char Rec_Buf[32],rear;
  26          
  27          void Timer0_Interrupt() interrupt 1
  28          {
  29   1              CY=BT_REC;
  30   1              ACC=Rec_Dat;
  31   1              CY=ACC&0x01;
  32   1              Rec_Dat=ACC;
  33   1              if (status==8)
  34   1              {
  35   2                      TR0=0;
  36   2                      TL0=TH0=0xaa;
  37   2                      TR0=1;
  38   2              }
  39   1              if (--status==0)
  40   1              {
  41   2                      status=8;
  42   2                      Rec_Buf[rear]=Rec_Dat;
  43   2                      rear++;
  44   2                      rear&=0x1f;
  45   2                      IE1=0;
  46   2                      EX1=1;
  47   2                      TR0=0;
  48   2              }
  49   1      }
  50          
  51          /*
  52          *********************************************************************************************************
  53          
C51 COMPILER V8.08   COM                                                                   04/17/2007 09:26:38 PAGE 2   

  54          ** 函数名称 :Init_INT1()
  55          ** 函数功能 :初始化外部中断1
  56          ** 入口参数 :无
  57          ** 出口参数 :无
  58          *********************************************************************************************************
  59          */
  60          
  61          void Init_INT1(void)
  62          {
  63   1              IT1=1;
  64   1              EX1=1;
  65   1      }
  66          
  67          /*
  68          *********************************************************************************************************
  69          
  70          ** 函数名称 :INT1_Interrupt()
  71          ** 函数功能 :外部中断1中断
  72          ** 入口参数 :无
  73          ** 出口参数 :无
  74          *********************************************************************************************************
  75          */
  76          void INT1_Interrupt(void) interrupt 2
  77          {
  78   1              EX1=0;  //收到起始位后,禁止INT1中断
  79   1              TR0=0;
  80   1              TL0=TH0=0x74;
  81   1              TR0=1;
  82   1      }
  83          
  84          main()
  85          {
  86   1              Init_INT1();
  87   1              TMOD=0x02;
  88   1              ET0=1;
  89   1              TR0=0;
  90   1              EA=1;
  91   1              
  92   1              while (1);
  93   1      }
C51 COMPILER V8.08   COM                                                                   04/17/2007 09:26:38 PAGE 3   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION Timer0_Interrupt (BEGIN)
                       PUSH    ACC
                       PUSH    PSW
                       MOV     PSW,#00H
                       PUSH    AR0
                                           ; SOURCE LINE # 27
                                           ; SOURCE LINE # 29
                       MOV     C,BT_REC
                                           ; SOURCE LINE # 30
                 R     MOV     A,Rec_Dat
                                           ; SOURCE LINE # 31
                       RRC     A
                                           ; SOURCE LINE # 32
                 R     MOV     Rec_Dat,A
                                           ; SOURCE LINE # 33
                 R     MOV     A,status
                 R     xJNE    A,#08H,?C0001
                                           ; SOURCE LINE # 34
                                           ; SOURCE LINE # 35
                       CLR     TR0
                                           ; SOURCE LINE # 36
                       MOV     TH0,#0AAH
                       MOV     TL0,#0AAH
                                           ; SOURCE LINE # 37
                       SETB    TR0
                                           ; SOURCE LINE # 38
             ?C0001:
                                           ; SOURCE LINE # 39
                 R     DJNZ    status,?C0003
                                           ; SOURCE LINE # 40
                                           ; SOURCE LINE # 41
                 R     MOV     status,#08H
                                           ; SOURCE LINE # 42
                 R     MOV     A,#LOW Rec_Buf
                 R     ADD     A,rear
                       MOV     R0,A
                 R     MOV     @R0,Rec_Dat
                                           ; SOURCE LINE # 43
                 R     INC     rear
                                           ; SOURCE LINE # 44
                 R     ANL     rear,#01FH
                                           ; SOURCE LINE # 45
                       CLR     IE1
                                           ; SOURCE LINE # 46
                       SETB    EX1
                                           ; SOURCE LINE # 47
                       CLR     TR0
                                           ; SOURCE LINE # 48
                                           ; SOURCE LINE # 49
             ?C0003:
                       POP     AR0
                       POP     PSW
                       POP     ACC
                       RETI    
             ; FUNCTION Timer0_Interrupt (END)

             ; FUNCTION Init_INT1 (BEGIN)
                                           ; SOURCE LINE # 61
                                           ; SOURCE LINE # 62
C51 COMPILER V8.08   COM                                                                   04/17/2007 09:26:38 PAGE 4   

                                           ; SOURCE LINE # 63
                       SETB    IT1
                                           ; SOURCE LINE # 64
                       SETB    EX1
                                           ; SOURCE LINE # 65
                       RET     
             ; FUNCTION Init_INT1 (END)

             ; FUNCTION INT1_Interrupt (BEGIN)
                                           ; SOURCE LINE # 76
                                           ; SOURCE LINE # 78
                       CLR     EX1
                                           ; SOURCE LINE # 79
                       CLR     TR0
                                           ; SOURCE LINE # 80
                       MOV     TH0,#074H
                       MOV     TL0,#074H
                                           ; SOURCE LINE # 81
                       SETB    TR0
                                           ; SOURCE LINE # 82
                       RETI    
             ; FUNCTION INT1_Interrupt (END)

             ; FUNCTION main (BEGIN)
                                           ; SOURCE LINE # 84
                                           ; SOURCE LINE # 85
                                           ; SOURCE LINE # 86
                 R     CALL    Init_INT1
                                           ; SOURCE LINE # 87
                       MOV     TMOD,#02H
                                           ; SOURCE LINE # 88
                       SETB    ET0
                                           ; SOURCE LINE # 89
                       CLR     TR0
                                           ; SOURCE LINE # 90
                       SETB    EA
             ?C0006:
                                           ; SOURCE LINE # 92
                 R     xJMP    ?C0006
             ; FUNCTION main (END)



MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    106    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     35    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
   EDATA SIZE       =   ----    ----
   HDATA SIZE       =   ----    ----
   XDATA CONST SIZE =   ----    ----
   FAR CONST SIZE   =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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