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

📄 serial.lst

📁 8051带32Mflash的源代码
💻 LST
字号:
C51 COMPILER V7.01  SERIAL                                                                 11/16/2007 15:52:12 PAGE 1   


C51 COMPILER V7.01, COMPILATION OF MODULE SERIAL
OBJECT MODULE PLACED IN .\SERIAL.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\source\SERIAL.C BROWSE DEBUG OBJECTEXTEND LISTINCLUDE PRINT(.\SERIAL.lst
                    -) OBJECT(.\SERIAL.obj)

stmt level    source

   1          #include "SERIAL_H.H"
   1      =1  #include <reg52.h>
   1      =2  /*--------------------------------------------------------------------------
   2      =2  REG52.H
   3      =2  
   4      =2  Header file for generic 80C52 and 80C32 microcontroller.
   5      =2  Copyright (c) 1988-2001 Keil Elektronik GmbH and Keil Software, Inc.
   6      =2  All rights reserved.
   7      =2  --------------------------------------------------------------------------*/
   8      =2  
   9      =2  /*  BYTE Registers  */
  10      =2  sfr P0    = 0x80;
  11      =2  sfr P1    = 0x90;
  12      =2  sfr P2    = 0xA0;
  13      =2  sfr P3    = 0xB0;
  14      =2  sfr PSW   = 0xD0;
  15      =2  sfr ACC   = 0xE0;
  16      =2  sfr B     = 0xF0;
  17      =2  sfr SP    = 0x81;
  18      =2  sfr DPL   = 0x82;
  19      =2  sfr DPH   = 0x83;
  20      =2  sfr PCON  = 0x87;
  21      =2  sfr TCON  = 0x88;
  22      =2  sfr TMOD  = 0x89;
  23      =2  sfr TL0   = 0x8A;
  24      =2  sfr TL1   = 0x8B;
  25      =2  sfr TH0   = 0x8C;
  26      =2  sfr TH1   = 0x8D;
  27      =2  sfr IE    = 0xA8;
  28      =2  sfr IP    = 0xB8;
  29      =2  sfr SCON  = 0x98;
  30      =2  sfr SBUF  = 0x99;
  31      =2  
  32      =2  /*  8052 Extensions  */
  33      =2  sfr T2CON  = 0xC8;
  34      =2  sfr RCAP2L = 0xCA;
  35      =2  sfr RCAP2H = 0xCB;
  36      =2  sfr TL2    = 0xCC;
  37      =2  sfr TH2    = 0xCD;
  38      =2  
  39      =2  
  40      =2  /*  BIT Registers  */
  41      =2  /*  PSW  */
  42      =2  sbit CY    = PSW^7;
  43      =2  sbit AC    = PSW^6;
  44      =2  sbit F0    = PSW^5;
  45      =2  sbit RS1   = PSW^4;
  46      =2  sbit RS0   = PSW^3;
  47      =2  sbit OV    = PSW^2;
  48      =2  sbit P     = PSW^0; //8052 only
  49      =2  
  50      =2  /*  TCON  */
  51      =2  sbit TF1   = TCON^7;
  52      =2  sbit TR1   = TCON^6;
C51 COMPILER V7.01  SERIAL                                                                 11/16/2007 15:52:12 PAGE 2   

  53      =2  sbit TF0   = TCON^5;
  54      =2  sbit TR0   = TCON^4;
  55      =2  sbit IE1   = TCON^3;
  56      =2  sbit IT1   = TCON^2;
  57      =2  sbit IE0   = TCON^1;
  58      =2  sbit IT0   = TCON^0;
  59      =2  
  60      =2  /*  IE  */
  61      =2  sbit EA    = IE^7;
  62      =2  sbit ET2   = IE^5; //8052 only
  63      =2  sbit ES    = IE^4;
  64      =2  sbit ET1   = IE^3;
  65      =2  sbit EX1   = IE^2;
  66      =2  sbit ET0   = IE^1;
  67      =2  sbit EX0   = IE^0;
  68      =2  
  69      =2  /*  IP  */
  70      =2  sbit PT2   = IP^5;
  71      =2  sbit PS    = IP^4;
  72      =2  sbit PT1   = IP^3;
  73      =2  sbit PX1   = IP^2;
  74      =2  sbit PT0   = IP^1;
  75      =2  sbit PX0   = IP^0;
  76      =2  
  77      =2  /*  P3  */
  78      =2  sbit RD    = P3^7;
  79      =2  sbit WR    = P3^6;
  80      =2  sbit T1    = P3^5;
  81      =2  sbit T0    = P3^4;
  82      =2  sbit INT1  = P3^3;
  83      =2  sbit INT0  = P3^2;
  84      =2  sbit TXD   = P3^1;
  85      =2  sbit RXD   = P3^0;
  86      =2  
  87      =2  /*  SCON  */
  88      =2  sbit SM0   = SCON^7;
  89      =2  sbit SM1   = SCON^6;
  90      =2  sbit SM2   = SCON^5;
  91      =2  sbit REN   = SCON^4;
  92      =2  sbit TB8   = SCON^3;
  93      =2  sbit RB8   = SCON^2;
  94      =2  sbit TI    = SCON^1;
  95      =2  sbit RI    = SCON^0;
  96      =2  
  97      =2  /*  P1  */
  98      =2  sbit T2EX  = P1^1; // 8052 only
  99      =2  sbit T2    = P1^0; // 8052 only
 100      =2               
 101      =2  /*  T2CON  */
 102      =2  sbit TF2    = T2CON^7;
 103      =2  sbit EXF2   = T2CON^6;
 104      =2  sbit RCLK   = T2CON^5;
 105      =2  sbit TCLK   = T2CON^4;
 106      =2  sbit EXEN2  = T2CON^3;
 107      =2  sbit TR2    = T2CON^2;
 108      =2  sbit C_T2   = T2CON^1;
 109      =2  sbit CP_RL2 = T2CON^0;
   2      =1  sfr AUXR = 0x8e;
   3      =1  
   4      =1  #define uint unsigned int
   5      =1  #define ulong unsigned long int
   6      =1  #define uchar unsigned char
