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

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

?? 12232.c

?? 內含LCD驅動源代碼大全
?? 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 <SST89x5x4.h>
#include <stdio.h>
#include <intrins.h>
#define	uchar unsigned char
#define uint unsigned int
#define lcd_data P0 	//數據
#define NOP() _nop_()

sfr P4=0xA5;
sbit E1 =P2^7;		//塊1  左邊
sbit E2 =P2^6;		//塊2  右邊
sbit RW =P2^1;	//1-read,0-write
sbit A0 =P2^0;	//A0為1時是數據,0時為指令數據
sbit W_R= P3^6;

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)
{
	E2=0;               //關S    
    E1=1;                   //開M	
	delay(5);
    A0=1;			//數據
    WR=0;			//寫觸發	
	NOP();
	lcd_data = i; 
	NOP();	
    E1=0;                   //關M
	
}
//左頁
//發送命令
void	OUTMI(unsigned char i)
{
	E2=0;               //關S    
    E1=1;                   //開M	
	delay(5);
    A0=0;			//指令
    WR=0;			//寫觸發	
	NOP();
	lcd_data = i; 
	NOP();	
    E1=0;                   //關M
}
//右頁
//發送數據
void	OUTSD(unsigned char i)
{
	E1=0;               //關S    
    E2=1;                   //開M	
	delay(5);
    A0=1;			//數據
    WR=0;			//寫觸發	
	NOP();
	lcd_data = i; 
	NOP();	
    E2=0;                   //關M
}
//右頁
//發送命令
void	OUTSI(unsigned char i)
{
	E1=0;               //關S    
    E2=1;                   //開M	
	delay(5);
    A0=0;			//指令
    WR=0;			//寫觸發	
	NOP();
	lcd_data = i; 
	NOP();	
    E2=0;                   //關M
}



//初始化
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(unsigned char ch_buffer1)//unsigned char ch_buffer
{
OUTSD(ch_buffer1);
}

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

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

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

調用方式: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()                                                                                                                          
{                
 //W_R=0;
 AUXR=0x02;                                                                                                   
 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)
 	{
	if(W_R==0)
	{
		P4 &= 0xFB;
		delay(50);
		//P4 |= 0xFF;
		P4 &= 0xFD;
		delay(50);
		//P4 |= 0xFF;
	}
 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); //.
	
