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