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

📄 jianfei.c

📁 减肥机源程序,内带VFD彩屏HL16360驱动
💻 C
📖 第 1 页 / 共 2 页
字号:
				delay_ms(120);
				}
		   break;
		   }
	show();
	while ((PIND & 0x0f)!=0x0f) WDR();
	delay_ms(100);
	while ((PIND & 0x0f)!=0x0f) WDR();
   }
}

void modle1change(void)
{
			 if (xunhuan1==1)
			 	{
				trign++;
				if (trign>60)
				   {
				   trign=0;
				   stopboxing();
				   xunhuan1=2;
				   }
			 	}
			 else if (xunhuan1==2)
			 	  {
				  trign++;
				  if (trign>boxing2)
				  	 {
					 trign=0;
					 in50hza();
					 xunhuan1=3;
					 }
				  }
			  else if (xunhuan1==3)
			  	 {
				 trign++;
				 if (trign>60)
				  {
				  trign=0;
				  stopboxing();
				  xunhuan1=4;
				  }
				 }
			  else if (xunhuan1==4)
			  	   {
				   trign++;
				   if (trign>boxing2)
				   	  {
					   trign=0;
					   in50hzb();
					   xunhuan1=1;
					   fecte++;
					   if (fecte>3) 
					   	  {
						  fecte=0;
						  if (boxing2>80)  boxing2-=20;
						  else boxing2=140;
						  }
					  }
				   }
				   
}

void modle2change(void)
{
if (xunhuan1==1)
 {
   trign++;
   if (trign>80)
   	  {trign=0;
   	  xunhuan1=2;
   	  in10hza();
   	  }
 }
else if (xunhuan1==2)
 {
   trign++;
   if (trign>60)
   	  {trign=0;
   	  xunhuan1=3;
   	  in30hza();
   	  }
 }
else if (xunhuan1==3)
 {
   trign++;
   if (trign>40)
   	  {trign=0;
   	  xunhuan1=4;
   	  in50hza();
   	  }
 }
else if (xunhuan1==4)
 {
   trign++;
   if (trign>40)
   	  {trign=0;
   	  xunhuan1=5;
   	  in90hza();
   	  }
 }
else if (xunhuan1==5)
 {
   trign++;
   if (trign>200)
   	  {trign=0;
   	  xunhuan1=6;
   	  stopboxing();
   	  }
 }
else if (xunhuan1==6)
 {
   trign++;
   if (trign>250)
   	  {trign=0;
   	  xunhuan1=7;
   	  in5hzb();
   	  }
 }
else if (xunhuan1==7)
 {
   trign++;
   if (trign>80)
   	  {trign=0;
   	  xunhuan1=8;
   	  in10hzb();
   	  }
 }
else if (xunhuan1==8)
 {
   trign++;
   if (trign>60)
   	  {trign=0;
   	  xunhuan1=9;
   	  in30hzb();
   	  }
 }
else if (xunhuan1==9)
 {
   trign++;
   if (trign>40)
   	  {trign=0;
   	  xunhuan1=10;
   	  in50hzb();
   	  }
 }
else if (xunhuan1==10)
 {
   trign++;
   if (trign>40)
   	  {trign=0;
   	  xunhuan1=11;
   	  in90hzb();
   	  }
 }
else if (xunhuan1==11)
 {
   trign++;
   if (trign>200)
   	  {trign=0;
   	  xunhuan1=12;
   	  stopboxing();
   	  }
 }
else if (xunhuan1==12)
 {
   trign++;
   if (trign>250)
   	  {trign=0;
   	  xunhuan1=1;
   	  in5hza();
   	  }
 }
}

