程式設計初始化條件–寫命令
lcd1602液晶模組內部的控制器共有11條控制指令
ddram(display data ram)是顯示資料隨機儲存器
cgrom :1602液晶模組內部的字元發生儲存器(cgrom:custom glyph read-only memory定製字元唯讀儲存器)已經儲存了160個不同的點陣字元圖形,這些字元有:阿拉伯數字、英文本母的大小寫、常用的符號、和日文假名等,每乙個字元都有乙個固定的**,比如大寫的英文本母「a」的**是01000001b(41h),顯示時模組把位址41h中的點陣字元圖形顯示出來,我們就能看到字母「a」 ; 首先顯示內容分為兩種,一種是常用字元,儲存在cgrom中,使用者可以直接呼叫,另一種是自定義的字元,比如自己設計的一些奇怪的圖形之,儲存在cgram;
對於cgram和cgrom只是在你想要定製你自己想要的字元時才用到,也是寫命令進行初始化時設定的指令
【注意】這個圖在指令設定時對應的位址不一定對,主要是讀者方便理解cgram和cgrom
lcd的已有的字模儲存在cgrom中,自定義的儲存在cgram,留給自定義的位置只有8個位址,字模位址為01000000-01000111八個位址,也就是最多自定義8個符號或者圖形。
lcd1602按其說明書說明,可以設定成為四位匯流排(想當於4個並行介面),原八位並口輸入接線可以減少四個,即只接d4-d7,這適用於微控制器介面比較少或比較緊張的情況下。不過,接成四位匯流排後,傳送任何八位資料都應分兩次進行,先發高四位,再發低四位。在初始化時,應將lcd1602設定成四位匯流排。其他控制與八位匯流排完全相同。
位址是用16進製表示的,比如00h表示第乙個位元組,十六進製制27轉換為十進位制就是39,表示第40個位元組;第二行是直接從十六進製制40h開始的(第一行後面的還有一些位址不使用所以在這不提,僅提到這80個位元組)
舉例比如第二行第一字元0100 0000(40h) 根據指令8可知,ddram儲存器的位址設定(1000 0000)+ 螢幕字元座標的具體位址(0100 0000)
這個用處只是用來你顯示的資料的第乙個字元從**開始
# include
"reg51.h"
typedef
unsigned
int u16;
typedef
unsigned
char u8;
#define lcd1602d0_d7 p0
//d0-d7
sbit lcd_e=p2^7;
//使能端
sbit lcd_w=p2^5;
sbit lcd_rs=p2^6;
void
delay
(u16 i)
u8 display1=
" test distance!!!"
;u8 display2=
":0.0000 m"
;//輸出乙個字串
void
lcdwritecommand
(u8 comd)
//先寫命令。。。
//命令也是靠時序來執行的
void
lcdwritedat
(u8 dat)
//後寫資料。。。。根據寫資料時序圖來寫
//(以下內容已經是在寫時序中)
void
lcdinit()
void
main()
lcdwritecommand
(0xc1);
for(j=
0;j<
9;j++
)while(1);}
LCD1602指令集解讀
lcd1602指令集 11個 1 清屏指令 clear display rs 0 r w 0,01h 功能 清除液晶顯示器,即將ddram中的內容全部填入20h 空白字元 游標撤回顯示屏左上方 將位址計數器 ac 設為0,游標移動方向為從左向右,並且ddram的自增量為1 i d 1 2 游標歸位指...
LCD1602的使用詳解
一 學習目的 學會如何使用乙個新的模組 二 lcd1602原理 1 只能顯示ascii碼 1602 16個字元 行 2行 畫素 16 2 2 分析時序圖 1 寫操作 微控制器至hd44780 描述 首先要對暫存器的選擇和讀 寫操作選擇進行配置。rs是暫存器選擇,rs 1對資料進行操作 rs 0對指令...
LCD1602的簡單應用
此程式主要功能是液晶屏緩慢依次顯示abcd4個字母 include define uint unsigned int define uchar unsigned char sbit lcd rw p2 5 sbit lcd rs p2 6 sbit lcd en p2 7 uchar num voi...