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

📄 fun.lst

📁 这是单片机实验板比较齐全的程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 187   2                      brtn=1;
 188   2              }
 189   1              else brtn=0;
 190   1              memcpy(respone,"abcd",4);
 191   1              return brtn;
 192   1      }
 193          send_byte(unsigned char ucI)
 194          {
 195   1              SBUF=ucI;
 196   1              do{}while(TI==0);
 197   1              TI=0;
 198   1      }
 199          send_bytes_len(unsigned char *ucI,uchar len)
 200          {
 201   1              uchar i;
 202   1              for(i=0;i<len;i++)
 203   1              {
 204   2                      SBUF=ucI[i];
 205   2                      do{}while(TI==0);
 206   2                      TI=0;
 207   2              }
 208   1      }
 209          send_bytes(unsigned char *ucI)
 210          {
 211   1              for(i=0;i<strlen(ucI);i++)
 212   1              {
 213   2                      SBUF=ucI[i];
 214   2                      do{}while(TI==0);
 215   2                      TI=0;
 216   2              }
 217   1      }
 218          send_bytes1_485(unsigned char *ucI,uchar len)
 219          {
 220   1              SRSEL=1;
 221   1              for(i=0;i<10;i++)
 222   1                      _nop_();
 223   1              for(i=0;i<len;i++)
 224   1              {
 225   2                      SBUF=ucI[i];
 226   2                      do{}while(TI==0);
 227   2                      TI=0;
 228   2              }
 229   1              SRSEL=0;
 230   1                       for(i=0;i<10;i++)
 231   1                               _nop_();
 232   1      }
 233          void DisplayKeyToHex_RS485()
 234          {
 235   1              int i;
 236   1              while(uiOffset!=uiRxCount)
 237   1              {
 238   2                      memset(str,0,20);
 239   2                      i=0;
 240   2                      i =sprintf(str, "Key=[%c][%2bd]",ucRxBuf[uiOffset],ucRxBuf[uiOffset]);
 241   2                      i+=sprintf(str+i,"[%2bx]",ucRxBuf[uiOffset]&0x0ff);
C51 COMPILER V7.50   FUN                                                                   05/27/2007 09:12:24 PAGE 5   

 242   2                      send_bytes1_485(str,i);
 243   2                      //send_bytes1_485(&ucRxBuf[uiOffset],1);
 244   2                      uiOffset++;
 245   2                      uiOffset%=RXBUFSIZE;
 246   2              }
 247   1      }
 248          
 249          void delay200ms(uchar icount)
 250          {
 251   1              unsigned char i,j,k;
 252   1              while(icount--)
 253   1              {
 254   2                      for(i=5;i>0;i--)
 255   2                              for(j=132;j>0;j--)
 256   2                                      for(k=150;k>0;k--);
 257   2              }
 258   1      }
 259          void delay1ms(void)
 260          {
 261   1              unsigned char i,j;
 262   1          for(i=5;i>0;i--)
 263   1                      for(j=132;j>0;j--)
 264   1                              ;//for(k=1;k>0;k--);
 265   1      }
 266          uchar get549data(void)
 267          {
 268   1              uchar i,sample_data;
 269   1          adclk=0;
 270   1          adcs=0;
 271   1          _nop_();
 272   1          _nop_();
 273   1          if(addata==1)
 274   1          {
 275   2              sample_data=1;
 276   2          }
 277   1          else
 278   1          {
 279   2              sample_data=0;
 280   2          }
 281   1          for(i=0;i<7;i++)
 282   1          {
 283   2              sample_data=(sample_data<<1);
 284   2              adclk=1;
 285   2              _nop_();
 286   2              _nop_();
 287   2              adclk=0;
 288   2              if(addata==1)
 289   2              {
 290   3                  sample_data=(sample_data|0x01);
 291   3              }
 292   2          }
 293   1          adclk=1;
 294   1          _nop_();
 295   1          _nop_();
 296   1          adclk=0;
 297   1          _nop_();
 298   1          _nop_();
 299   1          adclk=1;
 300   1          adcs=1;
 301   1          return sample_data;
 302   1      }
 303          
C51 COMPILER V7.50   FUN                                                                   05/27/2007 09:12:24 PAGE 6   

 304          void da5615(uint da)
 305          {
 306   1              uchar i;
 307   1              da<<=6;
 308   1              CS_DA=0;
 309   1              SPI_CLK=0;
 310   1              for (i=0;i<12;i++)
 311   1              {
 312   2                      SPI_DATA=(bit)(da&0x8000);
 313   2                      SPI_CLK=1;
 314   2                      da<<=1;
 315   2                      SPI_CLK=0;
 316   2              }
 317   1              CS_DA=1;
 318   1              SPI_CLK=0;
 319   1              for (i=0;i<12;i++);
 320   1      } 
 321          
 322          
 323          //实验板功能选择命令
 324          //1、DS1302是IIC总线,P13:DS1302的RST脚,当RST=L时候,芯片不传输数据,RST=H,芯片和CPU通讯
 325          //2、X5045是SPI总线,P16:x5045的/CS脚,/CS=L,芯片选中。 同时p17作为SPI总线的SO脚,不用关心。
 326          //3、TLC549是IIC总线,P15:TLC549的/cs脚,低电平有效。
 327          //4、TLC5615是SPI总线,P14:TLC5615的/Cs脚,低电平有效。
 328          void chipcs(uchar ucchip)
 329          {
 330   1      switch(ucchip)
 331   1      {
 332   2      
 333   2              case DS1302EN:
 334   2                      pds12302=1;
 335   2                      px5045=1;
 336   2                      ptlc549=1;
 337   2                      ptlc5615=1;
 338   2              break;
 339   2              case X5045EN:
 340   2                      pds12302=0;
 341   2                      px5045=0;
 342   2                      ptlc549=1;
 343   2                      ptlc5615=1;
 344   2              break;
 345   2              case TLC549EN:
 346   2                      pds12302=0;
 347   2                      px5045=1;
 348   2                      ptlc549=0;
 349   2                      ptlc5615=1;
 350   2              break;
 351   2              case TLC5615EN:
 352   2                      pds12302=0;
 353   2                      px5045=1;
 354   2                      ptlc549=1;
 355   2                      ptlc5615=0;
 356   2              break;
 357   2              default:
 358   2                      pds12302=0;
 359   2                      px5045=1;
 360   2                      ptlc549=1;
 361   2                      ptlc5615=1;
 362   2               
 363   2      }
 364   1      }
 365          
C51 COMPILER V7.50   FUN                                                                   05/27/2007 09:12:24 PAGE 7   



MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1333    ----
   CONSTANT SIZE    =     27    ----
   XDATA SIZE       =    105      40
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      5      24
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       3
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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