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

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

?? lcdb_driver.c

?? C0851F020單品機DA轉換源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
		LCDBGraph_BaseAddr = SAD2_ADDR;
    }
	else if(id == 2)
	{
		para = MAP3|CURSOR;
		LCDBGraph_BaseAddr = SAD3_ADDR;
	}
	else
		return FALSE;

	LCDB_WriteCmdPara(CMD_DISPON, &para, 1);
	return TRUE;	
}

/***********************************************************************************
* Function: LCDB_DrawPixel;
*
* Description: 畫點(x,y);
*              
* Input:  x, LCD行坐標; y, LCD列坐標; bit類型標識mode,1:畫點,0:擦除點;
*
* Output: none;
*
* Return: none;
*
* Note:   none;
************************************************************************************/
void LCDB_DrawPixel(unsigned int x, y, bit mode)
{
	unsigned int xdata StartAddr;
	unsigned char xdata val,dat;

	StartAddr=x*LCDB_LineChar + (y>>3) + LCDBGraph_BaseAddr;
	y = (unsigned char)y&0x07;

	LCDB_WriteCmd(CMD_CSRDOWN);
    LCDB_WriteCmd(CMD_CSRW);   					// 設置光標地址
    LCDB_WriteData((unsigned char)StartAddr);   // 計算光標地址
    LCDB_WriteData((unsigned char)(StartAddr>>8));
	LCDB_WriteCmd(CMD_MREAD);  					// MREAD 代碼 
	
	dat=LCDB_ReadData();   						// 讀取當前顯示數據

	val = 0x01<<(7-y);	
	if(mode) 
		val = val|dat;
	else
		val = (~val)&dat;

	LCDB_WriteCmd(CMD_CSRW);   					// 設置光標地址 
    LCDB_WriteData((unsigned char)StartAddr); 	// 計算光標地址
    LCDB_WriteData((unsigned char)(StartAddr>>8));
	LCDB_WriteCmd(CMD_MWRITE);  				// MWRITE 代碼
	LCDB_WriteData(val);						// 寫入合成數據
}


/***********************************************************************************
* Function: LCDB_DrawLine;
*
* Description: (x1,y1)--(x2,y2)處劃線;
*              
* Input:  x1,x2, LCD行坐標; y1,y2, LCD列坐標; bit類型標識mode,1:畫直線:擦除直線;
*
* Output: none;
*
* Return: none;
*
* Note:   none;
************************************************************************************/
void LCDB_DrawLine(unsigned int x1, y1, x2, y2, bit mode)
{
	unsigned int xdata x,y;
	double xdata k,b;

	if( abs(y1-y2) <= abs(x1-x2) ) // |k|<=1
	{
		k=(float)(y2-y1) / (float)(x2-x1) ;
		b=y1-k*x1;

		if( x1 <= x2 )
		{
			for(x=x1;x<=x2;x++)
			{
				y=k*x+b;
				LCDB_DrawPixel(x, y, mode);
			}
		}
		else
		{
			for(x=x2;x<=x1;x++)
			{ 
				y=k*x+b;
				LCDB_DrawPixel(x, y, mode);
			}
		}
	}
	else // abs(y1-y2) > abs(x1-x2) |K|>1
	{
		k=(float)(x2-x1) / (float)(y2-y1) ;
		b=x1-k*y1;

		if( y1 <= y2 )
		{
			for(y=y1;y<=y2;y++)
			{ 
				x=k*y+b;
				LCDB_DrawPixel( x , y, mode);
			}
		}
		else
		{
			for(y=y2;y<=y1;y++)
			{ 
				x=k*y+b;
				LCDB_DrawPixel( x , y, mode);
			}
		}
	}
}


/***********************************************************************************
* Function: LCDB_DrawRectangle;
*
* Description: 以(x1,y1)和(x2,y2)為對角點畫矩形;
*              
* Input:  x1,x2, LCD行坐標; y1,y2, LCD列坐標; bit類型標識mode,1:畫矩形,0:擦除矩形;
*
* Output: none;
*
* Return: none;
*
* Note:   none;
************************************************************************************/
void  LCDB_DrawRectangle(unsigned int x1, y1, x2, y2, bit mode)
{
	LCDB_DrawLine(x1,y1,x2,y1,mode);
	LCDB_DrawLine(x1,y1,x1,y2,mode);

	LCDB_DrawLine(x2,y1,x2,y2,mode);
	LCDB_DrawLine(x1,y2,x2,y2,mode);
}

