亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? aaa.c.bak

?? 用51單片機編譯成的頻率計的源程序
?? BAK
?? 第 1 頁 / 共 2 頁
字號:
		CAPCOML2 = (W_Ton & 0x00FF);
		CAPCOMH2 = (W_Ton >> 8);	
	}											 //66

////////////////////////////////////////////

//下一個采樣點
	
	
 	P_flag = ~P_flag;		//奇偶點變換

	K++;					//下一個采樣點值

	Tm++;
	U_angle = K*180/N;
	V_angle = U_angle + 120;
	W_angle = U_angle + 240;




	if (P_flag == 0)
	{
//		U_Toff =k1* ((Half_Ts * (0xffff - M*(sin_angle(U_angle))))>>16);
//		V_Toff =k1* ((Half_Ts * (0xffff - M*(sin_angle(V_angle))))>>16);
//		W_Toff =k1* ((Half_Ts * (0xffff - M*(sin_angle(W_angle))))>>16);
		U_Toff =((Half_Ts * (0xffff - M*(sin_angle(U_angle))))>>16);
		V_Toff =((Half_Ts * (0xffff - M*(sin_angle(V_angle))))>>16);
		W_Toff =((Half_Ts * (0xffff - M*(sin_angle(W_angle))))>>16);
	}
	else
	{
		U_Ton =((Half_Ts * (0xffff + M*(sin_angle(U_angle))))>>16);
		V_Ton =((Half_Ts * (0xffff + M*(sin_angle(V_angle))))>>16);
		W_Ton =((Half_Ts * (0xffff + M*(sin_angle(W_angle))))>>16);

	
	}

//	if (P_flag == 0)
//	{
//		U_Toff = (417 * (0x400000 - M*(sin_angle(U_angle))))>>22;
//		V_Toff = (417 * (0x400000 - M*(sin_angle(V_angle))))>>22;
//		W_Toff = (417 * (0x400000 - M*(sin_angle(W_angle))))>>22;
//	}
//	else
//	{
//		U_Ton = (417 * (0x400000 + M*(sin_angle(U_angle))))>>22;
//		V_Ton = (417 * (0x400000 + M*(sin_angle(V_angle))))>>22;
//		W_Ton = (417 * (0x400000 + M*(sin_angle(W_angle))))>>22;
//	
//	
//	}
//	aa=0;

	
	if ( K==2*N )
	{ K=0;

//	  P_flag = 0;
	 }

	 
}
  
/****************************************************************************
*死區指令延時,應實測,要考慮中斷影響
* 10個temp 延時約6us
****************************************************************************/
void delay1()					  
{								  
	char temp;					 

	EA=0;					
	temp = 0;
	temp = 0;
	temp = 0;
	temp = 0;
	temp = 0;
	temp = 0;
	temp = 0;
	temp = 0;
	temp = 0;
	temp = 0;
	temp = 0;
	temp = 0;
	temp = 0;
	temp = 0;
	temp = 0;
	temp = 0;
	temp = 0;
	temp = 0;

	EA=1;

}
/***************************************************************************
*定時器0初始化
***************************************************************************/
void timer0_init (void)
{
 	EA = 0;					/* disable interrupts */

  	TR0 = 0;				/* stop timer 0 */
  	TMOD &= 0xF0;			/* clear timer 0 mode bits - bottom 4 bits */
  	TMOD |= 0x01;			/* put timer 0 into 16-bit no prescale */

    timer0_value = 0x10000-Ts;		//采樣周期=1/2載波周期	
  	TL0 = (timer0_value & 0x00FF);
  	TH0 = (timer0_value >> 8);

 // 	PT0 = 1;				/* set high priority interrupt for timer 0 */
 	PT0 = 0;
  	ET0 = 1;				/* enable timer 0 interrupt */
  	TR0 = 1;				/* start timer 0 */
  	EA = 1;					/* enable interrupts */
}



/***************************************************************************
*PCA中斷服務程序
***************************************************************************/
static void PCA_isr (void) interrupt PCA_VECTOR using 1 

