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

📄 ad.lst

📁 这是c8051F005的AD转换程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 192   1            SPI0CFG = 0x07;                        // data sampled on 1st SCK rising edge
 193   1            SPI0CFG|=0xC0;                         //CKPOL =1;
 194   1            SPI0CN = 0x03;                         // Master mode; SPI enabled; flags
 195   1            SPI0CKR = SYSCLK/2/2000000-1;           // SPI clock <= 8MHz (limited by 
 196   1                                                    // EEPROM spec.)
 197   1      }
 198          //-----------------------------------------------------------------------------
 199          // UART0_Init
 200          //-----------------------------------------------------------------------------
 201          void UART0_Init (void)
 202          {
 203   1         SCON    = 0x50;                     // SCON: mode 1, 8-bit UART, enable RX
 204   1         TMOD    = 0x20;                     // TMOD: timer 1, mode 2, 8-bit reload
 205   1         TH1    = -(SYSCLK/BAUDRATE/16);     // set Timer1 reload value for baudrate
 206   1         TR1    = 1;                         // start Timer1
 207   1         CKCON |= 0x10;                      // Timer1 uses SYSCLK as time base
 208   1         PCON  |= 0x80;                      // SMOD = 1
 209   1         TI     = 1;                         // Indicate TX ready
 210   1      }
 211          //-----------------------------------------------------------------------------
 212          // LCD_Init
 213          //-----------------------------------------------------------------------------
 214          void LCD_Init(void) //向LCD送命令
 215          {
 216   1      //      unsigned int xdata   x;
 217   1              delaynms(100);
 218   1              datad=0x00;
 219   1              SendSPIByte(datad);
 220   1              delaynms(10);
 221   1              Write_COM(0x30);            
 222   1              delaynms(10);     
 223   1              Write_COM(0x30);            
 224   1              delaynms(10);
 225   1              Write_COM(0x30);            
 226   1              delaynms(10) ; 
 227   1              Write_COM(0x28);           
 228   1              delaynms(100);
 229   1              virt_port=0;
 230   1              SendSPIByte(virt_port);
 231   1              lcden(virt_port);
 232   1              Write_COM(0x01); 
 233   1              delaynms(100);          
 234   1              Write_COM(0x06); 
 235   1              delaynms(10);           
 236   1              Write_COM(0x0C); 
 237   1              delaynms(500);           
 238   1       
 239   1      }