C51 COMPILER V7.01  SERIAL                                                                 11/16/2007 15:52:12 PAGE 3   

   7      =1  
   8      =1  
   9      =1  #define TBUF_SIZE 256
  10      =1  #define RBUF_SIZE 132
  11      =1  
  12      =1  
  13      =1  static xdata uchar send_ok_flag;
  14      =1  static xdata uchar receive_ok_flag;
  15      =1  xdata uchar tbuf[TBUF_SIZE];
  16      =1  uchar xdata rbuf[RBUF_SIZE];
  17      =1  static xdata uchar t_in;
  18      =1  static xdata uchar t_out;
  19      =1  static xdata uchar r_in;
  20      =1  static xdata uchar r_out;
  21      =1  uchar r_c;
  22      =1  uchar t_c;
  23      =1  uchar t_disable;
  24      =1  uchar xmodem_flag;
  25      =1  uint xomdem_count;
  26      =1  
  27      =1  #define SOH 0x01
  28      =1  #define EOT 0x04
  29      =1  #define ACK 0x06
  30      =1  #define NAK 0x15
  31      =1  #define CRC 0x43
  32      =1  #define DLE 0x10
  33      =1  #define XON 0x11
  34      =1  #define XOF 0x13
  35      =1  #define SYN 0x16
  36      =1  #define CAN 0x18
  37      =1  
  38      =1  static xdata uchar r_xmodem[132];
  39      =1  
  40      =1  
  41      =1  void putword(uint value);
  42      =1  uint getword(void);
  43      =1  void xmodem_receive(void);
  44      =1  uchar xdata *getxmodem(void);
  45      =1  uchar getchar1(uint value);
  46      =1  
  47      =1  /*----------------------------------------------------------------
  48      =1                  DELAY program   
  49      =1  -----------------------------------------------------------------*/
  50      =1  extern void delay5us(uint utimes);    //5uS*utimes  IN 12MHZ
  51      =1  extern void delay10ms(uint mtimes); //10MS*mtimes  IN 12MHZ
  52      =1  extern void delay1s(uint time1,uint time2);
   2          
   3          /*------------------------------------------------------------------
   4                          init serial 
   5          ------------------------------------------------------------------*/
   6          void serial_init(void)
   7          {       
   8   1              EA=0;
   9   1              AUXR |=0x00;        //seial 12 time
  10   1              SCON  = 0x50;       //SCON: serail mode 1, 8-bit UART, enable ucvr 
  11   1          TMOD |= 0x20;       //TMOD: timer 1, mode 2, 8-bit reload 
  12   1          PCON |= 0x80;       //SMOD=1;  X2-->
  13   1          TH1   = 0xF4;       //Baud:4800  fosc=11.0592MHz 
  14   1      //  IE   |= 0x90;       //Enable Serial Interrupt 
  15   1              ES=1;
  16   1              TR1=1;                  // timer 1 run 
  17   1              EA=1;
C51 COMPILER V7.01  SERIAL                                                                 11/16/2007 15:52:12 PAGE 4   

  18   1      
  19   1              send_ok_flag=0;
  20   1              receive_ok_flag=0;
  21   1      }
  22          
  23          /*------------------------------------------------------------------
  24                          transmit one char 
  25          ------------------------------------------------------------------*/
  26          void putchar(uchar t_c)
  27          {
  28   1                        
  29   1              SBUF=t_c;
  30   1              while(send_ok_flag==0);
  31   1              send_ok_flag=0;
  32   1              
  33   1      }
  34          
  35          void putword(uint value)
  36          {       
  37   1              putchar((uchar)(value>>8));
  38   1              delay10ms(60);
  39   1              putchar((uchar)value);
  40   1      
  41   1      }
  42          
  43          /*------------------------------------------------------------------
  44                          receive one char 
  45          ------------------------------------------------------------------*/
  46          uchar getchar(void)
  47          {
  48   1              while(receive_ok_flag==0);
  49   1              receive_ok_flag=0;
  50   1              return(r_c);
  51   1      }
  52          
  53          uint getword(void)
  54          {
  55   1              uint value1,value2;
  56   1              value1=getchar();
  57   1      //      delay10ms(50);
  58   1              value2=getchar();
  59   1      //      delay10ms(50);
  60   1              value1=(value1<<8)|value2;
  61   1              return(value1);
  62   1      }
  63          
  64          /*------------------------------------------------------------------
  65                          serial interrupt sub program
  66          ------------------------------------------------------------------*/
  67          void serial_isr(void) interrupt 4 
  68          {       EA=0;
  69   1              if(TI!=0)
  70   1              {       TI=0;
  71   2                      send_ok_flag=1;
  72   2              }       
  73   1              if(RI!=0)
  74   1              {       RI=0;
  75   2                      r_c=SBUF;
  76   2                      receive_ok_flag=1;
  77   2              }
  78   1              EA=1;
  79   1      }
C51 COMPILER V7.01  SERIAL                                                                 11/16/2007 15:52:12 PAGE 5   



MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    137    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =    526    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      6       2
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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