{
	unsigned char PCA_status;


	PCA_status = PCASTA;			//讀PCA中斷狀態


	if ( PCA_status & 0x01)			//TCM0中斷,U相
	{

		if (P_flag==0)
		{
			P4_3 = 1;				//偶數采樣中斷到,關V4 延時 開V1
			delay1();
			P4_0 = 0;
		}
		else 
		{
			P4_0 = 1;				//奇數采樣中斷到,關V1 延時 開V4
			delay1();
			P4_3 = 0;
		}
	PCASTA &= 0xFE;

	}
	
	if ( PCA_status & 0x02)			//TCM1中斷,V相
	{

		if (P_flag==0)
		{
			P4_5 = 1;				//偶數采樣中斷到,關V6 延時 開V3
			delay1();
			P4_2 = 0;
		}
		else 
		{
			P4_2 = 1;				//奇數采樣中斷到,關V3 延時 開V6
			delay1();
			P4_5 = 0;
		}
	PCASTA &= 0xFD;
	}

	if ( PCA_status & 0x04)			//TCM2中斷,W相
	{

		if (P_flag==0)
		{
			P4_4 = 1;				//偶數采樣中斷到,關V5 延時 開V2
			delay1();
			P4_1 = 0;
		}
		else 
		{
			P4_1 = 1;				//奇數采樣中斷到,關V2 延時 開V5
			delay1();
			P4_4 = 0;
		}
	PCASTA &= 0xFB;
	}

	
//	PCASTA &= 0x00;					 //清PCA中斷狀態

}

//PCA0初始化
void PCA_init()
{

	unsigned int PCA0;
	//0.1 Configure pins as PCA function
//	P4SFS0=0xff;
//	P4SFS1=0;

	//0.2 initialize PCA0 counter
	PCACL0=PCACH0=0;
	PCACL1=PCACH1=0;

	//1.2 select PCA0CLK as PCA0 clock source
	//PCA0時鐘為fosc,timer0_isr中Toff,Ton計數值*12 再寫入比較寄存器
//	CCON2=0x10;				
	CCON2=0x12;	   //fosc/4

	//Stop PCA0 counter
	PCACON0=0x00;

	//3. Set TCM0 operationg mode,16bit soft timer , enable softimer interrupt
//	TCMMODE0=0x48;
	TCMMODE0=0xC8;
	TCMMODE1=0xC8;
		
	TCMMODE2=0xC8;		


	CAPCOML0 = (PCA0 & 0x00FF);
	CAPCOMH0 = (PCA0 >> 8);


	// 開PCA中斷
	IEA |= 0x20;
	IPA |= 0X20;	  // set high priority interrupt for PCA0 
	
	 //5. Start PCA0 counter
	 PCACON0|=0x40;

}


/******************************************************************************
*                       uint getVA(channel)
*功能描述:讀取輸出電壓,電流值
*參    數:channel,選擇讀取通道
*****************************************************/


void getVA (uchar channel)
{ 
  code uchar str_v[] = {"The V and A is:"};
  //uchar temp1;
   uint temp;
   unsigned long int value;
   uchar vv[3];
  	
  
 // ADC_EnableAll();
  
  ADC_Init(channel);

  
  clrlcd();
   printchar(1,1,'v');
  printstr(0,0,str_v);  
  printchar(2,1,0x3a);
  printchar(4,1,0x2e) ;	   //"."
  printchar(7,1,'V') ;

  value = ADC_Read(channel); 

  temp = value*150;	          //或者88.temp = (value*2.5/1023)*1000*k
 // temp1 = value % 51;
 // if(temp1 >= 26)temp++;
  
  vv[3] = temp%10;			 //小數點后第3位 
  vv[2] = (temp/10)%10;		 //小數點后第2位 
  vv[1] = temp/100;     //小數點后第1位 
 
  
 // clrlcd();
 // printchar(1,1,'v');
 // printchar(2,1,0x3a);
  printchar(3,1,vv[0]+48);	
   printchar(4,1,vv[1]+48);
  printchar(5,1,0x2e) ;	   //"."
 ;
  printchar(6,1,vv[2]+48);
  //printchar(7,1,vv[3]+48);
  //printchar(8,1,'V') ;

  printchar(10,1,'I') ;
  printchar(11,1,0x3a) ;	   //":"
  printchar(15,1,'A') ;	   //"."
  //keyv=getkey();}while(keyv == 0x0e);
}

/**************************************************************
*           getPf()
*進入算功率,讀頻率程序
***************************************************************/
void  getPf  (void)
{ code uchar str_pf[] = {"The f and P is:"};
  clrlcd();
  printstr(0,0,str_pf);

  printchar(1,1,'f');
  printchar(2,1,0x3a);	      //":"
  printchar(3,1,pinlv[0]+48);
  printchar(4,1,pinlv[1]+48);
  printchar(5,1,pinlv[2]+48);
  printchar(6,1,'H');
  printchar(7,1,'z');
  printchar(9,1,'P');
  printchar(10,1,0x3a);		   //":"
  printchar(14,1,'W');


}


