<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 在P87LPC764單片機I2C總線(xiàn)系統中擴展LCD顯示器

在P87LPC764單片機I2C總線(xiàn)系統中擴展LCD顯示器

——
作者:湖南工程學(xué)院 伍萍輝 唐勇奇 趙葵銀 時(shí)間:2007-11-16 來(lái)源:中電網(wǎng) 收藏
1 引言

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

2 硬件電路設計

2.1 P87LPC764的I2C總線(xiàn)接口

   P87LPC764是Philips公司生產(chǎn)的一種小封裝、低成本、高性能的(具體內容見(jiàn)參考文獻2)。它采用80C51加速處理器結構,片內帶有支持I2C總線(xiàn)的硬件接口。當激活I(lǐng)2C總線(xiàn)時(shí),P87LPC764端口1中的P1.2與P1.3可分別用作SCL和SDA總線(xiàn)功能。其I2C總線(xiàn)由3個(gè)特殊功能寄存器控制,即I2C控制寄存器I2CON、I2C配置寄存器I2CFG、I2C數據寄存器I2DAT。各寄存器格式及位含義如下。

a.I2CON寄存器

   I2CON寄存器各位的含義在進(jìn)行讀寫(xiě)操作時(shí)完全不同。下面分別介紹其讀、寫(xiě)操作格式。

      

各位功能如下:
   
  RDAT:數據接收位。在SCL線(xiàn)的上升沿時(shí)由SDA線(xiàn)上獲取。讀RDAT位時(shí)不清除DRDY,也不釋放SCL線(xiàn)。
   
  ATN:當DRDY、ARL、STR或STP中任意一個(gè)為1時(shí),ATN置1。通過(guò)測試ATN位可判斷總線(xiàn)上是否發(fā)生某類(lèi)事件。
   
  DRDY:數據準備好標志位。在SCL上升沿時(shí)置位,讀寫(xiě)I2DAT寄存器或向CDR寫(xiě)入1時(shí)清0。 ARL:總線(xiàn)仲裁失敗標志位。

  STR:?jiǎn)?dòng)標志位。當檢測到啟動(dòng)條件時(shí)置1。

  STP:停止標志位。當檢測到停止條件時(shí)置1。 MASTER:當本器件成為I2C總線(xiàn)主控器時(shí)置1。

     

其中:

CXA:寫(xiě)入1,清除數據發(fā)送狀態(tài)。
   
IDLE:寫(xiě)入1,則被控制要檢測到下一位啟動(dòng)位時(shí)才接收總線(xiàn)信息。

CDR:寫(xiě)入1,清除DRDY。

CARL:寫(xiě)入1,清除ARL。

CSTR:寫(xiě)入1,清除STR。

CSTP:寫(xiě)入1,清除STP。
   
XSTR:當裝置為主控制器時(shí),向XSTR和CDR寫(xiě)入1,使I2C總線(xiàn)發(fā)送重復啟動(dòng)位。
   
XSTP:當裝置為主控制器時(shí),向XSTP和CDR寫(xiě)入1,使I2C總線(xiàn)發(fā)送停止位。

     
b.I2CFG寄存器

 SLA:寫(xiě)入1,本裝置成為I2C總線(xiàn)被控器。
   
 MASTRQ:寫(xiě)入1,本裝置成為I2C總線(xiàn)主控器。

 CTI:寫(xiě)入1,清除定時(shí)器1溢出標志。
   
 TIRUN:寫(xiě)入1,定時(shí)器1開(kāi)始運行;寫(xiě)入0,停止定時(shí)器1運行并將定時(shí)器清0。
   
       CT1和CT0用來(lái)決定SCL線(xiàn)上高低電平的最小時(shí)間。

c.I2DAT寄存器

  I2DAT寄存器的讀、寫(xiě)格式是不同的。

    

     其中RDAT為數據接收位。在SCL線(xiàn)的上升沿時(shí)從SDA中獲取。在從I2DAT的RDAT中讀數據的同時(shí),可清除DRDY和設置發(fā)送激活狀態(tài)。

     

     其中XDAT為數據發(fā)送位。下一個(gè)要發(fā)送的數據寫(xiě)入此位。寫(xiě)XDAT時(shí),應清除DRDY和設置發(fā)送激活狀態(tài)。

2.2 I2C總線(xiàn)顯示器件PCF8577C

 a.引腳功能
   
       PCF8577C是I2C總線(xiàn)系統中典型的LCD驅動(dòng)控制器件,在靜態(tài)方式時(shí)可驅動(dòng)32段LCD;在雙級方式時(shí)可驅動(dòng)64段LCD。若采用多片級聯(lián),則最大可構成256段LCD顯示系統。另外,PCF8577C還具有顯示數據自動(dòng)增量寫(xiě)入功能,而且編程十分簡(jiǎn)單。PCF8577的引腳排列如圖1所示。各引腳功能如下:

       S32~S1:段輸出端口。

                                            pcf8577的引腳排列

