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

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

?? 8.3-2.c

?? 單片機應用開發實例 源代碼 文件列表 5.3-1.c 5.3-2.c
?? C
?? 第 1 頁 / 共 2 頁
字號:
	if(fnSTA01() == 0)
		return 1;
	LCMDW = uPar1;
	if(fnSTA01() == 0)
		return 2;
	LCMDW = uPar2;
	if(fnSTA01() == 0)
		return 3;
	LCMCW = uCmd;
	return 0;					             // 返回0成功
}

/********************************************************/
//寫單參數的指令					
/********************************************************/
uchar fnPR11(uchar uCmd,uchar uPar1)
{
	if(fnSTA01() == 0)
		return 1;
	LCMDW = uPar1;
	if(fnSTA01() == 0)
		return 2;
	LCMCW = uCmd;
	return 0;					           // 返回0成功
}

/********************************************************/
//寫無參數的指令					
/********************************************************/
uchar fnPR12(uchar uCmd)
{
	if(fnSTA01() == 0)
		return 1;
	LCMCW = uCmd;
	return 0;					          // 返回0成功
}

/********************************************************/
//寫數據						
/********************************************************/
uchar fnPR13(uchar uData)
{
	if(fnSTA3() == 0)
		return 1;
	LCMDW = uData;
	return 0;					         //返回0成功
}

/********************************************************/
//讀數據						
/********************************************************/
uchar fnPR2(void)
{
	if(fnSTA01() == 0)return 1;			 //獲取狀態,如果狀態錯
	return LCMDW;					 //返回數據
}

/********************************************************/
//設置當前地址						
/********************************************************/
void fnSetPos(uchar urow, uchar ucol)
{
	uint  iPos;

	iPos = urow * 30 + ucol;
	fnPR1(LC_ADD_POS,iPos & 0xFF,iPos / 256);
	gCurRow = urow;
	gCurCol = ucol;
}

/********************************************************/
//設置當前顯示行、列					
/********************************************************/
void cursor(uchar uRow, uchar uCol)
{
	fnSetPos(uRow * 16, uCol);
}

/********************************************************/
//清屏							
/********************************************************/
void cls(void)
{
	uint  i;

	fnPR1(LC_ADD_POS,0x00,0x00);	//置地址指針為從零開始
	fnPR12(LC_AUT_WR);		        //自動寫
	for(i=0;i<240*128/8;i++)	        //清一屏
		{
		fnSTA3();
		fnPR13(0x0);		             //寫數據,實際使用時請將0x55改成0x0
		}
	fnPR12(LC_AUT_OVR);		     //自動寫結束
	fnPR1(LC_ADD_POS,0x00,0x00);	 // 重置地址指針
	gCurRow = 0;			             // 置地址指針存儲變量
	gCurCol = 0;
}

/********************************************************/
//LCM 初始化						
/********************************************************/
char fnLCMInit(void)
{
	if(fnPR1(LC_TXT_STP,0x00,0x00) != 0)	// 文本顯示區首地址
		return (0xff);
	fnPR1(LC_TXT_WID,0x1E,0x00);		// 文本顯示區寬度
	fnPR1(LC_GRH_STP,0x00,0x00);		// 圖形顯示區首地址
	fnPR1(LC_GRH_WID,0x1E,0x00);		// 圖形顯示區寬度
	fnPR12(LC_CUR_SHP | 0x01);		    // 光標形狀
	fnPR12(LC_MOD_OR);			    // 顯示方式設置
	fnPR12(LC_DIS_SW | 0x08);		    // 顯示開關設置
	
	return 0;
}

