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

📄 com.lst

📁 本人自己写的用C8051F020驱动的DAC8541程序,直接对口操作,信号非常好,已经完全经过调试
💻 LST
📖 第 1 页 / 共 2 页
字号:
 243   1               _NOP();
 244   1             _NOP();
 245   1             _NOP(); 
 246   1                      S_SDA;
 247   1                      _NOP();
 248   1             _NOP();
 249   1             _NOP(); 
 250   1                       S_SCL;
 251   1             _NOP();
 252   1             _NOP();
 253   1             _NOP();  
 254   1                 i=P4;
 255   1            if(i==0xff)
 256   1                ack=0;
 257   1            else
 258   1                ack=1;
 259   1      
 260   1             delay();
 261   1            C_SCL;
 262   1           
 263   1            _NOP();
 264   1           _NOP();
 265   1      }
 266          /************************************
 267          停止总线函数
 268          **************************************/
 269          void send_ack(uchar a)
 270          {     
 271   1            if(a==0)       
 272   1             { 
 273   2             C_SDA;
 274   2             delay();
 275   2             S_SCL;
 276   2             delay();
 277   2             C_SCL;
 278   2             delay();
 279   2             S_SDA;
 280   2            }
 281   1            else
 282   1             { 
 283   2              S_SDA;          
 284   2              delay();
 285   2              S_SCL;
 286   2              delay();
 287   2              C_SCL;
 288   2              delay();
 289   2            }      
 290   1      }
 291          /************************************
 292          接收一个字节函数
 293          **************************************/
 294          uchar RcvByte()
 295          {
 296   1            uchar retc;
 297   1            uchar i,j;
 298   1            retc=0;   
 299   1      //      SDA_IN;
 300   1                      S_SDA;
 301   1            for(i=0;i<8;i++)
C51 COMPILER V7.50   COM                                                                   10/03/2007 21:56:30 PAGE 6   

 302   1              {       
 303   2                       _nop_();
 304   2                        C_SCL;
 305   2                delay();
 306   2                S_SCL;
 307   2                delay();       
 308   2                retc=retc<<1;
 309   2           //     SDA_IN;
 310   2              //  if(READ_SDA==SDA)//read p4in 
 311   2                      j=P4;
 312   2                      if(P4&SDA==SDA)
 313   2                    retc+=1;                         
 314   2               delay();
 315   2               C_SCL;
 316   2               delay();
 317   2               }     
 318   1            return(retc);        
 319   1      }
 320          /************************************
 321          接收一个字节函数
 322          **************************************/
 323          uchar ISendByte(uchar sla,uchar c)
 324          {
 325   1            start();
 326   1            SendByte(sla);
 327   1            if(ack==0)
 328   1                return(0);
 329   1            SendByte(c);
 330   1            if(ack==0)
 331   1                return(0);
 332   1            stop();
 333   1            return(1);
 334   1      }
 335          /************************************
 336          发送一个数据串函数
 337          **************************************/
 338          uchar ISendstr(uchar sla,uchar suba,uchar *s,uchar no)
 339          {
 340   1            uchar i;     
 341   1            start();
 342   1            SendByte(sla);
 343   1            if(ack==0)
 344   1                return(0);
 345   1            SendByte(suba);
 346   1            if(ack==0)
 347   1                return(0);
 348   1           for(i=0;i<no;i++)
 349   1                {
 350   2                  SendByte(*s);
 351   2                  if(ack==0)
 352   2                    return(0);
 353   2                  s++;
 354   2                  suba++;
 355   2                }
 356   1            stop();     
 357   1            return(1);  
 358   1      }
 359          /************************************
 360          接收多个数据串函数
 361          **************************************/
 362          uchar IRcvbyte(uchar sla,uchar *c)
 363          {
C51 COMPILER V7.50   COM                                                                   10/03/2007 21:56:30 PAGE 7   

 364   1            start();
 365   1            SendByte(sla+1);
 366   1            if(ack==0)
 367   1                {
 368   2                return(0);
 369   2                        }
 370   1      
 371   1            *c=RcvByte();
 372   1            send_ack(1);
 373   1            stop();
 374   1            return(1);
 375   1      }
 376          //check
 377          uchar IRcvStr(uchar sla,uchar suba,uchar *s,uchar no)
 378          {
 379   1            uchar i;
 380   1            start();
 381   1            SendByte(sla);
 382   1            if(ack==0)
 383   1                return(0);
 384   1            SendByte(suba);
 385   1            if(ack==0)
 386   1                return(0);
 387   1            start();
 388   1            SendByte(sla+1);
 389   1            if(ack==0)
 390   1                return(0);
 391   1            for(i=0;i<no-1;i++)
 392   1                {
 393   2                    *s=RcvByte();
 394   2                    send_ack(0);
 395   2                    s++;             
 396   2                }
 397   1            *s=RcvByte();
 398   1            send_ack(1);
 399   1            stop();
 400   1            return(1);
 401   1      }
 402          
 403           
 404          
 405          /*******************************************************************
 406          *                           moli-1                                                             *
 407          *                            Ver 0.0                                                       *
 408          *                                 by ren jia fu                                        *
 409          *                                  2007.9.8                                                    *
 410          *********************************************************************/
 411          uchar  rom_rec[7];
 412          main()
 413          {
 414   1        
 415   1       
 416   1          /***********************************************
 417   1                初始化系统
 418   1              *************************************************/
 419   1         
 420   1         
 421   1              WDTCN = 0xde;           // disable watchdog timer
 422   1              WDTCN = 0xad;
 423   1            
 424   1              SYSCLK_Init ();         // initialize oscillator
 425   1              PORT_Init ();           // initialize crossbar and GPIO
C51 COMPILER V7.50   COM                                                                   10/03/2007 21:56:30 PAGE 8   

 426   1         //*******************----------------------------- 
 427   1              
 428   1          //******************-------------------------------
 429   1              UART0_Init ();          // initialize UART0
 430   1        
 431   1              DAC_init();                 // initialize DAC0 DAC1
 432   1      
 433   1          /***********************************************
 434   1                测试DAC0 DAC1
 435   1              *************************************************/
 436   1              chii=1023;
 437   1              OUTDAC0();
 438   1              chii=0;
 439   1              DAC1=chii;
 440   1      
 441   1       
 442   1       /***********************************************
 443   1                主程序
 444   1        *************************************************/
 445   1       
 446   1        P2=0x00;
 447   1        P2=0x01;
 448   1        
 449   1         for(ii=0;ii<1024;ii++)
 450   1         {
 451   2              f=0.0061357*ii;
 452   2          f=32767*sin(f);
 453   2              chii=f;
 454   2              BB[ii]=chii;
 455   2         //BB[ii]=ii;
 456   2              }
 457   1       
 458   1         DAC8541();
 459   1      /*
 460   1      
 461   1              for(ii=0;ii<1024;ii++)
 462   1         {
 463   1               DAC0=BB[ii];
 464   1               DAC1=DAC0;
 465   1           bufer[0]=ii/256;
 466   1               bufer[1]=ii-256*bufer[0];
 467   1      
 468   1               P6=bufer[0];
 469   1           P7=bufer[1];
 470   1           
 471   1               }
 472   1               */
 473   1      begin1:
 474   1              DAC712();
 475   1      
 476   1         goto begin1;
 477   1        
 478   1      }
 479          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    807    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   2050    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     40      15
C51 COMPILER V7.50   COM                                                                   10/03/2007 21:56:30 PAGE 9   

   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 + -