以下為並行方式的範例程式:
// 液晶模組型號: dv12864g-11 或(g-11),不帶字型檔
// 介面方式:並行介面,6800 時序
// 驅動 ic 是:st7565r
// 本程式所帶的 8x16 點陣及 5x8 點陣的 ascii 碼字元的資料都是從 dv-gb2312 型號字型檔 ic 裡讀出來的國標的。 /
#include
sbit lcd_cs1 =p3^4;
//介面定義,cs:片選
sbit lcd_reset =p3^5;
//介面定義,reset:復位
sbit lcd_rs =p3^3;
//介面定義,rs:命令/資料暫存器選擇。也叫"a0",或「cd」
sbit lcd_e =p3^0;
//介面定義,e:讀寫使能訊號
sbit lcd_rw =p2^1;
//介面定義,r/w:讀/寫
sbit key =p2^0;
//按鍵介面,p2.0 口與 gnd 之間接乙個按鍵
//另外 p1.0~1.7 對應 db0~db7
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
uchar code ascii_table_8x16[95]
[16];
uchar code ascii_table_5x8[95]
[5];
uchar code cheng1;
uchar code gong1;
uchar code zhuang1;
uchar code tai1;
uchar code shi1;
uchar code yong1;
uchar code bmp_12864_1;
uchar code bmp_12864_2;
uchar code bmp_12864_3;
uchar code bmp_12864_4;
uchar code bmp_12864_5;
//延時
void
delay
(int i)
//短延時
void
delay_us
(int i)
//等待按鍵:當有按鍵按下時,微控制器會檢測到乙個低電平
void
waitkey()
//傳乙個位元組的命令到液晶屏驅動 ic
void
transfer_command
(int data1)
//傳乙個位元組的資料到液晶屏驅動 ic
void
transfer_data
(int data1)
//lcd 模組初始化
void
initial_lcd()
//lcd 位址設定,括號內的引數分別為(頁,列)
void
lcd_address
(uchar page,uchar column)
//全屏清屏
void
clear_screen()
}}//===顯示測試畫面:例如全顯示,隔行顯示,隔列顯示,雪花顯示*****
void
test_display
(uchar data1,uchar data2)}}
//顯示 128x64 點陣影象
void
display_graphic_128x64
(uchar page,uchar column,uchar *dp)}}
//顯示 32x32 點陣影象、漢字、生僻字或 32x32 點陣的其他圖示
void
display_graphic_32x32
(uchar page,uchar column,uchar *dp)}}
//顯示 16x16 點陣影象、漢字、生僻字或 16x16 點陣的其他圖示
void
display_graphic_16x16
(uchar page,uchar column,uchar *dp)}}
//顯示 8x16 點陣影象、ascii, 或 8x16 點陣的自造字元、其他圖示
void
display_graphic_8x16
(uchar page,uchar column,uchar *dp)}}
//顯示 8x16 點陣 ascii 字串,括號裡的引數是(頁, 列,資料指標)
void
display_string_8x16
(uint page,uint column,uchar *text)
} i++
; column+=8
;}else
i++;}
}//顯示 5x8 點陣 ascii 字串,括號裡的引數是(頁, 列,資料指標)
void
display_string_5x8
(uint page,uint column,uchar *text)
transfer_data
(0x00);
i++; column+=6
;}else
i++;}
}void
main
(void
)~ ");
display_string_5x8(5
,1," !\"#$%&'()*+,-./01234");
//顯示 5x8 的 ascii 碼字串
ST7920驅動的LCD12864實現單行反白顯示
用12864顯示選單時,將當前項選單反白顯示是乙個比較常見的顯示效果。然而,st7920驅動的12864模組擴充套件指令集中的反白顯示 reverse 功能,卻沒有什麼實際使用價值。因為反白第1行時,第3行也同時反白了 反白第2行時,第4行也同時反白了。查閱網上資料,向ddram寫入文字,再向文字所...
51微控制器三線序列驅動12864液晶
以前寫12864的液晶程式都是用的並行的方式,這種方式焊接起來很麻煩,而且占用的io口比較多。今天嘗試使用序列方式來驅動該模組。本程式是基於stc89c52的12864序列模式的程式,硬體電路連線只需要5根線,vcc gnd rs rw e 只需要三個個io 口就可以顯示,大大節省了資源。12864...
Windows驅動開發 IRP的完成例程
windows驅動開發技術詳解 331頁,在將irp傳送給底層驅動或其他驅動之前,可以對irp設定乙個完成例程,一旦底層驅動將irp完成後,irp完成例程立刻被處罰,通過設定完成例程可以方便地使程式設計師了解其他驅動對irp進行的處理,不管是呼叫自己的底層驅動或是呼叫其他驅動,都是使用核心函式ioc...