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

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

?? sed1330.h

?? uC_OS-II在C51下的一個完整的LCD項目源碼
?? H
?? 第 1 頁 / 共 2 頁
字號:
	LCDORDER=0X42;
	for(counter=0;counter<16;counter++)
    	LCDDATA=buff[counter];
	

    /*以下寫字符的右部*/
	curadd.add=curadd.add+1;         /*地址加1,移到右部*/
	
	LCDORDER=0X4F;                   /*確定光標移動方向為向下*/
	
	LCDORDER=0X46;                   /*確定光標地址*/
	LCDDATA=curadd.addhalf.addlo;
	LCDDATA=curadd.addhalf.addhi;
	
	flag1=(0XFF)>>offset;
	flag2=~flag1;
	flag1=0XFF>>offset;
				
	LCDORDER=0X43;                   /*由光標處開始,向下讀入16個數據*/
	for(counter=0;counter<16;counter++)
		buff[counter]=(LCDORDER&flag1)|(GB_16[chatnum].Msk[counter]<<(8-offset));
	
	LCDORDER=0X46;                   /*再次確定光標地址*/
	LCDDATA=curadd.addhalf.addlo;
	LCDDATA=curadd.addhalf.addhi;
	
	LCDORDER=0X42;
	for(counter=0;counter<16;counter++)
		LCDDATA=buff[counter];
	
////////////////////////////////////////////////
	LCDORDER=0X46;                         /*確定光標地址*/
	LCDDATA=curadd.addhalf.addlo;
	LCDDATA=curadd.addhalf.addhi;
	
	
	/*以下寫字符的左部*/
	LCDORDER=0X4F;                         /*確定光標移動方向為向下*/
	
	flag1=(0XFF)<<(8-offset);
	flag2=~flag1;	
		
	LCDORDER=0X43;                         /*由光標處開始,向下讀入16個數據*/                                        
	for(counter=0;counter<16;counter++)
    	buff[counter]=(LCDORDER&flag1)|(GB_16[chatnum].Msk[counter+16]>>offset);
    
	LCDORDER=0X46;                         /*再次確定光標地址*/
	LCDDATA=curadd.addhalf.addlo;
	LCDDATA=curadd.addhalf.addhi;
	
	LCDORDER=0X42;
	for(counter=0;counter<16;counter++)
		LCDDATA=buff[counter];
	
	
	curadd.add=curadd.add+1;         /*地址加1,移到右部*/
	
	LCDORDER=0X4F;                   /*確定光標移動方向為向下*/
	
	LCDORDER=0X46;                   /*確定光標地址*/
	LCDDATA=curadd.addhalf.addlo;
	LCDDATA=curadd.addhalf.addhi;
	
	flag1=(0XFF)>>offset;
	flag2=~flag1;
	flag1=0XFF>>offset;
				
	LCDORDER=0X43;                   /*由光標處開始,向下讀入10個數據*/
	for(counter=0;counter<16;counter++)
		buff[counter]=(LCDORDER&flag1)|(GB_16[chatnum].Msk[counter+16]<<(8-offset));
	
	LCDORDER=0X46;                   /*再次確定光標地址*/
	LCDDATA=curadd.addhalf.addlo;
	LCDDATA=curadd.addhalf.addhi;
	
	LCDORDER=0X42;
	for(counter=0;counter<16;counter++)
		LCDDATA=buff[counter];
}
void myprintf(unsigned int sad,unsigned char bcenter,unsigned int hnum,unsigned char vnum,unsigned char *fmt, ...)
{
	va_list arg_ptr;
	unsigned char tmpBuf[64];				// LCD顯示數據緩沖區
	unsigned char i,uLen,j;
	unsigned char c1,c2;
	
	va_start(arg_ptr,fmt);
	uLen=(unsigned char)vsprintf(tmpBuf,fmt,arg_ptr);
	va_end(arg_ptr);
	
	if(bcenter)
		hnum=hnum-(uLen*4);
	i=0;
	while(i<uLen)
	{
		c1 = tmpBuf[i];
		c2 = tmpBuf[i+1];
		if(c1<128)//ASCII
		{
			if(c1<31)
			{
				if(c1==13||c1==10)
				{					
					i++;
					if(vnum<224)
						vnum+=16;
					else
						vnum=0;
					hnum=0;
					continue;
				}		
				c1=31;
			}
			wrchatasc(sad,hnum,vnum,(c1-31));
			hnum+=8;
		}
		else
		{	// 中文
			for(j=0;j<sizeof(GB_16)/sizeof(GB_16[0]);j++)
			{
				if(c1==GB_16[j].Index[0]&&c2==GB_16[j].Index[1])
				{
					wrchat(sad,hnum,vnum,j);
					break;
				}
			}			
			hnum+=16;
			i++;
		}
		i++;
		if(hnum>312)
		{
			hnum=0;
			if(vnum<224)
				vnum+=17;
			else
				vnum=0;
		}		
	}
}

