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

📄 main_new_5_test.c

📁 低频电子脉冲治疗仪MCU程序。单片机通过io口发出一定频率的脉冲
💻 C
📖 第 1 页 / 共 3 页
字号:
		 
		}

	
        
        if((COUNT2_5>150)&&(COUNT2_5<199))    // 低电平
		  {
           OUT2 = 0;
		   }
          
	  break;   
//**********************************************************************************************************
 // 波形2_6
 // 与波形五类似,不过是连续脉冲,脉冲的形式与波形五一致。
//**********************************************************************************************************
      case 6:    //放在循环中外执行

	   //强度调整
      // INTENSE_2 =(DISP_INTENSE_2*3)/4+1;
	   COUNT2_5++;
       COUNT2_5 %=200;
	   if(COUNT2_5 == 25)
	   {
	    GATE1 = !GATE1;
      if(GATE1 == 1)
	     GATE2 = 0;
	  else
	   GATE2 = 1;
	   }

       //INTENSE_2 = INTENSE_2 +3;
	   //i=20;
		if(COUNT2_5<100)
		{
	    	//if(COUNT2_5%2)  			  //脉冲前半段		 
		    //  {
			    if(INTENSE_2==1)
			     j = 1;
				//else
				
			     
                 else 
				// j = 0;
				// TEMP2_5=j++;
				 j =( COUNT2_5 %INTENSE_2) + 4;

				// else 
				// j = COUNT2_5-INTENSE_2 ;
				
                
          //if(intense<10)
         //     i = intense;
		 //  else
		 //     {
		 //      i = (intense/5)*(COUNT[type]/temp);
		//	   }
		   
		    
		   OUT2 =1;
           while(--j);                           
		   OUT2 = 0;
          
	//	 }
		 
		}

	
        
        if((COUNT2_5>150)&&(COUNT2_5<199))    // 低电平
		  {
           OUT2 = 0;
		   }
	  break;   

//**********************************************************************************************************
// 波形2_2
// 波形七:T=10s。疏密波。前9秒为疏密波,后1秒为低电平。前9秒分为9部分,
//每1秒为一个部分,九个部分为疏密间隔的波。疏波的频率为38HZ,密波的频率为92HZ。
//疏密波的脉冲宽度随强度增加而增加,对应关系与波形一相同
//(但是在每一秒内,脉冲的宽度不保持不变
//**********************************************************************************************************
     case 2:
	    //强度调整
  // INTENSE_2 =(DISP_INTENSE_2*3)/4+1;
	    GATE2 = 0;
        GATE2 = 0;
        COUNT2_7 ++;
		COUNT2_7= COUNT2_7 % 200;
		i = INTENSE_2+3;
		if(COUNT2_7 <150)
		{
         if(COUNT2_7 % 50 ==0)            //1S为一段
           {  
		    FLAG2_7 = !FLAG2_7;
			
		   }
	     if(FLAG2_7 ==1)                  //疏波
		   {
		    if(COUNT2_7 %2==0)
			  {
               OUT2 =1;
		       while(--i);                   //宽度可调的高电平
		       OUT2 = 0;
			  }
		   }
		  if(FLAG2_7 ==0)                 //疏波
		   {
           //if(COUNT2_7 %1==0)
		//	  {
               OUT2 =1;
		       while(--i);                   //宽度可调的高电平
		       OUT2 = 0;
		//	  }
           
		   }
		}
		if((COUNT4 >=150)&&(COUNT4 <200))
		   OUT2 = 0;
     break;
//**********************************************************************************************************
// 波形2_8
// 波形七:T=10s。疏密波。前9秒为疏密波,后1秒为低电平。前9秒分为9部分,
//每1秒为一个部分,九个部分为疏密间隔的波。疏波的频率为38HZ,密波的频率为92HZ。
//疏密波的脉冲宽度随强度增加而增加,对应关系与波形一相同
//(但是在每一秒内,脉冲的宽度不保持不变
//**********************************************************************************************************
  case 8:
        //强度调整
        //INTENSE_2 =(DISP_INTENSE_2*3)/4+1;
        COUNT2_7 ++;
		COUNT2_7= COUNT2_7 % 300;
		i = INTENSE_2;
		if(COUNT2_7 <200)
		{
         if(COUNT2_7 % 50 ==0)            //1S为一段
           {
		    FLAG2_7 = !FLAG2_7;
			GATE1 = !GATE1;
            if(GATE1 == 1)
	          GATE2 = 0;
	        else
		     GATE2 = 1;
		   }
	     if(FLAG2_7 ==1)                  //疏波
		   {
		    if(COUNT2_7 %4==0)
			  {
               OUT2 =1;
		       while(--i);                   //宽度可调的高电平
		       OUT2 = 0;
			  }
		   }
		  if(FLAG2_7 ==0)                 //疏波
		   {
             if(COUNT2_7 %2==0)
			  {
               OUT2 =1;
		       while(--i);                   //宽度可调的高电平
		       OUT2 = 0;
			  }
           
		   }
		}
		if((COUNT4 >=200)&&(COUNT4 <300))
		   OUT2 = 0;
  break;
