|
摘要:I2C總線是Philips公司推出的芯片間串行傳輸總線。目前,已有不少大電氣公司半導體廠商推出了不少帶有I2C總線接口的單片機。本文介紹一種利用Philips公司生產的P87LPC764單片機作為I2C總線控制器與I2C總線顯示器件SAA1064構成的I2C顯示電路,并給出相應的程序清單。 關鍵詞:I2C總線 P87LPC764單片機 SAA1064 顯示電路I2C總線是Philips公司推出的芯片間串行傳輸總線。它以串行數據線(SDA)和串行時鐘線(SCL)2根連線實現了完善的全雙工同步數據傳送,可以極方便地構成多機系統和外圍器件擴展系統。關于I2C總線的結構和工作原理詳見參考文獻1。一、P87LPC764單片機I2C總線接口P87LPC764是Philips公司生產的一種小封裝、低成本、高性能的單片機(有關它的詳細介紹見參考文獻2)。它采用80C51加速處理器結構,片內帶有支持I2C總線的硬件接口。當激活I2C總線時,P87LPC764端口1中的P1.2與P1.3分別作為SCL和SDA行使I2C總線功能。其I2C總線由3個特殊功能寄存器控制,這3個寄存器為I2C控制寄存器I2CON、I2C配置寄存器I2CFG和I2C數據寄存器I2DAT。各寄存器格式和位含義參見本刊第5期第36頁。二、I2C總線顯示器件SAA10641.引腳功能SAA1064是I2C總線系統中典型的LED驅動控制器件,為雙極型集成電路,有2×8位輸出驅動接口,可靜態驅動2位或動態驅動4位8段LED顯示器。SAA1064的器件地址為0111,其引腳地址端ADR按輸入電平大小將A1A0編為4個不同的從地址,故在1個I2C總線系統中最多可以掛接4片SAA1064,實現16位LED顯示。SAA1064為24腳雙列直插封裝,其引腳排列如圖1所示。
ADR 尋址端,SAA1064通過對該腳輸入不同的模擬電壓,以確定其不同的地址。SAA1064規定輸入該腳的電壓值為VEE、(3/8)Vcc、(5/8)Vcc及Vcc時,分別對應十六地地址70H、72H、74H、76H(寫操作)或71H、73H、75H、77H(讀操作)。CEXT 時鐘振蕩器的外接電容,典型值為2.7nF。P1~P8 段驅動輸出端口1。P1為最低位,P8為最高位。P9~P16 段驅動輸出端口2。P9為最低位,P16為最高位。MX1、MX2 動態顯示方式時的公共極驅動信號輸出端,用以切換兩對數碼管輪流顯示。SDA、SCL I2C總線的數據線和時鐘線。2.數據操作格式SAA1064除了與LED驅動控制相關的寫操作外,還有能反映系統上電標志的讀操作。SAA1064的讀操作狀態字節的讀出操作,其狀態字節僅最高位有意義,定義為PR。上電后PR為"1",在對其進行讀狀態字節操作后清零。因此,PR=1表示從上次讀狀態后出現過掉電和加電。利用這一功能,在系統中可作為冷熱啟動標志。(1)數據的輸入操作SAA1064的顯示驅動控制只需要I2C總線對其進行寫入操作,即按照子地址(SUBADR)寫入控制命令字節及顯示器的段碼數據即可,其數據操作格式如下: |