#if Number361
void wrnumber(unsigned int sad,unsigned char hnum,unsigned char vnum,unsigned char chatnum)
{
	unsigned char counter;
	union {unsigned int add;
	struct {unsigned char addhi;unsigned char addlo;}addhalf;
	}curadd;
	curadd.add=vnum*(APL)+hnum+sad;      /*計算出首址*/
	LCDORDER=0X46;                         /*確定光標地址*/
	LCDDATA=curadd.addhalf.addlo;
	LCDDATA=curadd.addhalf.addhi;
	
	
	LCDORDER=0X4F;                         /*確定光標移動方向為向下*/
	LCDORDER=0X42;
	for(counter=0;counter<36;counter++)
    	LCDDATA=mynumbermsk[chatnum][counter];
    //以下寫字符的右部
	curadd.add++;	
	LCDORDER=0X46;                   
	LCDDATA=curadd.addhalf.addlo;
	LCDDATA=curadd.addhalf.addhi;
	LCDORDER=0X42;
	for(counter=0;counter<36;counter++)
    	LCDDATA=mynumbermsk[chatnum][counter+36];
	curadd.add++;	
	LCDORDER=0X46;                   
	LCDDATA=curadd.addhalf.addlo;
	LCDDATA=curadd.addhalf.addhi;
	LCDORDER=0X42;
	for(counter=0;counter<36;counter++)
    	LCDDATA=mynumbermsk[chatnum][counter+72];
    
}

void mynuprintf(unsigned int sad,unsigned char hnum,unsigned char vnum,unsigned char *fmt, ...)
{
	va_list arg_ptr;
	unsigned char tmpBuf[16];				// LCD顯示數據緩沖區
	unsigned char i,uLen;
	
	va_start(arg_ptr,fmt);
	uLen=(unsigned char)vsprintf(tmpBuf,fmt,arg_ptr);
	va_end(arg_ptr);
	
	i=0;
	hnum=hnum-(uLen*3);
	while(i<uLen)
	{
		if(tmpBuf[i]<58&&tmpBuf[i]>47)
		{
			wrnumber(sad,hnum,vnum,(tmpBuf[i]-47));
			hnum+=3;
		}
		else
		{
			if(tmpBuf[i]=='.')
			{
				wrnumber(sad,hnum,vnum,0);
				hnum+=1;
			}
			else
			{
				if(tmpBuf[i]=='-')
					wrnumber(sad,hnum,vnum,12);
				else
					wrnumber(sad,hnum,vnum,11);
				hnum+=3;
			}			
		}
		i++;		
	}
}

#endif


