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

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

?? 12232.c

?? 在c51下液晶顯示塊12232的編程實例
?? C
字號:
/*============================================================
功能:使用12232液晶顯示圖片演示
作者: Mingtree	ycxms88@163.com   http://www.mcu123.com
============================================================== 
硬件:TG12232B (122*32)模擬口線接線方式
連接線圖: 
--------------------------------------------------|
|DB0-----P0.0 | DB4-----P0.4 | RW-------P1.1 | A0--------P1.0 |
|DB1-----P0.1 | DB5-----P0.5 | RS-------P2.1 | V0接1K電阻到GND |
|DB2-----P0.2 | DB6-----P0.6 | E1-------P1.3 |
|DB3-----P0.3 | DB7-----P0.7 | E2-------P1.2 |			
---------------------------------------------------

本程序源碼只供學習參考,如有需要請聯系作者。

[注:AT89x52使用22.1184M或11.0592M晶振,實測使用22.1184M或11.0592都可以]
編譯平臺:Keil uV2 7.08


//可能看起來有點亂,不過效果還是不錯的,顯示圖形總的來說比顯示漢字要簡單,當然顯示漢字也不難。
希望此程序能給你一些幫助。
有什么問題可以發email 給我或到我的論壇發問.
http://www.mcu123.com/bbs
=============================================================*/


#include <AT89X52.H>

#define	uchar unsigned char
#define uint unsigned int

#define E1 P1_3		//塊1  左邊
#define E2 P1_2		//塊2  右邊
#define RW P1_1
#define A0 P1_0 	//A0為1時是數據,0時為指令數據
#define DATA P0 	//數據

extern unsigned char code Bmpt1[];
extern unsigned char code Bmpt2[];
extern unsigned char code Bmpt3[];
extern unsigned char code Bmpt4[];
extern unsigned char code Bmpt5[];
extern unsigned char code Bmpt6[];
extern unsigned char code Bmpt7[];
extern unsigned char code Bmptc[];
extern unsigned char code bmp001[];
extern	unsigned char code Bmp08[];
extern	unsigned char code Bmp07[];
extern	unsigned char code Bmp06[];
extern	unsigned char code Bmp05[];
extern	unsigned char code Bmp04[];
extern	unsigned char code Bmp03[];
extern	unsigned char code Bmp02[];
extern	unsigned char code Bmp01[];
extern	unsigned char code Bmp012[];
extern	unsigned char code Bmp003[];
extern	unsigned char code Bmp002[];


//延時
void delay(unsigned int i)
{
	unsigned char k=200;	
	while(i>0)
	{
		i--;
	}
	while(k>1)k--;
}

//左頁
//發送數據
void	OUTMD(unsigned char i)
{
	A0=1;	//寫數據
	//delay(5);
	E1=1;
	//delay(10);
	DATA=i;
	//delay(5);
	E1=0;
	
}
//左頁
//發送命令
void	OUTMI(unsigned char i)
{
	A0=0;	//寫指令
	//delay(5);
	E1=1;
	//delay(10);
	DATA=i;
	//delay(5);
	E1=0;
	
}
//右頁
//發送數據
void	OUTSD(unsigned char i)
{
	A0=1;	//寫數據
	//delay(5);
	E2=1;
	//delay(10);
	DATA=i;
	//delay(5);
	E2=0;

}
//右頁
//發送命令
void	OUTSI(unsigned char i)
{
	A0=0;	//寫指令
	//delay(5);
	E2=1;
	//delay(10);
	DATA=i;
	//delay(5);
	E2=0;
	
}



//初始化
void	lcdini(void)
{
	RW=0;
	OUTMI(0XE2);
	OUTSI(0XE2);//復位
	OUTMI(0XAE);
	OUTSI(0XAE);//POWER SAVE
	OUTMI(0XA4);
	OUTSI(0XA4);//動態驅動
	OUTMI(0XA9);
	OUTSI(0XA9);//1/32占空比
	OUTMI(0XA0);
	OUTSI(0XA0);//時鐘線輸出
	OUTMI(0XEE);
	OUTSI(0XEE);//寫模式
	
	OUTMI(0X00);
	OUTMI(0XC0);
	OUTSI(0X00);
	OUTSI(0XC0);
	
	OUTMI(0XAF);
	OUTSI(0XAF);
	
}
/*
函數說明:同時設置主從顯示頁為0-3頁。(內函數,私有,用戶不直接調用)
------------------------------------------------------------------------
*/
void SetPage(uchar page0,uchar page1)
{
OUTMI(0xB8|page1);OUTSI(0xB8|page0);
}

