在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > EDA/PCB > 設計應用 > 1-Wire總線與DS18B20應用仿真

            1-Wire總線與DS18B20應用仿真

            作者: 時間:2008-06-19 來源:今日電子 收藏

              首先右擊選 中protues編輯區(qū)中的DS18B20模型然后再左擊,此時彈出如圖4所示的屬性設置對話框。其中,F(xiàn)amily Code是器件的家族碼,對于DS18B20來說是28H。ROM Serial Number對應于器件的48bit序列號,格式為十六進制,在填寫過程中要保證同一條總線上所有模型的ROM Serial Number都不相同。Automatic Serialization設置為No時模型將使用ROM Serial Number中的序列號,設置為Yes時模型的序列號將由仿真環(huán)境自動生成,在此設置為Yes,這樣可以免去手動修改ROM Serial Number的麻煩。Current Value中是仿真模型當前的溫度值。Cranularity中是單擊仿真模型的溫度值增減按鈕時溫度值的改變量,在此設置為1.1。其他選項保持默認即可。單擊OK按鈕,設置完成。

            本文引用地址:http://www.biyoush.com/article/84508.htm

             圖3 多點測溫系統(tǒng)仿真原理圖

             ?、劬幹圃闯绦?/strong>

              主機是通過Reset()、Readbit()、Writebit()三種基本操作與總線進行通信的,只要這三個函數(shù)的時序準確,那么對于有一定C語言編程基礎的用戶來說程序其他部分的編寫將不是難事,按照前面介紹的流程向總線發(fā)送功能命令并進行相應讀寫操作即可。多點測溫系統(tǒng)編程的難點在于器件的查找,系統(tǒng)上電時主機首先要查找總線上掛接著多少個器件并將各個器件的ROM編碼讀入單片機的RAM中,這需要一套復雜的算法,限于篇幅關于此算法在此不再詳述。本仿真實例大體工作過程如圖3右下角注釋部分所示,“查找總線上所有器件的ROM編碼并存儲”這一步可以由 uchar B20ReadROM(uchar B20ROM[]函數(shù)完成,該函數(shù)的返回值是查找到的器件數(shù)目,各個器件的ROM編碼將存儲在二維數(shù)組B20ROM[]中。

            圖4 DS18B20仿真模型屬性設置

              “統(tǒng)一開始溫度轉(zhuǎn)換”的通信流程為:發(fā)送復位信號;發(fā)送跳過ROM(CCH)命令;發(fā)送啟動溫度轉(zhuǎn)換(44H)命令。

              “逐器件讀取溫度值”的通信流程為:發(fā)送復位信號;發(fā)送匹配ROM(55H)命令;發(fā)送第i(i=0~7)個器件的ROM編碼;發(fā)送讀RAM(BEH)命令;讀取2字節(jié),其中低字節(jié)在前,高字節(jié)在后,讀取到的值符合溫度值數(shù)據(jù)格式。

             ?、茉赑roteus中添加監(jiān)視變量

              為了檢驗程序運行的正確與否,通常的做法是將運行結(jié)果通過單片機的UART接口輸出到虛擬終端上,這種方法的缺點是會占用一定的單片機資源,在此介紹另外一種程序調(diào)試技巧——監(jiān)視變量。在Proteus的運行狀態(tài)下點擊Debug→Watch Window會彈出監(jiān)視窗口(Watch Window),然后按下Alt+A鍵會彈出如圖5所示的添加存儲器條目對話框(Add Memory Item)。所謂監(jiān)視變量也就是監(jiān)視相應存儲單元中的內(nèi)容,圖5中

             圖5 添加存儲器條目對話框

               Memory用于選擇待監(jiān)視變量所在的存儲器;Name用于填寫變量名稱,為了含義清晰該名稱最好與源程序中定義的變量名稱一致;Address用于填寫待監(jiān)視變量的地址;Data Type和Display Fomat用于設置數(shù)據(jù)格式和顯示格式。設置完成后單擊Add按鈕即可添加一個監(jiān)視變量。在本實例中將測量到的溫度值轉(zhuǎn)化成ACSLL碼字符串的格式存儲在二維數(shù)組TempBuffer中,因此Data Type選擇為ASCLLZ String,Watch Window的最終結(jié)果如圖6所示。Value一欄中顯示的即為8個DS18B20測量到的溫度值,單擊仿真模型的溫度增減按鈕溫度值的改變會自動映射在 Watch Window中。

            圖6 監(jiān)視窗口

              圖6中TempBuffer[i](i=0~7)的地址在Keil中可以按以下步驟得到:

              ● 單擊Keil工具欄中的按鈕,進入調(diào)試狀態(tài)。
              ● 通過View→Output Window菜單調(diào)出Keil的Output Window,并選中Command標簽。
              ● 在Output Window的命令輸入?yún)^(qū)輸入TempBuffer[i]然后回車即可得到TempBuffer[i]的地址,在本實例中i=0~7。對于非數(shù)組類型的變量在輸入時需要在變量名前加取地址符號&,如圖7所示。

            圖7 變量地址的獲取


            上一頁 1 2 3 下一頁

            關鍵詞: 仿真 1-Wire 傳感器

            評論


            相關推薦

            技術專區(qū)

            關閉