/*void rectangl(unsigned int sad,unsigned int strhnum,unsigned char strvnum,unsigned int endhnum,unsigned char endvnum)
{
	linex(sad,strvnum,strhnum,endhnum);
	linex(sad,endvnum,strhnum,endhnum);
	liney(sad,strhnum,strvnum,endvnum);
	liney(sad,endhnum,strvnum,endvnum);
}*/
/***********************************************************
*   程序名稱: RECTANGLE()                                 *
*   程序用途: 在指定層的指定位置填充矩形                  *
*   輸入參數: sad       指定層的內存起始地址              *
*             strhnum   起始點橫坐標                      *
*             strvnum   起始點縱坐標                      *
*             endrhnum  結束點橫坐標                      *
*             endvnum   結束點縱坐標                      *
*             fill      填充類型(1:填充1;0填充0)          *
***********************************************************/
void rectangle(unsigned int sad,unsigned int strhnum,unsigned char strvnum,unsigned int endhnum,unsigned char endvnum,unsigned char fill)
{
	xdata unsigned char count1;
	xdata unsigned char count2;
	xdata LCD_BUFF[240];                          /*屏幕一列的緩沖*/ 
	xdata unsigned char stroffset;
	xdata unsigned char endoffset;
	
	xdata unsigned char flag_str;                 /*用于屏蔽起始列的數值*/
	xdata unsigned char flag_end;                 /*用于屏蔽結束列的數值*/ 
	
	xdata union {unsigned int add;
	struct {unsigned char addhi;unsigned char addlo;}addhalf;
	}stradd,endadd;
	
	
	if(fill==0){fill=0;}                           /*根據要寫1或者寫1*/
	else{fill=0XFF;}
	
	stradd.add=strvnum*(APL)+strhnum/8+sad;        /*計算出水平起始點的地址*/
	endadd.add=strvnum*(APL)+endhnum/8+sad;        /*計算出水平結束點的地址*/
	
	stroffset=strhnum-(strhnum/8)*8;               /*計算出水平起始點字符內的偏移量*/
	endoffset=endhnum-(endhnum/8)*8;               /*計算出水平結束點字符內的偏移量*/ 
	
	flag_str=0XFF<<(8-stroffset);               
	flag_end=0XFF>>(endoffset+1);    
	
	if(stradd.add==endadd.add)                     /*如果水平的起始點的地址和結束點的地址相同*/
	{
		flag_str=flag_str|flag_end;
	}                /*起始結束在同一字節內,頭部尾部不能改寫*/
	
	
	/*+++++++++++++++讀寫起始列的屏幕數據+++++++++++++++*/
	LCDORDER=0X46;                                 /*設定光標地址*/
	LCDDATA=stradd.addhalf.addlo;
	LCDDATA=stradd.addhalf.addhi;                  /*確定光標地址*/
	
	
	LCDORDER=0X4F;                                 /*確定光標移動方向為向下*/
	
	LCDORDER=0X43;                                 /*準備讀*/
	for(count1=0;count1<=(endvnum-strvnum);count1++)
    {LCD_BUFF[count1]=LCDORDER;} 
	
	/*+++++++++++++++處理起始列的屏幕數據+++++++++++++++*/ 
	for(count1=0;count1<=(endvnum-strvnum);count1++) 
    {LCD_BUFF[count1]=( LCD_BUFF[count1] & flag_str ) | ( fill & (~flag_str) );}  
	/*++++++++++++++++++++++++++++++++++++++++++++++++++*/ 
	
	
	/*+++++++++++++++返回起始列的屏幕數據+++++++++++++++*/
	LCDORDER=0X46;                                 /*設定光標地址*/
	LCDDATA=stradd.addhalf.addlo;
	LCDDATA=stradd.addhalf.addhi;                  /*確定光標地址*/
	
	
	LCDORDER=0X4F;                                 /*確定光標移動方向為向下*/
	
	LCDORDER=0X42;                                 /*準備寫*/
	for(count1=0;count1<=(endvnum-strvnum);count1++) 
    {LCDDATA=LCD_BUFF[count1];} 
	/*+++++++++++++++結束列的屏幕數據改寫+++++++++++++++*/
	
	if(stradd.add<endadd.add)                      /*如果水平的起始點的地址和結束點的地址不相同*/ 
	{
		/*+++++++++++++++讀寫結束列的屏幕數據+++++++++++++++*/
		LCDORDER=0X46;                             /*設定光標地址*/
		LCDDATA=endadd.addhalf.addlo;
		LCDDATA=endadd.addhalf.addhi;              /*確定光標地址*/
		
		
		LCDORDER=0X4F;                             /*確定光標移動方向為向下*/
		
		LCDORDER=0X43;                             /*準備讀*/
		for(count1=0;count1<=(endvnum-strvnum);count1++)
		{LCD_BUFF[count1]=LCDORDER;} 
		
		/*+++++++++++++++處理結束列的屏幕數據+++++++++++++++*/ 
		for(count1=0;count1<=(endvnum-strvnum);count1++)
		{LCD_BUFF[count1]=( LCD_BUFF[count1] & flag_end ) | ( fill & (~flag_end) );}  
		
		/*+++++++++++++++返回結束列的屏幕數據+++++++++++++++*/
		LCDORDER=0X46;                               /*設定光標地址*/
		LCDDATA=endadd.addhalf.addlo;
		LCDDATA=endadd.addhalf.addhi;                /*確定光標地址*/
		
		
		LCDORDER=0X4F;                               /*確定光標移動方向為向下*/
		
		LCDORDER=0X42;                               /*準備寫*/
		for(count1=0;count1<=(endvnum-strvnum);count1++)
		{LCDDATA=LCD_BUFF[count1];}    	   
		
	}
	
	/*+++++++++++++++中間列的屏幕數據改寫+++++++++++++++*/
	if((endadd.add-stradd.add)>=2 )               /*結束地址大于起始地址2個以上,說明有中間列*/ 
	{
		stradd.add=stradd.add+1;                    /*水平起始地址加1*/
		
		for(count2=( (strhnum/8)+1);count2<=((endhnum/8)-1);count2++)
		{
			/*+++++++++++++++處理中間列的屏幕數據+++++++++++++++*/ 
			for(count1=0;count1<=(endvnum-strvnum);count1++)
			{LCD_BUFF[count1]=fill;}   
			
			/*+++++++++++++++返回中間列的屏幕數據+++++++++++++++*/
			LCDORDER=0X46;                           /*設定光標地址*/
			LCDDATA=stradd.addhalf.addlo;
			LCDDATA=stradd.addhalf.addhi;            /*確定光標地址*/
			
			LCDORDER=0X4F;                           /*確定光標移動方向為向下*/
			
			LCDORDER=0X42;                           /*準備寫*/
			for(count1=0;count1<=(endvnum-strvnum);count1++)
			{
				LCDDATA=LCD_BUFF[count1];
			}
			stradd.add=stradd.add+1;                 /*水平起始地址加1*/
		}   
	}   
}  
//////////////////////////////ENDSED1330////////////// 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久亚洲毛片| 国产一区二区三区综合| 精品一区二区三区av| 不卡免费追剧大全电视剧网站| 91精品国产免费| 伊人婷婷欧美激情| www.欧美日韩国产在线| 欧美大片一区二区三区| 午夜欧美电影在线观看| 91麻豆.com| 国产精品护士白丝一区av| 国模一区二区三区白浆| 91精品婷婷国产综合久久性色| 亚洲精品国产精品乱码不99| 粉嫩高潮美女一区二区三区| 久久综合五月天婷婷伊人| 亚洲第一精品在线| 欧美自拍偷拍午夜视频| 亚洲欧洲国产日本综合| 成人激情文学综合网| 国产午夜精品久久久久久免费视| 久久福利资源站| 日韩欧美另类在线| 免费久久99精品国产| 666欧美在线视频| 天天av天天翘天天综合网色鬼国产| 91久久国产最好的精华液| 亚洲欧美激情插| 91看片淫黄大片一级在线观看| 欧美激情一区在线| 成人av小说网| 最新热久久免费视频| 91小宝寻花一区二区三区| 综合婷婷亚洲小说| 972aa.com艺术欧美| 国内精品嫩模私拍在线| 国产成人免费视| 欧美一级片在线看| 午夜欧美视频在线观看| 9191久久久久久久久久久| 国产成人午夜精品影院观看视频| 91看片淫黄大片一级在线观看| 日本va欧美va欧美va精品| 国产精品日韩成人| 日韩欧美国产精品| 欧美性xxxxxx少妇| 成人av在线资源| 久久电影网站中文字幕| 午夜亚洲福利老司机| 国产精品二三区| 精品少妇一区二区三区| 欧美日韩国产首页| 日本丰满少妇一区二区三区| 成人一区二区三区| 国产在线视视频有精品| 国产精品亚洲成人| 裸体一区二区三区| 午夜私人影院久久久久| 有坂深雪av一区二区精品| 国产精品国产三级国产三级人妇| 欧美v国产在线一区二区三区| 欧美裸体bbwbbwbbw| 日本福利一区二区| 91成人在线免费观看| 99re视频精品| jiyouzz国产精品久久| 国产精品99精品久久免费| 美腿丝袜在线亚洲一区| 亚洲成人www| 亚洲第一在线综合网站| 亚洲自拍另类综合| 一区二区视频免费在线观看| 日韩理论在线观看| 亚洲伦在线观看| 亚洲日穴在线视频| 一区二区三区中文在线观看| 亚洲欧洲中文日韩久久av乱码| 国产精品久久毛片av大全日韩| 国产午夜精品久久久久久久| 国产视频视频一区| 中文字幕的久久| 综合久久一区二区三区| 一区二区三区在线视频免费| 玉足女爽爽91| 婷婷六月综合亚洲| 精品亚洲国产成人av制服丝袜| 久久av资源网| 国产成人免费视| 99视频超级精品| 色综合一个色综合亚洲| 欧美性视频一区二区三区| 欧美美女黄视频| 精品国产网站在线观看| 国产午夜亚洲精品理论片色戒| 国产视频911| 国产精品视频九色porn| 亚洲人成小说网站色在线| 午夜久久久久久| 狠狠久久亚洲欧美| 国产69精品一区二区亚洲孕妇 | 日本丶国产丶欧美色综合| 欧美三片在线视频观看| 日韩一区二区在线看片| 国产丝袜美腿一区二区三区| 中文字幕在线不卡| 日日夜夜一区二区| 国产99久久精品| 色狠狠色狠狠综合| 717成人午夜免费福利电影| 精品国产一区二区精华| 国产精品免费人成网站| 亚洲一二三四区不卡| 国产一区二区三区四区五区入口 | 久久99久久久欧美国产| 成人永久免费视频| 欧美久久久久久蜜桃| 欧美精品一区二区三区在线| 中文字幕在线观看不卡| 日本大胆欧美人术艺术动态| 国产精品12区| 欧美丰满少妇xxxbbb| 国产欧美日韩激情| 丝袜亚洲精品中文字幕一区| 成人亚洲一区二区一| 制服丝袜亚洲色图| 国产精品久久久久永久免费观看 | 国产98色在线|日韩| 在线观看中文字幕不卡| 国产亚洲综合性久久久影院| 亚洲无线码一区二区三区| 国产宾馆实践打屁股91| 欧美久久久久久蜜桃| 亚洲日韩欧美一区二区在线| 韩国精品在线观看| 欧美欧美欧美欧美首页| 国产精品久久网站| 国产一区久久久| 88在线观看91蜜桃国自产| 亚洲免费av高清| 高清av一区二区| 精品嫩草影院久久| 污片在线观看一区二区| 91久久国产最好的精华液| 国产日韩综合av| 韩国三级在线一区| 日韩一区二区免费高清| 亚洲国产日产av| 日本伦理一区二区| 亚洲视频一二区| 国产成人精品一区二区三区网站观看| 91精品国模一区二区三区| 一区二区久久久久| a4yy欧美一区二区三区| 中文字幕免费一区| 国产91丝袜在线18| 久久久久久一二三区| 美腿丝袜在线亚洲一区| 91精品国产入口| 日韩和欧美一区二区| 欧美日韩免费一区二区三区| 亚洲欧美日韩一区二区 | 国产一区视频在线看| 日韩精品一区二区三区四区| 丝袜美腿亚洲一区二区图片| 在线视频中文字幕一区二区| 亚洲欧美激情在线| 在线亚洲一区二区| 一区二区三区四区在线播放| 91看片淫黄大片一级在线观看| 日韩一区中文字幕| 91成人免费电影| 亚洲电影在线免费观看| 777xxx欧美| 久久精品国产一区二区三| 日韩一级黄色大片| 国产一区二区中文字幕| 国产午夜亚洲精品羞羞网站| 盗摄精品av一区二区三区| 亚洲国产成人在线| 99久久精品国产导航| 亚洲美女淫视频| 欧美久久免费观看| 麻豆免费看一区二区三区| 精品国产一二三| 成人毛片在线观看| 一区二区三区精密机械公司| 欧美体内she精高潮| 乱一区二区av| 国产精品久久久久久久午夜片| 91一区二区三区在线观看| 亚洲电影中文字幕在线观看| 日韩免费电影网站| 国产精品一区二区视频| 亚洲欧美另类在线| 欧美一区二区久久久| 国产成人av电影在线| 一区二区三区四区av| 91精品国产高清一区二区三区| 国产呦萝稀缺另类资源| 亚洲美女电影在线|