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

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

?? lcd.c

?? 通過DSP對電池的各種狀態信息進行采集
?? C
字號:
/*該模塊包括下面9個子程序
讀液晶顯示器狀態子程序LCDSTA1(E)
對液晶顯示器發指令子程序TRANS1(TRANS,E)
對液晶顯示器寫數據子程序WRITE1(WRITE,CLMADD,E)
開E1顯示子程序DISP1(E)
 E1邊清屏子程序CLEAR1(int E)
關 E1顯示子程序DISOFF1(int E)
LCD的E1邊初始化子程序LCD1INIT(int E)
漢字顯示子程序DISPLAY1(ARRAY,E,PAGADD,CLMADD)
數字和字母顯示子程序DISPLAY2(ARRAY,E,PAGADD,CLMADD)*/
char chari[16]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,};//.
char char0[16]={0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,};//0		
char char1[16]={0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,};//1
char char2[16]={0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,};//2
char char3[16]={0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,};//3
char char4[16]={0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,};//4
char char5[16]={0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,};//5
char char6[16]={0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,};//6;
char char7[16]={0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,};//7
char char8[16]={0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,};//8
char char9[16]={0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,};//9
// 讀液晶顯示器狀態子程序,形參E代表處理的液晶的邊(E1或E2邊) 
void LCDSTA1(int E)
{
	int	E1FLAG;
	*PBDATDIR=*PBDATDIR&0X00FF;// IOPB口為輸入口 
	while(1)
	{
		if(E==1)
		*PADATDIR=(*PADATDIR|0X0050)&0X0FF5F;
			// E1=1,E2=0,R/W=1,A0=0,以便讀晶的狀態 
		else	*PADATDIR=(*PADATDIR|0X0060)&0X0FF6F;
			// E1=0,E2=1,R/W=1,A0=0,以便液晶的狀態 
		E1FLAG=*PBDATDIR&0X0080;
	if(E1FLAG==0x0000)  break;		// 若液晶空閑,則停止等待 
	}
}

// 對液晶顯示器發指令子程序,形參E代表處理的液晶的邊(E1或E2邊) 
void TRANS1(int TRANS,int E)		// 該函數采用形參和實參的方式傳遞數值,TRANS為一個形參
{
	LCDSTA1(E);					// 判斷液晶是否為忙 
	*PBDATDIR=*PBDATDIR|0XFF00;	// IOPB口為輸出口 
	if(E==1)  *PADATDIR=(*PADATDIR|0X0010)&0X0FF1F;
		// E1=1,E2=0,R/W=0,A0=0,以便寫入令字 
	else  *PADATDIR=(*PADATDIR|0X0020)&0X0FF2F;
		// E1=0,E2=1,R/W=0,A0=0,以便入命令字 		
	*PBDATDIR=(*PBDATDIR&0X0FF00)|TRANS;
		// 需要寫入的命令字送入數據線 
	if(E==1)  *PADATDIR=*PADATDIR&0X0FFEF;	// E1=0,寫入指令 
	else  *PADATDIR=*PADATDIR&0X0FFDF;		// E2=0,寫入指令 
}

// 對液晶顯示器寫數據子程序,注意在此子程序里面列地址沒有加1,需要用戶在外
// 對其進行操作,形參E代表處理的液晶的邊(E1或E2邊) 	
void WRITE1(int WRITE,int CLMADD,int E)		// WRITE代表需要寫入的數據,CLMADD代表要的列地址
{
	TRANS1(CLMADD,E);			// 設置列地址 
	LCDSTA1(E);					// 查詢液晶是否為空閑 
	*PBDATDIR=*PBDATDIR|0XFF00;	// IOPB口為輸出口 
	if(E==1) 	*PADATDIR=(*PADATDIR|0X0090)&0X0FF9F;
		// E1=1,E2=0,R/W=0,A0=1,以便寫入要顯示的數據 
	else  *PADATDIR=(*PADATDIR|0X00A0)&0X0FFAF;
		// E1=0,E2=1,R/W=0,A0=1,以便要顯示的數據 	
	*PBDATDIR=(*PBDATDIR&0X0FF00)|WRITE;
	// 需要寫入的數據送入數據線 
	if(E==1)	*PADATDIR=*PADATDIR&0X0FFEF;// E1=0,寫入數據 
	else	*PADATDIR=*PADATDIR&0X0FFDF;		// E2=0,寫入數據 
}

