12864無字型檔液晶顯示(一)

2021-07-05 10:54:26 字數 3762 閱讀 7596

這篇文章主要來寫一下12864液晶顯示的程式,至於一些暫存器的設定,和12864液晶的資料介紹,大家可以參考附件中的12864液晶的datesheet。我在這裡不做詳細介紹了.

我在這裡直接貼出程式,程式注釋比較清楚,相信大家對照dateshee可以看明白。
/***********************************

程式功能:無字型檔12864液晶的顯示

編譯環境:keil4

執行環境:proteus7.7

取模軟體使用的是:zm201

***********************************/

#include

#define uchar unsigned char

#define uint unsigned int

#define port p0 //db0~db7資料口

sbit e=p2^0;//使能

sbit rw=p2^1;//讀寫

sbit rs=p2^2;//資料/命令

sbit cs2=p2^3;//片選

sbit cs1=p2^4;

sbit busy=p0^7;//檢測忙

uchar code hz[32]=,

/*-- 文字: 山 --*/

/*-- 仿宋_gb231212; 此字型下對應的點陣為:寬x高=16x16 --*/

,/*-- 文字: 有 --*/

/*-- 仿宋_gb231212; 此字型下對應的點陣為:寬x高=16x16 --*/

,/*-- 文字: 路 --*/

/*-- 仿宋_gb231212; 此字型下對應的點陣為:寬x高=16x16 --*/

,/*-- 文字: 勤 --*/

/*-- 仿宋_gb231212; 此字型下對應的點陣為:寬x高=16x16 --*/

,/*-- 文字: 為 --*/

/*-- 仿宋_gb231212; 此字型下對應的點陣為:寬x高=16x16 --*/

,/*-- 文字: 徑 --*/

/*-- 仿宋_gb231212; 此字型下對應的點陣為:寬x高=16x16 --*/

,/*-- 文字: , --*/

/*-- 仿宋_gb231212; 此字型下對應的點陣為:寬x高=16x16 --*/

,/*-- 文字: 學 --*/

/*-- 仿宋_gb231212; 此字型下對應的點陣為:寬x高=16x16 --*/

,/*-- 文字: 海 --*/

/*-- 仿宋_gb231212; 此字型下對應的點陣為:寬x高=16x16 --*/

,/*-- 文字: 無 --*/

/*-- 仿宋_gb231212; 此字型下對應的點陣為:寬x高=16x16 --*/

,/*-- 文字: 涯 --*/

/*-- 仿宋_gb231212; 此字型下對應的點陣為:寬x高=16x16 --*/

,/*-- 文字: 苦 --*/

/*-- 仿宋_gb231212; 此字型下對應的點陣為:寬x高=16x16 --*/

,/*-- 文字: 作 --*/

/*-- 仿宋_gb231212; 此字型下對應的點陣為:寬x高=16x16 --*/

,/*-- 文字: 舟 --*/

/*-- 仿宋_gb231212; 此字型下對應的點陣為:寬x高=16x16 --*/

,/*-- 文字: 。 --*/

/*-- 仿宋_gb231212; 此字型下對應的點陣為:寬x高=16x16 --*/,,

//"聯",14

,//"系",15

,//"方",16

,//"式",17

};uchar code num[16]=,

//"0",0

,//"1",1

,//"2",2

,//"3",3

,//"4",4

,//"5",5

,//"6",6

,//"7",7

,//"8",8

//"9",9

};uchar code sign[16]=,

//"!",0

,//":",1

//"q",2

}; //延時

void delay(uint n)

//判斷是否忙

void check()

//寫指令

void sendcommand(uchar command)

//寫資料

void writedata(uchar dat)

//選螢幕 0--全屏,1--左屏,2--右屏;

void select(uint n) }

//頁void setpage(uchar page)

//列void setcolumn(uchar column)

//起始行

void setline(uchar line)

//螢幕開關顯示 0--關,1--開;

void seton(uint n)

//清屏 0--全屏,1--左屏,2--右屏;

void clear(uint n)

}//初始化

void init(uchar i)

//顯示漢字 16*16顯示

void show16(uchar page,uchar column,uchar screen,uchar method,uchar *str) //頁,列,

setpage(page+1);

setcolumn(column);

for(i=0;i<16;i++)

} //顯示數字 8*16顯示

void show8(uchar page,uchar column,uchar screen,uchar method,uchar *str)

setpage(page+1);

setcolumn(column);

for(i=0;i<8;i++) }

void welcome()

// show8(2,32,2,0,sign[0]); //!

for(i=0;i<4;i++)

show8(4,0,2,0,sign[1]); //:

show8(6,0,1,0,sign[2]); //q

show8(6,8,1,0,sign[2]); //q

show8(6,16,1,0,sign[1]); //:

//以下數字均為反白顯示。

show8(6,32,1,1,num[4]); //4

show8(6,40,1,1,num[3]); //3

show8(6,48,1,1,num[5]); //5

show8(6,56,1,1,num[8]); //8

show8(6,0,2,1,num[3]); //3

show8(6,8,2,1,num[5]); //5

show8(6,16,2,1,num[1]); //1

show8(6,24,2,1,num[8]); //8

show8(6,32,2,1,num[1]); //1

}void main()

}}

12232液晶顯示

終於把這個程式調好啦,此程式可以按乙個數字鍵,同時顯示在液晶螢幕上拉!剛開始用寫乙個位址命令到液晶,再寫乙個資料到液晶,調不通,老是出現乙個鍵按下去,顯示多個一樣的數字鍵值!最後用下面的程式,將按鍵寫乙個顯示乙個,就ok啦!if keyscan 1 keyscan 9 數字鍵0 9 include ...

液晶顯示模組分類

1.液晶顯示模組,按照顯示的內容可以分為段式液晶顯示模組 字元型液晶顯示模組及圖形點陣液晶顯示模組 19264 三大類。1.1 段式液晶顯示模組主要顯示7段碼的8字及固定的圖示顯示,優點是所用液晶顯示控制驅動器與微控制器介面簡單 便宜,可廣泛應用於煤氣表 水表 電表 空調 熱水器 電冰箱,電壓表 電...

液晶顯示模組的分類

液晶顯示模組即 liquid crystal module 簡稱 lcm 是一種將液晶顯示器件 lcd 連線件 積體電路 pcb線路板 背光源 結構件裝配在一起的元件。主要完成液晶顯示器的連線與顯示功能,將電訊號轉變為光訊號的元件。液晶顯示模組按照不同的方法有不同的分類 1.按照顯示的內容可以分為段...