# include & ltabsacc.h & gt
#定義uchar無符號字符
#定義數據0x1200 //寫數據通道
#定義comwr 0x1000 //寫控制命令通道
#定義數據0x1300 //讀取數據通道
# define comre 0x 1100//讀取繁忙通道
Uchar code disp_data[]={ "長沙大學"//第壹行,第壹頁。
“11類通信工程”//第3行
“電信部”//2號線
“抄襲集團”//第4行
" 128 x64 LCD "//第2頁第1行
“測試程序”//第3行
“2007年7月25日”//第二行
《龍卷風》};//第四行
void set 12864();
void write_command(uchar命令);
void write _ page(uchar data _ add);
void read _ page(uchar data _ add);
無效延遲(uchar cont);
void main()
{
while(1)
{
set 12864();//初始化12864
write _ page(0);//寫入壹頁數據
read _ page(0x 30);//將壹頁數據讀入內部RAM
延誤(2);//延遲2s
write _ page(64);//寫入下壹頁數據
延誤(2);//延遲2s
}
}
//初始化12864子程序
void set12864()
{
寫命令(0x 30);//功能設置控制字
寫命令(0x0c);//顯示開關控制字
write _ command(0x 01);//清除屏幕控制字
寫命令(0x 06);//輸入設定點控制字
}
//寫控制命令子程序
void write_command(uchar命令)
{
bit flag = " 1 ";//12864空閑標誌位
While(flag) //檢查12864是否空閑。
flag="XBYTE"[comre]&。0x80
XBYTE[comwr]=命令;//空閑傳輸控制字
}
//編寫頁面子例程
void write_page(uchar data_add)
{
bit flag = " 1 ";//12864空閑標誌位
uchar num = " 64//64個周期,連續寫32個漢字或64個西文。
寫命令(0x 80);
for(;num & gt0;數字-)
{
While(flag) //檢查12864是否空閑。
flag="XBYTE"[comre]&。0x80
x byte[data wr]= disp _ data[data _ add++];//空閑數據傳輸
}
}
//讀取頁面子例程
void read_page(uchar data_add)
{
bit flag = " 1 ";//12864空閑標誌位
uchar num = " 64//64個周期,連續寫32個漢字或64個西文。
寫命令(0x 80);
for(;num & gt0;數字-)
{
While(flag) //檢查12864是否空閑。
flag="XBYTE"[comre]&。0x80
DBYTE[data _ add++]= XBYTE[datare];//空閑數據傳輸
}
}
//延遲控制秒子程序
無效延遲(uchar計數)
{
無符號字符h,I,j,k;
做
{
for(h = 5;h & gt0;h -)
for(I = 4;我& gt0;我-)
for(j = 116;j & gt0;j -)
for(k = 214;k & gt0;k-);
} while(-count);
}