/***********************************************************************************
* Function: LCDB_DrawFillRectangle;
*
* Description: 以(x1,y1)和(x2,y2)為對角點畫矩形實體;
*              
* Input:  x1,x2, LCD行坐標; y1,y2, LCD列坐標; bit類型標識mode,1:畫矩形實體,0:擦除矩形實體;
*
* Output: none;
*
* Return: none;
*
* Note:   none;
************************************************************************************/
void  LCDB_DrawFillRectangle(unsigned int x1, y1, x2, y2, bit mode)
{
	unsigned int xdata i;
	for (i=x1; i<=x2; i++)
		LCDB_DrawLine(i,y1,i,y2,mode);
}

/***********************************************************************************
* Function: LCDB_DrawCircle;
*
* Description: 以(x,y)為圓心, r為半徑畫圓;
*              
* Input:  x, LCD行坐標; y, LCD列坐標; bit類型標識mode,1:畫圓,0:擦除圓;
*
* Output: none;
*
* Return: none;
*
* Note:   none;
************************************************************************************/
void  LCDB_DrawCircle(unsigned int x, y, r, bit mode)
{
	unsigned int xdata r_2,i,x1,y1,temp_x;
	unsigned int xdata temp;

	r_2=0.707*r;
	temp=r*r;

	for (i=0; i<=r_2; i++)
	{
		if (mode)
		{
			if (!(i&0x01))
			{	

				x1=i;
				y1=sqrt(1.0*(temp-x1*x1))+0.5;
				LCDB_DrawPixel(x1+x,y1+y,mode);
				LCDB_DrawPixel(-x1+x,y1+y,mode);
				LCDB_DrawPixel(x1+x,-y1+y,mode);
				LCDB_DrawPixel(-x1+x,-y1+y,mode);
		
				temp_x=x1;
				x1=y1;
				y1=temp_x;
		
				LCDB_DrawPixel(x1+x,y1+y,mode);
				LCDB_DrawPixel(-x1+x,y1+y,mode);
				LCDB_DrawPixel(x1+x,-y1+y,mode);
				LCDB_DrawPixel(-x1+x,-y1+y,mode);
			}
		}
		else
		{
			x1=i;
			y1=sqrt(1.0*(temp-x1*x1))+0.5;
			LCDB_DrawPixel(x1+x,y1+y,mode);
			LCDB_DrawPixel(-x1+x,y1+y,mode);
			LCDB_DrawPixel(x1+x,-y1+y,mode);
			LCDB_DrawPixel(-x1+x,-y1+y,mode);
	
			temp_x=x1;
			x1=y1;
			y1=temp_x;
	
			LCDB_DrawPixel(x1+x,y1+y,mode);
			LCDB_DrawPixel(-x1+x,y1+y,mode);
			LCDB_DrawPixel(x1+x,-y1+y,mode);
			LCDB_DrawPixel(-x1+x,-y1+y,mode);
		}
	}
}

/***********************************************************************************
* Function: LCDB_DrawByte;
*
* Description: 向LCD(x,y)點開始寫一個字節數據;
*              
* Input:  x, LCD行坐標; y, LCD列坐標; value,寫入字節數據;
*
* Output: none;
*
* Return: none;
*
* Note:   應盡量使y(LCD列坐標)是8的整數倍,可使顯示速度加快;
************************************************************************************/
void  LCDB_DrawByte(unsigned int x, y, unsigned char val)
{
	unsigned char xdata dat1,dat2,bit_x;
	unsigned int xdata StartAddr;

	bit_x=(unsigned char)y&0x07;	
	StartAddr=x*LCDB_LineChar + (y>>3) + LCDBGraph_BaseAddr; 

	if (bit_x==0)
	{	
		LCDB_WriteCmd(CMD_CSRW);   					// 設置光標地址 
    	LCDB_WriteData((unsigned char)StartAddr); 	// 計算光標地址
    	LCDB_WriteData((unsigned char)(StartAddr>>8));
		LCDB_WriteCmd(CMD_MWRITE);  				// MWRITE 代碼
		LCDB_WriteData(val);						// 寫入合成數據
	}
	else
	{
		LCDB_WriteCmd(CMD_CSRRGT);
		LCDB_WriteCmd(CMD_CSRW);   					// 設置光標地址
		LCDB_WriteData((unsigned char)StartAddr);   // 計算光標地址
    	LCDB_WriteData((unsigned char)(StartAddr>>8));
		LCDB_WriteCmd(CMD_MREAD);  					// MREAD 代碼 
    	dat1=LCDB_ReadData();   					// 讀取當前顯示數據
 		dat2=LCDB_ReadData();   					// 讀取當前顯示數據
		
		dat1&=(0xff<<(8-bit_x));   	
		dat1|=(val>>bit_x);
			
		dat2&=(0xff>>bit_x);   	
		dat2|=(val<<(8-bit_x));
		
		LCDB_WriteCmd(CMD_CSRRGT);
		LCDB_WriteCmd(CMD_CSRW);   					// 設置光標地址
		LCDB_WriteData((unsigned char)StartAddr);   // 計算光標地址
    	LCDB_WriteData((unsigned char)(StartAddr>>8));
		LCDB_WriteCmd(CMD_MWRITE);  				// MWRITE 代碼
		LCDB_WriteData(dat1);						// 寫入合成數據
    	LCDB_WriteData(dat2);						// 寫入合成數據
	}
}

