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

📄 main.c

📁 电磁流量计的源程序。将流体流量用电磁转换方式变换成弱电信号
💻 C
字号:
#include "reg52.h"
#include "typedef.h"
#include "function.h"
#include "define.h"
#include "varible.h"


#define loop() while(1)
 sbit CS=P1^0;
bit system_init_F ;
void Cpu_init(void);

    void main(void)
{
    Set_watchdog_time(DI_WATCH_DOG);   //disable watchdog 
//    adc_init_tmr = 0;
    system_init_F = 0;
    Cpu_init();
     EX0 = 1 ;         //enable interrupt  
     EA = 1;           //enable all interrupt
	X25043_init();   //eeprom
 //   Set_watchdog_time(DI_WATCH_DOG);   //disable watchdog 
    Set_watchdog_time(DI_WATCH_DOG);   //disable watchdog
    
   
    Disp_init();     //7219 
    Key_init();
	System_data_init();
    Adc_init();      //7705 init
    
    Da_init();       //da5615 init
 //   Serial_485_init(); //485 init
    Pulse_init();
    Alarm_init();
   Set_watchdog_time(RESET_TM200MS); //set wqtch dog time 200ms
   system_init_F = 1;
   main_step = 1;   
  
   TR0 = 1 ;         //start timer0 counter
//   EX0 = 1 ;         //enable interrupt  
//   EA = 1;           //enable all interrupt
  
   loop()
   {
     if(TF0 == 1)
       {
         TF0 = 0 ;
         TH0 = TM10MS_H ;
         TL0 = TM10MS_L ;
         CS = 1 ;
         CS = 0 ;       //reset watchdog timer
         CS = 1 ;
   /*      adc_init_tmr++;
         if(adc_init_tmr == TM500MS)
         {
            adc_init_tmr = 0;
            Adc_init();*/
         Key_hd();
         
         
         switch(main_step)
         {
          case 1:
                 Key_prc();
                 main_step++;
                 break;
          case 2:
             
                Data_prc();
                main_step++;
                break;
          case 3:
               
                Disp_prc();
                
               
                main_step++;
                break;
          case 4:
               Led_prc();
               Disp_out();
               main_step++;
               break;
          case  5:
          
             if(data_prc_time == TM500MS)
  //              if(sec_time == 0)
                  {
                  	
                  	  Da_prc();                         //da5615 precess
           //           Serial_485_prc();                 
                     Pulse_prc();
                  }
          
               
           
              main_step = 1;
              break;
          }
       }
   }
}














void Cpu_init(void)
{
	 EA = 0 ;           //disable all interrupt
/*   timer0 10ms no interrupt */
//	TMOD = 0x01 ;  
    ET0 = 0 ;
    ET1 = 0 ;
    TR0 = 0 ;                 // disable timer
	TR1 = 0 ;
	TMOD = 0x11 ;       
	TH0 = TM10MS_H ;
	TL0 = TM10MS_L ; 
  //  TH1 = 0xfc;             //1ms timer
 //   TL1 = 0x66 ;
    TH1 = 0xf8;
    TL1 = 0xcc ;
    PT1 = 1;
//	TH1 = TM10MS_H;
//	TL1 = TM10MS_L;
	
	
/*****  timer2 precess *****/
/*     used for pulse out interrupt 500us */
 /**   ET2 = 0;
    TR2 = 0;   
	T2CON = 0x00;
//	T2MOD = 0x02;
	RCAP2H = 0xfe;
	RCAP2L = 0x34;
	TH2 = 0xfe ;
	TL2 = 0x34;

	ET2 = 1 ;    */
             //enable interrupt
// INTO init
    EX0 = 0 ;                 //close interrupt
    IE0 = 0 ;
    PX0 = 0 ;                 //high pority
    IT0 = 1 ;                 //edgle trigger
	return;
    
    
}	
 

⌨️ 快捷键说明

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