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

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

?? 240160b.c

?? 基于C8051F020單片機的LCD顯示程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
// 函數:void LcdClr(void)
//-----------------------------------------------------------------------------
/******************************************************************************
 調用方式(Function):LcdClr() 
 函數描述(Description):清顯示 32K RAM區(清屏)子程序
 入口參數(Parameters):無
 返回值(Returns):無
 創建時間:16:07,PM,2004.4.19
 修改時間:無
 修改原因:無
******************************************************************************/
void LcdClr(void){

	Uint i1=32768;
	
	WriteCmd( 0x4c ); 				// 光標移動方向定義:自動右移0x4c
	WriteCmd( 0x46 );				// 光標Locate,定位0x46
	WriteData( 0 );					// 寫入參數CSRL設置參數光標指針低8位
	WriteData( 0 );					// 寫入參數CSRH設置參數光標指針高8位
	WriteCmd( 0x42 );				// 數據寫入指令,代碼0x42

	while(i1--)	WriteData( 0x00);	// 寫入數據0
}


//-----------------------------------------------------------------------------
// 函數:void Locatexy(Uchar x,Uchar y)
//-----------------------------------------------------------------------------
/******************************************************************************
 調用方式(Function):Locatexy(x,y)
 函數描述(Description):光標位定位,用于在1區圖形方式下
 入口參數(Parameters):
 					  x...水平方向字節單位坐標,即可以以半個漢字寬度設定水平坐標
					  	  取值范圍:0...39
					  y...垂直方向以行線定位的坐標,可以定位到點單位
					      取值范圍:0...239
					  左上角約定坐標為(0,0)
 返回值(Returns):無
 創建時間:16:07,PM,2004.4.20
 修改時間:無
 修改原因:無
******************************************************************************/
void Locatexy(Uchar x,Uchar y) {
	
	Uint temp;
    
	temp = (Uint)y*paraP9+x;
    WriteCmd( CsrW );               // 光標Locate,定位
    WriteData( (Uchar)(temp & 0xff) );  // 寫入參數CSRL設置參數光標指針低8位
    WriteData( (Uchar)(temp /256 ) );   // 寫入參數CSRH設置參數光標指針高8位
}


//-----------------------------------------------------------------------------
// 函數:Uchar dprintf(Uchar x,Uchar y,char code *ptr,bit attrib)
//-----------------------------------------------------------------------------
/******************************************************************************
 調用方式(Function):dprintf(x,y,*ptr,attrib)
 函數描述(Description):ASCII(8*16) 及 漢字(16*16) 混合字符串顯示函數
 入口參數(Parameters):
 					  x,y顯示字符串的左上角xy坐標
					  x...8點一字節位置,取值范圍:0...29
					  y...一條掃描線定位,取值范圍:0...159
					  *ptr...字符串指針,本函數所指的是flash字串
					  attrib:屬性參數,為0:反顯;為:1正常顯示
 返回值(Returns):輸出字串長度,留意漢字一個算兩個
 其它假定:調用時漢字必須在字庫數組中已經存在,否則將輸出不正確的結果
 創建時間:16:07,PM,2004.4.20
 修改時間:無
 修改原因:無
******************************************************************************/
/********************************************************/
/* ASCII(8*16) 及 漢字(16*16) 顯示函數          		*/
/********************************************************/
Uchar dprintf(Uchar x,Uchar y,char code *ptr,bit attrib)
{

    Uchar  c1,c2;
    Uchar i,j,uLen,uRow,uCol,temp;
    Uint  k;

    uRow = x;
    uCol = y;
    uLen=0;
    WriteCmd( CsrDirD );            		// 光標移動方向定義:自動下移
    Locatexy(uRow,uCol);                    //起點定位
    while ( (Uchar)ptr[uLen] >= 0x10 ){uLen++;};            //探測字串長度
    i=0;
    while(i<uLen)
    {
        c1 = ptr[i];
        c2 = ptr[i+1];
//ascii字符與漢字內碼的區別在于128做分界,大于界線的為漢字碼
        if(c1 <=128)                        // ASCII
        {
            if (c1 >= 0x10) {
                WriteCmd( mWrite );         // 寫數據(命令)
                for(j=0;j<16;j++) 
					if(attrib)WriteData( ASC_MSK[(c1-0x20)*16 +j ]);
					else WriteData(~(ASC_MSK[(c1-0x20)*16 +j ]));
            }
            uRow++;		                     // 列數加1
        }
        else                                // 中文
        {
            for(j=0;j<sizeof(Cdotlib)/sizeof(Cdotlib[0]);j++)   // 查找定位
            {
                if((c1 == Cdotlib[j].Index[0]) && (c2 == Cdotlib[j].Index[1]))
                    break;
            }
            for(k=0;k<2;k++)                // 分16行輸出
            {
                Locatexy(uRow+k,uCol);
                WriteCmd( mWrite );     // 寫數據(命令)

                for(temp=0;temp<16;temp++)
					if(attrib) WriteData( Cdotlib[j].Msk[temp*2 + k]);
					else WriteData(~( Cdotlib[j].Msk[temp*2 + k]));
            }
            uRow +=2;                       // 光標右移一大格
            i++;
        }
        if(uRow >= 30)          // 光標后移,原來為40
        {
            uCol += 16;
            uRow = 0;
            if( uCol >= 160 ) uCol = 0;	//共有160點行
        }

        Locatexy(uRow,uCol);
        i++;
    }
    return uLen;                //返回字串長度,漢字按2字節計算
}

