新聞中心

        EEPW首頁 > 設計應用 > 在P87LPC764單片機I2C總線系統中擴展LCD顯示器

        在P87LPC764單片機I2C總線系統中擴展LCD顯示器

        ——
        作者:湖南工程學院 伍萍輝 唐勇奇 趙葵銀 時間:2007-01-26 來源:《國外電子元器件》 收藏


        1 引言
          
        i2c總線是philips公司推出的芯片間串行傳輸總線。它僅用串行數據線(sda)和串行時鐘線(scl)兩根連線便實現了完善的全雙工同步數據傳送,并可很方便地構成多機系統和外圍器件擴展系統。
          
        本文介紹在p87lpc764單片機中利用i2c總線系統中典型的lcd驅動控制器件pcf8577c來擴展256段靜態lcd的電路設計方法。

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

        2 硬件電路設計

        2.1 p87lpc764單片機的i2c總線接口
          
        p87lpc764是philips公司生產的一種小封裝、低成本、高性能的單片機(具體內容見參考文獻2)。它采用80c51加速處理器結構,片內帶有支持i2c總線的硬件接口。當激活i2c總線時,p87lpc764端口1中的p1.2與p1.3可分別用作scl和sda總線功能。其i2c總線由3個特殊功能寄存器控制,即i2c控制寄存器i2con、i2c配置寄存器i2cfg、i2c數據寄存器i2dat。各寄存器格式及位含義如下。

        a.i2con寄存器
          
        i2con寄存器各位的含義在進行讀寫操作時完全不同。下面分別介紹其讀、寫操作格式。

        各位功能如下:
          
        rdat:數據接收位。在scl線的上升沿時由sda線上獲取。讀rdat位時不清除drdy,也不釋放scl線。
          
        atn:當drdy、arl、str或stp中任意一個為1時,atn置1。通過測試atn位可判斷總線上是否發生某類事件。
          
        drdy:數據準備好標志位。在scl上升沿時置位,讀寫i2dat寄存器或向cdr寫入1時清0。 arl:總線仲裁失敗標志位。

        str:啟動標志位。當檢測到啟動條件時置1。

        stp:停止標志位。當檢測到停止條件時置1。 master:當本器件成為i2c總線主控器時置1。

        其中:

        cxa:寫入1,清除數據發送狀態。
          
        idle:寫入1,則被控制要檢測到下一位啟動位時才接收總線信息。

        cdr:寫入1,清除drdy。

        carl:寫入1,清除arl。

        cstr:寫入1,清除str。

        cstp:寫入1,清除stp。
          
        xstr:當裝置為主控制器時,向xstr和cdr寫入1,使i2c總線發送重復啟動位。
          
        xstp:當裝置為主控制器時,向xstp和cdr寫入1,使i2c總線發送停止位。

        b.i2cfg寄存器

        sla:寫入1,本裝置成為i2c總線被控器。
          
        mastrq:寫入1,本裝置成為i2c總線主控器。

        cti:寫入1,清除定時器1溢出標志。
          
        tirun:寫入1,定時器1開始運行;寫入0,停止定時器1運行并將定時器清0。
          
        ct1和ct0用來決定scl線上高低電平的最小時間。

        c.i2dat寄存器

        i2dat寄存器的讀、寫格式是不同的。

        其中rdat為數據接收位。在scl線的上升沿時從sda中獲取。在從i2dat的rdat中讀數據的同時,可清除drdy和設置發送激活狀態。

        其中xdat為數據發送位。下一個要發送的數據寫入此位。寫xdat時,應清除drdy和設置發送激活狀態。

        2.2 i2c總線顯示器件pcf8577c

        a.引腳功能
          
        pcf8577c是i2c總線系統中典型的lcd驅動控制器件,在靜態方式時可驅動32段lcd;在雙級方式時可驅動64段lcd。若采用多片級聯,則最大可構成256段lcd顯示系統。另外,pcf8577c還具有顯示數據自動增量寫入功能,而且編程十分簡單。pcf8577的引腳排列如圖1所示。各引腳功能如下:

        s32~s1:段輸出端口。

        bp1:背極輸出。級聯時可作為同步輸入端,接第一級的bp1信號作為同步信號。
          
        a2/bp2:在靜態驅動方式下,該端作為硬件地址線a2,用于設定8577c的硬件子地址。在雙級驅動方式下,該腳用作第二背極輸出bp2。級聯時則作為同步輸入端,接第一級的bp2信號作為同步信號。在雙極方式下,其硬件子地址僅由a1和a0來決定。

        a1:硬件地址線。片內無下拉電路,不可懸空。
          
        a0/osc:該腳需外接電阻電容來構成振蕩器,此時a0被規定為邏輯0,用作硬件地址線。級聯時,除第一級之外,其它各級均不外接電阻電容構成的振蕩器,而應接vdd或vss來設置器件子地址。

        vdd和vss:分別為電源正、負極。

        scl和sda:分別為i2c總線的時鐘和數據線。

        b.數據操作格式
          
        8577c有九個寄存器,其操作格式如圖2所示。下面就控制寄存器和段字節寄存器加以說明。

        ●控制寄存器

        控制寄存器用于在微處理機對8577c的一次數據傳送過程中裝入第二字節(控制字節)。控制字各位含義如下:

        mode:驅動方式選擇位,“0”為選擇靜態驅動方式;“1”為選擇雙極驅動方式。
          
        bank:數據選擇位,“0”為選擇顯示a體數據,“1”為選擇顯示b體數據。
          
        v5v4v3:這三位與硬件子地址相對應。若器件的從地址與i2c總線上的從地址相符,且v5v4v3=a2a1a0,則該器件被選中,此時即可接收總線上送來的數據,并將其裝入段字節寄存器,否則不予理睬。在雙極驅動方式下,由于a2作bp2,故v5無效。
          
        v2v1v0:段字節寄存器sbr的地址位,用來決定將段數據寫入哪一個sbr。

        用v5~v0可組成段字節向量sbv,它具有自動增量功能。若需一次傳送多個段字節數據,可在每裝入一個段字節數據后便sbv自動加2(靜態方式)或加1(雙級方式),以便裝入下一個數據;級聯時,當一片8577c裝滿后,sbv自動增量,并指向硬件子地址與之相鄰的下一個8577c的sbr。sbv的值可以在111111~000000之間循環滾動。

        ●段字節寄存器sbr
          
        八個sbr可分成兩組,地址為偶數的一組稱為a體,奇數組稱為b體。在靜態方式下,要么顯示a體數據,要么顯示b體數據。可以通過改變bank位的值來切換顯示內容。在雙極方式下,八個sbr將同時使用,這時bank為不關心碼,a體對應于bp1,b體對應于bp2。

        c.總線操作
          
        pcf8577c的總線操作包括從地址和硬件子地址,其中從地址固定為0111010,共七位,是i2c總線委員會分配的。此外,還有三位硬件子地址(a2a1a0)待設定。若應用系統中有多片8577c,則需分別設定不同的硬件子地址來加以區別。選中8577c指的是它的從地址和硬件子地址都被選中。

        其中:起始信號s之后的第一個字節中的最低位是方向位,因8577c只能接收數據,所以該位必須為0;其余七位是從地址。若系統含多片8577c,則每片都會對第一和第二字節作出應答;而段數據字節后的應答信號僅由被選中的芯片產生。數據字節可連續多個。如果僅改變bank值,而不改變sbr中的內容,則應在控制字節的應答位之后發送停止信號p,這時被選中的芯片將更新bank。

        2.3 顯示電路設計
          
        利用p87lpc764擴展lcd的接口電路如圖3所示。該電路采用靜態驅動方式,由p87lpc764單片機訪問8片8577c以組成最大級聯系統。每片8577c可驅動32段lcd,因此,共可擴展256段lcd。而在級聯應用時,只由第一級構成振蕩器,以輸出背極信號,并對后級進行同步。

        3 軟件設計
          
        該應用電路是一個單主i2c總線系統,數據傳送操作只有主發送方式,因而在編程過程中沒有檢測總線錯誤。數據發送時,每發送1個字節,都應檢測應答信號,如無應答信號,建立標志位f0以重發數據。該電路采用靜態方式,顯示為a體數據。

        如果程序中的顯示緩沖區30h到7fh單元用來存放字形碼,則該i2c總線顯示電路的程序清單如下:


        4 結束語
          
        本文介紹了i2c總線系統中利用典型的lcd驅動控制器件pcf8577c擴展lcd顯示器的電路及程序設計。參考本文思路,也可實現動態lcd顯示器的擴展。該方法在i2c總線系統中進行人機接口電路設計時具有較好的參考價值。



        關鍵詞: 液晶顯示 LCD

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 页游| 祁门县| 抚顺县| 汽车| 美姑县| 集贤县| 辰溪县| 邢台市| 丁青县| 崇明县| 神农架林区| 平度市| 城口县| 射洪县| 东源县| 安宁市| 湟源县| 库尔勒市| 疏附县| 永胜县| 栖霞市| 武川县| 贵德县| 资兴市| 迁安市| 麻阳| 永仁县| 阿拉善右旗| 大名县| 黄梅县| 扎赉特旗| 波密县| 乌海市| 赤壁市| 米脂县| 绥中县| 徐汇区| 城口县| 黄龙县| 元朗区| 临城县|