12864驅動例程

2021-10-10 18:55:09 字數 3092 閱讀 3569

以下為並行方式的範例程式:

// 液晶模組型號: 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...