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

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

?? ctr_pi.txt

?? 磁流變阻尼器控制器的源程序
?? TXT
字號:
//加定時器已完成 現在的采樣頻率為32Hz
//主體部分已經完成,Ka已經計算正確,給P2端口賦值能正確顯示,但通過Ka給P2傳遞
//增益時,P2輸出亦正確,調整PI算法已調整,振級表是使用自己編寫的一個,P0輸出
//正確了(實施辦法是將P0賦值位置提前就解決了)
///更改pI算法后的原程序
#include<stdio.h>
#include<aduc842.h>
#include<math.h>

#define KP 0.5//暫定Kp=5
#define KI 0.5//暫定Ki=5

sfr templ=0x86;
sfr temph=0x85;

void DELAY(int length);
void adc_chan(int chan);// 選擇通道
void adc_ini();
void adc_start();
void config();
void uart_ini();
void dac_ini();
void port_ini();
//void TIC_ini();
//void TIC_start();
void readval();//讀取AD轉換值并轉為10進制數子函數
void pi();//PI算法子程序
float Lookuptab(unsigned char voltab);//查表子程序

int		K;
int   Kout=0;//將K值進行翻轉準備輸出到P2口
int   xdata num[8];//用作暫時存儲K值以便今后進行翻轉方便
int   xdata i;
int   Ka;
int   tempval;
float code Table[6]={1.0,2.0,3.0,4.0,5.0,6.0};//自己暫定的振級表,可以根據實際值修改
float UDA;//UDA為DAC0輸出
float UIK=0;//UI的初值設為0 
float xdata MK1;//該值為上一次采樣保存的電壓值
float xdata MK2;//該值為新采樣保存的電壓值
float RK;
float EK;
float UPK;
float UK;
int xdata level1;
int xdata level2;


void adc_int() interrupt 6  //ADC轉換完,進入中斷
{
	I2CCON=0x0C8;//燈滅
	DELAY(2000);
	I2CCON=0x048;//燈亮  
	temph=ADCDATAH;
	templ=ADCDATAL;//轉換值暫存到temp中
	ADCI = 0;//可要可不要,如果不進入ADC中斷,則須用戶手動清零
	return;
}


/*void TIC_int () interrupt 10
{
	TIMECON=0x00;
    I2CCON=0x048;
	DELAY(2000);
	printf("TIC finished\n");//去掉warning請注釋此句
	IEIP2 = 0x00;//關TIC中斷
}
*/


void adc_chan(int chan)
{
ADCCON2 = chan;
}



void adc_ini()
{
ADCCON1 = 0x02C;            // 暫停AD
EA	    = 0;				// 中斷不使能
EADC	= 0;				// ADC中斷不使能

}

void adc_start()
{
ADCCON1 = 0x0AC;            // 啟動AD,使用內部參考電壓
EA	    = 1;				// 中斷使能
EADC	= 1;				// ADC中斷使能
}

void config()
{
CFG842 = 0x41;      //暫定
PLLCON = 0x03;		//工作頻率=2.097152 MHz


}

void uart_ini()		//串口初始化
{
T3CON = 0x083;
T3FD  = 0x02D;
SCON  = 0x052;
}

void dac_ini()
{
DACCON = 0x0D;//DAC0 12位異步 0-Cref=5v
//DACCON = 0x2D;//DAC0 12位異步 0-Vdd
}

void port_ini()//根據需要設置AD7520增益值
{
P0&=0x00;//
P2|=0x00;
//P2|=0x64;//0110,0100
//P2|=0xC4;//1110,0101
}

/*void TIC_ini()		//定時器初始化
{
TIMECON = 0x00;
INTVAL = 0x00;
HTHSEC=0x00;
}

void TIC_start()		//定時器開始計時,中斷間隔為4*(1/128)=31.25ms,注意要在TCEN為低的時候給
{						//INTVAL和HTHSEC賦值,再開TIC中斷,全局中斷,最后置TCEN開始計時
TIMECON = 0x0A;//0000,1010
INTVAL = 0x04;
HTHSEC=0x00;
IEIP2 = 0xA4;//TIC中斷使能
EA = 1;
TIMECON|=0x01;//啟動TIC	
} 
*/

void readval()
{
tempval=(int)temph*256;//強制轉換為整形數
tempval+=(int)templ;//此時計算的是十進制的AD結果,比如若temph:templ=03ff,則對應于1023

}