// 開E1顯示子程序,形參E代表處理的液晶的邊(E1或E2邊) 
void DISP1(int E)
{
	int	E1FLAG;	
	while(1)
	{
		TRANS1(0X0AF,E);			// 送出控制命令 
		LCDSTA1(E);					// 判斷液晶是否為空閑 
		*PBDATDIR=*PBDATDIR&0X00FF;	// IOPB口為輸入口 
		if(E==1)	*PADATDIR=(*PADATDIR|0X0050)&0X0FF5F;
			// E1=1,E2=0,R/W=1,A0=0,以便讀晶的狀態 
		else	*PADATDIR=(*PADATDIR|0X0060)&0X0FF6F;
			// E1=0,E2=1,R/W=1,A0=0,以便液晶的狀態 
		E1FLAG=*PBDATDIR&0X0020;
		if(E1FLAG==0)  break;		// 如果液晶沒被打開,則繼續打開 
	}
}

// E1邊清屏子程序,形參E代表處理的液晶的邊(E1或E2邊) 
void CLEAR1(int E)
{	
	int	PAGEADD,PAGENUM,CLMADD,CLMSUM;// 定義所需要的局部變量 
	for(PAGENUM=0X04,PAGEADD=0x0B8;PAGENUM>0;PAGENUM--,PAGEADD++)
	{
		TRANS1(PAGEADD,E);					// 設置相應的頁地址 
		for(CLMSUM=0X00;CLMSUM<0X3E;CLMSUM++)
		{
			LCDSTA1(E);						// 判斷液晶是否為空閑 
			WRITE1(0X00,CLMSUM,E);			// 向相應的列送0以清屏 
		}
	}
}

// 關 E1顯示子程序,形參E代表處理的液晶的邊(E1或E2邊) 
void DISOFF1(int E)
{
	int	E1FLAG;
	while(1)  
	{
		TRANS1(0X0AE,E);				// 發出控制命令 
		LCDSTA1(E);						// 判斷液晶是否為空閑 
		*PBDATDIR=*PBDATDIR&0X00FF;		// IOPB口為輸入口 
		if(E==1)	*PADATDIR=(*PADATDIR|0X0050)&0X0FF5F;
		// E1=1,E2=0,R/W=1,A0=0,以便讀晶的狀態
		else	*PADATDIR=(*PADATDIR|0X0060)&0X0FF6F; // E1=0,E2=1,R/W=1,A0=0,以便
		// 液晶的狀態 
		E1FLAG=*PBDATDIR&0X0020;
		if(E1FLAG==1)		break;		// 如果液晶沒有被關閉,則繼續關 
	}
}

// LCD的E1邊初始化子程序,形參E代表處理的液晶的邊(E1或E2邊) 
void LCD1INIT(int E)
{
	DISOFF1(E);					// 關顯示E1 
	TRANS1(0X0A4,E);				// 靜態顯示驅動 
	TRANS1(0X0A9,E);				// 占空比為1/32 
	TRANS1(0X0E2,E);				// 復位 
	TRANS1(0X0A0,E);				// ADC選擇正常輸出 
	CLEAR1(E);					// 清屏 
	LCDSTA1(E);					// 判斷液晶是否為空閑 
	DISP1(E);						// 開顯示 
}

