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

📄 zhuansukongzhi.lst

📁 自己编的一个直流电机转速控制程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 205   1      
 206   1                      return key;
 207   1              }
 208              void Timer1() interrupt 3
 209            {  
 210   1         TH1=(65636-50000)/256;
 211   1         TL1=(65636-50000)%256;
 212   1         Count++;
 213   1         if(Count>=20)
 214   1            { Count=0;
 215   2              
 216   2                  truev=cnt;
 217   2                      cnt=0;
 218   2              }
 219   1           }
 220             void Timer0() interrupt 1
 221             {  if(flag==1)
 222   1               {  TH0=(65636-(100-n)*50)/256;
 223   2                  TL0=(65636-(100-n)*50)%256;
 224   2                          L298_IN1=0;
 225   2                      
 226   2                        } 
 227   1                else
 228   1                    {
 229   2                          TH0=(65636-n*50)/256;
 230   2                  TL0=(65636-n*50)%256;
 231   2                          L298_IN1=1;
 232   2                                  
 233   2                 }
 234   1                         flag=~flag;
 235   1               }
 236            
 237          void Int1() interrupt 2
 238          {   
 239   1          cnt++;
 240   1      }
 241           void Int0() interrupt 0
C51 COMPILER V8.02   ZHUANSUKONGZHI                                                        03/04/2009 17:29:09 PAGE 5   

 242          { uchar s,a,b,p,q;
 243   1        uchar m=v;
 244   1        uchar k=0;
 245   1        EX0=0;
 246   1        s=key_scan();
 247   1        if (s==12)
 248   1         {    
 249   2          LCD_WriteCommand(0x01);        /*清除LCD的显示内容*/
 250   2              delay(10);
 251   2              show(0,'P');
 252   2              show(1,'u');
 253   2              show(2,'t');
 254   2              show(3,' ');
 255   2              show(4,'i');
 256   2              show(5,'n');
 257   2              show(6,' ');
 258   2              show(7,'v');
 259   2              show(8,':');
 260   2              s=key_scan();
 261   2      
 262   2              while(s!=15)
 263   2                { 
 264   3                  if(s==14)
 265   3                      {k=0; break;}
 266   3                      if((s>=0)&(s<=9)&(k==0))
 267   3                      { a=s;
 268   4                        k++;
 269   4                        show(9,(a+48));
 270   4                        }
 271   3                       s=key_scan();
 272   3                       if(s==14)
 273   3                       {k=0; break;}
 274   3                       if(s==15) break;
 275   3                       if((s>=0)&(s<=9)&(k==1))
 276   3                       { b=s;
 277   4                         k++;
 278   4                        show(10,(b+48));
 279   4                        }
 280   3                        s=key_scan();
 281   3                        }
 282   2                       if(k==1) v=a;
 283   2                       if(k==2) v=a*10+b;
 284   2                       if((v<10)|(v>40))
 285   2                       { v=m;
 286   3                         LCD_WriteCommand(0x01);         /*清除LCD的显示内容*/
 287   3                     delay(10);
 288   3                         show(4,'E');
 289   3                         show(5,'R');
 290   3                         show(6,'R');
 291   3                         show(7,'O');
 292   3                 show(8,'R');
 293   3                         delay(200);
 294   3                         }
 295   2                       p=truev;
 296   2               q=v;
 297   2                  LCD_WriteCommand(0x01);
 298   2                  delay(10);
 299   2                      show(0,'S');
 300   2                      show(1,'e');
 301   2                      show(2,'l');
 302   2                      show(3,'e');
 303   2                      show(4,'c');
C51 COMPILER V8.02   ZHUANSUKONGZHI                                                        03/04/2009 17:29:09 PAGE 6   

 304   2                      show(5,'t');
 305   2                      show(6,' ');
 306   2                      show(7,'V');
 307   2                      show(8,'=');
 308   2                      show(9,(q/10)+48);
 309   2                      show(10,(q%10)+48);
 310   2                      show(11,'r');
 311   2                      show(12,'/');
 312   2                      show(13,'s');
 313   2              show(0xc0,'T');
 314   2                      show(0xc1,'r');
 315   2                      show(0xc2,'u');
 316   2                      show(0xc3,'e');
 317   2                      show(0xc4,' ');
 318   2                      show(0xc5,' ');
 319   2                      show(0xc6,' ');
 320   2                      show(0xc7,'V');
 321   2                      show(0xc8,'=');
 322   2                      show(0xc9,(p/10)+48);
 323   2                      show(0xca,(p%10)+48);
 324   2                      show(0xcb,'r');
 325   2                      show(0xcc,'/');
 326   2                      show(0xcd,'s');
 327   2                  }
 328   1                      
 329   1       }
 330          
 331          
 332          
 333          void main(void)
 334          {  uchar temp1=0;     /*temp1变量保存速度返回值 */
 335   1         uchar temp2=0;      /*temp2变量保存路程返回值*/
 336   1         P0=0x0f;
 337   1         n=40;                
 338   1         flag=1; 
 339   1         IE=0x8f;
 340   1         IP=0x0e;
 341   1         TCON=0x55;
 342   1         TMOD=0x11;
 343   1         TH0=(65636-n*50)/256;
 344   1         TL0=(65636-n*50)%256;
 345   1         TH1=(65636-50000)/256;
 346   1         TL1=(65636-50000)%256;
 347   1         LCD_Init(); 
 348   1         while(1)
 349   1         {    uchar i;
 350   2              EX0=1;
 351   2              L298_IN2=0;
 352   2              LCD_WriteCommand(0x01);
 353   2                  delay(10);
 354   2                      show(0,'S');
 355   2                      show(1,'e');
 356   2                      show(2,'l');
 357   2                      show(3,'e');
 358   2                      show(4,'c');
 359   2                      show(5,'t');
 360   2                      show(6,' ');
 361   2                      show(7,'V');
 362   2                      show(8,'=');
 363   2                      show(11,'r');
 364   2                      show(12,'/');
 365   2                      show(13,'s');
C51 COMPILER V8.02   ZHUANSUKONGZHI                                                        03/04/2009 17:29:09 PAGE 7   

 366   2              show(0xc0,'T');
 367   2                      show(0xc1,'r');
 368   2                      show(0xc2,'u');
 369   2                      show(0xc3,'e');
 370   2                      show(0xc4,' ');
 371   2                      show(0xc5,' ');
 372   2                      show(0xc6,' ');
 373   2                      show(0xc7,'V');
 374   2                      show(0xc8,'=');
 375   2                      show(0xcb,'r');
 376   2                      show(0xcc,'/');
 377   2                      show(0xcd,'s');
 378   2              
 379   2              for(i=0;i<5;i++)
 380   2              { P0=0x0f;
 381   3                        
 382   3                        temp1=truev;
 383   3                    temp2=v;
 384   3                        if(temp2==0) L298_EN=0;
 385   3                        if(temp2>0)  L298_EN=1;
 386   3      
 387   3                        if(n>0&n<100)
 388   3                         {
 389   4                          if((temp1>temp2+1)&(n>1)) n--; /*现实速度大于设定速度+1,占空比减小*/
 390   4                      if((temp1<temp2-1)&(n<99)) n++; /*现实速度小于设定速度-1,占空比增加*/
 391   4                              }
 392   3                        show(9,(temp2/10)+48);
 393   3                        show(10,(temp2%10)+48);
 394   3                        show(0xc9,(temp1/10)+48);
 395   3                        show(0xca,(temp1%10)+48);
 396   3                        delay(600);
 397   3                        }
 398   2           } 
 399   1         }
 400          
 401              


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2007    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     10       7
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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