|
參考一下本站(ID號(hào)306414 69)的帖子,他里面的注釋挺清楚的,部分代碼 單片機(jī)驅(qū)動(dòng)12864液晶的頭文件LCD12864.H源程序如下(附件里面有調(diào)用方法 很簡(jiǎn)單): //===========LCD12864.H=============== #ifndef _LCD12864_H__ #define _LCD12864_H__ /*********************************************************************************************/ #include <reg52.h> // 包含頭文件 #include <string.h> //用于指針 typedef unsigned char uchar ; typedef unsigned int uint ; /********************************************************************************************* //接口定義 // /*********************************************************************************************/ #define LCD12864_DATABUS P1 // 定義LCD12864的數(shù)據(jù)總線 sbit LCD12864_RS = P2^6; // 定義LCD12864的RS控制線 sbit LCD12864_RW = P2^7; // 定義LCD12864的RW控制線 sbit LCD12864_E = P3^0; // 定義LCD12864的E控制線 sbit LCD12864_CS1 = P3^1; // 定義LCD12864的CS1控制線 sbit LCD12864_CS2 = P3^2; // 定義LCD12864的CS2控制線 //sbit LCD12864_RESET = P2 ^ 5; // 定義LCD12864的RESET控制線 //sbit LCD12864_LEDK = P2 ^ 0; // 定義LCD12864的LEDK(BLK)控制線 /********************************************************************************************* //數(shù)據(jù)定義 //定義LCD12864的命令字 /*********************************************************************************************/ #define LCD12864_DISP_ON 0x3F // 打開LCD12864顯示 #define LCD12864_DISP_OFF 0x3E // 關(guān)閉LCD12864顯示 #define LCD12864_START_ROW 0xC0 // 顯示起始行,可以用LCD12864_START_ROW+x設(shè)置起始行。(x<64) #define LCD12864_PAGE_ADDR 0xB8 // 頁起始地址,可以用LCD12864_PAGE_ADDR+x設(shè)置當(dāng)前頁。(x<8) #define LCD12864_COL_ADDR 0x40 // 列起始地址,可以用LCD12864_COL_ADDR+x設(shè)置當(dāng)前列。(x<64) //在BUSY和REST狀態(tài)時(shí),除讀狀態(tài)指令外,其他指令均不對(duì)LCD12864產(chǎn)生作用。 //在對(duì)LCD12864操作之前要查詢BUSY狀態(tài),以確定是否可以對(duì)LCD12864進(jìn)行操作。 #define LCD12864_STATUS_BUSY 0x80 // LCD12864忙狀態(tài)屏蔽碼 #define LCD12864_STATUS_DISP_OFF 0x20 // LCD12864顯示關(guān)閉狀態(tài)屏蔽碼 #define LCD12864_STATUS_REST 0x10 // LCD12864復(fù)位狀態(tài)屏蔽碼 void LCD12864_WriteCMD(uchar LCD_com); void LCD12864_WriteData(unsigned char LCD12864_data); void Delay(unsigned int count); |
|