/*
--------------------------------------------------------------------------------
函數說明:同時設置主從列地址為0-121。(內函數,私有,用戶不直接調用)
--------------------------------------------------------------------------------
*/
void SetAddress(uchar address0,uchar address1)
{
OUTMI(address1);OUTSI(address0);
}

/*
--------------------------------------------------------------------------------

調用方式:void PutChar0(uchar ch)
函數說明:在右頁當前地址畫一個字節8個點。(內函數,私有,用戶不直接調用)
--------------------------------------------------------------------------------
-*/
void PutCharR(uchar ch)
{
OUTSD(ch);
}

/*
--------------------------------------------------------------------------------

調用方式:void PutChar1(uchar ch)
函數說明:在左頁當前地址畫一個字節8個點。(內函數,私有,用戶不直接調用)
--------------------------------------------------------------------------------
-*/
void PutCharL(uchar ch)
{
OUTMD(ch);
} 

/*
--------------------------------------------------------------------------------

調用方式:void DrawBmp(bit layer,uchar width,uchar *bmp)
函數說明:畫一個圖,layer表示上下層,width是圖形的寬,高都是16,bmp是
圖形指針
          使用zimo3軟件,縱向取模,字節倒序/240字節
--------------------------------------------------------------------------------
-*/
void DrawBmp(bit layer,uchar width,uchar *bmp)
{
uchar x,address,i=0;     //address表示顯存的物理地址
uchar page=0;	//page表示上下兩頁
bit window=0;  //window表示左右兩頁
//putcharR	//右邊
//putcharL	//左邊

for (x=width;x>1;x--)
{
if (i>60) {window=1;address=i%61;}
else address=i;	

if(layer==0)	//顯示一行八個字
	{
	SetPage(0,0);
	SetAddress(address,address);
	if(window==1)PutCharR(bmp[i]);
	else	PutCharL(bmp[i]);
	SetPage(1,1);
	SetAddress(address,address);
	if(window==1)PutCharR(bmp[i+width]);
	else	PutCharL(bmp[i+width]);
	}
else
	{	//顯示第二行八個漢字
	SetPage(2,2);
	SetAddress(address,address);
	if(window==1)PutCharR(bmp[i]);
	else	PutCharL(bmp[i]);
	SetPage(3,3);
	SetAddress(address,address);
	if(window==1)PutCharR(bmp[i+width]);
	else	PutCharL(bmp[i+width]);
	}
    i++;
   
}
}


/*
--------------------------------------------------------------------------------

調用方式:void clrscr(void)
函數說明:清屏
--------------------------------------------------------------------------------
-*/
void clrscr(void)
{
uchar i;
uchar page;
for (page=0;page<4;page++)
{
SetPage(page,page);
SetAddress(0,0);
for (i=0;i<61;i++){PutCharR(0);PutCharL(0);}
}
} 

//-----------------------------------------------------------
//圖片顯示
//采用字模2生成或字模3生成的都可以.
//-----------------------------------------------------------
void DrawBmp1(uint x_add, uchar width,uchar *bmp)
{
uchar x,address,i=0;     //address表示顯存的物理地址
uchar page=0;	//page表示上下兩頁
bit window=0;  //window表示左右兩頁
//putcharR	//右邊
//putcharL	//左邊
for (x=width;x>1;x--)
{
if (x_add>60) {window=1;address=x_add%61;}
else address=x_add;	


	SetPage(0,0);
	SetAddress(address,address);
	if(window==1)PutCharR(bmp[i]);
	else	PutCharL(bmp[i]);
	SetPage(1,1);
	SetAddress(address,address);
	if(window==1)PutCharR(bmp[i+width]);
	else	PutCharL(bmp[i+width]);
	
	
	SetPage(2,2);
	SetAddress(address,address);
	if(window==1)PutCharR(bmp[i+width+width]);
	else	PutCharL(bmp[i+width+width]);
	SetPage(3,3);
	SetAddress(address,address);
	if(window==1)PutCharR(bmp[i+width+width+width]);
	else	PutCharL(bmp[i+width+width+width]);	
    i++;
    x_add++;
   
}
}

