溫度濕度監(jiān)控系統(tǒng)的設計
3 軟件設計
3.1 測量設計
在程序開始時,微處理器首先用一組“啟動傳輸”時序表示數(shù)據(jù)傳輸?shù)某跏蓟缓蟀l(fā)出一個8位的命令碼,這個命令碼包含3個地址位(必須設定為000)和5 個命令位。發(fā)送完該命令代碼(命令代碼含義如表l所示),將DATA數(shù)據(jù)線設為輸入狀態(tài)等待SHTll的響應。SHTll接收到上述地址和命令碼后,在第 8個時鐘下降沿將DATA數(shù)據(jù)線下拉為低電平作為響應信號。在第9個時鐘下降沿之后,SHTll將DATA數(shù)據(jù)線恢復為高電平,這表示已經(jīng)正確地接收到測量指令。DATA數(shù)據(jù)線恢復后,SHTll開始測量當前溫度或濕度,測量結(jié)束后,再次將DATA數(shù)據(jù)線下拉為低電平,這表示測量已經(jīng)結(jié)束。微處理器檢測到 DATA數(shù)據(jù)線被拉低后,給出時鐘信號。SHTll接著傳輸2 bit的測量數(shù)據(jù)和1 bit的校驗數(shù)據(jù),微處
理器需要通過下拉DATA數(shù)據(jù)線以確認每個字節(jié)。首先在8個時鐘下降沿輸出高字節(jié)數(shù)據(jù),在第9個時鐘下降沿,微處理器將DATA數(shù)據(jù)線拉低作為響應信號,然后釋放DATA數(shù)據(jù)線。在隨后8個時鐘下降沿SHTll發(fā)出低字節(jié)數(shù)據(jù);接下來的時鐘下降沿微處理器再次將DATA數(shù)據(jù)線拉低作為接收數(shù)據(jù)的響應信號。最后8個時鐘下降沿SHTll發(fā)出校驗數(shù)據(jù),微處理器不予應答則表示通訊結(jié)束。在測量和通訊結(jié)束后,SHTll自動進入休眠模式。經(jīng)測試,該系統(tǒng)可以對溫度和濕度進行監(jiān)控。
3.2 LED顯示設計
微處理器通過P4.0口串行輸出數(shù)據(jù)到SN74HC595D。輸出完成一個字節(jié)后,如果給一個鎖存信號,則SN74HC595D就并行輸出,在數(shù)碼管上顯示數(shù)據(jù)。如果沒有給鎖存信號,而是繼續(xù)輸出第二個字節(jié),這時第一個SN74HC595D將前一個字節(jié)的數(shù)據(jù)通過串行輸出管腳輸出到第二個SN7 4HC595D的輸入管腳。當輸出結(jié)束時,兩個SN74HC595D分別存儲了兩個字節(jié)的數(shù)據(jù)。此時如果微處理器給出鎖存信號,則兩個SN74HC595D通過并行輸出將數(shù)據(jù)分別顯示在兩個數(shù)碼管上。
3.3 鍵盤輸入設計
由于所有的列線都被上拉到3.3 V,因此當任何鍵都沒有被按下的情況下,所有的列線上都是高電平。如果在P1.7管腳上輸出低電平,同時行線的其他管腳上輸出高電平時,當“S01”鍵被按下時,P1.0就為低電平;當“S02”鍵被按下時,P1.1就為低電平;當“S03”鍵被按下,則P1.2就為低電平;當“S04”鍵被按下,P1.3為就低電平。通過設置一條行線的輸出就可以獲取列線上的相應狀態(tài),從而獲得鍵盤輸入值。同理,如果依次在其他列線上輸出低電平,就可以獲取到其他鍵的輸入值。通過這樣的掃描方式,就可以實現(xiàn)鍵盤的輸入。鍵盤掃描結(jié)果如圖4所示。本文引用地址:http://butianyuan.cn/article/162562.htm
可以看出,當按鍵盤的4、0、5和6鍵時,單片機可以接收到準確的數(shù)據(jù)。當輸入?yún)?shù)后,微處理器每次測量數(shù)據(jù)后都會與存儲的參數(shù)進行比較,如果超出則發(fā)出警報。
4 結(jié)束語
文中介紹了數(shù)字溫度濕度監(jiān)控系統(tǒng)的實現(xiàn)方案,硬件連接以及各個功能部分的設計。經(jīng)測試,該系統(tǒng)可以實現(xiàn)對溫度和濕度進行實時測量和監(jiān)控,達到了設計要求。
評論