新聞中心

        EEPW首頁 > 消費電子 > 在P87LPC764單片機I2C總線系統中擴展LCD顯示器

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

        ——
        作者:湖南工程學院 伍萍輝 唐勇奇 趙葵銀 時間:2007-11-16 來源:中電網 收藏
        1 引言

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

        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:段輸出端口。

                                                    pcf8577的引腳排列

        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體數據。
                    擴展lcd接口
          如果程序中的顯示緩沖區30H到7FH單元用來存放字形碼,則該I2C總線顯示電路的程序清單如下:

              
         

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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 靖远县| 大埔区| 宜章县| 新龙县| 南宁市| 晋宁县| 慈利县| 泾阳县| 卓尼县| 正定县| 徐水县| 二手房| 尚义县| 务川| 社会| 锡林郭勒盟| 勐海县| 铜梁县| 济源市| 石狮市| 灌南县| 和顺县| 喜德县| 肥城市| 虎林市| 宜州市| 高密市| 乌鲁木齐县| 张家口市| 青神县| 庆安县| 黔江区| 广灵县| 五河县| 揭阳市| 都江堰市| 石林| 澜沧| 岳普湖县| 扎兰屯市| 砀山县|