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

📄 fun.lst

📁 这是单片机实验板比较齐全的程序
💻 LST
字号:
C51 COMPILER V7.50   FUN                                                                   05/27/2007 09:10:54 PAGE 1   


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

line level    source

   1          /*******************************************************************************
   2          *  标题:  student2000单片机开发系统演示程序                            *
   3          *  文件:  fun.C                                                               *
   4          *  日期:  2007-5-4                                                             *
   5          *  版本:  1.0                                                                  *
   6          
   7            ********************************************************************************
   8            *  描述:                                                                       *
   9            *        大部分通用函数集合                                             *     
  10          *        RS232,RS485,延时函数,协议框架演示等                                  */
  11          #include <reg52.h>
  12          #include    <intrins.h>
  13          #include <string.h>
  14          #include <absacc.h>
  15          #include <stdio.h>
  16          #include "sybxt1.h"
  17          xdata unsigned char  ucRxBuf[RXBUFSIZE];
  18          xdata unsigned char  ucRxBuf1[RXBUFSIZE];
  19          xdata sprotocol spro;
  20          sbit P3_6= P3^6;
  21          sbit P3_7= P3^7;
  22          //rs485的方向控制端;
  23          sbit SRSEL=P1^7;
  24          unsigned int uiOffset=0;
  25          unsigned int uiRxCount=0;
  26          uchar i; 
  27          sbit adclk = P1^1;     // 输入输出时钟I/O CLK
  28          sbit addata = P1^0;    // 数据输出DATA OUT
  29          sbit adcs = P1^5;      // 片选信号
  30          sbit SPI_CLK=P1^1;
  31          sbit SPI_DATA=P1^0;
  32          sbit CS_DA=     P1^4;
  33           
  34          void ComInit(void) /*串行口初始化*/
  35          {
  36   1              SCON = 0x50; //SCON: serail mode 1, 8-bit UART, enable ucvr 
  37   1              TMOD |= 0x20; //TMOD: timer 1, mode 2, 8-bit reload 
  38   1              PCON |= 0x00; //SMOD=0; 
  39   1              TH1 = 0xFd; //Baud:4800 fosc=11.0592MHz 
  40   1              TL1 = 0xFd; //Baud:4800 fosc=11.0592MHz 
  41   1              
  42   1              IE |= 0x90; //Enable Serial Interrupt 
  43   1              TR1 = 1; // timer 1 run 
  44   1      }
  45          /*********************************
  46          串口 0 中断函数
  47          *********************************/
  48          void serial_0(void) interrupt 4
  49          {
  50   1              
  51   1              unsigned        char a;
  52   1              if(RI)
  53   1              {  
  54   2                      a=SBUF;
  55   2                      ucRxBuf[uiRxCount]=a;
C51 COMPILER V7.50   FUN                                                                   05/27/2007 09:10:54 PAGE 2   

  56   2                      RI=0;
  57   2                      //send_byte(ucRxBuf[uiRxCount]);
  58   2                      uiRxCount++;
  59   2                      uiRxCount%=RXBUFSIZE;
  60   2                      uccmd=a;
  61   2                      
  62   2              }
  63   1              
  64   1      }
  65          
  66          
  67          
  68          send_byte(unsigned char ucI)
  69          {
  70   1              SBUF=ucI;
  71   1              do{}while(TI==0);
  72   1              TI=0;
  73   1      }
  74          send_bytes_len(unsigned char *ucI,uchar len)
  75          {
  76   1              uchar i;
  77   1              for(i=0;i<len;i++)
  78   1              {
  79   2                      SBUF=ucI[i];
  80   2                      do{}while(TI==0);
  81   2                      TI=0;
  82   2              }
  83   1      }
  84          send_bytes(unsigned char *ucI)
  85          {
  86   1              for(i=0;i<strlen(ucI);i++)
  87   1              {
  88   2                      SBUF=ucI[i];
  89   2                      do{}while(TI==0);
  90   2                      TI=0;
  91   2              }
  92   1      }
  93          send_bytes1_485(unsigned char *ucI,uchar len)
  94          {
  95   1              SRSEL=1;
  96   1              for(i=0;i<10;i++)
  97   1                      _nop_();
  98   1              for(i=0;i<len;i++)
  99   1              {
 100   2                      SBUF=ucI[i];
 101   2                      do{}while(TI==0);
 102   2                      TI=0;
 103   2              }
 104   1              SRSEL=0;
 105   1                       for(i=0;i<10;i++)
 106   1                               _nop_();
 107   1      }
 108          void DisplayKeyToHex_RS485()
 109          {
 110   1              int i;
 111   1              while(uiOffset!=uiRxCount)
 112   1              {
 113   2                      memset(str,0,20);
 114   2                      i=0;
 115   2                      i =sprintf(str, "Key=[%c][%2bd]",ucRxBuf[uiOffset],ucRxBuf[uiOffset]);
 116   2                      i+=sprintf(str+i,"[%2bx]",ucRxBuf[uiOffset]&0x0ff);
 117   2                      send_bytes1_485(str,i);
C51 COMPILER V7.50   FUN                                                                   05/27/2007 09:10:54 PAGE 3   

 118   2                      //send_bytes1_485(&ucRxBuf[uiOffset],1);
 119   2                      uiOffset++;
 120   2                      uiOffset%=RXBUFSIZE;
 121   2              }
 122   1      }
 123          
 124          void delay200ms(uchar icount)
 125          {
 126   1              unsigned char i,j,k;
 127   1              while(icount--)
 128   1              {
 129   2                      for(i=5;i>0;i--)
 130   2                              for(j=132;j>0;j--)
 131   2                                      for(k=150;k>0;k--);
 132   2              }
 133   1      }
 134          void delay1ms(void)
 135          {
 136   1              unsigned char i,j;
 137   1          for(i=5;i>0;i--)
 138   1                      for(j=132;j>0;j--)
 139   1                              ;//for(k=1;k>0;k--);
 140   1      }
 141          uchar get549data(void)
 142          {
 143   1              uchar i,sample_data;
 144   1          adclk=0;
 145   1          adcs=0;
 146   1          _nop_();
 147   1          _nop_();
 148   1          if(addata==1)
 149   1          {
 150   2              sample_data=1;
 151   2          }
 152   1          else
 153   1          {
 154   2              sample_data=0;
 155   2          }
 156   1          for(i=0;i<7;i++)
 157   1          {
 158   2              sample_data=(sample_data<<1);
 159   2              adclk=1;
 160   2              _nop_();
 161   2              _nop_();
 162   2              adclk=0;
 163   2              if(addata==1)
 164   2              {
 165   3                  sample_data=(sample_data|0x01);
 166   3              }
 167   2          }
 168   1          adclk=1;
 169   1          _nop_();
 170   1          _nop_();
 171   1          adclk=0;
 172   1          _nop_();
 173   1          _nop_();
 174   1          adclk=1;
 175   1          adcs=1;
 176   1          return sample_data;
 177   1      }
 178          
 179          void da5615(uint da)
C51 COMPILER V7.50   FUN                                                                   05/27/2007 09:10:54 PAGE 4   

 180          {
 181   1              uchar i;
 182   1              da<<=6;
 183   1              CS_DA=0;
 184   1              SPI_CLK=0;
 185   1              for (i=0;i<12;i++)
 186   1              {
 187   2                      SPI_DATA=(bit)(da&0x8000);
 188   2                      SPI_CLK=1;
 189   2                      da<<=1;
 190   2                      SPI_CLK=0;
 191   2              }
 192   1              CS_DA=1;
 193   1              SPI_CLK=0;
 194   1              for (i=0;i<12;i++);
 195   1      } 
 196          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    570    ----
   CONSTANT SIZE    =     22    ----
   XDATA SIZE       =    105    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      5      11
   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 + -