一、學習目的
學會如何使用乙個新的模組:
lcd使用要點:要明白ac就是內部資料指標的位址,ddram即儲存顯示資料的儲存器,每次顯示,都要想明白往哪個位址上寫資料。要學會通過使用手冊上的時序圖來學習
如何編寫讀寫資料的函式,最終的一點還要會硬體連線。
二、lcd1602原理
1、只能顯示ascii碼
1602 = 16個字元/行 * 2行 = 畫素 16*2
2、分析時序圖
(1)寫操作(微控制器至hd44780)
描述:
首先要對暫存器的選擇和讀、寫操作選擇進行配置。rs是暫存器選擇,rs = 1對資料進行操作;rs = 0對指令進行操作。
接著對讀寫操作選擇進行配置,rw = 0 寫操作。
開啟使能端,輸入使能訊號 e = 1。
資料匯流排,對db0~db7賦值,進行資料的傳輸
【注】如果先開啟使能,再進行其他配置的話,有可能傳輸的資料不是自己想要的。
(2)讀操作(hd44780至微控制器)
3、顯示模組的指令集
根據自己的顯示需要進行相應的配置 ,重要的幾個命令一定要配置正確才能使用,
4、顯示的位置設定ddram
顯示在第一行某一列的資料可以寫命令:0x80 | 0x**
顯示在第二行某一列的資料可以寫命令:0x80 | 0x40 | 0x** = 0xc0 | 0x**
0x80是因為在設定ddram位址時,db7固定是為1的。
三、lcd1602寫入自己的字元及顯示漢字
1、由於lcd是外部裝置,處理速度比cpu速度慢,向lcd寫入命令到完成功能需要一定的時間,在這個過程中,lcd處於忙狀態,不能向lcd寫入新的內容。lcd是否處於忙狀態可以通過讀忙標誌命令來了解。
用state = lcdport來讀取io埠的狀態,將state & 0x80來判斷lcd是否處於忙狀態,若io口bit7為1,則表示lcd處於忙狀態,反之則空閒。
2、要讓lcd1602顯示自定義字元,就得用到cgram指令,cgrom字碼表實際只有8個位元組可供使用,writecom(0x40)表示將要在cgram中寫入資料,設定字型檔cgram位址命令是0100 0000.
1602能儲存8個自定義字元(即8個位元組的使用),這8個自定義字元儲存空間的首位址分別是:0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78。
使用時讀取自定義字元的位址即為0x40-0x78 對應為 00h-07h。乙個位址(如00h)存放1b的乙個字元(1b = 8bit,乙個字元由8個0x**組成)
以0x40來說,它的儲存空間如圖所示:
如果使用5*7字元的話,那麼最左3位和最後一行的資料實際上是沒用的,通常置0。
這樣我們就得到每個位址需要寫入的資料:
位址 : 資料
0x40 : 0x16
0x41 : 0x09
0x42 : 0x08 其他類推。將這8個資料寫入到對應位址即可。(有紅格仔的即為1,白格仔即為0)
LCD1602的使用詳解
一 學習目的 學會如何使用乙個新的模組 二 lcd1602原理 1 只能顯示ascii碼 1602 16個字元 行 2行 畫素 16 2 2 分析時序圖 1 寫操作 微控制器至hd44780 描述 首先要對暫存器的選擇和讀 寫操作選擇進行配置。rs是暫存器選擇,rs 1對資料進行操作 rs 0對指令...
lcd1602顯示實驗
字元從最右邊往左移動16次,最後停止在螢幕上 include define uchar unsigned char define uint unsigned int uchar code display talk is cheap uchar code display1 show me code s...
LCD1602學習筆記
lcd1602代表可以顯示16行,2列。同時他有16個介面,有vss和vdd分別是地線和5v電源介面,第三個vl是背光介面,為了顯示更清楚通常接地。許多超市上掛著的那種滾動螢幕便是lcd1602的大致功能。include define uchar unsigned char define uint ...