基于LPC1100的溫度檢測網(wǎng)絡節(jié)點設計
3.1.2 三種模式的區(qū)別
在睡眠模式下,如果軟件中提供外設時鐘,則外設功能在睡眠模式下仍然可以執(zhí)行,而且可以產(chǎn)生中斷來引起處理器恢復運行。在深度睡眠模式下,用戶可以配置深度睡眠時的掉電模塊以及喚醒后的上電模塊。在這兩種睡眠模式下,處理器狀態(tài)、寄存器、外設寄存器、內部SRAM值被保持,引腳的邏輯電平也不變。深度睡眠使用13個喚醒中斷來喚醒,其優(yōu)勢在于用戶可以關閉時鐘發(fā)生模塊,從而比睡眠模式降低更多的動態(tài)功耗。
在深度掉電模式下,除了WAKEUP引腳外,整個芯片上的電源和時鐘都關閉,SRAM中的內容也不能保持,但是可以使用4個通用的寄存器保存數(shù)據(jù)。若想在深度掉電模式下把芯片喚醒,必須通過外部連接部件給WAKEUP引腳接上一個低電平。
3.1.3 選擇睡眠模式
本系統(tǒng)中,溫度檢測節(jié)點的主要功能是每間隔一定時間檢測一次溫度,故在采集溫度的間隔期內使芯片進入睡眠模式。當需要采集溫度時,通過一個定時器中斷將其喚醒。例如,每間隔1 s采集一次溫度,采集溫度并發(fā)送后設置一個定時器中斷,然后調用WFI指令使芯片處于睡眠模式。為了便于觀察,設置一個LED燈閃爍以指示采集溫度的頻率。同時,如果檢測到溫度過高,則使用蜂鳴器報警。如果連接了液晶屏幕,也可在液晶屏幕上顯示溫度值。
main函數(shù)中的主要代碼如下:本文引用地址:http://m.butianyuan.cn/article/157054.htm
調用WFI指令后程序就停止運行,等到定時器中斷發(fā)生后就可以將處理器喚醒,程序接著運行WFI指令后的代碼。定時器中斷的代碼如下:
3.2 溫度傳感器模塊
溫度傳感器LM75使用標準的I2C接口。本節(jié)點中,LPC1114與LM75的硬件接口如圖2所示。
LM75的地址線A0~A2都接地,0S引腳懸空,故本節(jié)點僅僅使用其基本的溫度測量功能。LM75內部有5個寄存器:指針寄存器、配置寄存器、溫度寄存器、溫度設定寄存器和溫度滯后寄存器。通過指針寄存器來選擇其余4個寄存器進行操作。本節(jié)點主要是讀取溫度寄存器中的溫度值,溫度寄存器中高9位值為有效的溫度值。該寄存器讀出的值是以二進制補碼的格式給出的,其LSB(最低有效位)每一個單位表示0.5℃,例如+0.5℃對應001H。其可表示的范圍為-55~+125℃。
評論