基于I2C總線的多點(diǎn)溫度采集系統(tǒng)
圖5和圖6分別為實(shí)時(shí)時(shí)鐘和鍵盤中斷服務(wù)流程,其中實(shí)時(shí)時(shí)鐘0.5s產(chǎn)生1次中斷,而鍵盤中采用3個(gè)按鍵,每個(gè)按鍵按下時(shí)均可產(chǎn)生一次中斷。本設(shè)計(jì)主函數(shù)完成CPU掉電運(yùn)行,使系統(tǒng)功耗降至最低,只有在按鍵中斷和實(shí)時(shí)時(shí)鐘中斷時(shí)才會(huì)喚醒CPU。本文引用地址:http://www.ex-cimer.com/article/195368.htm
3 系統(tǒng)測(cè)試
3.1 硬件測(cè)試
利用萬(wàn)用表對(duì)焊接好的電路板進(jìn)行測(cè)試。首先測(cè)試線路部分,各線路連接正常,沒(méi)有出現(xiàn)短路和斷路的現(xiàn)象;其次,上電后,電源燈亮,證明電源連接正常,測(cè)電源電壓輸入為5 V,輸出為3.3 V,電源電路工作正常。其余模塊通過(guò)軟件測(cè)試。
3.2 軟件測(cè)試
通過(guò)ZLG7290測(cè)試程序驗(yàn)證I2C總線的傳輸情況,并利用邏輯分析儀來(lái)觀察其時(shí)序,如圖7所示。
從圖7可以看出,該時(shí)序部分完成的是使第l位數(shù)碼管顯示“0的過(guò)程,從啟動(dòng)總線到結(jié)束總線的一個(gè)完整過(guò)程。該過(guò)程總共發(fā)送了4個(gè)字節(jié)數(shù)據(jù),在總線啟動(dòng)后發(fā)送的是ZLG7290的從機(jī)地址,后跟一位讀寫位O,表命令緩沖區(qū)的首地址,每發(fā)送完一個(gè)字節(jié)后都會(huì)收到一個(gè)應(yīng)答位0,表示接收到數(shù)據(jù)。后面2個(gè)字節(jié)是復(fù)合指令,在這里是按位下載數(shù)據(jù)且譯碼指令,即使第l位數(shù)碼管顯示0。發(fā)送完指令后緊接著是結(jié)束總線條件,表示一次發(fā)送過(guò)程結(jié)束。
通過(guò)LM75A測(cè)試程序是向從機(jī)發(fā)送數(shù)據(jù),收到應(yīng)答位0后,緊接著發(fā)送從機(jī)子地址,在這里是ZLG7290命令緩沖區(qū)的首地址,每發(fā)送完一個(gè)字節(jié)后都會(huì)收到一個(gè)應(yīng)答位0,表示接收到數(shù)據(jù)。后面2個(gè)字節(jié)是復(fù)合指令,在這里是按位下載數(shù)據(jù)且譯碼指令,即使第1位數(shù)碼管顯示0。發(fā)送完指令后緊接著是結(jié)束總線條件,表示一次發(fā)送過(guò)程結(jié)束。驗(yàn)證I2C總線的接收數(shù)據(jù)的過(guò)程,并利用邏輯分析儀來(lái)觀察其時(shí)序,如圖8所示。
從圖8可以看出,該時(shí)序部分完成的是讀取溫度值的過(guò)程,也是一個(gè)I2C總線帶重復(fù)起始條件的接受數(shù)據(jù)的過(guò)程。該過(guò)程分發(fā)送和接收兩部分。發(fā)送部分包括發(fā)送從機(jī)地址和從機(jī)子地址,即LM75A的地址90H和LM75A溫度寄存器首地址00H。然后重新啟動(dòng)總線準(zhǔn)備接收數(shù)據(jù),該部分主機(jī)先發(fā)送從機(jī)地址,并跟讀寫位l,表示主機(jī)將接收該從機(jī)發(fā)來(lái)的數(shù)據(jù),緊接著主機(jī)接收2個(gè)字節(jié)的數(shù)據(jù),主機(jī)發(fā)送應(yīng)答位后,再發(fā)送停止條件結(jié)束總線,表示主機(jī)接收完一次數(shù)據(jù)。
3.3 系統(tǒng)綜合測(cè)試
將程序燒進(jìn)P89LPC922,上電后,數(shù)碼管顯示“0000”,通過(guò)按鍵2和按鍵3來(lái)設(shè)置時(shí)鐘初值。當(dāng)讀取的溫度值超過(guò)設(shè)定的溫度值范圍,蜂鳴器會(huì)發(fā)出報(bào)警提示音。這時(shí)可通過(guò)按下按鍵l取消聲音,同時(shí)切換為時(shí)鐘顯示。
4 結(jié)束語(yǔ)
本系統(tǒng)為綜合處理多點(diǎn)溫度信息的測(cè)量系統(tǒng),該設(shè)計(jì)系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,操作方便,測(cè)量精度高,速度快,能實(shí)現(xiàn)報(bào)警。該系統(tǒng)的測(cè)溫范圍為-55~+125℃,測(cè)量精度能達(dá)到0.125℃,由于采用I2C總線的結(jié)構(gòu),整個(gè)系統(tǒng)占用主控制器I/O口較少,其余I/O口可留作系統(tǒng)擴(kuò)展之用。該系統(tǒng)可應(yīng)用于植物生長(zhǎng)環(huán)境的溫度檢測(cè),當(dāng)超出植物適宜生長(zhǎng)溫度范同時(shí)將發(fā)出報(bào)警。
評(píng)論