float Lookuptab(unsigned char voltab)
 {
 return Table[voltab];
 }

void pi()
{
	
	
	//UDA=5;//UDA為方便計算設置的一個變量
	//UK=UDA;//調試時先可直接把Uk=5v來計算,等到完成后在應用下面的PI算法
	DELAY(500);
	 if(level2 == 0)  {RK=Lookuptab(0);}
else if(level2 == 1)  {RK=Lookuptab(1);}
else if(level2 == 2)  {RK=Lookuptab(2);}
else if(level2 == 3)  {RK=Lookuptab(3);}
else if(level2 == 4)  {RK=Lookuptab(4);}
     else            {RK=Lookuptab(5);}//這段程序目的是查表確定振動的給定參考值以便與采集來的數據比較
	


	while((RK-MK2)>0.1)
	{

	adc_start();
	SCONV = 1;				//開始一次轉換
	DELAY(1000);			//調延遲,等待轉換完畢
	if (ADCI == 0)			//中斷處理完畢標志,進行輸出
		{
		//printf("temph=%02BX,templ=%02BX\n",temph,templ);//串口輸出轉換值
		//printf("UIK=%f\n",UIK);
	
		readval();
		DELAY(500);
		MK2=(float)tempval*5/4096;//必須強制轉換為浮點數,否則結果不對

		EK=RK-MK2;
		UPK=KP*EK;
		UIK=KI*EK+UIK;
		UK=UPK+UIK;
		K=(UK/UDA*1024);//現將()內表達式的值取整,此值處理后即為送往AD7520的增益值,

		Ka=K>>2;//因為電路板上低兩位已拉高,所以只需要高8位
		//Ka&=0x00FF;//只用了低八位
		//Ka = 0x0064;//為測試方便
		MK1 = MK2;
		level1 = level2;
		}
	}
}


void main(void)//主程序開始
{	
	DELAY(100);
	config();
	adc_ini();
	adc_chan(0);
	uart_ini();
	dac_ini();
	
	port_ini();
	
	//DELAY(2000);
	//TIC_ini();
	//DELAY(2000);
	P0&=0x00;//如果要調整P0口增益值,則打開此句
 	printf("P0=%02BX\n",P0);
	//DELAY(2000);
	P0|=0xFF;//第一級AD7520增益先設為不放大,即放大倍數為(1023/1024)
	//DELAY(2000);
	printf("P0=%02BX\n",P0);
	//printf("UIK=%f\n",UIK);
	DAC0H=0x0F;
    DAC0L=0xFF;//AC0輸出恒值5v
	//i=0;
	//adc_start();
	//SCONV = 1;				        //啟動AD轉換
	/////////////////初始化
	for (i=0;i<8;i++)
	{
		num[i] = 1;
	}
	level1 = 1;//初始設定等級為等級1
	MK1=1.1;//初始設定值為1.1v
	RK=Lookuptab(1);//查等級為1的參考表,設定RK值
	EK=RK-MK1;
	UPK=KP*EK;
	UIK=KI*EK+UIK;
	UK=UPK+UIK;
	UDA = 5.0;
	K = UK/UDA*1024;
	Ka = K>>2; 
	//Ka = 0x0064;//0110,0100 用于測試用,并不是實際值

	//////////////////////////////初始化完成

	while(1){					//連續進行AD轉換
	
	//TIC_start();
	adc_start();
	SCONV = 1;				//開始一次轉換
	DELAY(1000);			//調延遲,等待轉換完畢
	if (ADCI == 0)			//中斷處理完畢標志,進行輸出
	{
	printf("temph=%02BX,templ=%02BX\n",temph,templ);//串口輸出轉換值
	printf("UIK=%f\n",UIK);
	
	readval();
	DELAY(500);
	MK2=(float)tempval*5/4096;//必須強制轉換為浮點數,否則結果不對

		 if(0<MK2&MK2<=1)  {level2 = 0;}
	else if(1<MK2&MK2<=2)  {level2 = 1;}
	else if(2<MK2&MK2<=3)  {level2 = 2;}
	else if(3<MK2&MK2<=4)  {level2 = 3;}
	else if(4<MK2&MK2<=5)  {level2 = 4;}
    else           	       {level2 = 5;}//這段程序目的是查表確定振動的給定參考值以便與采集來的數據比較
	


	if (level2!=level1)
	pi();
	printf("MK1=%f\n",MK1);
	printf("MK2=%f\n",MK2);
	printf("RK=%f\n",RK);
	printf("EK=%f\n",EK);
	printf("UPK=%f\n",UPK);
	printf("UIK=%f\n",UIK);
	printf("UK=%f\n",UK);
    printf("K=%04X\n",K);
	printf("Ka=%04X\n",Ka);
	printf("num[0]=%d\n",num[0]);
	//printf("gkg %d\n",sizeof(K));
	/////將Ka值進行翻轉并輸出到P2口
	//方法一

	num[0]=Ka&0x01;
	num[1]=Ka&0x02;
	num[2]=Ka&0x04;
	num[3]=Ka&0x08;
	num[4]=Ka&0x10;
	num[5]=Ka&0x20;
	num[6]=Ka&0x40;
	num[7]=Ka&0x80;

	for (i=0;i<8;i++)
	{
		if (num[i]==pow(2,i))
		   num[i]=1;
		else num[i]=0;
	}

	//方法二
	/*
	for (i=0;i<8;i++)
	{
		Ka = Ka>>i;
		num[i]=fmod(Ka,2);
	}
	*/
	Kout = 0;
	for (i=0;i<8;i++)
	{	
		
		Kout +=pow(2,(7-i))*num[i];
	}
	P2 =Kout; //本應該為此句,再次利用下句做以簡單替代用于測試
	//P2|=Ka;//正式給端口賦值,產生AD7520增益
	//P2^=Ka;//正式給端口賦值,產生AD7520增益
	DELAY(500);
	printf("P2=%02BX\n",P2);//顯示P2口置位是否正確

	printf("num[0]=%d\n",num[0]);
	printf("num[1]=%d\n",num[1]);
	printf("num[2]=%d\n",num[2]);
	printf("num[3]=%d\n",num[3]);
	printf("num[4]=%d\n",num[4]);
	printf("num[5]=%d\n",num[5]);
	printf("num[6]=%d\n",num[6]);
	printf("num[7]=%d\n\n",num[7]);
	DELAY(1000);


	}
			}
}

