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)
主站蜘蛛池模板:
昌宁县|
临澧县|
桃江县|
政和县|
安龙县|
阿拉善左旗|
衡东县|
那坡县|
辉南县|
志丹县|
明水县|
义马市|
乌兰浩特市|
康平县|
安庆市|
中山市|
汨罗市|
汝城县|
百色市|
都匀市|
衡阳市|
明溪县|
自治县|
儋州市|
宜春市|
镇赉县|
拜城县|
浏阳市|
晋江市|
门源|
河源市|
舞钢市|
公主岭市|
房山区|
济阳县|
宾川县|
泰宁县|
贡嘎县|
盐山县|
遂川县|
遂宁市|
評論