//---------------------------------------------------------------
//---------------------------------------------------------------
//采用zimo2  顯示漢字,以漢字的顯示方式
//void Draw_word(uchar d_where,uint x_add,bit layer,uchar width)
//d_where表示在碼表中第幾個漢字,x_add橫坐標位置,layer顯示的層, width顯示的寬度。
//---------------------------------------------------------------


void Draw_word(uchar d_where,uint x_add,bit layer,uchar width)
{
uchar x,i=0,address;     //address表示顯存的物理地址
uchar page=0;	//page表示上下兩頁
bit window=0;  //window表示左右兩頁
//putcharR	//右邊
//putcharL	//左邊
d_where=d_where*32;

for (x=width;x>1;x--)
{
if (x_add>60) {window=1;address=x_add%61;}
else address=x_add;	

if(layer==0)	//顯示一行八個字
	{
	
	SetPage(0,0);
	SetAddress(address,address);
	if(window==1)PutCharR(bmp001[d_where]);//右邊
	else	PutCharL(bmp001[d_where]);//左邊
	SetPage(1,1);
	SetAddress(address,address);
	if(window==1)PutCharR(bmp001[d_where+width]);
	else	PutCharL(bmp001[d_where+width]);

	}
else
	{	//顯示第二行八個漢字
	SetPage(2,2);
	SetAddress(address,address);
	if(window==1)PutCharR(bmp001[d_where]);//右邊
	else	PutCharL(bmp001[d_where]);//左邊
	SetPage(3,3);
	SetAddress(address,address);
	if(window==1)PutCharR(bmp001[d_where+width]);
	else	PutCharL(bmp001[d_where+width]);

	}
    x_add++;
   d_where++;
}
}
/*
//------------------------------------------------------------------
//字模2顯示一個漢字
//縱向取模,字節倒序
void	disp_one(bit top_low,bit widows,uchar address,uchar width,uchar*bmp)
{	
if(top_low==0)
	{
	SetPage(0,0);
	SetAddress(address,address);
	if(window==1)PutCharR(bmp001[next][i]);
	else	PutCharL(bmp001[next][i]);
	SetPage(1,1);
	SetAddress(address,address);
	if(window==1)PutCharR(bmp001[next][i+width]);
	else	PutCharL(bmp001[next][i+width]);
	}
else
	{
	SetPage(0,0);
	SetAddress(address,address);
	if(window==1)PutCharR(bmp001[next][i]);
	else	PutCharL(bmp001[next][i]);
	SetPage(1,1);
	SetAddress(address,address);
	if(window==1)PutCharR(bmp001[next][i+width]);
	else	PutCharL(bmp001[next][i+width]);
	}
}
*/




//液晶顯示規則
//	M(左)		S(右)
//	page		page
//	0	|	0
//	1	|	1
//	2	|	2
//	3	|	3

void	delay1s(unsigned char i)
{
	while(i>1)
	{
		i--;
	
		delay(65530);
	}
}

//顯示動態的等待圖標
void	wait1(unsigned char i)
{
	for(;i>1;i--)
	{delay1s(2);
	clrscr(); //
	DrawBmp1(0,60,Bmptc); //
	DrawBmp1(76,19,Bmpt1); //
	delay1s(2);
	clrscr(); //
	DrawBmp1(0,60,Bmptc); //
	DrawBmp1(76,19,Bmpt2); //
	delay1s(2);
	clrscr(); //
	DrawBmp1(0,60,Bmptc); //
	DrawBmp1(76,19,Bmpt3); //
	delay1s(2);
	clrscr(); //
	DrawBmp1(0,60,Bmptc); //
	DrawBmp1(76,19,Bmpt4); //
	delay1s(2);
	clrscr(); //
	DrawBmp1(0,60,Bmptc); //
	DrawBmp1(76,19,Bmpt5); //
	delay1s(2);
	clrscr(); //
	DrawBmp1(0,60,Bmptc); //
	DrawBmp1(76,19,Bmpt6); //
	delay1s(2);
	clrscr(); //
	DrawBmp1(0,60,Bmptc); //
	DrawBmp1(76,19,Bmpt7); //
	}

}


