新聞中心

        EEPW首頁 > 光電顯示 > 設計應用 > 基于VB 6.0 液晶顯示系統的設計

        基于VB 6.0 液晶顯示系統的設計

        作者: 時間:2012-05-21 來源:網絡 收藏

        摘要:利用提供的MSComm通訊控件完成PC機與單片機的串行通訊,由單片機控制顯示模塊,實現通過計算機輸入字符直接顯示在顯示屏的控制系統。

        本文引用地址:http://www.104case.com/article/167992.htm

        0引言

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

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

        本系統中,主控芯片選用Atmel公司生產的AT89S51。該芯片具有4k字節可編程FLASH存儲器,支持串行、并行下載程序ISP在線編程,且價格低廉,執行速度快。液晶顯示屏采用點陣字符型液晶顯示模塊LCD162,LCD162采用標準的16腳接口,可以顯示2行32個字、每行顯示16個ASCII字符,并且可以自定義圖形,只需要寫入相對應字符的ASCII碼就可以顯示。

        2硬件電路設計

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

        圖1 系統硬件電路

        圖1系統硬件電路

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

        V0為液晶顯示器對比度調整端,通過一個10kΩ的電位器R9為V0提供可調的液晶驅動電壓,實現顯示對比度的調節。

        本系統需要將微機鍵盤鍵入的字符顯示在液晶屏上,因此利用51單片機的異步串行通信接口與計算機進行串行通信,再由單片機控制液晶顯示模塊。計算機有一個串行通訊端口RS-232,其邏輯電平用正負電壓表示,且信號使用負邏輯,邏輯0的電壓范圍是+5~+15V,邏輯1的電壓范圍是-5~-15V。而51單片機的輸出信號實際并不符合RS-232的標準,其串行通信管腳上的電壓為TTL標準,即0~5V之間的兩個狀態。因此,51單片機與MODEM連接時,中間必須插入一個電平和邏輯轉換環節。這里利用MAX232芯片實現TTL電平和RS-232電平之間的轉換任務。

        3軟件設計與開發

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

        3。1液晶顯示

        LCD162液晶模塊內部有一個字符發生器CGRAM,存儲了160個不同點陣字符圖形,每個字符有一個固定代碼,通過標準字庫表查找其對應代碼即可。顯示字符時需要先送地址(寫命令),然后再送字符(寫數據)。如果要顯示字符庫外的字符,則需要利用CGRAM編制顯示。本系統液晶顯示模塊包括LCD的初始化、光標定位、顯示字符等模塊,其程序流程圖如圖2所示。

        圖2 液晶顯示控制主程序

        圖2液晶顯示控制主程序

        初始化時需要設置初始狀態、顯示光標、清屏、顯示模式等,這里設置LCD162為8位數據,5×7字符點陣,兩行顯示,即將P0口寫入38H。LCD162有寫命令、讀狀態、寫數據和讀數據4種操作,4種操作由P1。5,P1。6,P1。7的狀態確定。在進行寫命令、寫數據和讀數據3種操作前需先進行讀狀態操作,通過查詢方式查詢忙標志,當忙標志為0時才可以進行其他3類操作。送顯示字符時,需將顯示數據寫在相應的DDRAM地址中,用以確定顯示字符的顯示位置。以下是忙碌狀態判斷子程序和寫數據子程序,其子程序流程如圖3和圖4所示。

        RSBITP1。5

        RWBITP1。6

        EBITP1。7

        LCDEQUP0

        ;判斷是否忙碌子程序:

        CHECK_BF:

        MOVLCD,#0FFH

        CLRRS;RS為低電平,RW為高電平時,可以讀狀態

        SETBRW;RW=1,選擇讀模式

        CLRE

        NOP

        SETBE;E=1,允許讀/寫LCD

        NOP

        JBLCD。7,CHECK_BF

        RET

        ;寫數據子程序:

        WR_DATA:

        SETBRS;RS=1,選擇數據寄存器

        CLRRW

        CLRE

        ACALLCHECK_BF

        MOVLCD,A;將數據送入P0,

        NOP;給硬件反應時間

        NOP

        NOP

        NOP

        SETBE

        NOP

        NOP

        NOP

        NOP

        CLRE;E由1-->0時,液晶模塊開始

        執行命令

        RET

        圖3 判忙碌子程序

        圖3判忙碌子程序

        圖4 寫數據子程序

        圖4寫數據子程序

        3。2單片機與PC的串口通訊

        單片機的串行數據發送端TXD和串行數據接收端RXD分別與MAX232的T1和R1相連。設置時應與PC機的串口設置相對應。本系統單片機串行口采用工作方式1,波特率設置為9,由定時器T1產生。通信開始時由PC機發出握手信號,單片機收到握手信號后再向PC機發回響應信號,PC機收到響應信號,經驗證正確后表示串口通信成功。

        3。3PC機串行通信

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

        led顯示器相關文章:led顯示器原理


        上拉電阻相關文章:上拉電阻原理

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 柳河县| 尼勒克县| 宁陕县| 尤溪县| 尉氏县| 赤峰市| 沛县| 鹿邑县| 南郑县| 柯坪县| 舒城县| 海阳市| 丰顺县| 祥云县| 上林县| 双桥区| 邛崃市| 会同县| 莱芜市| 福州市| 忻州市| 容城县| 朝阳县| 西藏| 博野县| 荣昌县| 岢岚县| 裕民县| 德化县| 阿拉尔市| 钟祥市| 图木舒克市| 阿瓦提县| 会理县| 佛教| 德清县| 班戈县| 关岭| 武川县| 怀安县| 讷河市|