| 基于HD44780的LCD的實現(xiàn) —4Bit 接口 
 前言HD44780是點陣式的LCD控制器,它能顯示英文字母、阿拉伯?dāng)?shù)字、日文片假名和一般性的符號。微處理器可以使用2種方式來驅(qū)動他4-bit或者8-bit。 
 下面是HD44780的組成圖(xiaobin) 網(wǎng)上有許多基于8-bit的文章,我們主要介紹的是另外的一種實現(xiàn)方式:4-bit 
 一、簡介針對上面的組成圖,我們做一簡單介紹。詳細(xì)信息請參見HD44780的數(shù)據(jù)手冊。 1.1 寄存器HD44780有兩個8位寄存器,他們分別是指令寄存器(IR)和數(shù)據(jù)寄存器(DR)。 
 IR寄存器存儲指令代碼,比如顯示清除、光標(biāo)移動、顯示數(shù)據(jù)RAM(DDRAM)和字符生成器RAM(CGRAM)的地址信息。對于MPU來說IR寄存器是只寫的。 
 DR把暫存數(shù)據(jù)寫入DDRAM或CGRAM以及從DDRAM或CGRAM中讀取暫存數(shù)據(jù)。MPU寫入數(shù)據(jù)到DR時,DR會使用內(nèi)部操作自動寫入數(shù)據(jù)到DDRAM或CGRAM。DR已同樣的方式從DDRAM或CGRAM中讀取數(shù)據(jù)。當(dāng)寫入的地址信息是指向IR的時候,數(shù)據(jù)是DR從DDRAM或CGRAM中讀取的。也就是說,我們無論是發(fā)送命令,還是發(fā)送數(shù)據(jù),存儲這些信息的是DDRAM或CGRAM。 
 我們使用的外部接口RS就是來做選擇寄存器的。是使用IR,還是DR。這決定了,我們發(fā)送過去的信息是命令還是顯示數(shù)據(jù)。 
 
 1.2 忙標(biāo)志(BF)當(dāng)BF=1時,表明HD44780在進(jìn)行內(nèi)部操作。BF的輸出在DB7口。 
 
 1.3 地址累加器(AC)當(dāng)一個指令把地址信息寫到IR,則IR發(fā)送這個信息給AC。 
 之后寫到(或讀)DDRAM或CGRAM,AC是自動累加1的。AC的輸出DB0至DB6 
 表1 寄存器選擇(Register Selection) 
 
 
 二、程序?qū)崿F(xiàn) 
 編寫程序之前,我們先要知道HD44780的字符代碼和字模。 
 圖2: 基本字符代碼和字模(ROM Code:A00) 圖2: 擴展的字符代碼和字模(ROM Code:A02) 程序流程: HD44780 指令 
 
 
 程序代碼:(xiaobin演示之用) __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC LIST P=16F84A INCLUDE <P16F84A.INC> CBLOCK 0x0C ENDC ORG 0x00Begin call LCD_Init movlw 'H' call LCD_Write movlw 'e' call LCD_Write movlw 'l' call LCD_Write movlw 'l' call LCD_Write movlw 'o' call LCD_Write sleep END 
 電路圖: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  |