//x...8點一字節位置,取值范圍:0...29
//y...一條掃描線定位,取值范圍:0...159
void MyGraph(Uchar x,Uchar y,Uchar Weight,Uchar Height,Uchar code *ptr,bit attrib){
	
	Uchar uRow,uCol,temp,nbyte;
    Uint  k;

    uRow = x;
    uCol = y;
    WriteCmd( CsrDirD );            		// 光標移動方向定義:自動下移
    Locatexy(uRow,uCol);                    //起點定位
	nbyte=(Uchar)(Weight/8);
	for(k=0;k<nbyte;k++)                	// 分16行輸出
            {
                Locatexy(uRow+k,uCol);
                WriteCmd( mWrite );     	// 寫數據(命令)

                for(temp=0;temp<Height;temp++)
					if(attrib) WriteData(ptr[temp*nbyte+k]);
					else WriteData(~(ptr[temp*nbyte+k]));
            }
	
}

/*====================================================
;  繪點子程序,攜入參數X坐標的最高位決定寫或擦點
 ====================================================*/
void Point(Uint Px,Uchar Py,Uchar attr){

	Uint tempPtr;
	Uchar tempD,tempP;
		
	tempPtr = (Uint)Py * paraP9 + (Px & 0x7fff)/8;	// 去除最高位(顯示屬性)
	WriteCmd( CsrDirD );						// CSRDIR 代碼(光標自動下移)
	WriteCmd( CsrW );							// 設置光標地址
	WriteData( (Uchar)(tempPtr & 0xff) );
	WriteData( (Uchar)(tempPtr /256) );
	WriteCmd( mRead );							// 讀顯示ram指令
	tempD = ReadfromLcd();							// 讀取當前顯示數據
	tempP = 1<<(Uchar)(7-Px & 0x0007);

// 根據預定屬性決定寫點或擦除
	if( attr )tempD |= tempP;	// 畫點
	else tempD &= ~tempP;				// 消點

	WriteCmd( CsrW );						// 重新設置光標地址
	WriteData( (Uchar)(tempPtr & 0xff) );
	WriteData( (Uchar)(tempPtr /256) );
	WriteCmd( mWrite );						// 代碼0x42,數據寫入指令
	WriteData( tempD );							// 寫入合成數據

}
void SYSCLK_Init(void){
 
   Uchar i;                 		 // delay counter

   OSCXCN = 0x66;		             // start external oscillator with
                                     // 22.1184MHz crystal

   for (i=0; i < 254; i++) ;         // wait for osc to start

   while (!(OSCXCN & 0x80)) ;        // Wait for crystal osc. to settle

   OSCICN = 0x88;                    // select external oscillator as SYSCLK
                                     // source and enable missing clock
                                     // detector
}


