男女午夜激情_www.天堂av.com_亚洲综合小说区_亚洲欧美自拍视频_成年精品_久久www免费人成—看片_激情综合五月天_久久高潮视频_最新国产成人ab网站_国产精品卡一

機電之家資源網
單片機首頁|單片機基礎|單片機應用|單片機開發|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發
培訓信息
贊助商
PIC16F877單片機的圖形液顯示模塊接口技術
PIC16F877單片機的圖形液顯示模塊接口技術
 更新時間:2009-12-9 13:12:20  點擊數:0
【字體: 字體顏色

    摘要:詳述PIC16F877單片機的MG-12232圖形點陣式液晶顯示器的硬件接口電路特點和接口軟件編程方法。

    關鍵詞:PIC16F877 LCD 接口 單片機

引言

由于液晶顯示器(LCD)具有功耗低、體積小、質量輕、超薄等其他顯示器無法比擬的優點,它廣泛用于各種智能型儀器和低功耗電子產品中。點陣式(或圖形式)LCD不僅可以顯示字符、數字,還可以顯示各種圖形、曲線及漢字,并且可以實現屏幕上下左右滾動、動畫、閃爍、文本特征顯示等功能,用途十分廣泛。本文在簡介液晶顯示器MG-12232的驅動器SED1520F0A的結構、功能的基礎上,介紹了PIC16F877單片機的LCD硬件接口電路和軟件編程特點。

一、PIC16F877單片機與MG-12232的硬件接口電路

1.SED1520F0A的接口信號

SED1520F0A屬行列驅動及控制合一的小規模液晶顯示驅動芯片,電路簡單,經濟實用,內含振蕩器,只須外接振蕩電阻即可工作。模塊工作的穩定性好。SED1520F0A與微處理器的接口信號如下。

DB0~DB7:數據總線。

A0:數據/指令選擇信號。A0=1表示出現在數據總線上的是數據;A0=0,表示出現在數據總線上的是指令或讀出的狀態。

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

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

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

SED1520F0A與兩種總線的接口信號和時序的詳細資料見液晶顯示模塊使用手冊。

2.MG-12232模塊的引腳說明

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

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

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

3.PIC16F877單片機與MG-12232模塊的接口電路

現以功能強、價格低的PIC16F877單片機為例說明PIC與MG-12232模塊的硬件接口電路。其接口控制時序采用M6800操作時序,這樣SED1520F0A引出的控制信號R/W,A0,E1和E2由PIC16F877的I/O端口portb的4個腳控制。接口電路如圖1所示。圖中利用可調電阻R3實現液晶的背光亮度調節,直接用電阻R2驅動液晶的背光燈。由于PIC16F877的位操作指令豐富,所以用軟件不難模擬出M6800操作時序。

二、接口軟件編程

1.SED1520F0A指令集

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

表2 SED1520F0A指令集

指 令 名 稱 控 制 信 號 控  制  代  碼
R/W   A0 D7 D6 D5 D4 D3 D2 D1 D0
顯示開/關指令 0 0 1 0 1 0 1 1 1 I/O
顯示起始行設置 0 0 1 1 0 顯示起行(0~31)
設置頁地址 0 0 1 0 1 1 1 0 頁地址(0~3)
設置列地址 0 0

0

列地址(0~79)

讀狀態指令 1 0 BUSY ADC OFF/ON RESET 0 0 0 0
寫數據 0 1 顯示的數據
讀數據 1 1 顯示的數據
ADC選擇指令 0 0 1 0 1 0 0 0 0 0/1
靜態驅動開/關 0 0 1 0 1 0 0 1 0 0/1
占空比選擇 0 0 1 0 1 0 1 0 0 0/1
改寫開始指令 0 0 1 1 1 0 0 0 0 0
改寫結束指令 0 0 1 1 1 0 1 1 1 0
復位 0 0 1 1 1 0 0 0 1 0

2.MG-12232模塊的編程

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

在系統程序的初始化部分應該對程序中用到的寄存器和臨時變量作說明,如:

lcdfial equ 0x20 ;存放標志位

sbdata equ lcdflag+1 ;存放顯示數據

clmadd equ sbdata+1 ;存放列地址

pageadd equ clmadd+1 ;存放頁地址

pagenum equ pageadd+1 ;存放總頁數

clmsum equ pagenum+1 ;存放總列數

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

