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

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

?? mgls240128t.c

?? KEILC51程序實例和配套硬件目標板,很詳細,程序有注釋
?? C
?? 第 1 頁 / 共 2 頁
字號:
  uchar i;
  for(i=10;i>0;i--) {
		if((LCMCW & 0x04) == 0x04)
		break;
  }
  return i; 			/* 若返回零,說明錯誤 */
}

/***************************	* 狀態位ST3判斷函數 ************************
* 功能:數據自動寫
************************************************************************/
uchar fnST3(void) {
  uchar i;
  for(i=10;i>0;i--) {
		if((LCMCW & 0x08) == 0x08)
		break;
  }
  return i; 			/* 若返回零,說明錯誤 */
}

/***************************** 狀態位ST6判斷函數 ************************
* 功能:屏讀/屏拷貝
************************************************************************/
uchar fnST6(void) {	
  uchar i;
  for(i=10;i>0;i--) {
		if((LCMCW & 0x40) == 0x40)
		break;
  }
  return i; 			/* 若返回零,說明錯誤 */
}

/***************************** 寫雙參數命令函數 **************************/
uchar fnPR1(uchar uCmd,uchar uPar1,uchar uPar2) { 
  if(fnST01() == 0)
    return 1;
  LCMDW = uPar1;
  if(fnST01() == 0)
    return 2;
  LCMDW = uPar2;
  if(fnST01() == 0)
    return 3;
  LCMCW = uCmd;
  return 0; 			/* 返回0 成功 */
}

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

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

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

/******************************* 讀數據函數  ****************************/
uchar fnPR2(void) {	
  if(fnST01() == 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*30;i++) {
		fnST3();
		fnPR13(0x00); 				/* 寫數據 */
  }
  fnPR12(LC_AUT_OVR); 			/* 自動寫結束 */
  fnPR1(LC_ADD_POS,0x00,0x00); 	/* 重置地址指針 */
  gCurRow = 0; 					/* 置地址指針存儲變量 */
  gCurCol = 0;
}