C51 COMPILER V8.02   AD                                                                    03/23/2009 20:06:28 PAGE 5   

 240          //-----------------------------------------------------------------------------
 241          // SendSPIByte
 242          //-----------------------------------------------------------------------------
 243          void SendSPIByte(unsigned char ch)
 244          {       lcdcs=1;
 245   1              delaynus(100);
 246   1         SPIF = 0;
 247   1        SPI0DAT = ch;
 248   1        while (SPIF == 0);
 249   1              delaynus(100);
 250   1              lcdcs=0;
 251   1              delaynus(100); 
 252   1              nop_();     // 等待写结束           
 253   1      }
 254          //-----------------------------------------------------------------------------
 255          // lcden
 256          //-----------------------------------------------------------------------------
 257          void lcden(datad)
 258          {
 259   1                datad|=0x08;   
 260   1                SendSPIByte(datad);
 261   1                datad&=0xf7;
 262   1                SendSPIByte(datad);
 263   1      }
 264          //-----------------------------------------------------------------------------
 265          // delaynms
 266          //-----------------------------------------------------------------------------
 267          void delaynms (unsigned int uu)
 268          {
 269   1         unsigned int oo,ll;
 270   1         for (oo=0;oo   {
*** ERROR C141 IN LINE 270 OF AD.C: syntax error near '{'
 271   2          for(ll=0;ll<1140;ll++);
 272   2          
 273   2         }
 274   1      }
 275          //-----------------------------------------------------------------------------
 276          // writechar
 277          //-----------------------------------------------------------------------------
 278          void writechar(unsigned char ua)
 279          {       
 280   1              
 281   1              uint  j;
 282   1              uchar t,x;
 283   1              for(j=0;j<500;j++);
 284   1              datad|=0x02;
 285   1              SendSPIByte(datad);
 286   1              datad|=ua&0xf0;
 287   1              SendSPIByte(datad);
 288   1              datad|=0x08;   
 289   1              SendSPIByte(datad);
 290   1              for(x=0;x<3;x++);
 291   1              datad&=0xf7;
 292   1              SendSPIByte(datad);
 293   1              for(x=0;x<3;x++);
 294   1              datad&=0x07;
 295   1              delaynus(100);    
 296   1           SendSPIByte(virt_port);
 297   1              t|=ua&0x0f;
 298   1              datad|=t<<4;
 299   1              SendSPIByte(datad);
 300   1              for(x=0;x<3;x++);
C51 COMPILER V8.02   AD                                                                    03/23/2009 20:06:28 PAGE 6   

 301   1              datad|=0x08;   
 302   1              SendSPIByte(datad);
 303   1              for(x=0;x<3;x++);
 304   1              datad&=0xf7;
 305   1              SendSPIByte(datad);
 306   1              for(x=0;x<3;x++);
 307   1             datad=0x00;
 308   1              t=0x00;
 309   1             SendSPIByte(datad);
 310   1      }
 311          //-----------------------------------------------------------------------------
 312          // Write_COM
 313          //-----------------------------------------------------------------------------
 314          void Write_COM(uchar ins)
 315               {
 316   1            uchar  t;
 317   1         uint j;
 318   1        
 319   1         for(j=0;j<5000;j++);              //用延时代替查询
 320   1         virt_port|=ins&0xf0;
 321   1         SendSPIByte(virt_port);
 322   1            //LCDE=1;
 323   1         virt_port|=0x08;
 324   1         SendSPIByte(virt_port);
 325   1            for(i=3;i>0;i--);
 326   1            //LCDE=0;
 327   1         virt_port&=~0x08;
 328   1         SendSPIByte(virt_port);
 329   1            virt_port&=0x07;
 330   1         SendSPIByte(virt_port);
 331   1            t=ins<<4;             
 332   1            virt_port|=t&0xf0;           
 333   1         SendSPIByte(virt_port);
 334   1            //LCDE=1;
 335   1         virt_port|=0x08;
 336   1         SendSPIByte(virt_port);
 337   1            for(i=3;i>0;i--);
 338   1            //LCDE=0;
 339   1         virt_port&=~0x08;
 340   1         SendSPIByte(virt_port);
 341   1            virt_port=0;
 342   1         SendSPIByte(virt_port);
 343   1      }
 344          //-----------------------------------------------------------------------------
 345          // LCD_set_xy
 346          //-----------------------------------------------------------------------------
 347          void LCD_set_xy( unsigned char x, unsigned char y )
 348          {
 349   1          unsigned char address;
 350   1          if (y == 0) address = 0x80 + x;
 351   1          else 
 352   1          address = 0xc0 + x;
 353   1          Write_COM(address);
 354   1      }
 355          //-----------------------------------------------------------------------------
 356          // LCD_write_string
 357          //-----------------------------------------------------------------------------
 358          void LCD_write_string(unsigned char n)
 359          {  
 360   1          unsigned char data1;
 361   1          for(n;n>0;n--)
 362   1          {
C51 COMPILER V8.02   AD                                                                    03/23/2009 20:06:28 PAGE 7   

 363   2          data1=*lcdpoint;
 364   2          writechar(data1);
 365   2            delaynms(100);
 366   2          lcdpoint++;
 367   2          delaynus(10);
 368   2          } 
 369   1      }
 370          //-----------------------------------------------------------------------------
 371          // delaynus
 372          //-----------------------------------------------------------------------------
 373          void delaynus(unsigned int q)       //N us延时函数
 374            {
 375   1         for (i=0;i
 376   1            nop_();
*** ERROR C141 IN LINE 376 OF AD.C: syntax error near 'nop_'
 377   1            }
 378            }
*** ERROR C141 IN LINE 378 OF AD.C: syntax error near '}'
 379          //-----------------------------------------------------------------------------
 380          // lcd_adc
 381          //-----------------------------------------------------------------------------
 382          void lcd_adc(void)
 383          {
 384   1          unsigned char xdata ADC0Data[5]=; 
*** ERROR C141 IN LINE 384 OF AD.C: syntax error near ';'
 385   1          lcdpoint=&ADC0Data;
 386   1      }

C51 COMPILATION COMPLETE.  1 WARNING(S),  4 ERROR(S)

⌨️ 快捷键说明

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