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

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

?? pg160128a.c

?? 本程序是基于T6963C的程序 好用 歡迎下載
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include <absacc.h>
#include <reg51.h>
//#include <rtx51tny.h>
#include <stdarg.h>
#include <stdio.h>
#include"picture.h"

#define ulong unsigned long
#define uint unsigned int
#define uchar unsigned char
#define STX 0x02
#define ETX 0x03
#define EOT 0x04
#define ENQ 0x05
#define BS 0x08
#define CR 0x0D
#define LF 0x0A
#define DLE 0x10
#define ETB 0x17
#define SPACE 0x20
#define COMMA 0x2C
#define TRUE 1
#define FALSE 0
#define HIGH 1
#define LOW 0

extern uchar scankeypad ();


/* T6963C 端口定義 */
#define LCMDW XBYTE[0x08000] 			/* 數(shù)據(jù)口 */
#define LCMCW XBYTE[0x08100] 			/* 命令口 */


/* T6963C 命令定義 */
#define LC_CUR_POS 0x21 		/* 光標位置設置 */
#define LC_CGR_POS 0x22 		/* CGRAM偏置地址設置 */
#define LC_ADD_POS 0x24 		/*  地址指針位置 */
#define LC_TXT_STP 0x40 		/* 文本區(qū)首址 */
#define LC_TXT_WID 0x41 		/* 文本區(qū)寬度 */
#define LC_GRH_STP 0x42 		/* 圖形區(qū)首址 */
#define LC_GRH_WID 0x43 		/* 圖形區(qū)寬度 */
#define LC_MOD_OR  0x80 		/* 顯示方式:邏輯"或" */
#define LC_MOD_XOR 0x81 		/* 顯示方式:邏輯"異或" */
#define LC_MOD_AND 0x82  	/* 顯示方式:邏輯"與" */
#define LC_MOD_TCH 0x83 		/* 顯示方式:文本特征 */
#define LC_DIS_SW  0x90 		/* 顯示開關: */
                        		/* D0=1/0:光標閃爍啟用/禁用; */
                        		/* D1=1/0:光標顯示啟用/禁用; */
                        		/* D2=1/0:文本顯示啟用/禁用; */
                        		/* D3=1/0:圖形顯示啟用/禁用; */
#define LC_CUR_SHP 0xA0 		/* 光標形狀選擇:0xA0-0xA7 表示光標占的行數(shù) */
#define LC_AUT_WR  0xB0 		/* 自動寫設置 */
#define LC_AUT_RD  0xB1 		/* 自動讀設置 */
#define LC_AUT_OVR 0xB2 		/* 自動讀/寫結束 */
#define LC_INC_WR  0xC0 		/* 數(shù)據(jù)一次寫,地址加1 */
#define LC_INC_RD  0xC1 		/* 數(shù)據(jù)一次讀,地址加1 */
#define LC_DEC_WR  0xC2 		/* 數(shù)據(jù)一次寫,地址減1 */
#define LC_DEC_RD  0xC3 		/* 數(shù)據(jù)一次讀,地址減1 */
#define LC_NOC_WR  0xC4 		/* 數(shù)據(jù)一次寫,地址不變 */
#define LC_NOC_RD  0xC5 		/* 數(shù)據(jù)一次讀,地址不變 */
#define LC_SCN_RD  0xE0 		/* 屏讀 */
#define LC_SCN_CP  0xE8 		/* 屏拷貝 */
#define LC_BIT_OP  0xF0 		/* 位操作 */


/* ASCII 字模寬度及高度定義 */
#define ASC_CHR_WIDTH 8
#define ASC_CHR_HEIGHT 16



uchar gCurRow,gCurCol; 		/* 當前行、列存儲,行高16點,列寬8點 */

/**************************** 獲取當前行函數(shù) *****************************
* 功能:將當前行數(shù)據(jù)返回給主調函數(shù)。
**************************************************************************/
uchar fnGetRow(void) {
  return gCurRow;
}