//**********************************************************************************************************
// 波形2_3
// 波形七:T=10s。疏密波。前9秒为疏密波,后1秒为低电平。前9秒分为9部分,
//每1秒为一个部分,九个部分为疏密间隔的波。疏波的频率为38HZ,密波的频率为92HZ。
//疏密波的脉冲宽度随强度增加而增加,对应关系与波形一相同
//(但是在每一秒内,脉冲的宽度不保持不变
//**********************************************************************************************************
  case 3:
      //i = INTENSE_2;
	  //强度调整
     //  INTENSE_2 =(DISP_INTENSE_2*3)/4+1;
	   GATE1 = 0;
       GATE2 = 0;
	  COUNT2_9 ++;
	  //if( COUNT2_9 % (12 - INTENSE_2/10)==0)
       if( COUNT2_9 % 8==0)
	    { 
		  for(i=0;i<(INTENSE_2/2+1);i++)
          {
		  k = INTENSE_2;
	      OUT2 =1;
		  while(--k);
          OUT2 = 0;
		  k = INTENSE_2*2;
		  while(--k);
		  k = INTENSE_2*2;
		  while(--k);
		  //k = INTENSE_2*2;
		 // while(--k);
		//  k = INTENSE_2*2;
		//  while(--k);
	      //OUT2 = 0;
           
		   
		  }
		
		}
  break;
//**********************************************************************************************************
// 波形2_10
// 波形七:T=10s。疏密波。前9秒为疏密波,后1秒为低电平。前9秒分为9部分,
//每1秒为一个部分,九个部分为疏密间隔的波。疏波的频率为38HZ,密波的频率为92HZ。
//疏密波的脉冲宽度随强度增加而增加,对应关系与波形一相同
//(但是在每一秒内,脉冲的宽度不保持不变
//**********************************************************************************************************
  case 10:
      //i = INTENSE_2;
	  //强度调整
     // INTENSE_2 =(DISP_INTENSE_2*3)/4+1;
	  COUNT2_10 ++;
	  if( COUNT2_10 % (12 - INTENSE_2/10)==0)
        { 
		  GATE1 = !GATE1;
          if(GATE1 == 1)
	         GATE2 = 0;
	      else
		     GATE2 = 1;
		  for(i=0;i<INTENSE_2*3;)
          {
	       OUT2 =1;
           OUT2 = 0;
		   i ++;
		  }
		
		}
  break;
 //**********************************************************************************************************
// 波形2_11
// 波形七:T=10s。疏密波。前9秒为疏密波,后1秒为低电平。前9秒分为9部分,
//每1秒为一个部分,九个部分为疏密间隔的波。疏波的频率为38HZ,密波的频率为92HZ。
//疏密波的脉冲宽度随强度增加而增加,对应关系与波形一相同
//(但是在每一秒内,脉冲的宽度不保持不变
//**********************************************************************************************************
  case 11:
      //i = INTENSE_2;
	  COUNT2_11 ++;
	  if( COUNT2_11 %20==0)
        { 
		 GATE2 = 0;
	     GATE2 = 0;
		  for(i=0;i<INTENSE_2*5;)
          {
	       OUT2 =1;
           OUT2 = 0;
		   i ++;
		  }
		
		}
  break;
 //**********************************************************************************************************
// 波形2_12
// 波形七:T=10s。疏密波。前9秒为疏密波,后1秒为低电平。前9秒分为9部分,
//每1秒为一个部分,九个部分为疏密间隔的波。疏波的频率为38HZ,密波的频率为92HZ。
//疏密波的脉冲宽度随强度增加而增加,对应关系与波形一相同
//(但是在每一秒内,脉冲的宽度不保持不变
//**********************************************************************************************************
  case 12:
  //强度调整
  // INTENSE_2 =(DISP_INTENSE_2*3)/4+1;
      //i = INTENSE_2;
	  COUNT2_12 ++;
	  if( COUNT2_12 % 20==0)
        { 
		  GATE1 = !GATE1;
          if(GATE1 == 1)
	         GATE2 = 0;
	      else
		     GATE2 = 1;
		  for(i=0;i<INTENSE_2*5;)
          {
	       OUT2 =1;
           OUT2 = 0;
		   i ++;
		  }
		
		}
  break;
  }
}
 ET1 =1; 
 EA=1;
}