void DELAY(int length)//延遲函數
{
while (length >=0)
    length--;
}
		






?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人精品福利| 裸体健美xxxx欧美裸体表演| 欧美日韩国产影片| 91精品啪在线观看国产60岁| 欧美在线制服丝袜| 在线不卡的av| 欧美日韩国产bt| 日韩欧美二区三区| 国产视频一区二区在线| 国产精品久久久久久久久久久免费看| 日韩欧美国产午夜精品| 欧美刺激午夜性久久久久久久| 日韩一区二区三区免费观看| 久久久精品黄色| 亚洲日本乱码在线观看| 久久疯狂做爰流白浆xx| 国产精品一区在线| 91欧美一区二区| 欧美一卡2卡3卡4卡| 国产精品麻豆欧美日韩ww| 亚洲va国产天堂va久久en| 久久99久久99| 欧美猛男gaygay网站| 国产精品国产成人国产三级| 日韩高清在线电影| 不卡的av网站| 久久久不卡网国产精品一区| 亚洲黄色小说网站| 成人国产精品免费观看视频| 9191久久久久久久久久久| 亚洲人精品午夜| 国产成人av在线影院| 精品久久久久久综合日本欧美| 亚洲欧美日韩中文播放| 99在线精品一区二区三区| 久久久久久久久伊人| 久久99国产乱子伦精品免费| 日韩欧美一级精品久久| 偷拍自拍另类欧美| 日韩一区二区三区视频在线观看| 一区二区在线观看av| 91在线观看免费视频| 亚洲视频图片小说| 欧美性三三影院| 高清不卡在线观看| 日韩精品在线一区二区| 2024国产精品视频| 亚洲欧洲日韩女同| 日本欧美一区二区三区| 欧美日韩aaaaaa| 91免费看视频| 曰韩精品一区二区| 欧美影片第一页| 欧美aaa在线| 精品精品国产高清a毛片牛牛| 日韩高清在线电影| 国产亚洲午夜高清国产拍精品 | 欧美国产禁国产网站cc| 久久精品久久99精品久久| 精品国产99国产精品| 99久久精品情趣| 视频一区在线播放| 国产精品理论在线观看| 制服视频三区第一页精品| 狠狠色综合色综合网络| 亚洲精品日韩专区silk| 精品99999| 欧美男人的天堂一二区| 国产福利一区二区三区| 性做久久久久久免费观看| 久久婷婷色综合| 欧美日韩综合在线| 成av人片一区二区| 国产成人精品免费视频网站| 婷婷丁香激情综合| 亚洲一区自拍偷拍| 亚洲色欲色欲www| 欧美激情一区二区| 国产精品欧美极品| 国产亚洲综合性久久久影院| 91精品国产麻豆国产自产在线| 97国产一区二区| 91亚洲永久精品| av电影天堂一区二区在线 | 欧美人xxxx| 欧美一区二区福利在线| 91精品欧美综合在线观看最新| 91社区在线播放| 欧美私模裸体表演在线观看| 在线日韩一区二区| 日本精品视频一区二区三区| 一本一道综合狠狠老| 欧美在线不卡一区| 日韩一区二区在线播放| 欧美精品一区二区三区高清aⅴ| 久久女同精品一区二区| 国产精品九色蝌蚪自拍| 一区二区三区在线观看动漫| 尤物av一区二区| 日本vs亚洲vs韩国一区三区二区 | 欧美中文字幕一区二区三区| 欧美日韩国产小视频在线观看| 337p亚洲精品色噜噜噜| 久久先锋影音av| 亚洲午夜日本在线观看| 久久av老司机精品网站导航| 成人爱爱电影网址| 欧美日韩黄色一区二区| 久久亚洲精精品中文字幕早川悠里| 中文字幕亚洲在| 日韩高清不卡在线| av电影在线不卡| 久久久亚洲午夜电影| 亚洲不卡在线观看| 97久久精品人人爽人人爽蜜臀| 欧美xfplay| 日本午夜一本久久久综合| av高清不卡在线| 中文av一区二区| 黄网站免费久久| 精品国产百合女同互慰| 亚洲动漫第一页| 在线观看免费亚洲| 亚洲欧洲在线观看av| 国产精品88av| 精品国产精品一区二区夜夜嗨| 亚洲五月六月丁香激情| 欧洲精品中文字幕| 午夜亚洲福利老司机| 欧美巨大另类极品videosbest | 国产麻豆成人传媒免费观看| 紧缚奴在线一区二区三区| 国内精品自线一区二区三区视频| 国产一区二区看久久| 91免费精品国自产拍在线不卡| 国产日本一区二区| 国产一区二区三区最好精华液| 日韩午夜精品视频| 久久精品国产99国产| 日韩免费在线观看| 韩国欧美国产1区| 国产欧美一区二区三区鸳鸯浴 | 天天综合日日夜夜精品| 91偷拍与自偷拍精品| 一级特黄大欧美久久久| 欧美日韩国产一级| 狠狠色伊人亚洲综合成人| 久久久精品蜜桃| 色婷婷精品大在线视频| 青椒成人免费视频| 精品日韩在线观看| av在线不卡免费看| 午夜精品久久久久久久| 国产女主播一区| 91精品国产手机| 成人少妇影院yyyy| 婷婷久久综合九色综合绿巨人| 精品理论电影在线| 91网站在线观看视频| 免费日本视频一区| 一区二区三区免费| 欧美国产日韩精品免费观看| 色欧美片视频在线观看| 国产一二精品视频| 亚洲一区二区三区四区不卡| 久久久久久久性| 欧美精品一区二区三区蜜桃视频| 色婷婷精品久久二区二区蜜臀av | 在线观看欧美黄色| 国产成人超碰人人澡人人澡| 免费观看30秒视频久久| 亚洲日本一区二区三区| 久久久久久久综合| 2023国产精品自拍| 精品国产免费人成在线观看| 在线中文字幕不卡| 北岛玲一区二区三区四区| 国产一区二区三区香蕉| 国产原创一区二区三区| 精品夜夜嗨av一区二区三区| 免费在线看一区| 九九**精品视频免费播放| 青青草原综合久久大伊人精品优势 | 欧美精品高清视频| 在线成人免费视频| 成人综合婷婷国产精品久久蜜臀 | 91精品国产免费| 亚洲精品一线二线三线| 久久久久青草大香线综合精品| 国产午夜精品久久| 亚洲一二三四久久| 久久91精品国产91久久小草| 成人国产精品免费观看动漫| 91久久奴性调教| 久久久www成人免费毛片麻豆 | 7777精品久久久大香线蕉 | 激情综合网最新| 图片区日韩欧美亚洲| 亚洲综合av网| 亚洲色图色小说|