// 漢字顯示子程序,入口為存儲漢字庫的數組的首地址,頁地址和起始列地址
// 和選中的E1或E2的邊數 
/*void DISPLAY1(int* ARRAY,int E,int PAGADD,int CLMADD) 
{
	int K,TEMP;
	TRANS1(0X0C0,E);				// 從第0行開始顯示 
	TRANS1(PAGADD,E);				// 送需要顯示的頁地址 
	for(K=0;K<8;K++,CLMADD++,ARRAY++)
	{
		TEMP=*ARRAY&0X00FF;
		WRITE1(TEMP,CLMADD,E);	// 送需要顯示的數據字節 
		CLMADD++;
		TEMP=(*ARRAY&0X0FF00)>>8;
		WRITE1(TEMP,CLMADD,E);	// 送需要顯示的數據字節 
	}	
	CLMADD=CLMADD-16;				// 恢復列地址 
	PAGADD=PAGADD+1;				// 頁地址加1 
	TRANS1(PAGADD,E);
	for(;K<16;K++,CLMADD++,ARRAY++)
	{
		TEMP=*ARRAY&0X00FF;
		WRITE1(TEMP,CLMADD,E);	// 送需要顯示的數據字節 
		CLMADD++;
		TEMP=(*ARRAY&0X0FF00)>>8;
		WRITE1(TEMP,CLMADD,E);	// 送需要顯示的數據字節 
	}
}*/
void DISPLAY1(char* ARRAY,int E,int PAGADD,int CLMADD)
{
	int K;
	char TEMP;
	TRANS1(0X0C0,E);				// 從第0行開始顯示 
	TRANS1(PAGADD,E);				// 送需要顯示的頁地址 
	for(K=0;K<16;K++,CLMADD++,ARRAY++)
	{
		TEMP=*ARRAY&0X00FF;
		WRITE1(TEMP,CLMADD,E);	// 送需要顯示的數據字節 
	}	
	CLMADD=CLMADD-16;				// 恢復列地址 
	PAGADD=PAGADD+1;				// 頁地址加1 
	TRANS1(PAGADD,E);
	for(;K<32;K++,CLMADD++,ARRAY++)
	{
		TEMP=*ARRAY&0X00FF;
		WRITE1(TEMP,CLMADD,E);	// 送需要顯示的數據字節 
	}
}

// 數字和字母顯示子程序,入口為存儲字母或數字庫的數組的首地址,頁地址和
// 始列地址和選中的E1或E2的邊數 
/*void DISPLAY2(int* ARRAY,int E,int PAGADD,int CLMADD)
{
	int K,TEMP;
	TRANS1(0X0C0,E);			// 從第0行開始顯示 
	TRANS1(PAGADD,E);		// 送需要顯示的頁地址 
	for(K=0;K<4;K++,CLMADD++,ARRAY++)
	{
		TEMP=*ARRAY&0X00FF;
		WRITE1(TEMP,CLMADD,E);	// 送需要顯示的數據字節 
		CLMADD++;
		TEMP=(*ARRAY&0X0FF00)>>8;
		WRITE1(TEMP,CLMADD,E);	// 送需要顯示的數據字節 
	}
	CLMADD=CLMADD-8;			// 恢復列地址 
	PAGADD=PAGADD+1;			// 頁地址加1 
	TRANS1(PAGADD,E);
	for(;K<8;K++,CLMADD++,ARRAY++)
	{
		TEMP=*ARRAY&0X00FF;
		WRITE1(TEMP,CLMADD,E);	// 送需要顯示的數據字節 
		CLMADD++;
		TEMP=(*ARRAY&0X0FF00)>>8;
		WRITE1(TEMP,CLMADD,E);	// 送需要顯示的數據字節 
	}
}*/
void DISPLAY2(char* ARRAY,int E,int PAGADD,int CLMADD)
{
	int K;
	char TEMP;
	TRANS1(0X0C0,E);			// 從第0行開始顯示 
	TRANS1(PAGADD,E);		// 送需要顯示的頁地址 
	for(K=0;K<8;K++,CLMADD++,ARRAY++)
	{
		TEMP=*ARRAY&0X00FF;
		WRITE1(TEMP,CLMADD,E);	// 送需要顯示的數據字節 
	}
	CLMADD=CLMADD-8;			// 恢復列地址 
	PAGADD=PAGADD+1;			// 頁地址加1 
	TRANS1(PAGADD,E);
	for(;K<16;K++,CLMADD++,ARRAY++)
	{
		TEMP=*ARRAY&0X00FF;
		WRITE1(TEMP,CLMADD,E);	// 送需要顯示的數據字節 
	}
}
 
