歡迎您光臨本站 登入註冊首頁

概述

硬體:TG12232B(122*32)模擬口線接線方式 連接線圖: --------------------------------------------------| ……

硬體: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


 //可能看起來有點亂,不過效果還是不錯的,顯示圖形總的來說比顯示漢字要簡單,當然顯示漢字也不難。
 希望此程序能給你一些幫助。
 =============================================================*/


 #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)

[admin via 研發互助社區 ] 122*32液晶顯示程序,顯示圖形及漢字已經有2084次圍觀

http://cocdig.com/docs/show-post-495.html