<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于單片機設計微功耗中文人機界面

基于單片機設計微功耗中文人機界面

作者: 時(shí)間:2013-07-03 來(lái)源:網(wǎng)絡(luò ) 收藏


圖2 SED1520的引腳定義和結構框圖

  SED1520控制器作為液晶顯示屏與MCU的接口,它直接驅動(dòng)MG-12232液晶,控制字符、漢字以及圖形的顯示。由于F149具有48個(gè)I/O引腳,借助SED1520,可以直接利用的I/O口模擬液晶的讀寫(xiě)和控制時(shí)序。使得MCU對液晶的操作實(shí)際上變?yōu)镸CU對液晶顯示控制器SED1520的操作,因而接口電路的的硬件連接和軟件編程都簡(jiǎn)單了很多。

  圖2中"V5"引腳提供MG-12232液晶的對比度電壓,可以通過(guò)一個(gè)-12V電壓發(fā)生電路(如MAX765)產(chǎn)生,經(jīng)一個(gè)100K電位器分壓后即可使用。

  MCU可以通過(guò)SED1520的一些控制引腳和13條常用指令來(lái)訪(fǎng)問(wèn)液晶顯示模塊。如"RST"用于重啟動(dòng)SED1520,"E1"和"E2"分別用于使能兩片SED1520。"R/W"控制對SED1520的讀或寫(xiě)。"A0"決定此次操作是指令讀寫(xiě)還是數據讀寫(xiě)。

  一個(gè)SED1520顯示控制器能控制80×16點(diǎn)陣液晶的顯示,其顯示RAM共16行,分2頁(yè),每頁(yè)8行,每一頁(yè)的數據寄存器分別對應液晶屏幕上的8行點(diǎn)。當設置了頁(yè)地址和列地址后就確定了顯示RAM中的唯一單元。屏幕上的每一列對應一個(gè)顯示RAM的字節內容,且每列最下面一位為MSB,最上面一位為L(cháng)SB,即該RAM單元字節數據由低位到高位的各個(gè)數據位對應于顯示屏上某一列的由高到低的8個(gè)數據位。對顯示RAM的一個(gè)字節單元賦值就是對當前列的8行(一頁(yè))像素點(diǎn)是否顯示進(jìn)行控制。

  如圖3,F149的P5口用作與液晶顯示模塊通信的數據口。


圖3 MSP430F149與MG-12232的電路連接示意圖

  MG-12232顯示模塊有多個(gè)型號,不同型號都采用相同的SED1520控制器,操作及使用方法完全相同,只是尺寸不同。常用的如MG-12232-5(76×29.1×5.7mm)、MG-12232-6(45.05×22.32×6.3mm)、MG-12232-7(84×44×10mm)等,可以分別用在大小不同的便攜式儀器或設備上。

  對液晶顯示模塊還需著(zhù)重考慮其背光類(lèi)型,不同的背光類(lèi)型消耗電流大不相同。一般可選的背光類(lèi)型有LED(發(fā)光二極管)、EL(電致發(fā)光燈)以及CCFL型(冷陰極燈管)。EL是一種面發(fā)光的冷光源,在結構上可以做得很大很薄,雖然亮度較低,但發(fā)光非常均勻而且無(wú)光斑,尤其是功耗很低。缺點(diǎn)是需要一個(gè)高壓交流電壓來(lái)驅動(dòng),故需要一個(gè)專(zhuān)門(mén)的電壓變換電路(如IMP803)。CCFL照明面積更大,適用于需要大面積液晶顯示界面的儀器或設備中。

三、鍵盤(pán)接口
  MSP430F149的P1、P2口除了支持輸入、輸出以外,還支持硬件中斷。P1、P2口的8個(gè)引腳都有各自的控制寄存器,每個(gè)引腳可以單獨控制,并且每個(gè)引腳都可以作為中斷源,每一引腳都可以單獨選擇中斷觸發(fā)沿,單獨允許中斷。P1、P2口各使用一個(gè)中斷向量,P1.0~P1.7產(chǎn)生同一個(gè)中斷,P2.0~P2.7也產(chǎn)生同一個(gè)中斷。P1、P2口的這種結構非常適合實(shí)現基于中斷的鍵盤(pán)輸入響應程序。

  本系統中使用2×2的行列式鍵盤(pán)。鍵盤(pán)程序采用行掃描法。即P1.0、P1.1接兩根列線(xiàn),列線(xiàn)定義為輸出口,P1.2、P1.3接兩根行線(xiàn),行線(xiàn)定義為輸入口。兩根行線(xiàn)需接10K上拉電阻。

  基于對系統低功耗要求的考慮,鍵盤(pán)輸入響應程序應設計為中斷方式運行的。即有鍵按下時(shí),產(chǎn)生中斷把MCU從休眠狀態(tài)喚醒,并啟動(dòng)定時(shí)12ms的定時(shí)器,隨后MCU又進(jìn)入休眠狀態(tài)。當定時(shí)器產(chǎn)生中斷時(shí)再次將MCU從休眠狀態(tài)喚醒,此時(shí)掃描鍵盤(pán),若有鍵按下,則計算出鍵值,并執行該鍵值對應的功能程序。執行完該程序后,MCU再次進(jìn)入休眠狀態(tài)。

四、漢字顯示的原理與部分程序實(shí)例

1、圖形點(diǎn)陣液晶的漢字字模
  與在DOS中顯示漢字不同的是,圖形點(diǎn)陣液晶并不是簡(jiǎn)單地用畫(huà)點(diǎn)的方式來(lái)描出漢字。直接從中文系統漢字字庫中提取的漢字字模并不能直接在液晶上顯示,通常都必須經(jīng)過(guò)格式上的調整和轉換。標準16點(diǎn)陣漢字(如希望漢字的HZK16)字模數據的排列形式如圖4。

  由于一個(gè)SED1520顯示控制器能控制80×16點(diǎn)陣液晶的顯示,其顯示RAM共16行,分2頁(yè),每頁(yè)8行。連續16列相鄰2頁(yè)的32字節顯示RAM就可以控制一個(gè)漢字的顯示區域(如圖5)。對這些顯示RAM賦以相應值就可以顯示出一個(gè)漢字。


  圖4 標準漢字字模排列形式         圖5 SED1520漢字字模排列形式

  由圖4和圖5所示可見(jiàn),SED1520圖形點(diǎn)陣液晶顯示控制器漢字字模的排列順序和方式與標準漢字字模完全不同。液晶字模數據可以通過(guò)對標準字模數據進(jìn)行位運算后得到。

  實(shí)際編程中,具體漢字的液晶字模數據應存放在MSP430F149的FLASH存儲器中。

2、液晶顯示器初始化流程
  在液晶顯示信息之前,必須先對液晶進(jìn)行初始化。

  初始化的流程如下:

  需注意,MG-12232模塊內雖然一片SED1520控制器實(shí)際控制區域為61列,但清除顯示RAM時(shí),仍應按80個(gè)RAM單元清除。



關(guān)鍵詞: MSP430 單片機 人機界面

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>