void modle3change(void)
{
if (tran1==1)
			  {
			  trign++;
			  if (trign>300)
			  	 {
				 trign=0;
				 if (xunhuan1==1) 
				 	{
					stopboxing();
					xunhuan1=2;
					}
				 else if (xunhuan1==2) 
				 	{
					in30hzb();
					xunhuan1=3;
					}
				 else if (xunhuan1==3)
				   {
				   stopboxing();
				   xunhuan1=4;
				   }
				 else if (xunhuan1==4)
				   {
				   xunhuan1=1;
				   fecte++;
				   if (fecte<5)   in30hza();
				   else 
				    {
					fecte=0;
					in50hza();
					tran1=2;
					}	
				   }
				 }
			  }
	      else if (tran1==2)
		     {
			  trign++;
			  if (trign>300)
			  	 {
				 trign=0;
				 if (xunhuan1==1) 
				 	{
					stopboxing();
					xunhuan1=2;
					}
				 else if (xunhuan1==2) 
				 	{
					in50hzb();
					xunhuan1=3;
					}
				 else if (xunhuan1==3)
				   {
				   stopboxing();
				   xunhuan1=4;
				   }
				 else if (xunhuan1==4)
				   {
				   xunhuan1=1;
				   fecte++;
				   if (fecte<5)   in50hza();
				   else 
				    {
					fecte=0;
					in90hza();
					tran1=3;
					}	
				   }
				 }
			 }
		else if (tran1==3)
			 {
			 trign++;
			  if (trign>300)
			  	 {
				 trign=0;
				 if (xunhuan1==1) 
				 	{
					stopboxing();
					xunhuan1=2;
					}
				 else if (xunhuan1==2) 
				 	{
					in90hzb();
					xunhuan1=3;
					}
				 else if (xunhuan1==3)
				   {
				   stopboxing();
				   xunhuan1=4;
				   }
				 else if (xunhuan1==4)
				   {
				   xunhuan1=1;
				   fecte++;
				   if (fecte<5)   in90hza();
				   else 
				    {
					fecte=0;
					in30hza();
					tran1=1;
					}	
				   }
				 }
			 }
}


void modle4change(void)
{
				 if (tran1==1) 
				 	{
					trign++;
			        if (trign>1000)
					{
					trign=0;
					stopboxing();
					tran1=2;
					}
					}
				 else if (tran1==2) 
				 	{
					trign++;
			        if (trign>300)
					{
					trign=0;
					in30hzb();
					tran1=3;
					}
					}
				 else if (tran1==3)
				   {
				   trign++;
			        if (trign>1000)
					{
					trign=0;
					stopboxing();
					tran1=4;
					}
				   }
				 else if (tran1==4)
				   {
				   trign++;
			        if (trign>300)
					{
					trign=0;
					in30hza();
					tran1=1;
					}
				   }
}

/*
void modle5change(void)
{
   if (xunhuan1==1)
   {
   trign++;
   if (trign>750)
	 {
	 trign=0;
	 xunhuan1=2;
	 stopboxing();
	 }
   }
   else if (xunhuan1==2) 
   {
   trign++;
   if (trign>80)
	 {
	 trign=0;
	 xunhuan1=3;
	 if (tran1==1) in100hzb();
	 else if(tran1==2) in200hzb();
	 else if (tran1==3) in300hzb();
	 }
   }
   else if (xunhuan1==3) 
   {
   trign++;
   if (trign>750)
	 {
	 trign=0;
	 xunhuan1=4;
	 stopboxing();
	 }
   }
   else if (xunhuan1==4) 
   {
   trign++;
   if (trign>80)
	 {
	 trign=0;
	 xunhuan1=1;
	 if (tran1<3) tran1++; else tran1=1;
	 if (tran1==1) in100hza();
	 else if(tran1==2) in200hza();
	 else if (tran1==3) in300hza();
	 }
   }
}
*/
void modle6change(void)
{
if (tran1==1)
{
   if (xunhuan1==1)
   {
   trign++;
   if (trign>550)
	 {
	 trign=0;
	 xunhuan1=2;
	 stopboxing();
	 }
   }
   else if (xunhuan1==2) 
   {
   trign++;
   if (trign>100)
	 {
	 trign=0;
	 xunhuan1=3;
	 in30hzb();
	 }
   }
   else if (xunhuan1==3) 
   {
   trign++;
   if (trign>1000)
	 {
	 trign=0;
	 xunhuan1=4;
	 stopboxing();
	 }
   }
   else if (xunhuan1==4) 
   {
   trign++;
   if (trign>100)
	 {
	 trign=0;
	 xunhuan1=1;
	 fecte++;
	 if (fecte>2) 
	 	  {
		  fecte=0;
		  tran1=2;
		  in5hza();
	 	  }
	 else in30hza();
	 }
   }
}
else if (tran1==2)
	 {
	   if (xunhuan1==1)
			 	{
				trign++;
			    if (trign>1000)
				   {
				   trign=0;
				   stopboxing();
				   xunhuan1=2;
				   }
			 	}
		else if (xunhuan1==2)
			 	  {
				  trign++;
				  if (trign>200)
				  	 {
					 trign=0;
					 in5hzb();
					 xunhuan1=3;
					 }
				  }
		else if (xunhuan1==3)
			  	 {
				 trign++;
				 if (trign>1000)
				  {
				  trign=0;
				  stopboxing();
				  xunhuan1=4;
				  }
				 }
		else if (xunhuan1==4)
			  	   {
				   trign++;
				  if (trign>200)
				  	 {
					 trign=0;
					 in30hza();
					 tran1=1;
					 xunhuan1=1;
					 }
				   }  
	 }
}
//TIMER0 initialize - prescale:256
// desired value: 4mSec
// actual value:  4.000mSec (0.0%)
void timer0_init(void)
{
 TCCR0 = 0x00; //stop
 TCNT0 = 0x83; //set count
// TCCR0 = 0x04; //start timer
} 