//演示程序
void main()                                                                                                                          
{                
                                                                                                     
 lcdini(); //reset                                                   
 clrscr(); //clr          
 
                                              
 Draw_word(0,0,0,16); //
 Draw_word(1,16,0,16); //
 Draw_word(2,32,0,16); //
 Draw_word(3,48,0,16); //
 Draw_word(0,64,0,16); //
 Draw_word(1,80,0,16); //
 Draw_word(2,96,0,16); //

 DrawBmp(1,120,Bmp002); //
 clrscr(); //
 delay1s(3);
 DrawBmp1(0,122,Bmp012); //LOGO
 while(1)
 	{
	delay1s(3);

	clrscr(); //
	DrawBmp1(10,101,Bmp07); //
	
	delay1s(8);
	clrscr(); //
	wait1(3);
	DrawBmp1(0,122,Bmp04); //
	delay1s(8);
	clrscr(); //
	wait1(3);
	DrawBmp1(0,122,Bmp03); //超前科技
	delay1s(8);
	clrscr(); //
	wait1(3);
	clrscr(); //
	DrawBmp1(10,101,Bmp05); //
	delay1s(8);
	clrscr(); //
	wait1(3);
	clrscr(); //
	DrawBmp1(10,101,Bmp06); //
	delay1s(8);
	clrscr(); //
	wait1(3);
	clrscr(); //
	DrawBmp1(10,101,Bmp08); //
	delay1s(8);
	clrscr(); //
	wait1(3);
	clrscr(); //
	DrawBmp1(0,122,Bmp01); //這仿真器真不錯,用過都說好.
	wait1(8);
	}                                                        
 }                
 
                                         

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美videossexotv100| 欧美挠脚心视频网站| 亚洲高清久久久| 久久夜色精品国产噜噜av| 色婷婷综合激情| 国产成人午夜片在线观看高清观看| 亚洲午夜精品在线| 国产喷白浆一区二区三区| 7777精品久久久大香线蕉| 成人蜜臀av电影| 九一久久久久久| 日韩黄色片在线观看| 亚洲黄色小视频| 国产精品三级视频| 久久综合五月天婷婷伊人| 在线综合视频播放| 欧美亚洲尤物久久| 色综合久久综合| av成人免费在线| 成人免费的视频| 高清视频一区二区| 国产不卡免费视频| 国产精品一区二区三区99| 久久精品av麻豆的观看方式| 日日摸夜夜添夜夜添亚洲女人| 亚洲蜜臀av乱码久久精品蜜桃| 国产精品美女视频| 国产欧美日韩精品a在线观看| 日韩精品一区二区三区视频播放 | 国产精品18久久久久久久久| 午夜久久久影院| 亚洲五月六月丁香激情| 亚洲自拍偷拍av| 一区二区三区中文字幕在线观看| 中文字幕一区二区三区色视频| 国产精品欧美一区二区三区| 国产精品无圣光一区二区| 国产日韩精品一区二区三区| 国产日韩成人精品| 欧美国产欧美综合| 中文字幕亚洲不卡| 亚洲视频香蕉人妖| 亚洲精品精品亚洲| 一片黄亚洲嫩模| 亚洲高清中文字幕| 日本va欧美va精品发布| 久久精品国产久精国产| 国产福利一区二区三区| 成人黄色a**站在线观看| 成年人午夜久久久| 色婷婷国产精品久久包臀| 色婷婷精品久久二区二区蜜臀av | 日韩一区在线播放| 亚洲精品国产无天堂网2021| 亚洲一区二区影院| 日本不卡一区二区| 国内成+人亚洲+欧美+综合在线| 国产麻豆精品一区二区| 岛国精品在线播放| 91国偷自产一区二区使用方法| 欧美色精品在线视频| 日韩一区二区三区视频在线| 久久综合九色综合97婷婷女人 | 欧美韩国日本不卡| 亚洲图片你懂的| 五月天激情综合| 国产一区二区三区黄视频 | 日韩欧美一区二区免费| 久久色视频免费观看| 欧美国产精品久久| 亚洲国产一区二区三区| 久久99久久精品| 成人综合在线网站| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 欧美大片拔萝卜| 中文字幕成人av| 午夜精品一区二区三区电影天堂| 六月丁香婷婷久久| 成人黄色在线网站| 制服丝袜亚洲播放| 国产精品久久久久久久午夜片| 亚洲va国产天堂va久久en| 国产乱码精品一区二区三| 色综合中文字幕| 日韩无一区二区| 综合自拍亚洲综合图不卡区| 免费看日韩精品| 99re免费视频精品全部| 日韩视频在线观看一区二区| 自拍偷拍亚洲激情| 国产在线精品国自产拍免费| 欧美视频一区二区三区在线观看| 久久久国产精华| 亚洲成av人片观看| 91一区二区在线| 亚洲精品在线观| 午夜精品成人在线视频| 波多野结衣精品在线| 久久综合一区二区| 日韩成人精品在线| 色老头久久综合| 国产农村妇女毛片精品久久麻豆| 日本特黄久久久高潮| 91浏览器打开| 国产免费久久精品| 国内一区二区视频| 日韩一区二区免费视频| 亚洲午夜精品17c| 99久久精品国产网站| 欧美国产综合一区二区| 国产真实精品久久二三区| 在线不卡一区二区| 亚洲一区二区三区国产| 一本色道亚洲精品aⅴ| 国产精品婷婷午夜在线观看| 激情久久五月天| 精品国产网站在线观看| 美洲天堂一区二卡三卡四卡视频 | 中文字幕高清一区| 国产剧情一区二区| 337p粉嫩大胆噜噜噜噜噜91av| 日韩av中文在线观看| 在线播放欧美女士性生活| 亚洲国产va精品久久久不卡综合| 色综合久久天天| 亚洲精品菠萝久久久久久久| 91在线码无精品| 亚洲男人的天堂在线aⅴ视频| eeuss鲁片一区二区三区 | 美女国产一区二区| 91麻豆精品国产91| 日韩精品乱码免费| 在线播放中文字幕一区| 蜜臀99久久精品久久久久久软件| 欧美一区二区三区公司| 美女诱惑一区二区| 日韩美女天天操| 狠狠色狠狠色合久久伊人| 久久美女艺术照精彩视频福利播放| 韩国一区二区三区| 亚洲国产精品黑人久久久| av午夜精品一区二区三区| 亚洲精品国产无天堂网2021 | 国产精品一区二区视频| 久久婷婷国产综合精品青草| 丁香另类激情小说| 亚洲色图在线看| 欧美日韩中文精品| 免费观看成人av| 久久久久久麻豆| eeuss鲁片一区二区三区在线看| 依依成人精品视频| 欧美揉bbbbb揉bbbbb| 日本三级韩国三级欧美三级| 欧美成人一区二区三区| 成人综合在线网站| 亚洲午夜在线视频| 欧美v亚洲v综合ⅴ国产v| 成人免费视频免费观看| 亚洲国产综合在线| 337p粉嫩大胆噜噜噜噜噜91av| 99视频一区二区| 肉丝袜脚交视频一区二区| 久久蜜臀中文字幕| 91豆麻精品91久久久久久| 奇米色777欧美一区二区| 久久久99久久精品欧美| 日本电影欧美片| 久久99热这里只有精品| 亚洲欧洲在线观看av| 欧美揉bbbbb揉bbbbb| 国产精品一区二区你懂的| 樱桃视频在线观看一区| 精品久久免费看| 色婷婷久久久久swag精品| 九一九一国产精品| 一区二区三区在线观看视频| 精品少妇一区二区| 在线观看免费一区| 国产一区二区在线观看免费| 亚洲免费色视频| 日韩欧美自拍偷拍| 欧美这里有精品| 国产精品香蕉一区二区三区| 一区二区三区中文字幕在线观看| 精品少妇一区二区三区在线播放| 色八戒一区二区三区| 国产一区二区三区香蕉| 亚洲午夜激情网页| 国产精品国产精品国产专区不蜜| 7777精品伊人久久久大香线蕉| 99久久99久久精品国产片果冻| 久久成人羞羞网站| 亚洲午夜久久久| 自拍视频在线观看一区二区| 久久婷婷成人综合色| 欧美一区二区免费观在线| 一本一道波多野结衣一区二区| 国产激情视频一区二区三区欧美| 视频一区欧美日韩|