/***********************************************************
*        void dat_get (void)
         *進入輸入頻率程序

***********************************************************/
void dat_get (void)
{
   void pwmwork(void ); 
   
 code uchar hz[]={"Hz"};
 code uchar putf[] = {"Please Input f:"};
   uchar i;
 clrlcd();
 printstr(0,0,putf);
 printchar(4,1,102);   // "f"
 printchar(5,1,58);    // ":"
 do{keyv=getkey();}while(keyv==0x0e);     //有數字鍵按下則開始輸入頻率
 for(i=0;i<3;i++)
 {
 
	  do{ 
	       pinlv[i] = keyv;
	       printchar(6+i,1,keyv+48);
		   
		   keyv=getkey();
	     }while(keyv!=0x0e);
	  if(i<=1)	 	
	   {
	    do{keyv=getkey();}while((keyv == 0x0e));	// && (i != 0x02)
		}
   }
   
   printstr(9,1,hz);


   delay1ms(500);

     pwmwork();                 //開始PWM

   
}

/*********************************************************************
*           m_get()
*輸入調制度
*********************************************************************/
/* void m_get(void )
 {
   xdata uchar i,j=2;
// code uchar ok[]={"OK"};
 code uchar putm[] = {"Please Input M:"};
 
 clrlcd();
 printstr(0,0,putm);
 printchar(4,1,77);   // "M"
 printchar(5,1,58);    // ":"
 do{keyv=getkey();}while(keyv==0x0e);     //有數字鍵按下則開始輸入頻率
 for(i=0;i<3;i++)
 {
 
	  do{ 
	       mm[i] = keyv;
	       printchar(6+i,1,keyv+48);
		   
		   keyv=getkey();
	     }while(keyv!=0x0e);
	  
	  if(i<=1)	 	
	   {
	    do{keyv=getkey();}while((keyv == 0x0e));	// && (i != 0x02)
		}
   }
   
   printstr(14,1,OK);


   delay1ms(300);

    pwmwork();                        //開始PWM
 
 }	*/
/**********************************************************
 *key_deal
  鍵盤處理

***********************************************************/
 void key_deal(void)
{
  code uchar str_d0 [] ={"A:Input Fre:"};
  code uchar str_d1 [] ={"B:Get V and A:"};
  code uchar str_d2 [] ={"C:Get f and P:"};
  code uchar str1[] =   {"Please Choose:"};
 // code uchar str_m[] =  {"D:Input the M:"};
//  do{ keyv=getkey(); }while(keyv != 0x0e);// 開始	
      clrlcd();
      printstr(0,0,str1);                 //Please input 	  
  do{keyv=getkey();} while(keyv==0x0e); 
 
    switch (keyv=getkey())
         {			   
	       case 0x0a:{ 
		                clrlcd();
						printstr(0,0,str1);
		                printstr(0,1,str_d0);			     //輸入頻率
						do{keyv=getkey();}while(keyv==0x0a);
						
						if(keyv==0x0e)
						  {
						    printstr(14,1,OK);
						    delay1ms(500);
						    dat_get() ;
						  }  break;					 //輸入頻率值
				 	 }  
	 

			  
		   case 0x0b:{ 
		                clrlcd();
					    printstr(0,0,str1);
		             			                             //得到電壓和電流
			            printstr(0,1,str_d1);
					    delay1ms(15);
					    do{keyv=getkey();}while(keyv==0x0b);
					    if(keyv==0x0e) 					      //確認鍵	
					      {
					        printstr(14,1,OK);
						    delay1ms(700);
						    getVA (0);
					
					       }  
                        break;					 
				 
					 } 
					  
		   case 0x0c:{  
		                clrlcd();
						printstr(0,0,str1);                    //算得功率,再次輸入頻率
		   						
			            printstr(0,1,str_d2);
						delay1ms(15);
						do{keyv=getkey();}while(keyv==0x0c);
						if(keyv==0x0e) 
						{
						 printstr(14,1,OK);
						 delay1ms(500);
						 getPf();
						}
					    break;
				
				      } 
	/*	case 0x0d:	 {	
		                clrlcd();
						printstr(0,0,str1);      
						printstr(0,1,str_m);	 //"Input the M:"
	                    do{keyv=getkey();}while(keyv==0x0d);
						if(keyv==0x0e)
						  {
						    printstr(14,1,OK);
						    delay1ms(500);
						    m_get() ;			   //輸入調制度
						  }  break;		
		             }	   */
	       default: break;
	     }



}

