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

📄 step_motor_led.lst

📁 使用单片机控制步进电机
💻 LST
📖 第 1 页 / 共 2 页
字号:
 236   2                      {
 237   3                              while(!b3);
 238   3                              if(dly>=15&&dly<=350)
 239   3                              {
C51 COMPILER V8.02   STEP_MOTOR_LED                                                        04/05/2007 22:09:43 PAGE 5   

 240   4                                      dly-=6;
 241   4                              }
 242   3                              else 
 243   3                              {
 244   4                                      dly+=12;
 245   4                              }
 246   3                                      
 247   3                      }               
 248   2              }
 249   1              Delayms(dly);
 250   1      }
 251          
 252          
 253          /******************************************************************************
 254          Function:               buffer_clear
 255          Description:    buffer_clear
 256          Calls:                  - None
 257          Input:                  - None
 258          Output:                 - None
 259          Return:                 
 260          ******************************************************************************/
 261          void buffer_clear(void)
 262          {
 263   1              int i;
 264   1              for(i=0;i<20;i++)
 265   1              {
 266   2                      cmd.buf[i]='\0';
 267   2              }
 268   1              cmd.cnt=0;
 269   1      }
 270          
 271          
 272          /******************************************************************************
 273          Function:               Lcd initial
 274          Description:    Initialize LCD IO 
 275          Calls:                  - None
 276          Input:                  - None
 277          Output:                 - None
 278          Return:                 
 279          ******************************************************************************/
 280          
 281          void Lcd_Cmd(uint cmd)
 282          { 
 283   1                P1=cmd;
 284   1                LCD_RS=0;
 285   1                LCD_RW=0;
 286   1                LCD_E=0; 
 287   1                Lcd_Check();
 288   1                LCD_E=1;
 289   1      }
 290          //--------------Lcd check busy----------------/
 291          void Lcd_Check(void)
 292          {
 293   1      /*      volatile uchar i;
 294   1              do{
 295   1                P0 = 0xff;
 296   1                LCD_RS = 0;
 297   1                LCD_RW = 1;
 298   1                LCD_E  = 1;
 299   1                for(i=0;i<6;i++)
 300   1                ;
 301   1                LCD_E  = 1;
C51 COMPILER V8.02   STEP_MOTOR_LED                                                        04/05/2007 22:09:43 PAGE 6   

 302   1                }while(LCD_BUSY_CHECK == 1);   */
 303   1                Delayms(2);
 304   1      }
 305          
 306          //-----------Lcd initial
 307          void Lcd_Ini(void)
 308          {
 309   1                Lcd_Cmd(0x06);
 310   1                Delayms(5);
 311   1                Lcd_Cmd(0x38);
 312   1                Delayms(5);
 313   1                Lcd_Cmd(0x0c);//0f     close cursor
 314   1                Delayms(5);
 315   1                Lcd_Cmd(0x01);   //06
 316   1                Delayms(5);
 317   1       }
 318          //----------charater LCD-Display
 319          void Lcd_Dis(uint dis)
 320          { 
 321   1                P1=dis;
 322   1                LCD_RS=1;
 323   1                LCD_RW=0;
 324   1                LCD_E=0;
 325   1                Lcd_Check();
 326   1                LCD_E=1;
 327   1      }
 328          //---------tips string-display------
 329          void Lcd_String(char *str)
 330          {
 331   1               uint i=0;
 332   1               while(str[i]!=0)
 333   1               {
 334   2                Lcd_Dis(str[i]);
 335   2                if(i==19)
 336   2                      Lcd_Cmd(0xc0);
 337   2                else if(i==39)
 338   2                      Lcd_Cmd(0x94);
 339   2                else if(i==59)
 340   2                      Lcd_Cmd(0xD4);
 341   2      
 342   2                i++;
 343   2               }
 344   1      }
 345          
 346          void Delayms(int dly)
 347          {
 348   1       int i,j;
 349   1       for(i=0;i<dly;i++)
 350   1          for(j=0;j<120;j++);         //50
 351   1      }
 352          
 353          ////////////4800bps/////////////enable the interrupt serial port////////initialize
 354          void Serial_Init1(void)  //8 bit data ; 1 bit stop  ; no checking bit
 355          {
 356   1              SCON=0X50;//serial mode 1; 8 bits uart, enable ucvr
 357   1              TMOD|=0x20;//time1; mode 1 , 8 bits     reload
 358   1              PCON=0X0;//SMOD=1;
 359   1              TH1=0xFA;//baudrate:4800bps    fosc=11.0592MHz
 360   1              TL1=0xFA;
 361   1              IE|=0x90;//    EA=0;   enable serial port interrupt
 362   1              TR1=1;   //timer1 run
 363   1              cmd.cnt=0;    //initialize
C51 COMPILER V8.02   STEP_MOTOR_LED                                                        04/05/2007 22:09:43 PAGE 7   

 364   1              buffer_clear();
 365   1      }
 366          
 367          ////////////9600bps/////////////enable the interrupt serial port/////////initialize
 368          void Serial_Init2(void)  //8 bit data ; 1 bit stop  ; no checking bit
 369          {
 370   1              SCON=0X50;//serial mode 1; 8 bits uart, enable ucvr
 371   1              TMOD|=0x20;//time1; mode 1 , 8 bits     reload
 372   1              PCON=0X00;//SMOD=1;
 373   1              TH1=0xFD;//baudrate:9600bps    fosc=11.0592MHz
 374   1              TL1=0xFD;
 375   1              IE|=0x90;//    EA=0;   enable serial port interrupt
 376   1              TR1=1;   //timer1 run
 377   1              cmd.cnt=0;    //initialize
 378   1              buffer_clear();//clear the buffer
 379   1      }
 380          
 381          ////////////19200bps/////////////enable the interrupt serial port ///////initialize
 382          void Serial_Init3(void)  
 383          {
 384   1              SCON=0X50;//serial mode 1; 8 bits uart, enable ucvr
 385   1              TMOD|=0x20;//time1; mode 1 , 8 bits     reload
 386   1              PCON=0X80;//SMOD=1;
 387   1              TH1=0xFD;//baudrate:9600bps    fosc=11.0592MHz
 388   1              TL1=0xFD;
 389   1              IE|=0x90;//    EA=0;   enable serial port interrupt
 390   1              TR1=1;   //timer1 run
 391   1              cmd.cnt=0;    //initialize
 392   1              buffer_clear();//clear the buffer
 393   1      }
 394          
 395          ///////////////led character dispaly///////////
 396          void led_dispaly(void)
 397          {
 398   1              int i;
 399   1      
 400   1        //  Lcd_Cmd(0x01);
 401   1         //display line select
 402   1         if(count==0)
 403   1         {  
 404   2            Lcd_Cmd(0x01);
 405   2            Lcd_Cmd(0x80);
 406   2              }
 407   1          else if(count==1)
 408   1            Lcd_Cmd(0xc0);
 409   1          else if(count==2)
 410   1            Lcd_Cmd(0x94);
 411   1          else if(count==3)
 412   1                Lcd_Cmd(0xD4);
 413   1              
 414   1      
 415   1                //content display 
 416   1              for(i=0;i<cmd.cnt-2;i++)  
 417   1              {                   
 418   2              if(i>59)
 419   2                        Lcd_String(examp5);
 420   2                      else
 421   2                      {
 422   3                         if(cmd.buf[i]!= 0x0a&&cmd.buf[i]!=0x0d)
 423   3                  {
 424   4                      Lcd_Dis(cmd.buf[i]);
 425   4                      if(i==19)                                //lines enter
C51 COMPILER V8.02   STEP_MOTOR_LED                                                        04/05/2007 22:09:43 PAGE 8   

 426   4                       Lcd_Cmd(0xc0);
 427   4                      else if(i==39)
 428   4                       Lcd_Cmd(0x94);
 429   4                      else if(i==59)
 430   4                       Lcd_Cmd(0xD4);
 431   4                       } 
 432   3                      Delayms(5);
 433   3                      }
 434   2                      
 435   2              }
 436   1                
 437   1          count++; 
 438   1              if(count==4)
 439   1                 count=0;      
 440   1              cmd.cnt=0;    //initialize
 441   1              buffer_clear();//clear the buffer                         
 442   1      }
 443          
 444          ////////////////interrupt programe////////
 445          void serial(void) interrupt 4
 446          {                                                   
 447   1              if(RI)
 448   1              {
 449   2                      RI=0;
 450   2                      cmd.buf[cmd.cnt++]=SBUF;
 451   2              }
 452   1              if(cmd.buf[cmd.cnt-1]==0x0d);
 453   1              else
 454   1              {
 455   2                 if(cmd.buf[cmd.cnt-1]==0x0a)
 456   2                 {   
 457   3                       led_dispaly();
 458   3                 }
 459   2              }
 460   1         
 461   1      }
 462          
 463                          
 464          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    833    ----
   CONSTANT SIZE    =    100    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     27       6
   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 + -