/********************************************************/
// ASCII(8*16) 及 漢字(16*16) 顯示函數			
/********************************************************/
uchar dprintf(uchar x,uchar y, char *ptr)
{

	char  c1,c2,cData;
	uchar i,j,uLen,uRow,uCol;
	uint  k;
    uLen=0;
    i=0;
	uRow = y;
	uCol = x;
	fnSetPos(uRow*16,uCol);			          //起點定位
	while (ptr[uLen]!=0){uLen++;};		          //探測字串長度

	while(i<uLen)
	{
		c1 = ptr[i];
		c2 = ptr[i+1];
//ascii字符與漢字內碼的區別在于
//128做分界,大于界線的為漢字碼

		uRow = fnGetRow();		
		uCol = fnGetCol();
		if(c1 <=128)					             // ASCII
			{
			for(j=0;j<16;j++)			             //寫16行
				{
			fnPR12(LC_AUT_WR);		             //寫數據(命令)
				if (c1 >= 0x20)
					{
				if( j < (16-ASC_CHR_HEIGHT) )
					fnPR13(0x00);	             //寫數據0輸出空
					else
						fnPR13( ASC_MSK[(c1-0x20)*ASC_CHR_HEIGHT+j-(16-ASC_CHR_HEIGHT)] );
					}
				else
				fnPR13(cData);
				fnPR12(LC_AUT_OVR);	         //寫數據結束
                fnSetPos(uRow+j+1,uCol);
				}
				if(c1 != BS)			             //非退格
					uCol++;			             //列數加1
			}
		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])
					break;
				}
			for(k=0;k<sizeof(GB_16[0].Msk)/2;k++)
				{
				fnSetPos(uRow+k,uCol);
				fnPR12(LC_AUT_WR);			      //寫數據
				if(j < sizeof(GB_16)/sizeof(GB_16[0]))
					{
					fnPR13(GB_16[j].Msk[k*2]);
					fnPR13(GB_16[j].Msk[k*2+1]);
					}
				else			                       //未找到該字
					{
					if(k < sizeof(GB_16[0].Msk)/4)
						{
						fnPR13(0x00);
						fnPR13(0x00);
						}
					else
						{
						fnPR13(0xff);
						fnPR13(0xff);
						}
					}
				fnPR12(LC_AUT_OVR);
				}
			uCol += 2;
			i++;
			};
		if(uCol >= 30)			                     //光標后移
			{
			uRow += 16;
			if(uRow < 0x80)
				uCol -= 30;
			else
				{
				uRow = 0;
				uCol = 0;
				}
			}
		fnSetPos(uRow,uCol);
		i++;
	}
	return uLen;				                   //返回字串長度,漢字按2字節計算
}	

/*==============================*/
//延時				
/*==============================*/
void shortdelay(uint tt)
	{
        uchar i;
        while (tt)
        	{
                i=100;
                while (i)i--;
                tt--;
                };
        }        
/****************************************/
//畫點				
/****************************************/

void point(uchar x,uchar y,uchar s)
	{
	uchar	x1;
	x1=x>>3;			                         //取Y方向分頁地址
	fnSetPos(y,x1);			                 //起點定位
        x1 = turnf[ x & 0x07 ];
	x1=0xF0|x1|s;			                     //字節內位置計算
	fnPR12(x1);			                     //畫上屏幕,S顯示屬性8畫點0擦除點
	}

/************************************************/
//畫線。任意方向的斜線,直線數學方程 
//aX+bY=1	
/************************************************/
void Linexy(uchar x0,uchar y0,uchar xt,uchar yt,uchar s)
{
	register uchar t;
	int xerr=0,yerr=0,delta_x,delta_y,distance;
	int incx,incy,uRow,uCol;

	delta_x = xt-x0;				            //計算坐標增量
	delta_y = yt-y0;
	uRow = x0;
	uCol = y0;
	if(delta_x>0) incx=1;				        //設置單步方向
	else if( delta_x==0 ) incx=0;			        //垂直線
		else {incx=-1;delta_x=-delta_x;}

	if(delta_y>0) incy=1;
	else if( delta_y==0 ) incy=0;			         //水平線
		else {incy=-1;delta_y=-delta_y;}

	if( delta_x > delta_y )	distance=delta_x;	    //選取基本增量坐標軸
	else distance=delta_y;

	for( t=0;t <= distance+1; t++ )
        	{					            //畫線輸出
		point(uRow,uCol,s);			        //畫點
		xerr +=	delta_x	;
		yerr +=	delta_y	;
		
		if( xerr > distance )
                	{
			xerr-=distance;
			uRow+=incx;
			}
		if( yerr > distance )
                	{
			yerr-=distance;
			uCol+=incy;
			}
		}
}

/************************************************/
//畫圓。數學方程(X-Ox)^2+(Y-Oy)^2=Rx^2
/************************************************/