BP1:背極輸出。級聯(lián)時(shí)可作為同步輸入端,接第一級的BP1信號作為同步信號。
   
A2/BP2:在靜態(tài)驅動(dòng)方式下,該端作為硬件地址線(xiàn)A2,用于設定8577C的硬件子地址。在雙級驅動(dòng)方式下,該腳用作第二背極輸出BP2。級聯(lián)時(shí)則作為同步輸入端,接第一級的BP2信號作為同步信號。在雙極方式下,其硬件子地址僅由A1和A0來(lái)決定。

A1:硬件地址線(xiàn)。片內無(wú)下拉電路,不可懸空。
   
A0/OSC:該腳需外接電阻電容來(lái)構成振蕩器,此時(shí)A0被規定為邏輯0,用作硬件地址線(xiàn)。級聯(lián)時(shí),除第一級之外,其它各級均不外接電阻電容構成的振蕩器,而應接VDD或VSS來(lái)設置器件子地址。

VDD和VSS:分別為電源正、負極。

SCL和SDA:分別為I2C總線(xiàn)的時(shí)鐘和數據線(xiàn)。

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

●控制寄存器
     控制寄存器用于在微處理機對8577C的一次數據傳送過(guò)程中裝入第二字節(控制字節)??刂谱指魑缓x如下:

 MODE:驅動(dòng)方式選擇位,“0”為選擇靜態(tài)驅動(dòng)方式;“1”為選擇雙極驅動(dòng)方式。
   
 BANK:數據選擇位,“0”為選擇顯示A體數據,“1”為選擇顯示B體數據。
   
 V5V4V3:這三位與硬件子地址相對應。若器件的從地址與I2C總線(xiàn)上的從地址相符,且V5V4V3=A2A1A0,則該器件被選中,此時(shí)即可接收總線(xiàn)上送來(lái)的數據,并將其裝入段字節寄存器,否則不予理睬。在雙極驅動(dòng)方式下,由于A(yíng)2作BP2,故V5無(wú)效。
   
V2V1V0:段字節寄存器SBR的地址位,用來(lái)決定將段數據寫(xiě)入哪一個(gè)SBR。

      用V5~V0可組成段字節向量SBV,它具有自動(dòng)增量功能。若需一次傳送多個(gè)段字節數據,可在每裝入一個(gè)段字節數據后便SBV自動(dòng)加2(靜態(tài)方式)或加1(雙級方式),以便裝入下一個(gè)數據;級聯(lián)時(shí),當一片8577C裝滿(mǎn)后,SBV自動(dòng)增量,并指向硬件子地址與之相鄰的下一個(gè)8577C的SBR。SBV的值可以在111111~000000之間循環(huán)滾動(dòng)。

                                  寄存器

●段字節寄存器SBR
   
  八個(gè)SBR可分成兩組,地址為偶數的一組稱(chēng)為A體,奇數組稱(chēng)為B體。在靜態(tài)方式下,要么顯示A體數據,要么顯示B體數據??梢酝ㄟ^(guò)改變BANK位的值來(lái)切換顯示內容。在雙極方式下,八個(gè)SBR將同時(shí)使用,這時(shí)BANK為不關(guān)心碼,A體對應于BP1,B體對應于BP2。

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

      

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

2.3 顯示電路設計
   
       利用P87LPC764擴展LCD的接口電路如圖3所示。該電路采用靜態(tài)驅動(dòng)方式,由P87LPC764單片機訪(fǎng)問(wèn)8片8577C以組成最大級聯(lián)系統。每片8577C可驅動(dòng)32段LCD,因此,共可擴展256段LCD。而在級聯(lián)應用時(shí),只由第一級構成振蕩器,以輸出背極信號,并對后級進(jìn)行同步。

3 軟件設計
   
       該應用電路是一個(gè)單主I2C總線(xiàn)系統,數據傳送操作只有主發(fā)送方式,因而在編程過(guò)程中沒(méi)有檢測總線(xiàn)錯誤。數據發(fā)送時(shí),每發(fā)送1個(gè)字節,都應檢測應答信號,如無(wú)應答信號,建立標志位F0以重發(fā)數據。該電路采用靜態(tài)方式,顯示為A體數據。
            擴展lcd接口
  如果程序中的顯示緩沖區30H到7FH單元用來(lái)存放字形碼,則該I2C總線(xiàn)顯示電路的程序清單如下:

      
 

4 結束語(yǔ)
   
  本文介紹了I2C總線(xiàn)系統中利用典型的LCD驅動(dòng)控制器件PCF8577C擴展的電路及程序設計。參考本文思路,也可實(shí)現動(dòng)態(tài)的擴展。該方法在I2C總線(xiàn)系統中進(jìn)行人機接口電路設計時(shí)具有較好的參考價(jià)值。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>