在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            關(guān) 閉

            新聞中心

            EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > PIC16F877單片機(jī)的圖形液顯示模塊接口技術(shù)

            PIC16F877單片機(jī)的圖形液顯示模塊接口技術(shù)

            作者: 時(shí)間:2004-12-07 來(lái)源:網(wǎng)絡(luò) 收藏
            摘要:詳述16單片機(jī)的MG-12232圖形點(diǎn)陣式液晶顯示器的硬件接口電路特點(diǎn)和接口軟件編程方法。

            關(guān)鍵詞:16 LCD 接口

            引言

            由于液晶顯示器(LCD)具有功耗低、體積小、質(zhì)量輕、超薄等其他顯示器無(wú)法比擬的優(yōu)點(diǎn),它廣泛用于各種智能型儀器和低功耗電子產(chǎn)品中。點(diǎn)陣式(或圖形式)LCD不僅可以顯示字符、數(shù)字,還可以顯示各種圖形、曲線及漢字,并且可以實(shí)現(xiàn)屏幕上下左右滾動(dòng)、動(dòng)畫(huà)、閃爍、文本特征顯示等功能,用途十分廣泛。本文在簡(jiǎn)介液晶顯示器MG-12232的驅(qū)動(dòng)器SED1520F0A的結(jié)構(gòu)、功能的基礎(chǔ)上,介紹了16單片機(jī)的LCD硬件接口電路和軟件編程特點(diǎn)。

            一、PIC877與MG-12232的硬件接口電路

            1.SED1520F0A的接口信號(hào)

            SED1520F0A屬行列驅(qū)動(dòng)及控制合一的小規(guī)模液晶顯示驅(qū)動(dòng)芯片,電路簡(jiǎn)單,經(jīng)濟(jì)實(shí)用,內(nèi)含振蕩器,只須外接振蕩電阻即可工作。模塊工作的穩(wěn)定性好。SED1520F0A與微處理器的接口信號(hào)如下。

            DB0~DB7:數(shù)據(jù)總線。

            A0:數(shù)據(jù)/指令選擇信號(hào)。A0=1表示出現(xiàn)在數(shù)據(jù)總線上的是數(shù)據(jù);A0=0,表示出現(xiàn)在數(shù)據(jù)總線上的是指令或讀出的狀態(tài)。

            RES:接口時(shí)序類型選擇。RES=1為M6800時(shí)序,其操作信號(hào)是E和R/W;RES=0為Intel8080時(shí)序,操作信號(hào)是RD和WR。

            RD(E):在Intel 8080時(shí)序時(shí)為讀,低電平有效;在M6800時(shí)序時(shí)為使能信號(hào),是個(gè)正脈沖,在下降沿處為寫(xiě)操作,在高電平時(shí)為讀操作。

            WR(R/W):在Intel 8080時(shí)序時(shí)為寫(xiě),低電平有效;在M6800時(shí)序時(shí)為讀、寫(xiě)選擇信號(hào),R/W=1為讀,R/W=0為寫(xiě)。

            SED1520F0A與兩種總線的接口信號(hào)和時(shí)序的詳細(xì)資料見(jiàn)液晶顯示模塊使用手冊(cè)。

            2.MG-12232模塊的引腳說(shuō)明

            MG-12232模塊共有18個(gè)引腳,各引腳定義如表1所列。

            表1 MG-12232模塊的引腳定義

            序 號(hào)符 號(hào)狀 態(tài)功 能 說(shuō) 明
            1Vcc-邏輯電源正
            2GND-邏輯電源地
            3V0-液晶顯示驅(qū)動(dòng)電源
            4RES-接口時(shí)序類型選擇
            5E2輸入主工作方式IC使能信號(hào)
            6E2輸入從工作方式IC使能信號(hào)
            7R/W輸入讀/寫(xiě)選擇信號(hào)
            8A0輸入寄存器選擇信號(hào)
            9~16DB0~DB7三態(tài)數(shù)據(jù)總線(低位)
            17SLA- 
            18SLK-背光燈負(fù)電源

            3.PIC877與MG-12232模塊的接口電路

            現(xiàn)以功能強(qiáng)、價(jià)格低的PIC877為例說(shuō)明PIC與MG-12232模塊的硬件接口電路。其接口控制時(shí)序采用M6800操作時(shí)序,這樣SED1520F0A引出的控制信號(hào)R/W,A0,E1和E2由PIC16F877的I/O端口portb的4個(gè)腳控制。接口電路如圖1所示。圖中利用可調(diào)電阻R3實(shí)現(xiàn)液晶的背光亮度調(diào)節(jié),直接用電阻R2驅(qū)動(dòng)液晶的背光燈。由于PIC16F877的位操作指令豐富,所以用軟件不難模擬出M6800操作時(shí)序。

            二、接口軟件編程

            1.SED1520F0A指令集

            SED1520F0A液晶顯示驅(qū)動(dòng)器有13條指令。表2所列的以與M6800系列MPU接口為例(RES=1)而總結(jié)出的指令。

            表2 SED1520F0A指令集

            指 令 名 稱控 制 信 號(hào)控 制 代 碼
            R/WA0D7D6D5D4D3D2D1D0
            顯示開(kāi)/關(guān)指令001010111I/O
            顯示起始行設(shè)置00110顯示起行(0~31)
            設(shè)置頁(yè)地址00101110頁(yè)地址(0~3)
            設(shè)置列地址00

            0

            列地址(0~79)

            讀狀態(tài)指令10BUSYADCOFF/ONRESET0000
            寫(xiě)數(shù)據(jù)01顯示的數(shù)據(jù)
            讀數(shù)據(jù)11顯示的數(shù)據(jù)
            ADC選擇指令0010100000/1
            靜態(tài)驅(qū)動(dòng)開(kāi)/關(guān)0010100100/1
            占空比選擇0010101000/1
            改寫(xiě)開(kāi)始指令0011100000
            改寫(xiě)結(jié)束指令0011101110
            復(fù)位0011100010

            2.MG-12232模塊的編程

            下面是以圖1的接口電路為例編寫(xiě)的只含E1主方式的程序(表1中E1=1,E2=0)。E2從方式(表1中E1=0,E2=1)的程序類推。

            在系統(tǒng)程序的初始化部分應(yīng)該對(duì)程序中用到的寄存器和臨時(shí)變量作說(shuō)明,如:

            lcdfial equ 0x20 ;存放標(biāo)志位

            sbdata equ lcdflag+1 ;存放顯示數(shù)據(jù)

            clmadd equ sbdata+1 ;存放列地址

            pageadd equ clmadd+1 ;存放頁(yè)地址

            pagenum equ pageadd+1 ;存放總頁(yè)數(shù)

            clmsum equ pagenum+1 ;存放總列數(shù)

            intscode equ clmsum+1 ;存放指令代碼

            讀液晶顯示器狀態(tài)子程序

            Ste bsf STATUS,RP0;選中存儲(chǔ)區(qū)1

            movlw 0xff

            movwf TRISD ;設(shè)置D口為輸入

            bcf STATUS,RP0;選中存儲(chǔ)區(qū)0

            bsf PORTB,4 ;E1=1

            bsf PORTB,1 ;R/W=1

            bcf PORTB,0 ;A0=0

            Tae movf PORTD,0 ;將狀態(tài)字讀入W中

            movwf lcdfiag ;將W中的狀態(tài)字存入lcdfiag中

            btfsc lcdflag,7 ;判斷D7位是否為0

            goto Tae ;D7=1,為忙狀態(tài)

            return

            對(duì)液晶顯示器發(fā)指令子程序(指令保存在W寄存器中)

            Cwe

            Movwf intscode ;指令暫存intscode

            Bcf PORTB,1 ;R/W=0

            Bcf PORTB,0 ;A0=0

            movf intscode,0

            movwf PORTD

            bcf PORTB,4 ;E1=0寫(xiě)入指令

            return

            對(duì)液晶顯示器寫(xiě)數(shù)據(jù)子程序(數(shù)據(jù)保存在W寄存器中)

            Dwe

            Movwf sbdata ;數(shù)據(jù)暫存sbdata

            Movf clmadd,0

            Call Cwe ;設(shè)置列地址

            Call Ste

            Bsf STATUS,RP0

            clrf TRISD ;設(shè)置D口為輸出方式

            bcf STATUS,RP0

            bsf PORTB,4 ;E1=1

            bcf PORTB,1 ;R/W=0

            bsf PORTB,0 ;A0=1

            movf sbdata,0

            movwf PORTD

            bcf PORTB,4 ;E1=0,寫(xiě)入數(shù)據(jù)

            call Ste

            inct clmadd,1 ;列地址加1

            return

            液晶顯示器開(kāi)顯示、關(guān)顯示和清屏子程序

            Disp ;開(kāi)E1顯示

            movlw 0xal ;將控制命令放在W中

            call Cwe

            bsf PORTB,4 ;E1=1

            call Ste ;判是否忙

            bsf STATUS,RP0

            clrf TRISD ;設(shè)置D口輸出方式

            bcf STATUS,RP0

            bsf PORTB,4 ;E1=1

            bsf PORTB,1 ;R/W=1

            bcf PORTB,0 ;A0=0

            bsf STATUS,RP0

            movlw 0xff

            movwf TRISD ;設(shè)置D口輸入方式

            bcf STATUS,RP0

            movf PORTD,0

            movwf lcdflag ;讀入狀態(tài)并查詢

            btfsc lcdflag,5 ;是否確定打開(kāi)

            goto Disp

            return

            Disoff ;關(guān)E1顯示

            movlw 0xae ;控制命令入在W中

            call Cwe

            bsf PORTB,4 ;E1=1

            bsf PORTB,1 ;R/W=1

            bcf PORTB,0 ;A0=0

            bsf STATUS,RP0

            movlw 0xff

            movwf TRISD

            bcf STATUS,RP0

            movf PORTD,0

            movwf lcdfiag ;讀入狀態(tài)并查詢

            btfss lcdfiag,5 ;判是否關(guān)閉

            gogo Disoff

            return

            Cler ;清屏

            movlw 0xb8 ;設(shè)置頁(yè)地址代碼

            movwf pageadd

            movlw 0x04

            movwf pagenum ;設(shè)置總頁(yè)數(shù)

            clr1 movf pageadd,0

            call Cwe

            movlw 0x50 ;設(shè)置總列數(shù)

            movwf clmsum ;80或60列

            movlw 0x00

            movwf clmadd ;設(shè)置起始列

            clr2 movlw 0x00

            call Dwe ;寫(xiě)入00H

            clar decfsz clmsum,1 ;本頁(yè)未清完

            goto pageadd,1 ;頁(yè)號(hào)增1

            decfsz pagenum,1 ;4頁(yè)未清完

            goto clr1 ;返回繼續(xù)

            return

            有了以上的通用子程序,就可以構(gòu)造出各種顯示程序,如字符、漢字、曲線等。當(dāng)然,在這些程序執(zhí)行前必須對(duì)液晶進(jìn)行初始化。初始化的順序?yàn)椋宏P(guān)顯示→正常顯示驅(qū)動(dòng)設(shè)置→占空比設(shè)置→復(fù)位→ADC選擇→清屏→開(kāi)顯示。程序如下:

            初始化子程序

            Lcdinit

            call Disoff ;關(guān)顯示

            movlw 0xa4 ;靜態(tài)顯示驅(qū)動(dòng)

            call Cwe

            movlw 0xe2 ;復(fù)位

            call Cwe

            movlw 0xa0 ;ADC選擇正常輸出

            call Cwe

            movlw 0x9 ;占空比為1/32

            call Cwe

            call Cler ;清零

            call Disp ;開(kāi)顯示

            return

            對(duì)于字符、漢字和曲線顯示的原理是類似的。它們都是以字節(jié)為單位進(jìn)行顯示。關(guān)鍵在于形成字模庫(kù)時(shí)必須保證每個(gè)上字節(jié)數(shù)據(jù)的最高位是與每一列最下面一個(gè)點(diǎn)相對(duì)應(yīng),最低位與每一列最上面點(diǎn)相對(duì)應(yīng)。當(dāng)然,這可以用專門(mén)的軟件來(lái)生成相應(yīng)的代碼,然后再將這些代碼逐字節(jié)地寫(xiě)到相應(yīng)的頁(yè)和列。

            結(jié)束語(yǔ)

            PIC單片機(jī)與液晶模塊的接口只在硬件上滿足液晶模塊的接口要求,軟件上能夠模擬出要求的時(shí)序,并且初始化正確后,就可以隨心所欲地顯示信息了。

            以上接口電路和程序在PIC試驗(yàn)板上調(diào)試通過(guò),可作為其他單片機(jī)與LCD接口的參考。



            關(guān)鍵詞: F877 PIC 16F

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