讀液晶顯示器狀態子程序

Ste bsf STATUS,RP0;選中存儲區1

movlw 0xff

movwf TRISD ;設置D口為輸入

bcf STATUS,RP0;選中存儲區0

bsf PORTB,4 ;E1=1

bsf PORTB,1 ;R/W=1

bcf PORTB,0 ;A0=0

Tae movf PORTD,0 ;將狀態字讀入W中

movwf lcdfiag ;將W中的狀態字存入lcdfiag中

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

goto Tae ;D7=1,為忙狀態

return

對液晶顯示器發指令子程序(指令保存在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寫入指令

return

對液晶顯示器寫數據子程序(數據保存在W寄存器中)

Dwe

Movwf sbdata ;數據暫存sbdata

Movf clmadd,0

Call Cwe ;設置列地址

Call Ste

Bsf STATUS,RP0

clrf TRISD ;設置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,寫入數據

call Ste

inct clmadd,1 ;列地址加1

return

液晶顯示器開顯示、關顯示和清屏子程序

Disp ;開E1顯示

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

call Cwe

bsf PORTB,4 ;E1=1

call Ste ;判是否忙

bsf STATUS,RP0

clrf TRISD ;設置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 ;設置D口輸入方式

bcf STATUS,RP0

movf PORTD,0

movwf lcdflag ;讀入狀態并查詢

btfsc lcdflag,5 ;是否確定打開

goto Disp

return

Disoff ;關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 ;讀入狀態并查詢

btfss lcdfiag,5 ;判是否關閉

gogo Disoff

return

Cler ;清屏

movlw 0xb8 ;設置頁地址代碼

movwf pageadd

movlw 0x04

movwf pagenum ;設置總頁數

clr1 movf pageadd,0

call Cwe

movlw 0x50 ;設置總列數

movwf clmsum ;80或60列

movlw 0x00

movwf clmadd ;設置起始列

clr2 movlw 0x00

call Dwe ;寫入00H

clar decfsz clmsum,1 ;本頁未清完

goto pageadd,1 ;頁號增1

decfsz pagenum,1 ;4頁未清完

goto clr1 ;返回繼續

return

有了以上的通用子程序,就可以構造出各種顯示程序,如字符、漢字、曲線等。當然,在這些程序執行前必須對液晶進行初始化。初始化的順序為:關顯示→正常顯示驅動設置→占空比設置→復位→ADC選擇→清屏→開顯示。程序如下:

初始化子程序

Lcdinit

call Disoff ;關顯示

movlw 0xa4 ;靜態顯示驅動

call Cwe

movlw 0xe2 ;復位

call Cwe

movlw 0xa0 ;ADC選擇正常輸出

call Cwe

movlw 0x9 ;占空比為1/32

call Cwe

call Cler ;清零

call Disp ;開顯示

return

對于字符、漢字和曲線顯示的原理是類似的。它們都是以字節為單位進行顯示。關鍵在于形成字模庫時必須保證每個上字節數據的最高位是與每一列最下面一個點相對應,最低位與每一列最上面點相對應。當然,這可以用專門的軟件來生成相應的代碼,然后再將這些代碼逐字節地寫到相應的頁和列。

結束語

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

  • 上一篇: PIC單片機程序轉換至EM78XX單片機
  • 下一篇: 沒有了
  • 發表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網友評論:(只顯示最新5條。)
    關于我們 | 聯系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發消息66821730(技術支持)點擊這里給我發消息66821730(廣告投放) 點擊這里給我發消息41031197(編輯) 點擊這里給我發消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業自行提供,該企業負責信息內容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(濱江)機電一體化學會
    中國行業電子商務100強網站

    網站經營許可證:浙B2-20080178-1
    主站蜘蛛池模板: 益阳市| 长岭县| 宣武区| 仙桃市| 北海市| 济南市| 抚顺市| 昌乐县| 会宁县| 绥芬河市| 六盘水市| 澄江县| 思茅市| 珠海市| 栖霞市| 车致| 壶关县| 南岸区| 资阳市| 芦溪县| 德钦县| 巴林右旗| 房产| 胶州市| 邵阳县| 金阳县| 永福县| 新津县| 英德市| 上杭县| 呼玛县| 定州市| 宁强县| 临澧县| 仙居县| 湟中县| 诸城市| 南召县| 蓝山县| 长沙县| 桂林市|