1-Wire器件與8051系列單片機的軟件接口





把單片機的8位存儲單元TEMP看成一個8位生成器,按圖4的結構,很容易得到計算一個字節的8位CRC校驗的匯編子函數,輸入字節置于讀寫累加器A中,計算的累計CRC校驗結果置于暫存單元TEMP中。設TEMP的初值為00H,8次循環調用CRC函數,即可得64位ROM號的CRC校驗結果,讀數正確時,前7個字節(Family Code+Serial Code)的CRC校驗計算結果TEMP應與ROM號最后一個字節(8BIT CRC)的值相同,最后的校驗值TEMP應為00H。

上述的總線初始化函數START、字節讀寫函數RDBYTE、WRBYTE和CRC校驗函數就構成了8051系列單片機與1-Wire器件通信的軟件平臺,在設計時只需按規程調用這4個函數,就可輕松構建起一個1-Wire總線擴展的單片機應用系統。
4 軟件接口應用
數片DS1822按圖1連接到AT89C51的P1.0腳,按圖3的1-Wire總線通信規程,調用上述軟件接口,即可構成一個簡單實用的溫度測控系統DS1822是一種精度可調的(9至12比特)的1-Wire數字溫度傳感器,其RAM結構如圖6所示,最低兩字節只讀,用于保存每次采集溫度值;Th寄存器和T1寄存器分別用于設定溫度傳感器告警的最高和最低溫度;設置寄存器用于設定溫度傳感器的采和最低溫度;設置寄存器用于設定溫度傳感器的采樣精度;對應的EEPROM用于掉電時保存用戶設置。
DS1822的指令字及其功能如表1所示。

系統從主控器片內RAM30H至37H單元中讀取事先存儲的ROM號,從總線上選擇該器件,啟動溫度變換,再讀取溫度于70H、71H中的程序如下:



5 結束語
1-Wire總線連線簡捷,1-Wire器件種類多樣,功能豐富,必將得到日益廣泛的應用。本文詳細闡述了目前普遍使用的8051單片機與1-Wire總線的軟件接口,為單片機應用系統的串行擴展提供了一種行之有效的參考方案,它還可以方便地移植到其它系統中。
參考文獻
1 何立民.按平臺模式設計的虛擬I2C總線軟件包VIIC.單片機與嵌入式系統應用,2001(2)
主站蜘蛛池模板:
壶关县|
临澧县|
河东区|
巴东县|
舒兰市|
石柱|
昆山市|
六枝特区|
东宁县|
固始县|
吴川市|
茶陵县|
靖边县|
泸水县|
江门市|
龙南县|
新干县|
海城市|
北宁市|
额敏县|
武鸣县|
盐城市|
定边县|
安宁市|
荔浦县|
全椒县|
拉孜县|
纳雍县|
河间市|
宜君县|
象山县|
仙桃市|
邢台县|
南宁市|
游戏|
辽宁省|
南雄市|
宣汉县|
区。|
丹凤县|
定西市|
評論