/******************************************************************************************************
                                   系统初始化函数
                                   作用:对全局变量,串口,定时器初始化设置
******************************************************************************************************/
void SystemInitial()
{ 

  P2_6 = 0;
  P2_7 = 0;
  //全局变量初始化
  SYS_STATE = 0;
  WAVE_TYPE_1 = 1;
  WAVE_TYPE_2 = 1;
  DISP_INTENSE_1 =0;
  DISP_INTENSE_2 =0;
  SET_MINUTE = 20;
  LED_1  = 1;
  LED_2  = 0;
  LED_3  = 0;
  //P2_6 = 0;
  //P2_7 = 0;
  //P2_4 = 1;
  //P2_5 = 1;
  // P2 = 0;
  
  //定时器初始化
  TMOD=0x11;
 
  TF0=0;
  TH0 = 0x3C;
  TL0 = 0xB0;
  TR0=0;

 TF1 = 0;
 TH1 = (65536-20000)/256;
 TL1 = (65536-20000)%256;
 TR1 = 0;

  //串口初始化,串口工作在方式0
  SCON = 00;
  DisplayChar(SET_MINUTE,0);
  DisplayChar(DISP_INTENSE_1,4);
  DisplayChar( DISP_INTENSE_2,2);
  
  //蜂鸣器发声
  BUZZER = 1;
  delay200ms();
  delay200ms();
  delay200ms();
  delay200ms();
  BUZZER = 0;

}


/******************************************************************************************************
                                   主函数
******************************************************************************************************/ 
void main()
{
  //P2_7 = 0; 
  //unchar temp;
  //unchar i,j;
  
  //i = 2;
	  //for(TEMP=0;TEMP<5;TEMP++)
  //{
  /*
   P2_7 = 0;
   P2_7 =1;
   P2_7 = 0;
   P2_7 =1;
   P2_7 = 0;
   P2_7 =1;

   P2_7 = 0;  
*/

  SystemInitial();
  EX0 = 1;
  ET0 = 1;
  ET1 = 1;
  PT1 = 1;
  //PX0 = 1;
  EA  = 1;
  //P2_6 = 0;
   //P2_7 = 0;
 
  while(1)
  {

   if((DISP_INTENSE_1 || DISP_INTENSE_2)&& SET_MINUTE)            //强度不为0且设置时间不为0时,系统才有输出
   {
    TR0 = 1;
	TR1 = 1;
   }
   else 
   {
     TR0 = 0;
	 TR1 = 0;
   }
   if(SET_MINUTE == 0)                                 //设置时间到,蜂鸣器发声提醒
     {  
       BUZZER = 1;
       
     }

//第一路输出波形
   if((DISP_INTENSE_1 != 0)&&SET_MINUTE)
     {
       P2_3 = 0;
   		switch(WAVE_TYPE_1)
		      {
			   case 2:                                 //波形1_2
			   /*
			       if(FLAG2 ==0)
				     OUT1 = 0;
				   if(FLAG2 ==1)
				    {
					 temp = INTENSE_1;
				     OUT1 =! OUT1;
					 while(--temp);
					 }
				 */
              break;
/*
              case 5:                                  //波形1_5
			       if(FLAG5 ==0)
				      OUT1 = 0;
				   if(FLAG5 ==1)
				    {
					 temp = 100-INTENSE_1;
				     OUT1 =! OUT1;
					 while(--temp);
					}
              break;
			  */
			   }
	  }

 //第二路波形输出
   if((DISP_INTENSE_2 != 0)&&SET_MINUTE)
     {
   		switch(WAVE_TYPE_2)
		    {

              case 1:
			    GATE1 = 0;
                GATE2 = 0; 
    		  break;
			  /*
			  case 2:
			    GATE1 = 0;
                GATE2 = 1; 
    		  break;
			  case 3:
			    GATE1 = 0;
                GATE2 = 0; 
    		  break;
			  */
			  case 4:
			    //GATE1 = 0;
                //GATE2 = 0; 
    		  break;
              case 5:
			    GATE1 = 0;
                GATE2 = 0; 
    		  break;
			  case 6:
			  //  GATE1 = 0;
              //  GATE2 = 0; 
    		  break;
			  case 7:
			   // GATE1 = 0;
               // GATE2 = 1; 
    		  break;
			  case 8:
			   // GATE1 = 1;
               // GATE2 = 0; 
    		  break;
              case 9:
			    GATE1 = 0;
                GATE2 = 0; 
    		  break;
		}
  	  }
   }

}








⌨️ 快捷键说明

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