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

📄 freqtestpro.lst

📁 80C52参考频率计程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
                        switch (temp) 
                        {
                                  case 0:
                                    break;
                                  case 1:     
                                    break;
                                  default:
                                    break;
                        }
                        
                        return;
              }
              #endif /* UART_CMD*/
 210          
 211          /***************************************************************
 212          * Interrupt Process
 213          * --------------------------------------------------------------
 214          * interrupt 表示一个中断函数,属性参数为0到31的整常数
 215          *   中断号         中断说明           地址
 216          *     0           外部中断0          0003H
 217          *     1           计时/计数器0       000BH
 218          *     2           外部中断1          0013H
 219          *     3           计时/计数器1       001BH
 220          *     4           串口               0023H
 221          * --------------------------------------------------------------
 222          * 附::(13位)TH0=(8192-C)%32 TL0=(8192-C)/32 Time = C*Ts
 223          * 附::(16位)TH0=(65536-C)%256 TL0=(65536-C)/256 Time = C*Ts
 224          * --------------------------------------------------------------
 225          ****************************************************************/
 226          unsigned int timecount = 0;
 227          unsigned int timeflag = 0;
 228          static void Int_T0_Process(void)  interrupt 1  using 0
 229          {
 230   1          TL0 = 256;
 231   1                TH0 = 256;
 232   1                
 233   1                timecount++;
 234   1                
 235   1          //printf("\n Int_T0_Process timecount is %d \n", timecount);
 236   1          
 237   1                return;
 238   1      }
 239          
 240          static void Int_E0_Process(void)  interrupt 0  using 1
C51 COMPILER V8.08   FREQTESTPRO                                                           07/25/2008 09:13:03 PAGE 5   

 241          {
 242   1                if(timeflag == 0)
 243   1                {
 244   2              timeflag = 1;
 245   2              TL0 = 256;
 246   2                    TH0 = 256;
 247   2              TR0 = 1;           // Start Timer 0
 248   2          }
 249   1          else
 250   1          {
 251   2              timeflag = 0;
 252   2              TR0 = 0;           // Close Timer 0             
 253   2          }
 254   1                
 255   1                return;
 256   1      }
 257          
 258          /***************************************************************
 259          *  TCON:  B7   B6   B5   B4   B3   B2   B1   B0
 260          *         TF1  TR1  TF0  TR0  IE1  IT1  IE0  IT0
 261          * --------------------------------------------------------------
 262          *  IE:    B7   B6   B5   B4   B3   B2   B1   B0
 263          *         EA   --  ET2   ES  ET1  EX1  ET0  EX0
 264          * --------------------------------------------------------------
 265          *  IP:    B7   B6   B5   B4   B3   B2   B1   B0
 266          *         --   --  PT2   PS  PT1  PX1  PT0  PX0
 267          ****************************************************************/
 268          void Int_Init_Api()
 269          {
 270   1          EA = 0;
 271   1                //SP = 0x60;     // Init Stack
 272   1          IT0 = 0;         // Low Level Trigger Int
 273   1          //IT0 = 1;       // Fall Edge Trigger Int
 274   1          TL0 = 252;
 275   1                TH0 = 28;
 276   1          //ET0 = 0; 
 277   1                ET0 = 1;
 278   1          //ES=1;      
 279   1                //EX0=1;         // Enable Ex INT0
 280   1                TR0=1;           // Start Timer 0
 281   1                //TR1 = 1;       // Start Timer 1
 282   1          EA = 1;
 283   1      }
 284          
 285          /***************************************************************
 286          * Data (Digital Divide) In Select
 287          * 0: Digital Divide By 64*1*1  = 64
 288          * 1: Digital Divide By 64*2*1  = 128
 289          * 2: Digital Divide By 64*4*1  = 256
 290          * 3: Digital Divide By 64*8*1  = 512
 291          * 4: Digital Divide By 64*8*1  = 512
 292          * 5: Digital Divide By 64*8*2  = 1024
 293          * 6: Digital Divide By 64*8*4  = 2048
 294          * 7: Digital Divide By 64*8*8  = 4096
 295          ****************************************************************/
 296          void Freq_Data_Select(unsigned int sel)
 297          {
 298   1                 P2 = P2&0xF8;
 299   1           P2 = P2|(sel&0x7); 
 300   1      }
 301          
 302          /***************************************************************
C51 COMPILER V8.08   FREQTESTPRO                                                           07/25/2008 09:13:03 PAGE 6   

 303          * Systenm Init
 304          ****************************************************************/
 305          void Sys_Init_Api()          
 306          {
 307   1                /* Init I/O */
 308   1          P1 = 0xff;
 309   1          P1 = 0xff;
 310   1          P2 = 0xff;
 311   1          P3 = 0x1f;
 312   1         
 313   1                /* Init Mc Control */
 314   1          P2 = P2|(1<<6);      // Divide By 64
 315   1          //P2 = P2&(~(1<<6));   // Divide By 256
 316   1      
 317   1                /* Init Int */
 318   1          Int_Init_Api();
 319   1          
 320   1                /* Init Uart */
 321   1          Uart_Init_Api();
 322   1          
 323   1                /* Select Freq */    
 324   1          Freq_Data_Select(0);  // Digital Divide By 256
 325   1          
 326   1          timecount = 0;
 327   1          
 328   1          return;
 329   1      }
 330          
 331          #define UART_DEBUG
 332          #ifdef UART_DEBUG
 333          /***************************************************************
 334          * Uart Teat
 335          ****************************************************************/
 336          void Uart_Run_Api(void)
 337          {
 338   1                unsigned char tmpc;
 339   1          
 340   1          tmpc = Uart_Rx_Api();
 341   1          if(tmpc == 0)
 342   1          {
 343   2              return;
 344   2          }
 345   1          
 346   1          Uart_Tx_Api(tmpc);
 347   1          
 348   1          return;   
 349   1      }        
 350          #endif
 351          
 352          /***************************************************************
 353          * Led Test
 354          ****************************************************************/
 355          void Led_Run_Api(void)
 356          {
 357   1          Led_Ctl_Api(1, LED_ON);
 358   1          
 359   1                udelay(20000);
 360   1                
 361   1          Led_Ctl_Api(1, LED_OFF);
 362   1      }
 363          
 364          /***************************************************************
C51 COMPILER V8.08   FREQTESTPRO                                                           07/25/2008 09:13:03 PAGE 7   

 365          * main
 366          ****************************************************************/
 367          void main()
 368          {
 369   1          Sys_Init_Api();
 370   1          
 371   1          for(;;)
 372   1          {
 373   2            #ifdef UART_CMD
                      Cmd_Parse_Api();
                        #endif
 376   2              Led_Run_Api();
 377   2              
 378   2              //udelay(200*200);
 379   2              //printf("\n SCUTUM 频率计界面 \n");
 380   2              
 381   2            #ifdef UART_DEBUG
 382   2              Uart_Run_Api();
 383   2                #endif
 384   2              udelay(100);
 385   2          }
 386   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    343    ----
   CONSTANT SIZE    =     49    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     40    ----
   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 + -