/****************************************************
       **********主程序*************
*****************************************************/
void main (void)
{  
   code uchar str0[] = {"Welcome!"};
   code uchar str1[] = {"Please opt step:"};
   
    POWK = 1;					//電源關
	
	POWZ = 1;

   PSD33_reg.CONTROL_A = 0;		  //MCU I/O模式
   PSD33_reg.DIRECTION_A =0xff;   //輸出模式 	  
   init_lcd();
   ADC_EnableAll();
   printstr(4,0,str0);            //"Welcom!"
   printstr(0,1,str1);            //"Please opt step:"
   delay1ms(10);
   do{ keyv=getkey(); }while(keyv != 0x0e);
   key_deal();
}


void pwmwork(void)
{	
    
    unsigned char  ADC_channel;
	unsigned long ADC_result;
	uchar f;
	int du,err1,err2,uad;
    
//	POWK = 0;					//電源關
	
//	POWZ = 0;

	CCON0=0x10;
	ADC_Init (0) ;

	Ts = 1667;					//采樣周期,晶振40M,則載波為1/(Ts*T)
	Half_Ts =  833*3;				//半采樣周期
//	k1=120;

	K_M = 256;					//調制系數放大倍數
	K_F = 256;					//輸入頻率放大倍數
//	K_sin = 256;				//sin表放大倍數
//	K_coe =	K_M * K_sin;			//總放大倍數,K_M * K_sin;

	F_min = 100;				//最小頻率 


	
	f = pinlv[0]*100 + pinlv[1]*10 + pinlv[0] ;

   
    F = K_F * f;

//	M = mm[0]*100 + mm[1]*10 + mm[2];
	M = 160;
	N = (K_F*1000)/F ;							// N = 1000/f;載波為1K

	POWK = 0;
	delay1ms(1000);

	POWZ = 0;                                                                                                                                      



	ST = 0;                          //脈沖芯片使能

	if ( F > F_min)
	{ 

	   	first();
		timer0_init(); 
		PCA_init();
	}
 

//主循環,一個采樣周期后,讀取AD的給定頻率值重新計算調制度M和載波比N

//如果計算時間不夠的話,可以另設M2,N2變量,在定時器中斷程序中判斷K=2*N時,
//將主循環中的計算值M2,N2賦給M,N進行計算

	while(1)
	 {
	   if(Tm==240)
	     {
		   Tm = 0;
		   uad =  ADC_Read(0 );
	       err1 = u36 - uad;
	       du =(err1 - err2)/4;
		   M = M + du;
		   err2 = err1;
	    }
	  keyv = getkey();
	  while(keyv!=0x0e)key_deal();
	  
	}

 }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合国产精品| 欧美va天堂va视频va在线| 国内精品久久久久影院色| 蜜臂av日日欢夜夜爽一区| 日产欧产美韩系列久久99| 日韩国产在线观看| 久久精品国产一区二区三区免费看| 亚洲成人免费视频| 日韩国产精品久久久久久亚洲| 午夜欧美大尺度福利影院在线看| 日一区二区三区| 久久se这里有精品| 盗摄精品av一区二区三区| 91在线观看免费视频| 欧美中文一区二区三区| 91精品麻豆日日躁夜夜躁| 精品久久久久99| 国产精品久久久久一区| 亚洲最大成人网4388xx| 日本网站在线观看一区二区三区| 国产主播一区二区| www.亚洲人| 欧美一区午夜精品| 国产亲近乱来精品视频| 亚洲午夜电影在线| 国产老女人精品毛片久久| 成人黄色一级视频| 91精品国产高清一区二区三区| 精品人在线二区三区| 中文字幕在线观看一区| 日本伊人色综合网| 成人黄色国产精品网站大全在线免费观看 | 欧美性色黄大片| 精品人在线二区三区| 亚洲欧美日本韩国| 久久国产精品99精品国产| 99久久精品情趣| 91精品国产综合久久久久久漫画 | 色婷婷精品久久二区二区蜜臂av| 5858s免费视频成人| 亚洲国产高清不卡| 蜜桃在线一区二区三区| 91麻豆精东视频| 欧美精品一区二区精品网| 亚洲免费观看高清| 国产丶欧美丶日本不卡视频| 91黄视频在线| 国产精品免费视频网站| 免费的成人av| 欧美在线高清视频| 自拍偷拍国产亚洲| 国产成人在线影院| 精品国产精品网麻豆系列| 亚洲午夜一二三区视频| 9色porny自拍视频一区二区| 久久久久久久综合色一本| 石原莉奈在线亚洲二区| 色94色欧美sute亚洲线路一ni| 久久综合网色—综合色88| 天天影视网天天综合色在线播放| 91在线播放网址| 国产精品免费网站在线观看| 韩国av一区二区三区| 精品乱人伦小说| 久久国产精品72免费观看| 欧美一区二区在线免费观看| 亚洲成人自拍网| 欧美精品一卡二卡| 午夜精品国产更新| 欧美精品一二三区| 日韩精品五月天| 欧美一级搡bbbb搡bbbb| 天堂在线亚洲视频| 欧美猛男男办公室激情| 亚洲成人av在线电影| 欧美亚洲高清一区| 亚洲chinese男男1069| 欧美在线影院一区二区| 亚洲国产sm捆绑调教视频 | 7799精品视频| 午夜电影一区二区三区| 欧美高清www午色夜在线视频| 亚洲国产视频a| 欧美日韩国产首页| 天天色图综合网| 日韩欧美一级片| 国产精品一二三区| 亚洲人吸女人奶水| 欧美日韩高清一区二区不卡| 无吗不卡中文字幕| 久久一夜天堂av一区二区三区| 国产又粗又猛又爽又黄91精品| 日韩精品一区二区三区在线播放| 久久成人av少妇免费| 日本一区二区三区在线不卡| 91看片淫黄大片一级在线观看| 亚洲图片欧美色图| 欧美电视剧免费全集观看| 国产91色综合久久免费分享| 亚洲精品久久久蜜桃| 91麻豆精品国产91久久久资源速度 | 国产福利一区二区三区视频| 国产精品短视频| 欧美日韩免费视频| 国产一区二区h| 亚洲欧美成aⅴ人在线观看| 欧美精品乱码久久久久久| 国产精品99久久久| 亚洲已满18点击进入久久| 欧美zozozo| 在线亚洲一区观看| 国产精品主播直播| 性做久久久久久免费观看| 国产欧美中文在线| 欧美日韩大陆一区二区| 成人黄色网址在线观看| 热久久久久久久| 亚洲欧美怡红院| 欧美成人一区二区三区| 色婷婷亚洲婷婷| 成人爽a毛片一区二区免费| 亚洲高清久久久| 国产精品乱子久久久久| 日韩网站在线看片你懂的| 色综合天天综合狠狠| 国产91丝袜在线观看| 久久精品国产一区二区三| 亚洲制服丝袜在线| 亚洲天堂网中文字| 欧美国产精品中文字幕| 日韩精品一区二区三区swag | 亚洲高清在线视频| 中文字幕一区二区日韩精品绯色| 亚洲精品一区二区三区四区高清| 99国产欧美另类久久久精品 | 亚洲一二三四在线观看| 国产精品女人毛片| 国产欧美日韩视频在线观看| 3d动漫精品啪啪| 欧美乱妇一区二区三区不卡视频| 成人黄页毛片网站| 成人激情小说乱人伦| 丁香婷婷综合色啪| 成人免费看的视频| 岛国av在线一区| 成人夜色视频网站在线观看| 高清日韩电视剧大全免费| 国产一区二区美女诱惑| 精品亚洲国产成人av制服丝袜| 午夜精品在线看| 日韩精品一二区| 麻豆91免费看| 极品少妇xxxx精品少妇偷拍| 激情综合五月天| 国产伦精品一区二区三区免费| 久久99久久久久久久久久久| 老司机精品视频导航| 经典三级视频一区| 国产福利精品一区二区| 国产成人免费视频一区| av在线这里只有精品| 91国产视频在线观看| 欧美精品aⅴ在线视频| 精品久久久久久久久久久院品网| 精品久久久网站| 2021久久国产精品不只是精品| 精品久久久久久无| 国产欧美日韩中文久久| 亚洲视频网在线直播| 午夜精品久久久久久久| 九色porny丨国产精品| 成人丝袜高跟foot| 欧美性猛交xxxxxx富婆| 欧美xingq一区二区| 亚洲国产精品激情在线观看| 亚洲精品视频在线| 麻豆精品国产91久久久久久| 国产福利一区二区三区视频在线 | 国产人妖乱国产精品人妖| 一区在线中文字幕| 日韩精品国产欧美| 成人一区二区视频| 91精品中文字幕一区二区三区| 久久久久久久久伊人| 一区二区三区成人在线视频| 男男视频亚洲欧美| 91老师国产黑色丝袜在线| 精品少妇一区二区三区日产乱码| 中文欧美字幕免费| 免费不卡在线观看| 99久久精品免费精品国产| 8v天堂国产在线一区二区| 国产精品美女久久久久av爽李琼| 一区二区免费在线| 国产精品99久久久久久有的能看| 色美美综合视频| 国产欧美一区二区三区沐欲| 日本成人在线视频网站| av在线免费不卡| 久久精品视频免费|