void PORT_Init(void)
{

	XBR0=0x00;                 	    // 1:Enable; UART0,SMBUS
	XBR1=0x00;
	XBR2=0x40;                	  	// Enable crossbar and weak pull-ups

	P0MDOUT |=0xf0;					// enable P07~P04 as push-pull outputs,4個按鍵(P03~P00)為開漏
	P1MDOUT |=0xff;                 // enable P1 as push-pull outputs
	P2MDOUT |=0xfc;		//0xfc		// enable P27~P22 as push-pull outputs,P21(SCLK),P20(SDA)配置為開漏
	P3MDOUT |=0x3f;		// 			// enable P3.5~P3.0 as push-pull outputs,P3.7(IRQ),P3.6(Ctime)為開漏
	P74OUT	|=0xf3;		//	 		// 
}
void main(void){


	WDTCN = 0xde;                       // disable watchdog timer
	WDTCN = 0xad;
	SYSCLK_Init();						// 切換到外部晶振
//	OSCICN=0x14; 						// 內部晶振16M運行,2M:0x14;4M:0x15;8M:0x16;16M:0x17

	PORT_Init();						// 端口初始化

	LcdInit();
	LcdClr();

	EL_ON=1;							//開背光


	dprintf(0,50,"2004/04/25重慶東電",0);

	MyGraph(23,111,48,48,Ico_RP,1);	//顯示一副圖片

	while(1);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精久久久久久久久久久| 九九久久精品视频| 免费成人美女在线观看.| 国产电影一区在线| 日韩久久免费av| 伊人色综合久久天天| 国产成人午夜高潮毛片| 欧美精品久久久久久久久老牛影院| 久久久国产综合精品女国产盗摄| 亚洲自拍偷拍综合| www.一区二区| 久久久亚洲午夜电影| 亚洲午夜精品网| 一本色道亚洲精品aⅴ| 欧美va日韩va| 三级亚洲高清视频| 日本韩国视频一区二区| 国产精品亲子乱子伦xxxx裸| 精品在线视频一区| 日韩视频免费观看高清在线视频| 亚洲一区二区三区小说| 99re亚洲国产精品| 国产精品三级在线观看| 国产精品亚洲一区二区三区在线 | 国产精品免费免费| 国产在线观看一区二区| 日韩一区二区免费在线观看| 香蕉影视欧美成人| 欧美专区亚洲专区| 一区二区三区不卡在线观看| 成人av免费在线观看| 精品国产99国产精品| 日本不卡视频一二三区| 这里只有精品99re| 日韩精品三区四区| 欧美一区二区精品久久911| 午夜不卡av免费| 欧美精品少妇一区二区三区| 亚洲成人tv网| 91麻豆精品国产91久久久| 一区二区三区国产豹纹内裤在线| 色综合久久中文字幕| 亚洲欧美aⅴ...| 色综合一区二区三区| 一区二区三区四区中文字幕| 在线观看日韩av先锋影音电影院| 亚洲欧美日韩在线播放| 91黄色小视频| 日本一区中文字幕| 久久先锋影音av鲁色资源网| 国内精品嫩模私拍在线| 中文字幕免费不卡在线| 99国产麻豆精品| 亚洲国产另类av| 欧美精品视频www在线观看 | 亚洲午夜一二三区视频| 欧美美女一区二区在线观看| 美女网站视频久久| 国产亚洲婷婷免费| 一本色道综合亚洲| 免费不卡在线观看| 精品成人一区二区三区| 国产99久久久精品| 亚洲一区二区三区四区不卡| 欧美精品v国产精品v日韩精品| 男人的j进女人的j一区| 中文字幕中文字幕一区| 欧美人体做爰大胆视频| 国产精品一区二区果冻传媒| 亚洲免费观看高清完整| 日韩欧美国产不卡| 9色porny自拍视频一区二区| 视频一区欧美日韩| 国产精品乱码妇女bbbb| 欧美日韩色一区| 国产精品18久久久| 亚洲一本大道在线| 久久欧美中文字幕| 欧美日韩电影在线播放| 国产精品亚洲第一| 香蕉久久一区二区不卡无毒影院| 久久精品欧美一区二区三区不卡| 91片黄在线观看| 国产美女视频91| 丝袜国产日韩另类美女| 国产精品免费av| 欧美一区二区三区的| 99re这里只有精品首页| 国产在线一区二区| 日韩激情视频网站| 樱桃视频在线观看一区| 国产精品久久毛片av大全日韩| 欧美一区二区精品久久911| 在线亚洲一区二区| 国v精品久久久网| 久久99精品久久久久久久久久久久| 亚洲欧洲韩国日本视频| 久久久久国色av免费看影院| 欧美日韩久久一区二区| 一本到一区二区三区| 国产成人av资源| 激情六月婷婷综合| 免费在线看成人av| 亚洲成人综合视频| 一区二区三区日本| 一区视频在线播放| 国产精品福利影院| 国产精品无遮挡| 国产欧美一区二区在线观看| 欧美不卡视频一区| 日韩一级黄色大片| 欧美一级欧美三级| 欧美日韩在线播| 精品视频色一区| 欧美日韩在线观看一区二区| 欧美图片一区二区三区| 欧美亚一区二区| 欧美日本在线播放| 欧美精品xxxxbbbb| 日韩免费视频一区| 欧美成人综合网站| 国产视频视频一区| 亚洲国产电影在线观看| 国产精品免费人成网站| 亚洲欧美日韩人成在线播放| 一区二区在线观看视频 | 麻豆一区二区99久久久久| 日韩精品国产精品| 韩国三级电影一区二区| 国产成人精品三级麻豆| 99综合电影在线视频| 在线免费观看日本一区| 欧美绝品在线观看成人午夜影视| 欧美精品乱人伦久久久久久| 亚洲精品一线二线三线| 国产免费久久精品| 亚洲综合色丁香婷婷六月图片| 亚洲成人激情综合网| 久久99精品久久久久久国产越南| 国产麻豆成人精品| 色综合久久久久久久久久久| 欧美日韩国产欧美日美国产精品| 91精品福利在线一区二区三区| 精品久久久久久亚洲综合网| 国产精品久久久久影院| 亚洲一区二区三区四区在线免费观看 | 亚洲精品视频自拍| 天天影视涩香欲综合网| 韩国v欧美v日本v亚洲v| 不卡av电影在线播放| 欧美日韩一区二区三区视频| 日韩精品一区二区三区三区免费| 国产精品久久一级| 青青草成人在线观看| 波波电影院一区二区三区| 欧美日韩精品是欧美日韩精品| 精品成人私密视频| 亚洲午夜电影在线观看| 国产精品88av| 欧美日韩一区中文字幕| 国产蜜臀97一区二区三区| 午夜日韩在线观看| 成人一区二区三区| 欧美一区2区视频在线观看| 亚洲国产精品成人综合色在线婷婷| 亚洲二区视频在线| 成人av电影在线网| 欧美mv和日韩mv的网站| 亚洲美女区一区| 国产不卡一区视频| 日韩一区二区在线观看视频| 亚洲人成网站影音先锋播放| 国产在线乱码一区二区三区| 欧美性极品少妇| 中文字幕一区二区三区在线播放| 日本网站在线观看一区二区三区| zzijzzij亚洲日本少妇熟睡| wwwwxxxxx欧美| 日本伊人精品一区二区三区观看方式| 99精品一区二区三区| 久久亚洲春色中文字幕久久久| 亚洲高清视频的网址| 色诱亚洲精品久久久久久| 欧美精品一区二区高清在线观看| 午夜欧美2019年伦理| 91国产成人在线| 国产精品久久久久久久久果冻传媒| 九一久久久久久| 91精品国产乱| 日韩一区欧美二区| 欧美浪妇xxxx高跟鞋交| 亚洲国产视频在线| 91成人在线精品| 亚洲久本草在线中文字幕| kk眼镜猥琐国模调教系列一区二区| 欧美精品一区二区三区蜜桃视频| 久久精品国内一区二区三区| 欧美一区二区三区的| 久久国产日韩欧美精品| 欧美本精品男人aⅴ天堂|