基于RA8806控制器的LCD和51單片機接口技術(shù)
3 RA8806和51單片機接口電路
RA8806支持4位或8位數據總線(xiàn)的8080/6800系列MPU接口,其外部接口引腳功能描述如表1所示。基于RA8806控制器的LCD和51系列單片機的接口采用總線(xiàn)或直接I/O方式,基于總線(xiàn)的接口方式如圖1所示,數據總線(xiàn)直接和單片機的PO端口相連,P20選擇指令或數據,P27作為片選信號,因此LCD的命令端口地址是0x7100,數據端口地址是0x7000。LCD的復位信號直接從51單片機的復位信號取反得到,為保證LCD復位信號的穩定,單片機復位的對地電阻不能大于4.7 kΩ。LCD的復位也可采用基于直接I/O方式的LCD接口方式(圖2),用一個(gè)單片機引腳產(chǎn)生復位信號。
4 軟件設計
基于RA8806控制器的LCD軟件設計包括基本讀寫(xiě)函數、字符串顯示函數、畫(huà)線(xiàn)函數、圖像顯示函數、觸摸屏相關(guān)函數等。這里重點(diǎn)介紹基本讀寫(xiě)函數的編程方法,編程注意事項及觸摸屏的開(kāi)發(fā)過(guò)程。
4.1 基本讀寫(xiě)函數
基于RA8806控制器的LCD和51單片機接口的基本讀寫(xiě)函數主要包括:指令寫(xiě)入函數(寫(xiě)數據到寄存器),緩沖器讀取函數,內存寫(xiě)入和讀取函數,以及狀態(tài)讀取函數。這些函數主要是按照RA8806數據資料給出的時(shí)序要求進(jìn)行編寫(xiě)。單片機和 RA8806接口方式不同,編程方式也不同。以RA8806指令寫(xiě)入函數為例,時(shí)序要求如圖3所示。
若RA8806和單片機的接口按圖1的總線(xiàn)方式,指令簡(jiǎn)單,接口時(shí)序由單片機自動(dòng)形成,其指令如下:
4.2 RA8806編程注意事項
(1)內存寫(xiě)入與讀取 當寫(xiě)數據到內存(可能是顯示內存或字型產(chǎn)生內存)時(shí),必須先執行緩存器編號為B0h的“寫(xiě)入指令周期”。反之,如果讀取內存中的數據時(shí),則必須先執行緩存器編號為B1h的“寫(xiě)入指令周期”。
(2)字符模式和圖形模式 RA8806支持兩種自MPU寫(xiě)入內存的模式:字符模式和圖形模式。在圖形模式時(shí),數據以點(diǎn)陣的方式直接寫(xiě)入內存;而在字符模式下,寫(xiě)入的數據以字碼的形式被寫(xiě)入RA8806,而寫(xiě)入的字碼會(huì )再到CGROM中讀出相對的字型碼而后寫(xiě)入內存。因此,當需要畫(huà)線(xiàn)或顯示圖像時(shí),必須設置LCD 工作在圖形方式;當顯示字符時(shí),務(wù)必切換到文字方式。
評論