/**************************** 獲取當前列函數(shù) *****************************
* 功能:將當前列數(shù)據(jù)返回給主調函數(shù)。
**************************************************************************/
uchar fnGetCol(void) {
  return gCurCol;
}

/********************** 狀態(tài)位ST1,ST0 判斷函數(shù) *************************
* 功能:讀寫指令和讀寫數(shù)據(jù)。
************************************************************************/
uchar fnST01(void) {			
  uchar i;
  for(i=10;i>0;i--) {
    if((LCMCW & 0x03) == 0x03)
    break;
  }
  return i; 			/* 若返回零,說明錯誤 */
}

/************************** 狀態(tài)位ST2判斷函數(shù) ***************************
* 功能:數(shù)據(jù)自動讀取。
************************************************************************/
uchar fnST2(void) {	
  uchar i;
  for(i=10;i>0;i--) {
		if((LCMCW & 0x04) == 0x04)
		break;
  }
  return i; 			/* 若返回零,說明錯誤 */
}

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

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

/***************************** 寫雙參數(shù)命令函數(shù) **************************/
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 成功 */
}

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

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

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

/******************************* 讀數(shù)據(jù)函數(shù)  ****************************/
uchar fnPR2(void) {	
  if(fnST01() == 0)
		return 1;
  return LCMDW;
}

/************************** 設置當前地址函數(shù)  ***************************/
void fnSetPos(uchar urow, uchar ucol) {
  uint iPos;
  iPos = urow * 20 + ucol;
  fnPR1(LC_ADD_POS,(uchar)(iPos),(uchar)(iPos>>8));
  gCurRow = urow;
  gCurCol = ucol;
}

/************************** 設置當前地址函數(shù)  ***************************/
void fnSetPos1(uchar urow, uchar ucol) {
  uint iPos;
  iPos = urow * 20 + ucol+0x0a00;
  fnPR1(LC_ADD_POS,(uchar)(iPos),(uchar)(iPos>>8));
  gCurRow = urow;
  gCurCol = ucol;
}

/************************** 設置文本當前地址函數(shù) 第二頁 ***************************/
void fnSetPostxt(uchar urow, uchar ucol) {
  uint iPos;
  iPos = urow * 20 + ucol+0x1d7f;
  fnPR1(LC_ADD_POS,(uchar)(iPos),(uchar)(iPos>>8));
  //gCurRow = urow;
  //gCurCol = ucol;
}

/************************ 設置當前顯示行、列函數(shù) ************************/
void cursor(uchar uRow, uchar uCol) {
  fnSetPos(uRow * 16, uCol);
}
/************************ 設置當前顯示行、列函數(shù)第二頁 ************************/
void cursor1(uchar uRow, uchar uCol) {
  fnSetPos1(uRow * 16, uCol);
}

/******************************* 清屏函數(shù) ********************************/
void cls(void) {
  uint i;
  fnPR1(LC_ADD_POS,0x00,0x00); 	/* 置地址指針 */
  fnPR12(LC_AUT_WR);				/* 自動寫 */
  for(i=0;i<320*30;i++) {
		fnST3();
		fnPR13(0x00); 				/* 寫數(shù)據(jù) */
  }
  fnPR12(LC_AUT_OVR); 			/* 自動寫結束 */
  fnPR1(LC_ADD_POS,0x00,0x00); 	/* 重置地址指針 */
  gCurRow = 0; 					/* 置地址指針存儲變量 */
  gCurCol = 0;
}

