<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è) > 嵌入式系統 > 設計應用 > 基于51單片機和FPGA 的人機交互系統的設計

基于51單片機和FPGA 的人機交互系統的設計

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

  2.2 T6963C 及其接口設計:

  T6963C 液晶顯示控制器多用于小規模的液晶顯示器件,常被裝配在圖形液晶顯示模塊上,以?xún)炔乜刂破餍蛨D形液晶顯示模塊的形式出現。

  單片機對T6963C 有2 種訪(fǎng)問(wèn)方式: 直接訪(fǎng)問(wèn)與間接訪(fǎng)問(wèn)。直接訪(fǎng)問(wèn)利用三總線(xiàn)以I/O 設備訪(fǎng)問(wèn)形式進(jìn)行控制;間接訪(fǎng)問(wèn)則由單片機提供并行接口,以程序控制時(shí)序的方式進(jìn)行控制。為簡(jiǎn)化程序,這里采用直接訪(fǎng)問(wèn)方式。

  該LCM 的FS1 引腳用于控制顯示字符的字體。FS1 為高時(shí),LCD 顯示6×8 字符;FS1 為低時(shí),LCD 顯示8×8 字符。經(jīng)實(shí)踐,在顯示英文與數字時(shí),6×8 字符更為美觀(guān);在顯示中文字符時(shí),8×8 字符更為方便。一般系統采用將FS1 接地或接高的方式來(lái)固定字體,而本系統采用P2.1 對FS 進(jìn)行控制,通過(guò)改變地址實(shí)現改變字體的功能,使得界面的顯示更靈活。

  2.3 鍵盤(pán)電路設計:

  鍵盤(pán)是常用的單片機輸入設備,分為編碼鍵盤(pán)和非編碼鍵盤(pán)。鍵盤(pán)上閉合鍵的識別由專(zhuān)用硬件譯碼器實(shí)現,并產(chǎn)生鍵編號或鍵值的稱(chēng)為編碼鍵盤(pán);靠軟件識別的稱(chēng)為非編碼鍵盤(pán)。在單片機組成的測控系統及智能化儀器中使用最多的是非編碼鍵盤(pán),本系統設計在 中編程實(shí)現3×6 鍵盤(pán)的行掃描。

  由于按鍵的機械特性,在閉合和斷開(kāi)的瞬間會(huì )伴隨著(zhù)一連串的抖動(dòng),鍵抖動(dòng)會(huì )引起一次按鍵被誤讀多次,所以必須進(jìn)行去抖處理,常用的方法為延時(shí)去抖動(dòng)。 產(chǎn)生鍵值之后向單片機發(fā)送中斷,并等待單片機讀取鍵值。由于人腦反應時(shí)間相對較長(cháng), 鍵盤(pán)中斷可以處于相對較低的優(yōu)先級,因此本文將鍵盤(pán)中斷接于外部中斷7。

  3 軟件設計:

  軟件設計遵循結構化和層次化的設計原則。底層函數直接與硬件溝通,而上層函數直接通過(guò)調用底層函數來(lái)實(shí)現相應功能,從而使上層函數與硬件環(huán)境徹底分開(kāi)。當硬件環(huán)境發(fā)生變化時(shí),僅修改底層函數便能實(shí)現程序的移植。

  3.1 液晶驅動(dòng)模塊的編程設計:

  本模塊的底層函數需要實(shí)現寫(xiě)控制字、寫(xiě)參數、查忙等功能。由于采用直接訪(fǎng)問(wèn),寫(xiě)控制字與寫(xiě)參數的函數只需向控制口或數據口的地址送數即可。由于LCD 是慢速器件,因此在每次寫(xiě)控制字及寫(xiě)參數之前都需要進(jìn)行查忙。T6963C的狀態(tài)字共有7 位有效的狀態(tài)位,如表1 所示。其中STA1~STA3 最為常用,一般情況下可以不需要對STA5~STA7 進(jìn)行查忙的程序。

基于51單片機和FPGA 的人機交互系統的設計


  3.1.1 液晶驅動(dòng)模塊的初始化:

  T6963C 的最大特點(diǎn)是具有獨特的硬件初始值設置功能,顯示驅動(dòng)所需的參數如占空比系數。驅動(dòng)傳輸的字節數/行及字符的字體選擇等均由引腳電平設置, 這樣T6963C 的初始化在上電時(shí)就已經(jīng)基本設置完成,軟件操作的重心就可以全部用于顯示畫(huà)面的設計上。因此,初始化時(shí)僅需根據實(shí)際情況設置文本區域和圖形區域的首地址和寬度, 以及CGRAM 偏置地址、合成方式、光標形狀等即可正常使用。

  液晶驅動(dòng)模塊的初始化函數如下:

  void LcdInitial(void)

  {

  LcdWriteDataD(0x00,0x00,0x40); //設置文本區域首地址為0000H

  LcdWriteDataD(0x20,0x00,0x41); //設置文本區域寬度為20H 字節

  LcdWriteDataD(0x00,0x04,0x42); //設置圖形區域首地址為0400H

  LcdWriteDataD(0x20,0x00,0x43); //設置圖形區域寬度為20H 字節

  LcdWriteDataD(0x03,0x00,0x22); //設置CGRAM 偏置地址,顯示存儲器的首地址為1800H

  LcdWriteDataN(0xa7); //光標形狀設置為8×7

  LcdWriteDataN (0x80); //啟用內部字符發(fā)生器,邏輯“或”合成

  LcdWriteDataN(0x9c); //開(kāi)文本和圖形顯示,禁用光標

  LcdClear(3); //清屏

  }

  3.1.2 英文及漢字的文本顯示:

  由于英文及數字等常用字符的字模已經(jīng)固化在CGROM中,因此進(jìn)行英文的顯示時(shí),只需指定顯示的地址,再輸入該字符對應的標號即可。漢字的顯示與英文的顯示類(lèi)似。然而出于其復雜性,一個(gè)漢字需要使用4 組點(diǎn)陣才能完整顯示。在初始化后將漢字的4 部分字模順序輸入CGRAM 中, 在使用時(shí)僅需計算好每一部分的顯示地址即可對漢字進(jìn)行完美顯示。

  對于一串英文字符的輸入, 可以利用字符串的特性進(jìn)行操作。通過(guò)檢測‘’字符來(lái)判斷英文字符串的結尾,從而避免了在調用此顯示函數時(shí)人工計算句子長(cháng)度的工作。英文字符的ASCII碼值與其在CGROM 中對應的標號恰相差0x20,因此僅需簡(jiǎn)單的減法即可實(shí)現標號的轉換。此外,在進(jìn)行英文的連續顯示時(shí),使用了T6963C 的數據自動(dòng)寫(xiě)指令,從而提高了顯示效率。

  對于一串中文的顯示,則僅需通過(guò)循環(huán)調用單個(gè)中文的顯示程序進(jìn)行實(shí)現。注意由于C51 語(yǔ)言中字符串無(wú)法支持中文,因此必須人工計算中文字串的長(cháng)度并將其作為函數傳遞給此顯示函數。



關(guān)鍵詞: 51單片機 FPGA 人機交互系統

評論


相關(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>