/***********************************************************************************
* Function: LCDB_ShowHZxy;
*
* Description: 從LCD(x,y)點開始顯示(line*col)的字符;
*              
* Input:  x, LCD行坐標; y, LCD列坐標; line,字符占用行數; col,字符占用列數;
*         *p,字符數據指針;
*
* Output: none;
*
* Return: none;
*
* Note:   應盡量使y(LCD列坐標)是8的整數倍,可使顯示速度加快; 本函數也可作為自定義圖形顯示;
************************************************************************************/
void LCDB_ShowHZxy(unsigned int x, y, unsigned int line, col, unsigned char *p)
{
	unsigned int xdata i,j;

	for(i=0;i<line;i++)
	{
		for(j=0;j<col;j+=8)
			LCDB_DrawByte(x+i,y+j,*p++);
	}
}

/************************************************************************************
* 文件結束
************************************************************************************/







?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产免费| 91免费精品国自产拍在线不卡| 亚洲一区二区三区四区在线观看| 中文字幕日韩一区| 国产精品美女久久久久av爽李琼 | 久久精品一区二区三区四区| 亚洲午夜影视影院在线观看| 亚洲欧美日韩国产中文在线| 亚洲手机成人高清视频| 亚洲六月丁香色婷婷综合久久 | 亚洲成人1区2区| 午夜激情综合网| 日韩精品久久久久久| 免费看欧美女人艹b| 免费成人小视频| 韩国女主播一区| 国产福利一区在线观看| 不卡欧美aaaaa| 91久久一区二区| 欧美日韩不卡一区二区| 777亚洲妇女| 欧美精品一区二区三区蜜臀| 中文字幕不卡的av| 亚洲美女视频在线| 日韩电影在线一区| 国产精品99久| 一本色道久久综合精品竹菊| 欧美乱熟臀69xxxxxx| 欧美成人三级电影在线| 日本一区二区免费在线 | 丁香婷婷综合色啪| 91麻豆国产香蕉久久精品| 欧美人妇做爰xxxⅹ性高电影| 欧美一区二区视频在线观看| 欧美亚洲禁片免费| 欧美午夜精品久久久久久超碰| 欧美精品在线一区二区三区| 91精品国产乱码久久蜜臀| 久久这里都是精品| 中文字幕日韩一区| 蜜臂av日日欢夜夜爽一区| 国产.精品.日韩.另类.中文.在线.播放| av中文字幕在线不卡| 欧美精选午夜久久久乱码6080| 久久久不卡影院| 亚洲一区二区三区不卡国产欧美 | 777午夜精品视频在线播放| 欧美zozozo| 亚洲欧美色一区| 久久99精品久久久久久国产越南| 99久久99精品久久久久久 | 亚洲国产精品久久久久秋霞影院| 久久成人久久爱| 91色综合久久久久婷婷| 日韩精品一区二区三区四区| 一区二区三区在线观看国产| 加勒比av一区二区| 欧美伊人久久久久久久久影院| 久久亚洲综合色一区二区三区| 亚洲日本护士毛茸茸| 成人高清av在线| 欧美最猛黑人xxxxx猛交| 水蜜桃久久夜色精品一区的特点| 国产一区二区精品久久91| 欧美在线观看视频一区二区 | 国产精品盗摄一区二区三区| 秋霞成人午夜伦在线观看| 91麻豆产精品久久久久久 | 日本一不卡视频| 色综合天天性综合| 国产欧美一区二区精品性| 日韩影院在线观看| 色一区在线观看| 国产欧美综合在线观看第十页| 蜜桃av一区二区| 欧美精品第1页| 亚洲女厕所小便bbb| 国产福利一区二区三区| 91精品国产综合久久精品性色 | 不卡一区二区三区四区| 欧美α欧美αv大片| 日韩福利电影在线| 欧美美女黄视频| 亚洲一区二区在线免费看| 91视频.com| 亚洲色图欧美偷拍| 不卡大黄网站免费看| 中文字幕第一页久久| 国产精品羞羞答答xxdd| xf在线a精品一区二区视频网站| 日韩电影在线一区| 欧美日韩一级片网站| 亚洲欧美二区三区| 99精品视频在线观看免费| 日韩女优av电影| 日韩国产精品久久| 91麻豆精品国产无毒不卡在线观看 | 色综合色狠狠综合色| 国产精品三级视频| 成人精品国产一区二区4080| 国产欧美精品日韩区二区麻豆天美| 极品少妇一区二区三区精品视频 | 亚洲色欲色欲www在线观看| 成人精品国产免费网站| 中文字幕在线观看不卡视频| 99久久国产综合色|国产精品| 中文字幕一区二区视频| av成人免费在线| 中文字幕中文字幕一区二区 | 久久精品国产在热久久| 欧美一级欧美一级在线播放| 午夜精品一区在线观看| 91精品久久久久久久99蜜桃| 久久国产综合精品| 2022国产精品视频| 成人在线综合网| 美女视频网站久久| 欧美一区永久视频免费观看| 日韩精品一区第一页| 日韩一区二区三区四区| 国产在线不卡视频| 欧美激情综合网| 91香蕉视频污在线| 亚洲一区免费观看| 日韩欧美久久久| 国产成人免费在线观看不卡| 国产精品欧美一级免费| 色又黄又爽网站www久久| 午夜精品福利在线| 欧美xxxx在线观看| av福利精品导航| 首页国产欧美久久| www国产成人| 色婷婷激情综合| 秋霞国产午夜精品免费视频| 国产日韩欧美高清在线| 欧洲精品在线观看| 美国十次综合导航| 国产精品日日摸夜夜摸av| 在线欧美一区二区| 久久精品国产99国产| 中文字幕av一区二区三区| 色妞www精品视频| 日韩国产成人精品| 国产精品丝袜久久久久久app| 精品视频在线免费观看| 国产一区二区三区久久悠悠色av | 国产成人在线视频网站| 亚洲精品第1页| 精品剧情v国产在线观看在线| 99久久er热在这里只有精品15 | 在线一区二区视频| 久久国产剧场电影| 亚洲女女做受ⅹxx高潮| 精品欧美一区二区在线观看| 日本久久一区二区| 精品一区二区免费看| 亚洲另类一区二区| 久久久精品日韩欧美| 欧美福利视频一区| 成人黄色小视频| 七七婷婷婷婷精品国产| 亚洲色图在线看| 久久精品免费在线观看| 欧美一区二区视频在线观看 | 久久亚洲精品国产精品紫薇| 色中色一区二区| 日韩欧美中文一区二区| 菠萝蜜视频在线观看一区| 久久66热偷产精品| 亚洲午夜精品17c| 国产精品成人在线观看| 欧美精品一区二区三区蜜桃视频| 日本韩国精品在线| 成人免费视频app| 捆绑调教美女网站视频一区| 一级特黄大欧美久久久| 国产精品色哟哟| 国产精品888| 亚洲伊人伊色伊影伊综合网| 国产精品私人影院| 精品乱人伦一区二区三区| 欧美日韩精品欧美日韩精品| 波多野结衣精品在线| 国产一区 二区| 毛片av一区二区| 天天av天天翘天天综合网色鬼国产 | 欧美体内she精高潮| 91免费看片在线观看| 成人伦理片在线| 久久99最新地址| 欧美aaa在线| 免费观看在线综合色| 亚洲gay无套男同| 亚洲永久免费视频| 亚洲人成网站影音先锋播放| 国产精品沙发午睡系列990531| 国产欧美日韩精品一区| 国产清纯白嫩初高生在线观看91| 久久先锋资源网|