【正文】
R . 7位 符 號 功 能I 2 A D R . 7 ~ 1 I 2 A D R . 6 ~ 0 七 位 自 身 從 地 址 。當(dāng)該位置位時對通用調(diào)用地址 (00H)進(jìn)行識別。在主模式中該寄存器的內(nèi)容無效。 I 2 D A T . 7 I 2 D A T . 1I 2 D A T . 2I 2 D A T . 3I 2 D A T . 4I 2 D A T . 5I 2 D A T . 6 I 2 D A T . 0不 可 位 尋 址復(fù) 位 源 : 任 何 復(fù) 位復(fù) 位 值 :0 0 0 0 0 0 0 0 BI 2 D A T 地 址 : D A H 7 6 5 4 3 2 1 0 圖 33 I2C 數(shù)據(jù)寄存器 CPU可以對 I2ADR 寄存器進(jìn)行讀或?qū)懖僮鳌?I2DAT 中的數(shù)據(jù)總是從右向左移位。這意味著用戶只能在 SI 置位時對 I2DAT 進(jìn)行訪問。 陜西科技大學(xué)畢業(yè)論文(設(shè)計說明書) 10 V C CR pR pL P C 9 2 2S D AS C LS C LA / D 轉(zhuǎn) 換S D AS C LL E D 驅(qū) 動S D AS C LI 2 C 總 線●●●●●●●● 圖 32 I2C 總線配置 I2C特殊功能寄存器描述 I2DAT 包含要發(fā)送的數(shù)據(jù)或剛接收的數(shù)據(jù)。 I2C 總線用兩條線 SDA 和 SCL在總線和器件之間傳遞信息。有嚴(yán)格的規(guī)范,如接 口的電氣特性、信號時序、信號傳輸?shù)亩x、總線狀態(tài)設(shè)置、總線管理規(guī)則及總線狀態(tài)處理等。 I2C總線接口 概述 I2C(全稱: inter integrated chips)是一種串行通信協(xié)議,專利權(quán)歸屬于 Philips 公司。如果兩個不同中斷優(yōu)先級的中斷源同時申請中斷時,響應(yīng)較高優(yōu)先級的中斷申請。一個中斷服務(wù)程序可響應(yīng)更高級的中斷,但不能響應(yīng)同優(yōu)先級或低級中斷。 IEN0 中還包含了一個全局禁止位 EA,它可禁止所有中斷。 LPC922 支持 12 個中斷源:外部中斷 0 和 定時器 0 和 串口 Tx、串口Rx、組合的串口 Tx/Rx、掉電檢測、看門狗 /實時時鐘、 I2C、鍵盤中斷和比較器 1 和 2。 中斷 LPC922 采用 4 中斷優(yōu)先級結(jié)構(gòu)。推挽模式一般用于需要更大驅(qū)動電流的情況。 僅為輸入配置 該配置無輸出驅(qū)動器,它帶有一個施密特觸發(fā)輸入口以及一個干擾抑制電路。作為一個邏輯輸出時這種配置方式必須有外部上拉,一般通過電阻 外接到 VDD。 準(zhǔn)雙向口帶有一個施密特觸發(fā)輸入以及一個干擾抑制電路。在準(zhǔn)雙向口模式中如果用戶在管腳加上 5V電壓將會有電流從管腳流向 VDD。準(zhǔn)雙向口除了有三個上拉晶體管適應(yīng)不同的需要外,其特性和開漏輸出有些相似。這是因為當(dāng)口線輸出為 1 時驅(qū)動能力很弱,允許外部裝置將其拉低。 (SCL/T0)和 (SDA/INT0)只能配置為輸入口或開漏口。 每個口配置 2 個控制寄存器控制每個管腳輸出類型。I/O 口的具體數(shù)目取決于所選擇的振蕩和復(fù)位方式,具體如表 31。 I/O口 LPC922 有 3 個 I/O 口 P0、 P1 和 P3。 P3 口是一個可由用戶定義輸出類型的 2 位 I/O 口,在上電復(fù)位時, P3 鎖存器配置為內(nèi)部上拉禁止的僅為輸入模式。引腳 12, 11, 10, 9, 8, 4, 3, 2;其中 4 引腳是 RST 外部復(fù)位輸入 (通過 Flash 配置選擇 )。 為僅為輸入模式。 P1 口由口配置寄存器設(shè)定為輸出或輸入模式,每一位均可單獨設(shè)定。 P1 是一個可由用戶定義輸出類型的 8 位 I/O口。所有管腳都具有施密特觸發(fā)輸入。 P0 口由口配置寄存器設(shè)定為輸出或輸入模式,每一個管腳均可單獨設(shè)定。 基于 I2C 總線的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng) 7 圖 31 功能框圖 引腳配置 P0 口是一個可由用戶定義輸出類型的 8 位 I/O 口。 所有口線均有 LED 驅(qū)動能力 20mA; LPC922 最少有 15 個 I/O 口,選擇片內(nèi)振蕩和片內(nèi)復(fù)位時可多達(dá) 18 個 I/O 口。另外還提供軟件復(fù)位功能;可配置的片內(nèi)振蕩器及其頻率范圍和 RC 振蕩器選項(通過用戶可編程 Flash配置位選擇),選擇 RC 振蕩器時不需要外接振蕩器件。 I/O 口可承受 5V(可上拉或驅(qū)動到 )的電壓;它有2 個 16 位定時 /計數(shù)器,每一個定時器均可設(shè)置為溢出時觸發(fā)相應(yīng)端口輸出或作為 PWM輸出; LPC922 有 400kHz字節(jié)寬度的 I2C 通信端口;可以直接實現(xiàn) I2C 總線通信;有 8個鍵盤中斷輸入,另加 2 路外部中斷輸入; 4 個中斷優(yōu)先級;低電平復(fù)位,使用片內(nèi)上電復(fù)位時不需要外接元件。同一時鐘頻率 下, LPC922 的速度為標(biāo)準(zhǔn) 80C51 器件的6 倍。 P89LPC92 集成了許多系統(tǒng)級的功能,這樣可大大地減少元件的數(shù)目、電路板面積以及系統(tǒng)的成本。 陜西科技大學(xué)畢業(yè)論文(設(shè)計說明書) 6 3 P89LPC922單片機(jī)及 I2C接口 P89LPC922單片機(jī) 概述 P89LPC922 是一款單片封裝的微控制器,適合于許多要求高集成度、低成本的場合,可以滿足多方面的性能要求。 A/D轉(zhuǎn)換器的選型 考慮到選用的 A/D 轉(zhuǎn)換器應(yīng)該有 I2C 總線接口,精度達(dá)到 8 位就可以滿足要求,芯片內(nèi)部應(yīng)該有多個通道來配合 I2C 總線進(jìn)行多點的數(shù)據(jù)采集,選用 PCF8591 芯片。它能夠直接驅(qū)動 8位共陰式數(shù)碼管 (或 64只獨立的 LED ), 并可擴(kuò)展驅(qū)動電流和驅(qū)動電壓。 LCD液晶驅(qū)動器的選型 方案一: LCD 字符型液晶驅(qū)動器 PCF2113 是 LCD 字符型液晶驅(qū)動器,自身帶有 I2C 接口, I2C 速率是 400khz,工作電壓為 5V,可驅(qū)動兩行、每行 12 個字符,片內(nèi)可產(chǎn)生 LCD 偏置電壓,功耗很低且本身自帶片內(nèi) RAM,但是外圍引腳多,操作繁瑣。數(shù)字溫度傳感器更適合與各種微處理器的 I/O 接口相連接,組成自動溫度控制系統(tǒng),這種系統(tǒng)克服課模擬傳感器與微處理器接口時需要信號調(diào)理電路和 A/D 轉(zhuǎn)換器的弊端,被廣泛應(yīng)用于工業(yè)控制、電子測溫等各種溫度控制系統(tǒng)中,數(shù)字溫度傳感器中比較有代表性的有 DS18B20等。 IC 溫度傳感器在微型計算機(jī)控制體系中,通常用于室溫的測量,以便微型計算機(jī)對溫度測量值進(jìn)行補(bǔ)償。 方案三:半導(dǎo)體集成模擬溫度傳感器 半導(dǎo)體 IC 溫度傳感器是利用半導(dǎo)體 PN 結(jié)的電流、電壓與溫度變換關(guān)系來測溫的一種感溫元件。因此,熱電阻的引出線的電阻的變化會給測溫 帶來影響。它的主要特點是:測量精度高,性能穩(wěn)定、其中鉑電阻的測量精度是最高的,被制作成標(biāo)準(zhǔn)的基準(zhǔn)儀。 方案二:熱電阻傳感器 熱電阻傳感器的原理是將溫度變化轉(zhuǎn)換為電阻值的變化。目前廣泛應(yīng)用于工業(yè)和民用產(chǎn)品中。它是利用兩種不同材料的金屬連接在一起,構(gòu)成的具有熱點效應(yīng)原理的一種感溫元件。因此在這個系統(tǒng)里選用 P82B96。 P82B715 只有 3000pF 的輸出容性負(fù)載,且不可電平轉(zhuǎn)換,而 P82B96 的最大輸出容性負(fù)載高達(dá) 4000pF,支持電平轉(zhuǎn)換,還可以作為通用的準(zhǔn)雙向總線緩沖器。實際應(yīng)用時,必須擴(kuò)展 I2C 通信距離。 用 LPC93X 系列單片機(jī)能滿足要求但資源浪費,價格高,故最終確定選用 LPC922單片機(jī)。 方案二: LPC900 系列單片機(jī) LPC900 系列單片機(jī)具有體積小、有 I2C 引腳、超低的功耗(完全掉電時電流低至1181。顯示模塊利用 I2C 總線可以并聯(lián)多個 I2C 接口器件的特性,使用 ZLG7290 作為 LED 驅(qū)動器驅(qū)動數(shù)碼管顯示。主控制模塊以LPC900 系列單片機(jī)為核心控制器,集成了鍵盤操作功能。 基于 I2C 總線的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng) 3 2 系統(tǒng)方案 系統(tǒng)方案簡介 該系統(tǒng)設(shè)計是利用 LPC900 系列單片機(jī),通過 I2C 總線,實現(xiàn)遠(yuǎn)程的溫度采集。 CPU陜西科技大學(xué)畢業(yè)論文(設(shè)計說明書) 2 發(fā)出的控制信號分為地址碼和數(shù)據(jù)碼兩部分:地址碼用來選址,及接通需要控制的電路;數(shù)據(jù)碼是通信的內(nèi)容,這樣各控制電 路雖然掛在同一條總線上,卻彼此獨立。在CPU與被控 IC 之間, IC 和 IC 之間進(jìn)行雙向傳送, 各種被控電路均并聯(lián)在這條總線上,每個電路都有唯一的地址。 I2C 總線很大程度上減輕了系統(tǒng)對 I/O 口需求的壓力,彌補(bǔ)了系統(tǒng)主處理芯片 I/O口的不足,通過擴(kuò)展芯片總線的傳 輸長度可高達(dá) 1000米,并且能夠以最高以 的最大傳輸速率支持 40個組件。它是同步通信的一種特殊形式,具有接口線少,控制方式簡單,器件封裝形式小,通信速率較高等優(yōu)點。基于單片機(jī)的數(shù)據(jù)采集系統(tǒng)利用數(shù)字傳感器直接輸出數(shù)字信號,經(jīng)過總線的傳輸直接送給計算機(jī)系統(tǒng),操作方便,無需信號轉(zhuǎn)換。 數(shù)據(jù)采集系統(tǒng)經(jīng)歷了幾個發(fā)展階段。 在進(jìn)行數(shù)據(jù)采集時,由于許多被測對象離主控中心距離較遠(yuǎn)或現(xiàn)場環(huán)境不允許數(shù)據(jù)采集系統(tǒng)就近放置,只能用長線通過遠(yuǎn)距離傳送給主控制器,這便產(chǎn)生了遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)。 to AD590 temperature sensor to measure ambient temperature。 to P82B96 I2C bus drive to improve load capacity and improve transmission range in order to achieve the remote transmission of data。本系統(tǒng)分為以下幾個模塊:微處理器核心模塊、 LED 顯示模塊、鍵盤模塊、溫度測量模塊、數(shù)據(jù)遠(yuǎn)距離傳輸模塊、電源模塊。通過不斷的調(diào)試和完善 實現(xiàn)多點的溫度測量,在數(shù)碼管上顯示即時溫度。 I 基于 I2C總線的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng) 摘 要 針對遠(yuǎn)距離多點數(shù)據(jù)的采集,節(jié)省微處理器的輸入輸出引腳,滿足多器件控制的要求,設(shè)計一套基于 I2C 總線的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)。本系統(tǒng)以帶有 I2C 接口的 LPC900 系列單片機(jī)作為主控 MCU,來實現(xiàn)數(shù)據(jù)的處理;以 P82B96 驅(qū)動器提高 I2C 總線的負(fù)載能力,提高傳輸距離從而實現(xiàn)數(shù)據(jù)的遠(yuǎn)程傳輸;以帶有 I2C 接口的 A/D 轉(zhuǎn)換器 PCF8591來采集數(shù)據(jù)并進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換;以溫度傳感器 AD590 來測量環(huán)境溫度;以 LED 驅(qū)動器 ZLG7290 驅(qū)動數(shù)碼管顯示數(shù)據(jù)。 本系統(tǒng)采用 LPC922 單片機(jī)為主控制器,通過 I2C 總線實現(xiàn)遠(yuǎn)距離的溫度測量。 關(guān)鍵詞: 單片機(jī), I2C 總線,遠(yuǎn)程數(shù)據(jù)采集 II I2C Busbased Remote Data Acquisition System ABSTRACT For longdistance multipoint data collection, to save the input and output pins of the microprocessor, to meet the requirementsthe control of multiple devices, design a set of I2C bus based remote data acquisition system. The system interfaces with LPC900 MCU I2C as a master MCU, to achieve data processing。 to I2C interface with A /D PCF8591 converter to capture data and perform data type conversions。 to drive ZLG7290 LED digital display driver data. Debug and improve through continuous multipoint temperature measurement, digital display in realtime temperature. This system uses the LPC922 microcontrollerbased controller, through the I2C bus for remote tem