/*	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一区二区三区免费野_久草精品视频
日韩一区二区免费电影| 亚洲成a人v欧美综合天堂| 亚洲国产欧美另类丝袜| 国产乱码精品一区二区三区av | 亚洲午夜一区二区三区| 国产成人亚洲精品青草天美 | 日产国产高清一区二区三区| av在线播放不卡| 精品福利一区二区三区 | 亚洲精品视频在线| 国产**成人网毛片九色 | 日韩女优av电影在线观看| 亚洲一二三区在线观看| 91丝袜美女网| 国产精品久久精品日日| 国产麻豆日韩欧美久久| 欧美一级一级性生活免费录像| 亚洲欧美日韩中文字幕一区二区三区| 国模无码大尺度一区二区三区| 91精品国产欧美一区二区18| 亚洲成年人网站在线观看| 色94色欧美sute亚洲13| 1024成人网| 99re这里只有精品首页| 国产精品久久久久9999吃药| 国产成人精品一区二区三区四区| 日韩精品一区二区三区在线观看| 五月婷婷欧美视频| 欧美电影影音先锋| 石原莉奈在线亚洲二区| 欧美日韩你懂得| 亚洲成人激情av| 欧美日韩黄色一区二区| 日产精品久久久久久久性色 | 欧美伊人久久久久久久久影院| 亚洲欧美色一区| 欧美色偷偷大香| 天天免费综合色| 日韩欧美中文一区| 精油按摩中文字幕久久| 国产偷国产偷精品高清尤物| 国产91对白在线观看九色| 国产精品久久久久久久久果冻传媒| 成人sese在线| 亚洲高清免费在线| 日韩一区和二区| 国产激情一区二区三区四区 | 美美哒免费高清在线观看视频一区二区 | 色欧美日韩亚洲| 亚洲午夜久久久久久久久电影院| 欧美精品v日韩精品v韩国精品v| 男女男精品视频| 国产日韩欧美亚洲| 91国模大尺度私拍在线视频| 婷婷久久综合九色综合伊人色| 欧美大片一区二区| 成人免费毛片片v| 亚洲第一搞黄网站| 精品女同一区二区| 91视视频在线观看入口直接观看www | 国产精品美女久久久久久2018| 99久久婷婷国产| 五月天久久比比资源色| 欧美精品一区二区蜜臀亚洲| 三级精品在线观看| 欧美日韩第一区日日骚| 韩国精品久久久| 一区在线中文字幕| 欧美片在线播放| 国产精品亚洲专一区二区三区| 亚洲女人的天堂| 日韩欧美成人午夜| 色综合久久六月婷婷中文字幕| 亚洲第一激情av| 国产精品嫩草99a| 91精品福利在线一区二区三区| 成人av免费网站| 毛片不卡一区二区| 亚洲欧洲av另类| 久久新电视剧免费观看| 欧美日韩视频第一区| 成人激情文学综合网| 久久99国产精品成人| 亚洲观看高清完整版在线观看| 国产精品丝袜91| 久久天天做天天爱综合色| 欧美另类变人与禽xxxxx| 亚洲激情欧美激情| 日韩欧美在线观看一区二区三区| 成人午夜激情在线| 美国精品在线观看| 亚洲一区二区成人在线观看| 国产精品的网站| 久久精品人人做人人综合| 欧美一区二区三区成人| 色噜噜狠狠色综合欧洲selulu| 国产在线精品不卡| 久久99久久99| 三级一区在线视频先锋 | 岛国av在线一区| 国产在线一区观看| 麻豆精品久久精品色综合| 亚洲国产精品久久人人爱| 亚洲色图清纯唯美| 中文字幕在线不卡视频| 亚洲国产精品v| 国产日韩欧美亚洲| 青青草成人在线观看| 国产精品污网站| 精品国产乱码久久久久久1区2区| 在线成人小视频| 日本电影欧美片| 日本韩国一区二区三区视频| 色综合视频在线观看| 91一区在线观看| 91啪九色porn原创视频在线观看| 北条麻妃一区二区三区| 成人福利电影精品一区二区在线观看| 国产精品亚洲午夜一区二区三区| 国产精品一区在线| 成人精品免费看| 91免费观看在线| 欧美日韩亚洲丝袜制服| 制服丝袜av成人在线看| 精品国产乱码久久久久久牛牛| 久久综合色播五月| 国产精品欧美久久久久一区二区 | 欧美丰满少妇xxxxx高潮对白| 欧美日韩国产一二三| 欧美一区二区三区免费视频| 欧美三级中文字幕| 色狠狠一区二区| 日本韩国欧美在线| 69成人精品免费视频| 精品国产电影一区二区| 中文字幕免费观看一区| 一区二区三区美女| 日韩精品免费专区| 国产精品456露脸| 日本精品免费观看高清观看| 日韩一区二区免费视频| 国产精品嫩草影院av蜜臀| 亚洲一区二区三区影院| 精品一区二区三区在线视频| 99在线热播精品免费| 91精品国产综合久久久久久| 久久久久9999亚洲精品| 一区二区三区国产精品| 日本不卡不码高清免费观看| 成人国产精品免费观看视频| 欧美精品1区2区3区| 国产精品你懂的| 美腿丝袜一区二区三区| 91亚洲大成网污www| 久久综合九色综合欧美98| 中文字幕av一区 二区| 亚洲福利电影网| 国产99久久久久| 欧美二区在线观看| 欧美极品少妇xxxxⅹ高跟鞋| 午夜影院久久久| 成人av免费在线| 欧美大片在线观看一区二区| 亚洲裸体xxx| 国产乱人伦偷精品视频不卡| 欧美日韩一级片在线观看| 国产精品系列在线| 麻豆91精品视频| 在线看国产日韩| 国产精品久久久久影院老司 | 午夜亚洲福利老司机| 国产激情精品久久久第一区二区 | 成人avav在线| 精品日韩av一区二区| 亚洲高清免费在线| 99精品国产一区二区三区不卡| 精品久久久久久久人人人人传媒 | 亚洲国产日韩一区二区| 成人黄色在线网站| 国产亚洲视频系列| 美女网站视频久久| 欧美色视频在线观看| 一二三区精品福利视频| 91丨九色丨国产丨porny| 国产精品美女久久久久久| 国产成人午夜电影网| 久久伊99综合婷婷久久伊| 免费成人性网站| 日韩精品一区二区三区四区视频 | 日韩精品亚洲专区| 欧美伊人久久久久久久久影院 | 久久精品水蜜桃av综合天堂| 麻豆高清免费国产一区| 欧美一区二区大片| 日本成人在线一区| 欧美大片一区二区| 国产专区综合网| 欧美国产在线观看| 99久久精品免费看国产| 综合自拍亚洲综合图不卡区|