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

📄 com.lst

📁 基于c8051f020的应用
💻 LST
字号:
C51 COMPILER V7.06   COM                                                                   06/25/2008 15:44:08 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE COM
OBJECT MODULE PLACED IN COM.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe COM.C DB OE

stmt level    source

   1          //********************************************************************************************************
             -******************
   2          #include <c8051F020.h>
   3          #include "HEAD.H"
   4          //********************************************************************************************************
             -******************
   5          void Com0_Init(void)
   6          {
   7   1              SCON0  = 0x50;                  // SCON0: 模式1, 8位UART, 允许RX
   8   1              TMOD  |= 0x20;                  // TMOD: 定时器1, 模式2, 8位重装
   9   1              TH1    = -(SYSCLK/BAUDRATE/16); // 按波特率设置定时器1重装值
  10   1              TR1    = 1;                     // 起动定时器1
  11   1              CKCON |= 0x10;                  // 定时器1使用系统时钟为时基
  12   1              PCON  |= 0x80;                  // SMOD00 = 1
  13   1      
  14   1              ES0 = 1;                                                // UART0中断允许
  15   1      
  16   1              DatLong=0x00;
  17   1      } 
  18          //********************************************************************************************************
             -******************
  19          void Enter_UART0(void) interrupt 4
  20          {
  21   1              RI0 = 0;
  22   1              DatPocket[DatLong]=SBUF0;
  23   1              Timer0_ReSet(); 
  24   1          DatLong++;
  25   1              ComFlag=0x01;
  26   1      }
  27          //********************************************************************************************************
             -******************
  28          void Com0_Send_Char(unsigned char datas)
  29          {
  30   1              SBUF0 = datas;
  31   1          while(!TI0);
  32   1          TI0=0;
  33   1      }
  34          //********************************************************************************************************
             -******************
  35          void Com0_Send_String(unsigned char *string,unsigned int bytes)
  36          {
  37   1              xdata unsigned int i;
  38   1      
  39   1              for(i=0;i<bytes;i++)
  40   1                      Com0_Send_Char(string[i]);
  41   1      }
  42          
  43          //********************************************************************************************************
             -******************
  44          /*
  45          unsigned char Com0_Get_Char(void)
  46          {
  47                  while(RI0 == 0);
  48                  RI0 = 0;
  49          
C51 COMPILER V7.06   COM                                                                   06/25/2008 15:44:08 PAGE 2   

  50                  return SBUF0;
  51          }
  52          */
  53          
  54          //********************************************************************************************************
             -******************
  55          void Com1_Init(void)
  56          {
  57   1              SCON1 = 0x50;                                   //"S1MODE  -  MCE1  REN1   TB81 RB81 TI1 RI1"  
  58   1          TMOD   |=  0x20;                            //Timer1 Mode,"GATE1  C/T1  T1M1  T1M0  GATE0  C/T0  T0M1  T0M0"
  59   1              TH1    = -(SYSCLK/BAUDRATE/16); // 按波特率设置定时器1重装值
  60   1              TR1    = 1;                     // 起动定时器1
  61   1              CKCON |= 0x10;                  // 定时器1使用系统时钟为时基
  62   1              PCON  |= 0x80;                  // SMOD00 = 1
  63   1      
  64   1      /*
  65   1              PCON &=~0x80;           // 串口波特率加倍使能。0:串口波特率为SCON中的串口方式定义值;1:加倍
  66   1      //      SCON  = 0x70;           // Mode 1: 8-Bit UART, Variable Baud Rate ,receive enable.
  67   1              CKCON = 0x00;           // Timer 2,1,0 uses the system clock divided by 12.
  68   1              T2CON |= 0x30;          // RCLK和TCLK中有任何一个被置‘1’时,定时器2中断被自动禁止
  69   1                                                      // 定时器被强制工作于波特率发生器方式并使用SYSCLK/2作为时钟源。
  70   1              RCAP2H = 0xFF;          // 9600=(1/16)*(11059200/2)/(65536-X).0xFFDC=9600,0xFFED=19200,0xFFF7=38400,0xFFFD=115200
  71   1              RCAP2L = 0xFA;
  72   1              TR2 = 1;                        // 时钟2使能
  73   1      */
  74   1          
  75   1              EIE2 |= 0x40;//ES1 = 1;//允许UART1中断
  76   1      
  77   1              DatLong=0x00;
  78   1      }
  79          //********************************************************************************************************
             -******************
  80          void Enter_UART1(void) interrupt 20
  81          {
  82   1              SCON1 &=~0x01;
  83   1              DatPocket[DatLong]=SBUF1;
  84   1              Timer0_ReSet(); 
  85   1          DatLong++;
  86   1              ComFlag=0x02;
  87   1      }
  88          //********************************************************************************************************
             -******************
  89          void Com1_Send_Char (unsigned char data1)
  90          {
  91   1              SBUF1 = data1;
  92   1          while(!(SCON1 & 0x02));
  93   1          SCON1 &=~0x02;
  94   1      }
  95          //********************************************************************************************************
             -******************
  96          void Com1_Send_String(unsigned char *string,unsigned int bytes)
  97          {
  98   1              xdata unsigned int  i;
  99   1              xdata unsigned int  j;
 100   1      
 101   1              CTRL485 = 1;
 102   1              for(j=0;j<200;j++);
 103   1      
 104   1              for(i=0;i<bytes;i++)
 105   1                      Com1_Send_Char(string[i]);
 106   1      
 107   1              for(j=0;j<100;j++);
C51 COMPILER V7.06   COM                                                                   06/25/2008 15:44:08 PAGE 3   

 108   1              CTRL485 = 0;
 109   1      }
 110          //********************************************************************************************************
             -******************
 111          void Com_Send_String(unsigned char *string,unsigned int bytes,unsigned char flag)
 112          {
 113   1              if(flag==0x01)
 114   1                      Com0_Send_String(string,bytes);
 115   1              else if(flag==0x02)
 116   1                      Com1_Send_String(string,bytes);
 117   1      }
 118          //********************************************************************************************************
             -******************
 119          // The End
 120          //********************************************************************************************************
             -******************
 121          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    456    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----       6
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      12
   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 + -