#pragma interrupt_handler timer0_ovf_isr:10
void timer0_ovf_isr(void)
{
TCNT0 = 0x83; //set count
switch (selmodle)
		{
		case 1:
			 modle1change();
		break;
		case 2:
			 modle2change();
		break;
		case 3:
		     modle3change();
		break;
		case 4:
			modle4change();
		break;
		case 5:
			//modle5change();
		break;
		case 6:
		 	modle6change(); 
		break;
}


hao++;
if (hao==125) 
{
if (share==0) share=1; else share=0;
show();
}
else if (hao>=250) 
 {hao=0;
 if (share==0) share=1; else share=0;
 show();
 second++;
 if (second>=60) 
 {second=0;
 minute--;
 if (minute==0) 
 {stop();
 sbipb0;
 delay_ms(1000);
 cbipb0;
 delay_ms(500);
 sbipb0;
 delay_ms(1000);
 cbipb0;
 delay_ms(500);
 sbipb0;
 delay_ms(1000);
 cbipb0;
 }
 show();
 }
 if (modus==1) 		   //自动波动变化1
 	{modsec++;
	if (modsec>=10)	   //10秒换一次
 	   {modsec=0;
	   if (selmodle<6) selmodle++; else selmodle=1;
	   chmodle();
	   show();
	   }
	}
else if (modus==2)	   //自动波动变化2
	 {modsec++;
	if (modsec>=20)	   //20秒转一次
 	   {modsec=0;
	   if (selmodle<6) selmodle++; else selmodle=1;
	   chmodle();
	   show();
	   }
	 } 	
 }
}

void timer1_init(void)
{
 TCCR1B = 0x00; //stop
 cbipb1;
 cbipb0;
 TCNT1H = 0xFE; //setup
 TCNT1L = 0x0C;
 TCCR1A = 0x00;
}

//TIMER2 initialize - prescale:1024
// WGM: Normal
// desired value: 10mSec
// actual value:  9.984mSec (0.2%)
void timer2_init(void)
{
 TCCR2 = 0x00; //stop
 ASSR  = 0x00; //set async mode
 TCNT2 = 0xB2; //setup
 //TCCR2 = 0x07; //start
}

#pragma interrupt_handler timer2_ovf_isr:5
void timer2_ovf_isr(void)
{ 
TCNT2 = 0xB2; //setup

if (tempset!=0) 
      {
	  if (temptrig<100)
	   temptrig++; 
	  else 
	   {temptrig=0;
	   cbipc3;
	   cbipc4;
	   }
	  if (temptrig==tempture1) sbipc3;
	  if (temptrig==tempture2) sbipc4; 
	  }
else 
	 {
	 sbipc3;
	 sbipc4;
	 }
}

void wdt_enable(unsigned char tab)
{unsigned char temp;
temp=~(0xff<<tab);
temp=(0x8|temp);
 WDTCR=(WDCE<<1)|(WDE<<1);
 WDTCR=temp;
}

void main(void)
{
 CLI(); //disable all interrupts
 wdt_enable(2);
 WDR();
 port_init();
 powerdown();
 initram();
 show();
 timer0_init();//timer
 timer1_init();//modle
 timer2_init();//speaker
SPCR=0;
MCUCR = 0x00;
GICR  = 0x00;
TIMSK = 0x41;  //timer interrupt sources
SEI(); //re-enable interrupts
  sbipb0;
  delay_ms(1000);
  cbipb0;
show();

 while(1)
 {
 checkbut();
 WDR();
 }
}

⌨️ 快捷键说明

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