/************************** 液晶模塊初始化函數(shù) ***************************/
char fnLCMInit(void) {
  if(fnPR1(LC_TXT_STP,0x7f,0x1d) != 0) /* 文本顯示區(qū)首地址 */
		return -1;
  fnPR1(LC_TXT_WID,20,0x00); 		/* 文本顯示區(qū)寬度 */
  fnPR1(LC_GRH_STP,0x00,0x00); 		/* 圖形顯示區(qū)首地址 */
  fnPR1(LC_GRH_WID,20,0x00); 		/* 圖形顯示區(qū)寬度 */
  fnPR1(LC_CGR_POS,3,0x00);         //設置偏置地址0x1c00為字符0x80的地址
  fnPR12(LC_CUR_SHP | 0x01); 		/* 光標形狀 */
  fnPR12(LC_MOD_XOR); 				/* 顯示方式設置 */
  fnPR12(LC_DIS_SW | 0x0c); 			/* 顯示開關設置 */
  return 0;
}

/**************** ASCII碼(8×16)及漢字(16×16)顯示函數(shù)   第一頁 ******************/
uchar dprintf(char *fmt, ...) {
  va_list arg_ptr;
  char c1,c2,cData;
  char tmpBuf[64]; 					/* LCD顯示數(shù)據(jù)緩沖區(qū) */
  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); 		// 寫數(shù)據(jù) 
				if(c1 >= 0x1f) {		 
                                           
						fnPR13(ASC_MSK[(c1-0x1f-1)*ASC_CHR_HEIGHT+j]);                       
			
				}
				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); 			/* 寫數(shù)據(jù) */
				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 {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人黄色大片在线观看| 欧美日韩黄视频| 欧美性猛交xxxx乱大交退制版 | 日韩精品一区二区在线观看| 国产精品美女久久福利网站| 日本色综合中文字幕| 色婷婷狠狠综合| 国产色爱av资源综合区| 首页欧美精品中文字幕| 日本韩国一区二区三区| 国产人成一区二区三区影院| 美女一区二区视频| 欧美日韩1区2区| 亚洲欧美乱综合| 国产精品99久久久久久有的能看| 欧美精品第一页| 亚洲第一二三四区| 91福利精品视频| 亚洲欧美经典视频| 91视频com| 日韩美女啊v在线免费观看| 国产在线不卡视频| 欧美一级片免费看| 日本视频一区二区| 日韩欧美在线影院| 麻豆视频一区二区| 精品免费日韩av| 精品一区二区三区视频在线观看| 91精品国产综合久久精品麻豆| 夜色激情一区二区| 欧美亚洲综合网| 亚洲欧美色图小说| 日本韩国一区二区三区| 亚洲一区免费观看| 91福利精品视频| 亚洲一二三四久久| 51午夜精品国产| 久久疯狂做爰流白浆xx| wwwwxxxxx欧美| 国产成人在线色| 亚洲欧洲www| 99免费精品视频| 一区二区三区电影在线播| 日本久久电影网| 丝袜亚洲另类丝袜在线| 日韩视频免费观看高清完整版 | 337p亚洲精品色噜噜| 日日夜夜精品视频天天综合网| 在线播放中文字幕一区| 久久国产欧美日韩精品| 亚洲一区免费视频| 欧美三级三级三级爽爽爽| 天堂成人国产精品一区| 日韩欧美你懂的| 国产成人av资源| 亚洲另类中文字| 欧美精品色综合| 精品一区二区三区视频| 日韩一区中文字幕| 制服丝袜在线91| 国产精品一区二区不卡| 一区二区三区蜜桃网| 欧美精品欧美精品系列| 国产在线麻豆精品观看| 中文字幕一区二区三区在线播放| 欧美日韩一级片网站| 国精产品一区一区三区mba桃花 | 成人avav影音| 婷婷综合五月天| 国产欧美日韩三级| 欧美日韩高清一区二区不卡| 国产精品影视在线| 亚洲一区二区三区中文字幕| 久久影院视频免费| 欧美婷婷六月丁香综合色| 国产精品一卡二卡在线观看| 一区二区三区毛片| 26uuu亚洲综合色欧美| 色先锋aa成人| 国产资源精品在线观看| 一区二区三区日韩欧美| 国产欧美日韩三区| 91精品国产91久久久久久最新毛片| 丁香婷婷综合网| 裸体健美xxxx欧美裸体表演| 亚洲精品国产精华液| 欧美激情在线免费观看| 日韩欧美视频一区| 欧美色综合影院| av不卡在线播放| 国产精品一区二区在线观看不卡 | 国产精品久久久久久一区二区三区| 欧美色图12p| 99亚偷拍自图区亚洲| 精品在线免费视频| 丝袜亚洲精品中文字幕一区| 一区二区三区欧美日韩| 中文字幕第一区综合| 欧美精品一区二区三区很污很色的| 欧美亚洲一区三区| 91蜜桃婷婷狠狠久久综合9色| 久久99在线观看| 日本va欧美va精品| 日韩av一级电影| 亚洲大尺度视频在线观看| 亚洲精品成人少妇| 亚洲男同性恋视频| 亚洲婷婷综合久久一本伊一区| 国产日韩综合av| 久久精品综合网| 久久精品视频免费观看| 2020国产精品自拍| 久久综合久久99| 精品少妇一区二区| 欧美不卡一二三| 欧美精品一区男女天堂| 日韩欧美一级精品久久| 亚洲欧美视频在线观看| 亚洲精品久久嫩草网站秘色| 18成人在线视频| 最新国产の精品合集bt伙计| 中文字幕在线观看一区二区| 中文字幕日韩一区二区| 亚洲视频一二三区| 一区二区三区欧美日韩| 视频一区在线播放| 久久国产乱子精品免费女| 经典一区二区三区| 国产.欧美.日韩| 在线观看日韩一区| 欧美日韩一区小说| 日韩一区二区三区视频在线 | 国产精品久99| 一区二区成人在线观看| 亚洲国产欧美在线人成| 日本欧美大码aⅴ在线播放| 美女视频黄久久| 成人福利视频网站| 一本色道久久综合亚洲91| 欧美日韩国产三级| 久久一日本道色综合| 日韩理论电影院| 日本不卡视频在线观看| 国产不卡在线一区| 91成人在线观看喷潮| 日韩一区和二区| 中文字幕在线不卡| 婷婷中文字幕综合| 国产高清在线观看免费不卡| 91麻豆精品一区二区三区| 欧美久久免费观看| 国产色产综合产在线视频| 一区二区三区 在线观看视频 | 日韩一区二区电影在线| 欧美韩国一区二区| 婷婷丁香激情综合| 国产精品一区二区果冻传媒| 欧美日精品一区视频| 国产欧美一区二区精品性色| 亚洲香肠在线观看| 成人动漫精品一区二区| 欧美精品三级在线观看| 国产精品久久久久久久久快鸭| 男男成人高潮片免费网站| av在线一区二区| 精品国产污污免费网站入口 | 国产精品久久久久一区二区三区| 婷婷一区二区三区| 97精品国产露脸对白| 久久午夜老司机| 丝袜美腿高跟呻吟高潮一区| 99久久免费国产| 国产亚洲欧美激情| 麻豆一区二区三| 欧美日韩精品欧美日韩精品一| 中文字幕第一区二区| 九九国产精品视频| 777午夜精品视频在线播放| 亚洲精品大片www| 成人午夜伦理影院| 精品播放一区二区| 男人的j进女人的j一区| 欧美在线一区二区三区| 国产精品高潮呻吟久久| 国产综合色在线| 日韩一级在线观看| 丝袜亚洲精品中文字幕一区| 色激情天天射综合网| 自拍偷拍欧美精品| 99久久夜色精品国产网站| 国产日韩精品一区二区浪潮av| 精品一区免费av| 中文字幕视频一区二区三区久| 国产99久久久国产精品潘金网站| 日韩免费高清视频| 久久99国产精品尤物| 日韩女优av电影| 麻豆91在线播放| 日韩精品一区在线观看| 麻豆91免费观看|