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

📄 mmm.lst

📁 用51控制对401的收发程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.07   MMM                                                                   02/25/2009 22:17:42 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE MMM
OBJECT MODULE PLACED IN mmm.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE mmm.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <reg52.h>
   2          #include <absacc.h>
   3          #include "string.h"
   4          
   5          #include "intrins.h"
   6          
   7          //***********************串口初始化波特率定义*****原有********************
   8          #define OSC_FREQ                11059200L
   9          #define BAUD_115200             256 - (OSC_FREQ/192L)/115200L
  10          #define BAUD_57600              256 - (OSC_FREQ/192L)/57600L
  11          #define BAUD_38400              256 - (OSC_FREQ/192L)/38400L
  12          #define BAUD_28800              256 - (OSC_FREQ/192L)/28800L
  13          #define BAUD_19200              256 - (OSC_FREQ/192L)/19200L
  14          #define BAUD_14400              256 - (OSC_FREQ/192L)/14400L
  15          #define BAUD_9600               256 - (OSC_FREQ/192L)/9600L
  16          #define BAUD_4800               256 - (OSC_FREQ/192L)/4800L
  17          #define BAUD_2400               256 - (OSC_FREQ/192L)/2400L
  18          #define BAUD_1200               256 - (OSC_FREQ/192L)/1200L
  19          //*********************************************************
  20          union charint{
  21            unsigned char  chrX[2];
  22            unsigned int   intX;
  23            };
  24          union charint ad_temp;
  25          //************************程序用的变量********************
  26          unsigned char data RXtem[16], RXdata[6];//程序接收数据缓冲区
  27          unsigned char data RXNOM,RXSTAT,RX_len=0;
  28          unsigned char data RXTimerOUT; //接收超时
  29          bit rxok;          // 接收完成标志
  30          
  31          
  32          sbit  CS=P2^4;
  33          sbit  PWR_UP=P2^5;
  34          sbit  TX_EN=P2^6; 
  35          sbit  Test_led=P1^4;
  36          sbit  TX=P3^1;
  37          sbit  RX=P3^0;
  38          sbit  wdog=P1^0;
  39          /****************************************************************************/
  40          
  41          
  42          void Delay100ms(unsigned char x)
  43          {   
  44   1        unsigned char i,j;
  45   1        
  46   1        while(x-- != 0)
  47   1        {  wdog=! wdog;
  48   2              for (j = 0;j < 67; j++)for (i = 0;i < 88; i++){_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;
  49   3              _nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_(
             -) ;
  50   3              _nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_(
             -) ;
  51   3              _nop_() ;_nop_() ;_nop_() ;};
  52   2        }
  53   1      }
C51 COMPILER V7.07   MMM                                                                   02/25/2009 22:17:42 PAGE 2   

  54          /****************************************************************************/
  55          
  56          
  57          void Delay1ms(unsigned char idata  x)
  58          {   
  59   1        unsigned char i;
  60   1        
  61   1        while(x-- != 0)
  62   1        {wdog=! wdog;
  63   2          for (i = 0;i <23 ; i++){_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;
  64   3              _nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_(
             -) ;
  65   3              _nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_(
             -) ;
  66   3              _nop_() ;_nop_() ;_nop_() ;};
  67   2        }
  68   1      }
  69          
  70          /****************************************************************************
  71          *                                                                           *
  72          * Function:     init_com                                                    *
  73          *                                                                           *
  74          * Input:        -                                                           *
  75          * Output:       -                                                           *
  76          *                                                                           *
  77          * Description:                                                              *
  78          ****************************************************************************/
  79          void init_com(void)
  80          {
  81   1        PCON = 0x80;                  // SMOD = 1; bps = Time1/16
  82   1        SCON = 0x50;                  // Mode 1, 1 star bit, 8 data bit, 1,stop bit UART, enable receive
  83   1        TMOD = 0x21;                  // Timer 1, mode 2, 8-bit auto reload,
  84   1                                                              // Timer 0, mode 1, 16-bit counter
  85   1        TH1 =BAUD_19200;              //BAUD_2400;
  86   1        TL1 = TH1;
  87   1        TR1 = 1;                      // Timer 1 run
  88   1       
  89   1        ES = 0;                                           // Enable serail interrupts
  90   1        EA=1;
  91   1        RXSTAT=0;
  92   1        RXNOM=0;
  93   1        rxok=0;
  94   1        RXTimerOUT=10;
  95   1      }
  96            /****************************************************************************
  97          *                                                                           *
  98          * Function:     START_T0                                                    *
  99          *                                                                           *
 100          * Input:        -                                                           *
 101          * Output:       -                                                           *
 102          *                                                                           *
 103          * Description:                                                              *
 104          *                                                                           *
 105          *                                                                           *
 106          ****************************************************************************/
 107          void START_T0(unsigned char x)
 108          {
 109   1        ET0 = 0 ;
 110   1        TR0 = 0;
 111   1        RXTimerOUT = x ;
 112   1        TL0 = 0;
 113   1        TH0 = 0;
C51 COMPILER V7.07   MMM                                                                   02/25/2009 22:17:42 PAGE 3   

 114   1        TR0 = 1;
 115   1        ET0 = 1 ;
 116   1      }                
 117          /****************************************************************************
 118          *                                                                           *
 119          * Function:     CALL_isr_T0                                                 *
 120          *                                                                           *
 121          * Input:        -                                                           *
 122          * Output:       -                                                           *
 123          *                                                                           *
 124          * Description:                                                              *
 125          *                                                                           *
 126          *                                                                           *
 127          ****************************************************************************/
 128          void CALL_isr_T0(void)
 129          {
 130   1        TR0 = 0;
 131   1        RXTimerOUT = 0; 
 132   1        TF0 = 1;
 133   1      
 134   1      }
 135          
 136          //********************串口中断处理程序**************************************************************
 137          void int4() interrupt 4 using 1
 138          {
 139   1         unsigned char c,add,i;
 140   1         if ( RI )                                        // Receive Command
 141   1        {
 142   2         // RXTimerOUT=10;
 143   2      
 144   2          RI = 0;
 145   2              c  = SBUF;
 146   2      
 147   2              switch(RXSTAT)
 148   2              {
 149   3                case 0:                          //接受帧头02
 150   3                       if(c==0x55){RXSTAT=1;START_T0(20);}
 151   3                               else
 152   3                    CALL_isr_T0();
 153   3                       break;
 154   3                case 1:                       //接收
 155   3                      
 156   3                   //if(c==0xaa)
 157   3                   if(c==0xff)
 158   3                               {
 159   4                   
 160   4                                RXSTAT=2;
 161   4                                START_T0(20);
 162   4                               }
 163   3                               else
 164   3                                { 
 165   4                                  CALL_isr_T0();
 166   4                                  RXSTAT=0;

⌨️ 快捷键说明

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