<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于的單片機(jī)虛擬開(kāi)發(fā)環(huán)境

          基于的單片機(jī)虛擬開(kāi)發(fā)環(huán)境

          作者: 時(shí)間:2011-12-15 來(lái)源:網(wǎng)絡(luò) 收藏

          該軟件還具有電路板演示功能,以溫度顯示為例,其演示效果如圖2所示。該演示圖不但有助于教學(xué)工作,還可以幫助企業(yè)降低產(chǎn)品設(shè)計(jì)風(fēng)險(xiǎn)。


          3 程序開(kāi)發(fā)
          這里以AVR單片機(jī)ATmega16和DS18B20為例演示了溫度測(cè)量及其顯示的單片機(jī)程序開(kāi)發(fā)過(guò)程,AVR單片機(jī)是Atmel公司推出的高性能單片機(jī),該系列單片機(jī)部分采用16位結(jié)構(gòu),所有IO口均可單獨(dú)設(shè)置數(shù)據(jù)方向并具有可編程的內(nèi)部上拉電阻,提高了整體性能和應(yīng)用范圍。在單片機(jī)程序設(shè)計(jì)方面,ICCAVR提供了良好的編程界面,可通過(guò)對(duì)可視化選項(xiàng)框的選擇來(lái)生成初始化程序,如圖3所示。

          在進(jìn)行項(xiàng)目程序開(kāi)發(fā)時(shí),只需要選擇所使用的CPU,I/O口的初始方向、定時(shí)器的使用情況、UART以及其他外圍功能模塊做出設(shè)置即可生成響應(yīng)的C語(yǔ)言初始化程序。在完成初始化之后程序員只需要針對(duì)自己的具體應(yīng)用編寫(xiě)功能程序即可。DS18B20支持“一線(xiàn)總線(xiàn)”接口,測(cè)量溫度范圍為-55~+125℃,在-10~+85℃范圍內(nèi),精度為±O.5℃。DS1822的精度較差,為±2℃?,F(xiàn)場(chǎng)溫度直接以“一線(xiàn)總線(xiàn)”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量,如:環(huán)境控制、設(shè)備或過(guò)程控制、測(cè)溫類(lèi)消費(fèi)電子產(chǎn)品等。與前一代產(chǎn)品不同,新的產(chǎn)品支持3.0~5.5 V的電壓范圍,使系統(tǒng)設(shè)計(jì)更靈活、方便。而且新一代產(chǎn)品更便宜,體積更小。DS18B20與單片機(jī)的接口只有一條線(xiàn),而且DS18B20的單總線(xiàn)特性只需要一個(gè)單片機(jī)I/O引腳即可支持多個(gè)DS18B20,極大程度地降低了硬件開(kāi)銷(xiāo),當(dāng)然較小的硬件開(kāi)銷(xiāo)需要相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償,由于DS1820與微處理器間采用串行數(shù)據(jù)傳送,因此,在對(duì)DSl820進(jìn)行讀寫(xiě)編程時(shí),必須嚴(yán)格的保證讀寫(xiě)時(shí)序,否則將無(wú)法讀取測(cè)溫結(jié)果。其具體流程圖如圖4所示。



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();