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

📄 angle_measure.lst

📁 此程序是基于c8051f020单片机的c语言程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 184   1                              two_5=TT%100000%10000%1000/100;
 185   1                              one_5=TT%100000%10000%1000%100/10;
 186   1                              zero_5=TT%100000%10000%1000%100%10;
 187   1                              write_command(0xc0);
 188   1                              write_data('T');
 189   1                              write_data(':');
 190   1                              write_data(table[five_5]);
 191   1                              write_data(table[four_5]);
 192   1                              write_data(table[three_5]);
 193   1                              write_data(table[two_5]);
 194   1                              write_data(table[one_5]);
 195   1                              write_data(table[zero_5]);
 196   1                              write_data('u');
 197   1                              write_data('s');
 198   1      
 199   1      }
 200          
 201          void impulse()  //测脉宽
 202          {
 203   1                  fcon=0;
 204   1                  phasecon=1;                 
 205   1                      spul=0;
 206   1                              cl=1;
 207   1                              clr=1;
 208   1                              delay(10);
 209   1                              clr=0;
 210   1                              while(!end);
 211   1                              measure_bin();
 212   1                          impulse_1=bin;
 213   1                              positive=impulse_1/50; //扩大了1000000
 214   1                              if(positive==0)
 215   1                              {
 216   2                                 impulse(); 
 217   2                              }
 218   1                  frequence2();
 219   1                              negative=TT-positive;                     
 220   1                          five_2=positive/100000;
 221   1                              four_2=positive%100000/10000;
 222   1                              three_2=positive%100000%10000/1000;
 223   1                              two_2=positive%100000%10000%1000/100;
 224   1                              one_2=positive%100000%10000%1000%100/10;
 225   1                              zero_2=positive%100000%10000%1000%100%10;
 226   1      
 227   1                              write_command(0x01);
 228   1                              delay(10);
 229   1                              write_command(0x80);
 230   1                              write_data('P');
 231   1                              write_data(':');
 232   1                  write_data(table[five_2]);
 233   1                  write_data(table[four_2]);
 234   1                  write_data(table[three_2]);
 235   1                  write_data(table[two_2]);
 236   1                  write_data(table[one_2]);
 237   1                  write_data(table[zero_2]);
 238   1                              write_data('u');
 239   1                              write_data('s'); 
 240   1      
 241   1                          five_3=negative/100000;
C51 COMPILER V8.02   ANGLE_MEASURE                                                         01/14/2009 21:15:28 PAGE 5   

 242   1                              four_3=negative%100000/10000;
 243   1                              three_3=negative%100000%10000/1000;
 244   1                              two_3=negative%100000%10000%1000/100;
 245   1                              one_3=negative%100000%10000%1000%100/10;
 246   1                              zero_3=negative%100000%10000%1000%100%10;
 247   1      
 248   1                              write_command(0xC0);
 249   1                              write_data('N');
 250   1                              write_data(':');
 251   1                  write_data(table[five_3]);
 252   1                  write_data(table[four_3]);
 253   1                  write_data(table[three_3]);
 254   1                  write_data(table[two_3]);
 255   1                  write_data(table[one_3]);
 256   1                  write_data(table[zero_3]);
 257   1                              write_data('u');
 258   1                              write_data('s');  
 259   1      }
 260          
 261          void phase_measure()  //测相位差
 262          {
 263   1                  fcon=0;
 264   1                  phasecon=1;                 
 265   1                      spul=0;
 266   1                              cl=1;
 267   1                              clr=1;
 268   1                              delay(10);
 269   1                              clr=0;
 270   1                              while(!end);
 271   1                              measure_bin();
 272   1                          impulse_1=bin;
 273   1                              if(bin<=100)//估计,随频率而变
 274   1                              {
 275   2                                  phase_measure();
 276   2                              }
 277   1                              frequence2();
 278   1                              positive=impulse_1/50; //扩大了1000000
 279   1                              phase=(positive*360*100)/TT;
 280   1                              four_4=phase/10000;
 281   1                              three_4=phase%10000/1000;
 282   1                              two_4=phase%10000%1000/100;
 283   1                              one_4=phase%10000%1000%100/10;
 284   1                              zero_4=phase%10000%1000%100%10;
 285   1                              write_command(0x01);
 286   1                              delay(10);
 287   1                              write_command(0x80);
 288   1                              for(ii=0;ii<6;ii++)
 289   1                              {
 290   2                                  write_data(str22[ii]);
 291   2                              }
 292   1                  write_data(table[four_4]);
 293   1                  write_data(table[three_4]);
 294   1                  write_data(table[two_4]);
 295   1                  write_data('.');
 296   1                  write_data(table[one_4]);
 297   1                  write_data(table[zero_4]);
 298   1                              write_data(0xdf);
 299   1      }
 300          
 301          void frequence2()
 302          {
 303   1                  phasecon=0;
C51 COMPILER V8.02   ANGLE_MEASURE                                                         01/14/2009 21:15:28 PAGE 6   

 304   1                              fcon=1;
 305   1                              spul=1;
 306   1                              clr=1;
 307   1                              delay(20);
 308   1                              clr=0;
 309   1                              cl=1;
 310   1                              delay(1000);
 311   1                              cl=0;
 312   1                      while(start);
 313   1                              measure_bin();
 314   1                              if(bin==0)
 315   1                              {
 316   2                                 frequence();
 317   2                              }
 318   1                              measure_tin();
 319   1                              TT=bin/(50*tin);
 320   1                  phasecon=1;  //保证波形显示
 321   1                              fcon=0;                                                 
 322   1      }
 323          
 324          void display()
 325          {
 326   1              write_command(0x83);
 327   1              delay(5);
 328   1              for(ii=0;ii<8;ii++)
 329   1              {
 330   2                      write_data(str33[ii]);
 331   2              }
 332   1              write_command(0xc0);
 333   1              for(ii=0;ii<5;ii++)
 334   1              {
 335   2                      write_data(str44[ii]);
 336   2              }
 337   1              write_command(0xc8);
 338   1              for(ii=0;ii<5;ii++)
 339   1              {
 340   2                      write_data(str55[ii]);
 341   2              }   
 342   1      }
 343          
 344          void display_2()
 345          {
 346   1              write_command(0x01);
 347   1              delay(10);
 348   1              write_command(0x86);
 349   1              for(ii=0;ii<3;ii++)
 350   1              {
 351   2                      write_data(str11[ii]);
 352   2              }  
 353   1              delay(200);
 354   1      }
 355          
 356          
 357          
 358          
 359          
 360          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   4036    ----
   CONSTANT SIZE    =     66    ----
C51 COMPILER V8.02   ANGLE_MEASURE                                                         01/14/2009 21:15:28 PAGE 7   

   XDATA SIZE       =     68    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     34    ----
   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 + -