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

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

?? new0_uart.c

?? 磁流變阻尼器控制器的源程序
?? C
字號:
//加定時器已完成 現在的采樣頻率為32Hz
//主體部分已經完成,Ka已經計算正確,給P2端口賦值能正確顯示,但通過Ka給P2傳遞
//增益時,P2輸出亦正確,調整PI算法已調整,振級表是使用自己編寫的一個,P0輸出
//正確了(實施辦法是將P0賦值位置提前就解決了)
#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 collectdata();
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   Kout1=0;//將Ka1值進行翻轉準備輸出到P0口
int   Kout2=0;//將Ka2值進行翻轉準備輸出到P2口

int   xdata num1[8];//用作暫時存儲Ka1值以便今后進行翻轉方便
//int   xdata num2[8];//用作暫時存儲Ka2值以便今后進行翻轉方便
int   xdata i;
int   Ka1,Ka2;
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 MK;//該值為采樣的電壓值
float RK;
float EK;
float UPK;
float UK;
//int xdata level1;
//int xdata level;


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



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  = 0x050;

}

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 readval()
{

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

}

void collectdata()
{
DELAY(200);
SBUF = Ka1;
while(!TI);
TI = 0;
}

/*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);}//這段程序目的是查表確定振動的給定參考值以便與采集來的數據比較
	
	EK=RK-MK2;
	UPK=KP*EK;
	UIK=KI*EK+UIK;
	UK=UPK+UIK;
	K=(UK/UDA*1024);//現將()內表達式的值取整,此值處理后即為送往AD7520的增益值,
	
	Ka2=K>>2;//因為電路板上低兩位已拉高,所以只需要高8位
	Ka2=0x00;
	//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();//p0和p2的初始化
	printf("P0=%02BX\n",P0);
	
	//DELAY(2000);
	//TIC_ini();
	//DELAY(2000);
	//P0&=0x00;//如果要調整P0口增益值,則打開此句
	//DELAY(2000);
	//P0|=0xFF;//第一級AD7520增益先設為不放大,即放大倍數為(1023/1024)
	//DELAY(2000);
	//printf("P0=%02BX\n",P0);
	//printf("UIK=%f\n",UIK);
	DAC0H=0x07;
    DAC0L=0xFF;//AC0輸出恒值2.5v
	//i=0;
	//adc_start();
	//SCONV = 1;				        //啟動AD轉換
	/////////////////初始化
	for (i=0;i<8;i++)
	{
		num1[i] = 1;
	}
	MK=1.1;//初始設定值為1.1v
	Ka1=0xFF;//初始化p0口的值
	Ka2=0xFF;//初始化p2口的值
	//Ka = 0x0064;//0110,0100 用于測試用,并不是實際值

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

	while(1){	//連續進行AD轉換
	
	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);
	MK=(float)tempval*5/4096;//必須強制轉換為浮點數,否則結果不對
	//MK=2.5;

	     if(0<=MK&MK<=1)  {	Ka1=0x2A;}//Ka1的值未確定,暫時以0x00代替
	else if(1<MK&MK<=2)  {	Ka1=0x55;}
	else if(2<MK&MK<=3)  {	Ka1=0x80;}
	else if(3<MK&MK<=4)  {	Ka1=0xAB;}
	else if(4<MK&MK<=5)  {	Ka1=0xD5;}
    else           	     {	Ka1=0xFF;}//這段程序目的是查表確定振動的給定參考值以便與采集來的數據比較
	

	collectdata();
	printf("MK=%f\n",MK);
	//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("Ka1=%04X\n",Ka1);

	/////將Ka值進行翻轉并輸出到P0口
	//方法一

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

	for (i=0;i<8;i++)
	{
		if (num1[i]==pow(2,i))
		   num1[i]=1;
		else num1[i]=0;
	}
	Kout1 = 0;
	for (i=0;i<8;i++)
	{	
		
		Kout1 +=pow(2,(7-i))*num1[i];
	}
	P0 = Kout1; //本應該為此句,再次利用下句做以簡單替代用于測試
	Kout2 = Ka2;
	P2 = Kout2;

	
	//P2|=Ka;//正式給端口賦值,產生AD7520增益
	//P2^=Ka;//正式給端口賦值,產生AD7520增益
	DELAY(500);
	printf("P2=%02BX\n",P2);//顯示P2口置位是否正確
	printf("P0=%02BX\n",P0);
	printf("num1[0]=%d\n",num1[0]);
	printf("num1[1]=%d\n",num1[1]);
	printf("num1[2]=%d\n",num1[2]);
	printf("num1[3]=%d\n",num1[3]);
	printf("num1[4]=%d\n",num1[4]);
	printf("num1[5]=%d\n",num1[5]);
	printf("num1[6]=%d\n",num1[6]);
	printf("num1[7]=%d\n\n",num1[7]);
	DELAY(1000);


	}
			}
}

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






?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产一区二区三区四区四| 久久99热99| 精品欧美乱码久久久久久1区2区| 在线视频亚洲一区| 日本道色综合久久| 欧美视频一区二区在线观看| 欧美日韩久久不卡| 3d动漫精品啪啪| 一本一本大道香蕉久在线精品 | 国产福利91精品一区| 韩国女主播成人在线观看| 极品少妇一区二区三区精品视频 | 久久精品国产色蜜蜜麻豆| 九九久久精品视频| 精品一区二区成人精品| 国产经典欧美精品| 色综合咪咪久久| 51午夜精品国产| 国产三级精品在线| 亚洲一区免费在线观看| 久久av资源站| 成人白浆超碰人人人人| 欧美日韩一区二区不卡| 在线成人免费观看| 国产精品美女久久久久久久久久久| 亚洲欧美日韩国产手机在线| 亚洲va天堂va国产va久| 蜜桃视频一区二区三区在线观看| 国产精品91xxx| 91福利资源站| 精品国产乱子伦一区| 亚洲乱码精品一二三四区日韩在线| 亚瑟在线精品视频| 成人免费视频视频| 欧美一区二区在线免费观看| 国产精品免费人成网站| 五月婷婷综合网| 成人黄色小视频| 欧美va亚洲va香蕉在线| 亚洲精品乱码久久久久久黑人| 免费成人性网站| 在线观看亚洲专区| 国产日韩欧美一区二区三区综合| 午夜激情综合网| av中文字幕亚洲| 精品国产乱码久久久久久牛牛| 亚洲色图在线播放| 丰满少妇在线播放bd日韩电影| 制服.丝袜.亚洲.另类.中文 | 91黄色免费网站| 国产午夜精品福利| 麻豆国产精品视频| 91精品国产综合久久婷婷香蕉| 久久久久久一二三区| 美女脱光内衣内裤视频久久影院| 91偷拍与自偷拍精品| 国产免费久久精品| 另类欧美日韩国产在线| 欧美高清视频一二三区 | 视频一区视频二区中文字幕| 波多野结衣的一区二区三区| 日韩精品一区二区三区中文不卡 | 欧美一区二区在线免费播放| 亚洲一区av在线| 在线免费精品视频| 日韩理论片在线| 成人动漫在线一区| 亚洲色图丝袜美腿| 99久久久精品| 日韩美女啊v在线免费观看| 成人激情综合网站| 国产精品欧美极品| 91一区一区三区| 亚洲欧美怡红院| 91一区二区在线观看| 国产精品对白交换视频 | 欧美成人艳星乳罩| 韩国欧美一区二区| 国产三级久久久| 成人动漫av在线| 亚洲三级免费观看| 日本久久精品电影| 五月天网站亚洲| 日韩一二三区不卡| 久久成人麻豆午夜电影| 国产亚洲欧美日韩俺去了| 国产成人免费视频一区| 亚洲欧美一区二区不卡| 在线亚洲免费视频| 麻豆精品久久精品色综合| 日韩手机在线导航| 成人av在线一区二区| 中文字幕日韩av资源站| 91福利在线免费观看| 蜜臀av一区二区在线免费观看 | 欧美精三区欧美精三区| 日本欧美一区二区| 中文字幕第一区二区| 色哟哟精品一区| 久久99久久久久久久久久久| 国产亚洲欧美激情| 欧美日本韩国一区二区三区视频| 蜜芽一区二区三区| 中文字幕av一区 二区| 色视频一区二区| 秋霞电影网一区二区| 国产精品三级电影| 精品视频在线视频| 国产高清在线精品| 亚洲一线二线三线久久久| 精品国产1区2区3区| av在线综合网| 激情偷乱视频一区二区三区| 亚洲精品国产品国语在线app| 日韩一级高清毛片| 欧美综合亚洲图片综合区| 国产乱人伦偷精品视频免下载 | 久久色成人在线| 色婷婷久久久亚洲一区二区三区| 青青青伊人色综合久久| 亚洲美女在线国产| 国产偷国产偷亚洲高清人白洁| 欧美午夜一区二区三区免费大片| 国产一区二区三区最好精华液| 亚洲一区视频在线| 国产精品国产三级国产普通话蜜臀| 制服丝袜中文字幕亚洲| 91成人网在线| 9人人澡人人爽人人精品| 久久精品国产一区二区三| 艳妇臀荡乳欲伦亚洲一区| 欧美激情一区二区三区蜜桃视频| 欧美一区二区视频观看视频| 色婷婷久久99综合精品jk白丝| 国产成人精品aa毛片| 狠狠久久亚洲欧美| 蜜桃传媒麻豆第一区在线观看| 亚洲综合色丁香婷婷六月图片| 国产精品色一区二区三区| 久久精品亚洲精品国产欧美 | www.色精品| 懂色av噜噜一区二区三区av | 国产精品久久久久久久久果冻传媒| 精品盗摄一区二区三区| 欧美大片在线观看| 日韩欧美国产高清| 欧美大片一区二区| 日韩久久久久久| 精品国产青草久久久久福利| 欧美成人女星排行榜| 精品伦理精品一区| wwww国产精品欧美| 久久这里都是精品| 国产视频一区二区在线| 亚洲精品一区二区三区蜜桃下载| 日韩欧美成人一区二区| 久久视频一区二区| 国产精品三级av| 一区二区三区四区视频精品免费| 亚洲蜜臀av乱码久久精品| 午夜影视日本亚洲欧洲精品| 丝瓜av网站精品一区二区| 日产国产高清一区二区三区| 久久99国产精品免费| 国产99久久久久| 色婷婷国产精品| 欧美一区三区二区| 国产亚洲精品7777| 国产精品国产三级国产普通话三级| 亚洲人精品午夜| 日韩一区精品视频| 国产福利精品导航| 在线观看av一区| 欧美mv日韩mv国产| 亚洲国产精品传媒在线观看| 一区二区三区久久久| 青青青爽久久午夜综合久久午夜| 国内成+人亚洲+欧美+综合在线| 成人黄色小视频在线观看| 欧美日韩视频在线第一区| 久久久亚洲国产美女国产盗摄| 亚洲同性gay激情无套| 日韩avvvv在线播放| 成人午夜精品在线| 欧美日韩成人综合| 国产欧美日韩亚州综合| 亚洲午夜日本在线观看| 国产99久久久国产精品潘金| 欧美日韩国产在线观看| 亚洲国产精品v| 日本网站在线观看一区二区三区| 国产1区2区3区精品美女| 欧美精品 日韩| 亚洲女人小视频在线观看| 韩国午夜理伦三级不卡影院| 欧美色图天堂网| 国产亚洲精品中文字幕| 日本少妇一区二区| 欧美性受xxxx| 中文字幕人成不卡一区|