void circle(uchar Ox,uchar Oy,uchar Rx,uchar s)
{
	unsigned int xx,rr,xt,yt,rs,row,col;
	yt=Rx;
	rr=Rx*Rx+1;			              //補償 1 修正方形
	rs=(yt+(yt>>1))>>1;		          //(*0.75)分開1/8圓弧來畫
	for (xt=0;xt<=rs;xt++)
	{
		xx=xt*xt;
		while ((yt*yt)>(rr-xx))yt--;
		row=Ox+xt;		             //第一象限
		col=Oy-yt;
		point(row,col,s);
		row=Ox-xt;		             //第二象限
		point(row,col,s);
		col=Oy+yt;		             //第三象限
		point(row,col,s);
		row=Ox+xt;		             //第四象限
		point(row,col,s);

//45度鏡象畫另一半

		row=Ox+yt;		             //第一象限
		col=Oy-xt;
		point(row,col,s);
		row=Ox-yt;		             //第二象限
		point(row,col,s);
		col=Oy+xt;		             //第三象限
		point(row,col,s);
		row=Ox+yt;		             //第四象限
		point(row,col,s);
	}
}
        
void main(void)	                     //測試用
{
	uchar i;
	shortdelay(1200);
	MCUCR |=BIT(SRE)|BIT(SRW);
	fnLCMInit();
	cls();
	cursor(0,0);
	dprintf(3,3,"This is a test: 中文測試");

	dprintf(0,6,"LCM Exsample use 90S8515&6963");
	dprintf(15,7,"~Xiaoqi~");
	Linexy(10,20,239,110,8);			// 畫斜線1
	Linexy(10,20,217,1,8);				// 斜線2
	Linexy(239,110,217,1,8);			// 斜線3
	circle(185,45,40,8);				    // 畫圓
	circle(185,45,41,8);				    // 畫同心圓加粗
	shortdelay(24000);

	while(1)
        {
//變化圓演示,直徑不斷的變化,由大到小再由小到
//大來回縮放
		for (i=40;i>5;i--)
        	{
            circle(185,45,i+1,0);	  //擦除外圓
	    	circle(185,45,i,8);
    		circle(185,45,i-1,8);
		shortdelay(3600);
            	};

		shortdelay(8000);

		for (i=5;i<40;i++)
        	{
            	circle(185,45,i-1,0);	//擦除內圓
	    	circle(185,45,i,8);					
    		circle(185,45,i+1,8);
		shortdelay(1800);
            	};

		shortdelay(4000);

        };
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲电影欧美电影有声小说| 国产精品久久久久久久午夜片| 不卡电影一区二区三区| 成人爱爱电影网址| 成人伦理片在线| 成人免费福利片| 成人av在线资源| 色哟哟日韩精品| 欧美日韩国产另类不卡| 欧美放荡的少妇| 日韩午夜精品电影| www国产成人| 国产精品白丝在线| 一区二区三区精品在线| 日本美女一区二区三区| 精品一区二区三区免费| 成人一道本在线| 在线影视一区二区三区| 欧美久久久久免费| 精品播放一区二区| 1区2区3区欧美| 亚洲一区二区综合| 麻豆国产91在线播放| 国产精品系列在线播放| 色综合网色综合| 91麻豆精品国产91久久久久| 欧美精品一区二区三区蜜臀| 自拍视频在线观看一区二区| 丝袜美腿亚洲一区| 国产99久久精品| 欧美体内she精高潮| 精品国精品自拍自在线| 中文字幕在线一区二区三区| 三级成人在线视频| 国产mv日韩mv欧美| 欧美日韩成人激情| 国产拍欧美日韩视频二区| 亚洲午夜在线电影| 高清在线不卡av| 欧美猛男男办公室激情| 久久久久久久久99精品| 亚洲观看高清完整版在线观看| 国产自产v一区二区三区c| 日韩欧美国产三级| 亚洲欧洲性图库| 久久超碰97中文字幕| 91福利国产成人精品照片| 久久久午夜电影| 日韩二区在线观看| 91蝌蚪porny成人天涯| 久久久久久久久久久黄色| 五月天亚洲婷婷| 一本色道久久综合精品竹菊| 久久一留热品黄| 男男成人高潮片免费网站| 欧美中文字幕一二三区视频| 欧美激情一区三区| 国产一区二区三区不卡在线观看| 欧美日韩国产首页| 亚洲老妇xxxxxx| 成人黄色a**站在线观看| 欧美精品一区二区久久久| 日韩av电影免费观看高清完整版 | 色婷婷av一区二区三区软件| 久久嫩草精品久久久久| 蜜桃视频在线观看一区二区| 欧美日韩黄色影视| 亚洲成人午夜电影| 欧美日韩综合在线| 亚洲国产综合91精品麻豆| 色综合久久99| 一区二区三区精密机械公司| 91蝌蚪porny| 一区二区三区四区不卡在线| 色偷偷88欧美精品久久久| 中文字幕在线不卡| 92国产精品观看| 亚洲区小说区图片区qvod| 99久久久国产精品免费蜜臀| 国产精品久久久久久户外露出| 国产精品自在在线| 欧美国产欧美综合| 不卡一卡二卡三乱码免费网站| 国产精品麻豆视频| 91影院在线免费观看| 亚洲免费av观看| 欧美系列亚洲系列| 日韩电影在线免费| 日韩欧美国产一区二区在线播放| 麻豆国产精品777777在线| 精品电影一区二区| www.久久精品| 亚洲一区中文日韩| 精品欧美久久久| 岛国精品一区二区| 夜夜嗨av一区二区三区四季av| 欧美色欧美亚洲另类二区| 免费观看日韩av| 国产色91在线| 欧美在线观看禁18| 美女视频网站黄色亚洲| 亚洲国产成人午夜在线一区| 99久久精品国产导航| 亚洲成av人片一区二区三区| 日韩欧美国产成人一区二区| 懂色av噜噜一区二区三区av| 亚洲日本一区二区| 欧美一级理论片| 成人av电影免费观看| 午夜精品福利一区二区三区av| 欧美成人三级在线| 色天天综合色天天久久| 麻豆精品视频在线观看免费| 中文字幕一区二区三区乱码在线| 欧美高清视频一二三区| 东方欧美亚洲色图在线| 亚洲va韩国va欧美va| 中文字幕第一区综合| 欧美精品aⅴ在线视频| 成人黄色国产精品网站大全在线免费观看 | 男女激情视频一区| 亚洲人成影院在线观看| 精品剧情在线观看| 精品婷婷伊人一区三区三| 国产高清不卡二三区| 视频一区二区欧美| 亚洲美女免费在线| 国产欧美精品国产国产专区| 欧美一级在线观看| 欧美主播一区二区三区| va亚洲va日韩不卡在线观看| 久久超碰97中文字幕| 天堂av在线一区| 亚洲美女淫视频| 国产精品九色蝌蚪自拍| 精品国产91九色蝌蚪| 日韩一区二区在线观看| 精品视频在线看| 色婷婷综合久久久中文一区二区| 国产精品一区二区视频| 美女一区二区视频| 男男成人高潮片免费网站| 午夜在线成人av| 亚洲电影在线播放| 一二三四社区欧美黄| 亚洲精品国产无天堂网2021| 中文字幕亚洲在| **性色生活片久久毛片| 中文字幕在线不卡视频| 国产精品美女久久久久aⅴ国产馆| 久久综合色鬼综合色| 精品国产一区二区在线观看| 欧美大度的电影原声| 欧美一区二区三区在线| 91精品国产高清一区二区三区蜜臀| 在线观看精品一区| 欧美亚洲动漫精品| 欧美午夜片在线看| 欧美精品一二三| 91精品国产乱| 久久久久久综合| 国产日韩视频一区二区三区| 国产欧美日韩综合精品一区二区| 久久影院午夜片一区| 国产日韩精品一区二区浪潮av | 欧美日韩精品福利| 欧美色视频一区| 日韩欧美一级二级三级久久久| 精品99一区二区三区| 国产精品网站一区| 亚洲精品日日夜夜| 爽好多水快深点欧美视频| 日韩一区欧美二区| 国产乱人伦精品一区二区在线观看 | a亚洲天堂av| 欧美日韩午夜在线| 久久嫩草精品久久久久| 国产精品久久久久久户外露出| 亚洲一区二区三区在线播放| 蜜桃av噜噜一区| youjizz久久| 日韩一区二区三区在线视频| 久久久久国产精品麻豆| 亚洲免费观看视频| 美女网站在线免费欧美精品| 成人午夜又粗又硬又大| 欧美乱妇一区二区三区不卡视频| 精品久久五月天| 一区二区久久久| 国产在线日韩欧美| 欧美体内she精视频| 国产精品理论片| 水蜜桃久久夜色精品一区的特点 | 色久优优欧美色久优优| 日韩精品一区二区三区在线播放| 亚洲欧美综合另类在线卡通| 青青草伊人久久| 色综合视频一区二区三区高清| 欧美成人三级电影在线| 亚洲国产欧美另类丝袜|