/************************** 液晶模塊初始化函數 ***************************/
char fnLCMInit(void) {
  if(fnPR1(LC_TXT_STP,0x00,0x00) != 0) /* 文本顯示區首地址 */
		return -1;
  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(char *fmt, ...) {
  va_list arg_ptr;
  char c1,c2,cData;
  char tmpBuf[64]; 					/* LCD顯示數據緩沖區 */
  uchar i=0,j,uLen,uRow,uCol;
  uint k;
  va_start(arg_ptr, fmt);
  uLen = (uchar)vsprintf(tmpBuf, fmt, arg_ptr);
  va_end(arg_ptr);
  while(i<uLen) {
		c1 = tmpBuf[i];
		c2 = tmpBuf[i+1];
		uRow = fnGetRow();
		uCol = fnGetCol();
		if(c1 >= 0) { 					/* ASCII碼 */
			if(c1 < 0x20) {
				switch(c1) {
					case CR:
					case LF: i++;		/* 回車或換行 */
					if(uRow < 112)  
fnSetPos(uRow+16,0);
					else
				  		fnSetPos(0,0);
						continue;
					case BS: 			/* 退格 */
					if(uCol > 0)  uCol--;			
					fnSetPos(uRow,uCol);
					cData = 0x00;
					break;
					default: 			/* 其他 */
					c1 = 0x1f;
				}
			}
			for(j=0;j<16;j++) {
				fnPR12(LC_AUT_WR); 		/* 寫數據 */
				if(c1 >= 0x1f) {
					if(j < (16-ASC_CHR_HEIGHT)) fnPR13(0x00);
					else
						fnPR13(ASC_MSK[(c1-0x1f)*ASC_CHR_HEIGHT+
j-(16-ASC_CHR_HEIGHT)]);
			
				}
				else
					fnPR13(cData);
				fnPR12(LC_AUT_OVR);
				fnSetPos(uRow+j+1,uCol);
			}
			if(c1 != BS) uCol++;				/* 非退格 */
		}
		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;
}

/********************************* 主函數 ********************************/
void main(void) {				
  fnLCMInit();
  cls();
  cursor(0,0);
  dprintf("%s","This is a test:中文測試");
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美日韩综合| 综合久久一区二区三区| 久久久99精品免费观看不卡| 国产精品天天摸av网| 午夜精品一区二区三区免费视频 | 亚洲国产精品自拍| 国产一区二区在线影院| 一本大道久久a久久综合婷婷| 在线不卡一区二区| √…a在线天堂一区| 狠狠色丁香久久婷婷综合丁香| 欧美亚洲一区二区在线| 国产精品久久久久精k8| 另类小说视频一区二区| 欧美久久婷婷综合色| 亚洲欧美日韩一区二区三区在线观看 | 99re6这里只有精品视频在线观看| 91麻豆精品91久久久久同性| 中文字幕亚洲区| 韩国女主播成人在线观看| 在线不卡a资源高清| 一区二区三区中文免费| 成人av综合在线| 亚洲国产精品黑人久久久| 另类小说图片综合网| 欧美一级免费大片| 亚洲va在线va天堂| 色悠悠久久综合| 日本一区二区三区四区在线视频| 久久精品国产久精国产| 日韩视频永久免费| 男男gaygay亚洲| 日韩视频免费观看高清在线视频| 亚洲二区视频在线| 欧美日韩一区在线| 亚洲成a人片在线观看中文| 欧美亚洲国产一区在线观看网站 | 91欧美激情一区二区三区成人| 亚洲国产精品精华液ab| 91亚洲资源网| 一区二区三区欧美激情| 欧美三级在线视频| 偷窥国产亚洲免费视频| 3d成人h动漫网站入口| 日韩精品福利网| 日韩精品一区二区三区在线| 极品少妇一区二区| 日本一区二区在线不卡| 成人av在线影院| 国产亚洲精品aa| jiyouzz国产精品久久| 亚洲美女淫视频| 精品视频全国免费看| 日韩精品91亚洲二区在线观看| 日韩欧美三级在线| 国产91精品在线观看| 亚洲视频一区二区免费在线观看| 色老汉一区二区三区| 一区二区三区.www| 欧美男生操女生| 狠狠色丁香婷婷综合久久片| 欧美国产精品v| 欧美日韩一区不卡| 国产一区二区三区免费在线观看| 国产嫩草影院久久久久| 欧美伊人久久大香线蕉综合69 | 欧美成人女星排名| 成人小视频在线| 亚洲一区二区三区自拍| 精品福利二区三区| 91欧美一区二区| 国产在线播放一区三区四| 最新中文字幕一区二区三区| 欧美一区午夜精品| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 一区二区三区成人在线视频| 欧美一区永久视频免费观看| 成人免费视频免费观看| 亚洲图片欧美一区| 精品国产凹凸成av人网站| 色呦呦一区二区三区| 国产精品一区二区久久精品爱涩 | 午夜精品成人在线视频| 中文字幕免费不卡在线| 日韩一区二区在线观看视频播放| a级精品国产片在线观看| 美日韩一区二区三区| 一区二区三区日本| 国产精品美女久久久久高潮| 日韩欧美三级在线| 欧美视频第二页| 国产69精品久久久久777| 美腿丝袜亚洲一区| 午夜久久久久久久久久一区二区| 欧美极品aⅴ影院| 欧美成人a∨高清免费观看| 欧美日韩一区二区在线观看| 国产精品一区2区| 亚洲国产乱码最新视频 | 欧美日韩国产高清一区二区| 精品一区二区三区蜜桃| 国产欧美精品区一区二区三区| 在线精品观看国产| 国产剧情一区二区| 天天av天天翘天天综合网| 亚洲男同性恋视频| 久久综合网色—综合色88| eeuss国产一区二区三区| 久久99精品国产.久久久久| 一区二区三区中文字幕精品精品| 久久亚洲二区三区| 日韩欧美卡一卡二| 欧美日精品一区视频| 不卡免费追剧大全电视剧网站| 麻豆视频一区二区| 亚洲韩国精品一区| 日韩美一区二区三区| 日韩欧美精品三级| 91精品免费观看| 欧美日韩三级一区二区| 色拍拍在线精品视频8848| 成人午夜视频在线| 亚洲高清视频的网址| 亚洲国产一区视频| 一区二区免费视频| 亚洲精品视频观看| 国产精品无码永久免费888| 国产欧美日韩精品一区| 久久精品亚洲国产奇米99| 欧美成人a∨高清免费观看| 欧美日韩成人综合在线一区二区 | 国产精品免费丝袜| 国产欧美日韩视频一区二区| 国产亚洲精品中文字幕| 国产日韩欧美激情| 国产欧美精品日韩区二区麻豆天美| 91精品国产高清一区二区三区| 日韩免费电影网站| 久久综合久久综合亚洲| 久久夜色精品国产噜噜av| 久久久亚洲国产美女国产盗摄| 精品久久久久久综合日本欧美| 精品福利一区二区三区免费视频| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 美女尤物国产一区| 国产一区二区三区av电影| 国内外精品视频| 韩国视频一区二区| 亚洲欧美综合色| 亚洲乱码国产乱码精品精98午夜| 亚洲品质自拍视频| 亚洲成人午夜影院| 奇米色一区二区| 国产黄人亚洲片| 91在线观看免费视频| 精品视频免费看| 欧美tickling网站挠脚心| 欧美激情一区二区三区蜜桃视频 | 成人午夜在线视频| 色嗨嗨av一区二区三区| 91精品婷婷国产综合久久竹菊| 精品粉嫩超白一线天av| 最新日韩在线视频| 五月天激情综合| 国产精品资源在线看| 一本大道av伊人久久综合| 欧美一区二区三区婷婷月色| 亚洲日穴在线视频| 日本中文字幕不卡| 成人午夜精品在线| 欧美日韩卡一卡二| 久久这里只有精品首页| 亚洲欧美日韩中文字幕一区二区三区| 午夜国产不卡在线观看视频| 国产高清在线观看免费不卡| 91福利视频久久久久| 2021国产精品久久精品| 日本欧美在线观看| 99久久99久久精品免费看蜜桃| 99精品欧美一区二区三区综合在线| 91在线观看成人| 久久蜜桃香蕉精品一区二区三区| 一区二区三区四区在线播放| 国产综合色在线| 欧美日韩中文字幕精品| 一区二区三区四区视频精品免费 | 2欧美一区二区三区在线观看视频| 亚洲欧美aⅴ...| 国产精品77777竹菊影视小说| 精品视频在线免费| 国产人妖乱国产精品人妖| 美女一区二区三区| 在线观看区一区二| 国产精品午夜免费| 国产中文字幕精品| 懂色av中文字幕一区二区三区 | 亚洲欧洲性图库| 免费欧美高清视频| 欧美一区二区不卡视频| 亚洲综合色成人|