/* 主程序 
main()
{
	initial();						// 系統初始化 
	// 顯示第一行"DSP  實驗板" 
	LCD1INIT(1);					// LCD的E1邊初始化 
	LCD1INIT(2);					// LCD的E2邊初始化 
	DISPLAY2(char1,1,0x0BA,00);	// 調用字母和數字顯示子程序   
	DISPLAY2(char2,1,0x0BA,8);	// 調用字母和數字顯示子程序 
	DISPLAY2(char3,1,0x0BA,17);	// 調用字母和數字顯示子程序 
	DISPLAY1(char4,2,0x0BA,0);	// 調用漢字顯示子程序 
	DISPLAY1(char5,2,0x0BA,15);	// 調用漢字顯示子程序 
	DISPLAY1(char6,2,0x0BA,30);	// 調用漢字顯示子程序 
	// 顯示第行行"DSP  實驗板" 
	DISPLAY2(char1,1,0x0B8,00);	// 調用字母和數字顯示子程序   
	DISPLAY2(char2,1,0x0B8,8);	// 調用字母和數字顯示子程序 
	DISPLAY2(char3,1,0x0B8,17);	// 調用字母和數字顯示子程序 
	DISPLAY1(char4,2,0x0B8,0);	// 調用漢字顯示子程序 
	DISPLAY1(char5,2,0x0B8,15);	// 調用漢字顯示子程序 
	DISPLAY1(char6,2,0x0B8,30);	// 調用漢字顯示子程序 
}*/
/*顯示SOC值*/
void displaysoc(float soc)
{
	int p,i;
	if(10000*soc>=5)soc+=0.001;//對soc四舍五入保留3位有效數字
	DISPLAY2(chari,1,0x0BA,00);	// 調用字母和數字顯示子程序
	for(i=0;i<3;i++)
	{
		p=(int)soc/0.1;
		switch(p)
		{
		case 0:	
			DISPLAY2(char0,1,0x0BA,8+i*8);
			break;
		case 1:
			DISPLAY2(char1,1,0x0BA,8+i*8);
			break;
		case 2:
			DISPLAY2(char2,1,0x0BA,8+i*8);
			break;			
		case 3:
			DISPLAY2(char3,1,0x0BA,8+i*8);
			break;
		case 4:
			DISPLAY2(char4,1,0x0BA,8+i*8);
			break;
		case 5:
			DISPLAY2(char5,1,0x0BA,8+i*8);
			break;
		case 6:
			DISPLAY2(char6,1,0x0BA,8+i*8);
			break;
		case 7:
			DISPLAY2(char7,1,0x0BA,8+i*8);
			break;
		case 8:
			DISPLAY2(char8,1,0x0BA,8+i*8);
			break;
		case 9:
			DISPLAY2(char9,1,0x0BA,8+i*8);
			break;
		}
		soc=soc-p*0.1;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美zozozo| 欧美性色黄大片手机版| 精品国产网站在线观看| 麻豆久久一区二区| 日韩女优毛片在线| 国产真实乱子伦精品视频| 久久久久久久久久美女| 成人动漫视频在线| 亚洲激情第一区| 精品视频免费看| 人妖欧美一区二区| 国产色婷婷亚洲99精品小说| 成人精品在线视频观看| 亚洲精品大片www| 欧美高清视频www夜色资源网| 日韩电影免费在线看| 久久尤物电影视频在线观看| 成人国产精品视频| 亚洲成人先锋电影| 精品国产一区二区精华| av在线不卡电影| 午夜私人影院久久久久| 欧美精品一区二区三区蜜臀| 99久久久国产精品| 视频一区免费在线观看| 国产欧美日韩中文久久| 在线精品国精品国产尤物884a| aa级大片欧美| 天堂蜜桃91精品| 久久看人人爽人人| 欧美丝袜丝交足nylons| 精品一区二区影视| 亚洲精品国产a久久久久久| 69p69国产精品| 丰满少妇久久久久久久| 天堂久久久久va久久久久| 久久亚洲春色中文字幕久久久| 99re这里只有精品6| 免费在线看一区| 《视频一区视频二区| 日韩美女在线视频| 91在线观看成人| 激情六月婷婷久久| 高清国产一区二区| 日产欧产美韩系列久久99| 国产精品麻豆欧美日韩ww| 91麻豆精品国产91久久久资源速度| 国产91精品入口| 老鸭窝一区二区久久精品| 亚洲精品福利视频网站| 国产亚洲精品aa| 欧美一区中文字幕| 在线精品视频小说1| 成人av影院在线| 国产麻豆视频一区二区| 人人精品人人爱| 一区二区激情小说| 欧美国产欧美综合| 精品美女一区二区| 欧美日韩国产乱码电影| 色av一区二区| 成人av资源网站| 国产一区二区视频在线| 美女高潮久久久| 香蕉成人伊视频在线观看| 亚洲私人影院在线观看| 国产精品毛片大码女人| 国产午夜精品久久久久久免费视 | 大白屁股一区二区视频| 久久精品国产久精国产爱| 亚洲 欧美综合在线网络| 亚洲综合色自拍一区| 亚洲美腿欧美偷拍| 亚洲丝袜自拍清纯另类| 国产精品视频第一区| 久久久精品国产99久久精品芒果| 欧美成人激情免费网| 欧美精品久久久久久久多人混战 | 国产成人精品午夜视频免费| 乱一区二区av| 蜜臀久久99精品久久久久宅男| 日韩专区一卡二卡| 日韩高清一区在线| 麻豆免费精品视频| 国产又黄又大久久| 国产精品一区在线观看你懂的| 国内精品伊人久久久久av影院 | 成人午夜视频在线观看| 成人高清视频免费观看| av资源网一区| 91久久线看在观草草青青| 在线观看日韩毛片| 欧美日本精品一区二区三区| 538在线一区二区精品国产| 欧美夫妻性生活| 欧美成人综合网站| 最新国产成人在线观看| 亚洲美女区一区| 日韩影院在线观看| 国产在线乱码一区二区三区| 成人在线视频一区| 不卡的av电影| 欧美视频三区在线播放| 日韩一区二区影院| 久久亚洲影视婷婷| 亚洲私人黄色宅男| 三级欧美在线一区| 国产一区福利在线| 99久久久精品| 欧美一区日本一区韩国一区| 精品久久久久99| 中文字幕一区二区三区不卡在线 | 99久久精品久久久久久清纯| 日本高清不卡视频| 欧美一区午夜精品| 亚洲欧洲日本在线| 亚洲一区二区三区四区在线| 老汉av免费一区二区三区| 粗大黑人巨茎大战欧美成人| 欧美性淫爽ww久久久久无| 91精品国产综合久久香蕉的特点| 国产日韩av一区| 亚洲电影中文字幕在线观看| 激情五月播播久久久精品| 99久久久国产精品| 欧美va亚洲va在线观看蝴蝶网| 国产精品久久久久精k8| 日韩精品色哟哟| 99久久国产免费看| 日韩免费观看2025年上映的电影| 中文字幕一区二区视频| 美女免费视频一区| 欧美性生活一区| 欧美激情一区二区三区| 日韩不卡一区二区三区| 成人免费视频国产在线观看| 在线成人av影院| 亚洲欧美在线另类| 激情深爱一区二区| 欧洲人成人精品| 国产精品国模大尺度视频| 国内成+人亚洲+欧美+综合在线| 色婷婷av一区二区| 国产女人18水真多18精品一级做| 亚洲成a人在线观看| 极品尤物av久久免费看| 欧美疯狂做受xxxx富婆| 亚洲男人电影天堂| 成人在线视频首页| 精品不卡在线视频| 日本欧美韩国一区三区| 一本色道久久综合狠狠躁的推荐| 国产欧美日韩亚州综合| 日本在线不卡视频| 欧美色图天堂网| 亚洲免费在线视频一区 二区| 国产99久久精品| 久久免费的精品国产v∧| 亚洲欧美视频在线观看| 不卡电影免费在线播放一区| 国产日韩欧美麻豆| 国产一区二区三区四区五区入口| 91精品国产欧美日韩| 日精品一区二区| 欧美性视频一区二区三区| 一区二区三区在线观看欧美| 97久久久精品综合88久久| 国产精品久久久久一区二区三区共| 国产综合久久久久久久久久久久| 欧美成人综合网站| 激情小说亚洲一区| 久久久亚洲精华液精华液精华液| 久草中文综合在线| 久久久三级国产网站| 国产米奇在线777精品观看| 久久色视频免费观看| 国模冰冰炮一区二区| 久久综合九色综合欧美亚洲| 国内精品国产三级国产a久久| 久久天堂av综合合色蜜桃网| 国产在线精品免费av| 亚洲国产精品二十页| 99久久婷婷国产精品综合| 亚洲三级在线免费观看| 欧洲精品一区二区三区在线观看| 亚洲福利国产精品| 日韩免费性生活视频播放| 国产一区二区精品久久| 国产精品青草久久| 91福利视频在线| 日韩精品乱码免费| 精品国产伦理网| 懂色av一区二区三区蜜臀| 亚洲视频狠狠干| 欧美裸体一区二区三区| 蜜桃精品视频在线| 国产欧美一区二区精品久导航| 97久久超碰精品国产| 偷拍一区二区三区四区| 久久尤物电影视频在线观看|