<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 光電顯示 > 設(shè)計(jì)應(yīng)用 > 基于VB 6.0 液晶顯示系統(tǒng)的設(shè)計(jì)

          基于VB 6.0 液晶顯示系統(tǒng)的設(shè)計(jì)

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

          摘要:利用提供的MSComm通訊控件完成PC機(jī)與單片機(jī)的串行通訊,由單片機(jī)控制顯示模塊,實(shí)現(xiàn)通過(guò)計(jì)算機(jī)輸入字符直接顯示在顯示屏的控制系統(tǒng)。

          本文引用地址:http://www.ex-cimer.com/article/167992.htm

          0引言

          顯示器因其具有功耗低、質(zhì)量輕、體積小和超薄等優(yōu)點(diǎn),成為袖珍式電子產(chǎn)品中的主流顯示技術(shù),被廣泛用于通訊、家庭娛樂(lè)、廣告、儀表等領(lǐng)域。本文了一種由計(jì)算機(jī)與單片機(jī)之間的通訊來(lái)直接控制液晶顯示的系統(tǒng)。采用vb軟件編程,直觀的人機(jī)界面,通過(guò)計(jì)算機(jī)的鍵盤(pán)直接輸入字符和字符移動(dòng)方式,利用串口通訊傳送至單片機(jī),再由單片機(jī)系統(tǒng)控制液晶顯示模塊,使字符能夠在液晶屏上進(jìn)行移動(dòng)顯示。

          1主控芯片和液晶屏的選擇

          本系統(tǒng)中,主控芯片選用Atmel公司生產(chǎn)的AT89S51。該芯片具有4k字節(jié)可編程FLASH存儲(chǔ)器,支持串行、并行下載程序ISP在線編程,且價(jià)格低廉,執(zhí)行速度快。液晶顯示屏采用點(diǎn)陣字符型液晶顯示模塊LCD162,LCD162采用標(biāo)準(zhǔn)的16腳接口,可以顯示2行32個(gè)字、每行顯示16個(gè)ASCII字符,并且可以自定義圖形,只需要寫(xiě)入相對(duì)應(yīng)字符的ASCII碼就可以顯示。

          2硬件電路設(shè)計(jì)

          系統(tǒng)硬件電路主要有液晶顯示模塊和通訊模塊兩個(gè)部分組成,電路如圖1所示。

          圖1 系統(tǒng)硬件電路

          圖1系統(tǒng)硬件電路

          圖1中,液晶顯示部分,單片機(jī)與LCD162采用并行接口方式,單片機(jī)的P0口與液晶顯示屏的數(shù)據(jù)線D0~D7進(jìn)行連接,并通過(guò)8個(gè)10kΩ的上拉電阻上拉。P1。5連接LCD162的RS端,當(dāng)P1。5為高電平時(shí)選擇數(shù)據(jù)寄存器,低電平時(shí)選擇指令寄存器。P1。6連接RW,用于控制液晶顯示屏的讀寫(xiě)操作,當(dāng)P1。6為高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。P1。7則連接到LCD162的使能端,當(dāng)E由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。

          V0為液晶顯示器對(duì)比度調(diào)整端,通過(guò)一個(gè)10kΩ的電位器R9為V0提供可調(diào)的液晶驅(qū)動(dòng)電壓,實(shí)現(xiàn)顯示對(duì)比度的調(diào)節(jié)。

          本系統(tǒng)需要將微機(jī)鍵盤(pán)鍵入的字符顯示在液晶屏上,因此利用51單片機(jī)的異步串行通信接口與計(jì)算機(jī)進(jìn)行串行通信,再由單片機(jī)控制液晶顯示模塊。計(jì)算機(jī)有一個(gè)串行通訊端口RS-232,其邏輯電平用正負(fù)電壓表示,且信號(hào)使用負(fù)邏輯,邏輯0的電壓范圍是+5~+15V,邏輯1的電壓范圍是-5~-15V。而51單片機(jī)的輸出信號(hào)實(shí)際并不符合RS-232的標(biāo)準(zhǔn),其串行通信管腳上的電壓為T(mén)TL標(biāo)準(zhǔn),即0~5V之間的兩個(gè)狀態(tài)。因此,51單片機(jī)與MODEM連接時(shí),中間必須插入一個(gè)電平和邏輯轉(zhuǎn)換環(huán)節(jié)。這里利用MAX232芯片實(shí)現(xiàn)TTL電平和RS-232電平之間的轉(zhuǎn)換任務(wù)。

          3軟件設(shè)計(jì)與開(kāi)發(fā)

          軟件部分包括單片機(jī)控制的液晶顯示子程序、單片機(jī)和PC機(jī)間通訊子程序以及程序設(shè)計(jì)部分。

          3。1液晶顯示

          LCD162液晶模塊內(nèi)部有一個(gè)字符發(fā)生器CGRAM,存儲(chǔ)了160個(gè)不同點(diǎn)陣字符圖形,每個(gè)字符有一個(gè)固定代碼,通過(guò)標(biāo)準(zhǔn)字庫(kù)表查找其對(duì)應(yīng)代碼即可。顯示字符時(shí)需要先送地址(寫(xiě)命令),然后再送字符(寫(xiě)數(shù)據(jù))。如果要顯示字符庫(kù)外的字符,則需要利用CGRAM編制顯示。本系統(tǒng)液晶顯示模塊包括LCD的初始化、光標(biāo)定位、顯示字符等模塊,其程序流程圖如圖2所示。

          圖2 液晶顯示控制主程序

          圖2液晶顯示控制主程序

          初始化時(shí)需要設(shè)置初始狀態(tài)、顯示光標(biāo)、清屏、顯示模式等,這里設(shè)置LCD162為8位數(shù)據(jù),5×7字符點(diǎn)陣,兩行顯示,即將P0口寫(xiě)入38H。LCD162有寫(xiě)命令、讀狀態(tài)、寫(xiě)數(shù)據(jù)和讀數(shù)據(jù)4種操作,4種操作由P1。5,P1。6,P1。7的狀態(tài)確定。在進(jìn)行寫(xiě)命令、寫(xiě)數(shù)據(jù)和讀數(shù)據(jù)3種操作前需先進(jìn)行讀狀態(tài)操作,通過(guò)查詢方式查詢忙標(biāo)志,當(dāng)忙標(biāo)志為0時(shí)才可以進(jìn)行其他3類(lèi)操作。送顯示字符時(shí),需將顯示數(shù)據(jù)寫(xiě)在相應(yīng)的DDRAM地址中,用以確定顯示字符的顯示位置。以下是忙碌狀態(tài)判斷子程序和寫(xiě)數(shù)據(jù)子程序,其子程序流程如圖3和圖4所示。

          RSBITP1。5

          RWBITP1。6

          EBITP1。7

          LCDEQUP0

          ;判斷是否忙碌子程序:

          CHECK_BF:

          MOVLCD,#0FFH

          CLRRS;RS為低電平,RW為高電平時(shí),可以讀狀態(tài)

          SETBRW;RW=1,選擇讀模式

          CLRE

          NOP

          SETBE;E=1,允許讀/寫(xiě)LCD

          NOP

          JBLCD。7,CHECK_BF

          RET

          ;寫(xiě)數(shù)據(jù)子程序:

          WR_DATA:

          SETBRS;RS=1,選擇數(shù)據(jù)寄存器

          CLRRW

          CLRE

          ACALLCHECK_BF

          MOVLCD,A;將數(shù)據(jù)送入P0,

          NOP;給硬件反應(yīng)時(shí)間

          NOP

          NOP

          NOP

          SETBE

          NOP

          NOP

          NOP

          NOP

          CLRE;E由1-->0時(shí),液晶模塊開(kāi)始

          執(zhí)行命令

          RET

          圖3 判忙碌子程序

          圖3判忙碌子程序

          圖4 寫(xiě)數(shù)據(jù)子程序

          圖4寫(xiě)數(shù)據(jù)子程序

          3。2單片機(jī)與PC的串口通訊

          單片機(jī)的串行數(shù)據(jù)發(fā)送端TXD和串行數(shù)據(jù)接收端RXD分別與MAX232的T1和R1相連。設(shè)置時(shí)應(yīng)與PC機(jī)的串口設(shè)置相對(duì)應(yīng)。本系統(tǒng)單片機(jī)串行口采用工作方式1,波特率設(shè)置為9,由定時(shí)器T1產(chǎn)生。通信開(kāi)始時(shí)由PC機(jī)發(fā)出握手信號(hào),單片機(jī)收到握手信號(hào)后再向PC機(jī)發(fā)回響應(yīng)信號(hào),PC機(jī)收到響應(yīng)信號(hào),經(jīng)驗(yàn)證正確后表示串口通信成功。

          3。3PC機(jī)串行通信

          計(jì)算機(jī)的通信采用6。0軟件編寫(xiě)。在VB中有一個(gè)MSComm通訊控件,該控件可設(shè)置串行通信數(shù)據(jù)的發(fā)送和接收,通過(guò)對(duì)此控件的屬性和事件進(jìn)行相應(yīng)編程操作,就可以輕松地實(shí)現(xiàn)串口通訊。MScomm控件提供了兩種通信方式:事件驅(qū)動(dòng)和查詢方式,本系統(tǒng)采用查詢方式處理通信。為保證計(jì)算機(jī)和單片機(jī)的可靠通信,雙方需要設(shè)置相同的數(shù)據(jù)格式和波特率。本系統(tǒng)采用二進(jìn)制發(fā)送和接收數(shù)據(jù)。發(fā)送數(shù)據(jù)前,需將發(fā)送緩沖區(qū)清零,即MScomm控件的OutBufferCount屬性值為0。對(duì)通訊端口初始化時(shí)選用串行通訊口Com1,設(shè)置其波特率為9,無(wú)奇偶校驗(yàn),8位數(shù)據(jù)傳送,1位停止位。字符數(shù)據(jù)發(fā)送完畢后以回車(chē)鍵作為結(jié)束。

          led顯示器相關(guān)文章:led顯示器原理


          上拉電阻相關(guān)文章:上拉電阻原理

          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();