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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于PWM模式輸出的溫度傳感器的測(cè)溫系統(tǒng)

          基于PWM模式輸出的溫度傳感器的測(cè)溫系統(tǒng)

          作者: 時(shí)間:2011-09-29 來(lái)源:網(wǎng)絡(luò) 收藏
          3.2 由RB端口電平變化中斷實(shí)現(xiàn)

          本文引用地址:http://www.ex-cimer.com/article/172463.htm

            與其它單片機(jī)不同,PIC單片機(jī)的RB4-RB7端口具有輸入電平變化中斷功能,當(dāng)RB4-RB7任意一個(gè)引腳上的輸入電平發(fā)生變化(由高變低或由低變高)時(shí),都可以引起CPU中斷,執(zhí)行中斷處理程序。因此,可以將TMP04的信號(hào)輸入RB4,當(dāng)輸入RB4的信號(hào)發(fā)生跳變時(shí),利用RB4的電平變換中斷調(diào)用中斷處理程序分別對(duì)信號(hào)高低電平的脈寬進(jìn)行測(cè)量,從而間接算出信號(hào)的占空比,最終得到TMP04信息。程序流程圖如圖5所示。

            

            3.3 由外部中斷INT實(shí)現(xiàn)

            由外部中斷INT實(shí)現(xiàn)與由RB端口電平變化中斷實(shí)現(xiàn)的設(shè)計(jì)方案類(lèi)似,都是由單片機(jī)響應(yīng)電平變化產(chǎn)生中斷,再通過(guò)中斷服務(wù)程序計(jì)算高低脈寬,從而得到TMP04信號(hào)的占空比和所攜帶的信息。所以由外部中斷INT實(shí)現(xiàn)和由RB端口電平變化中斷實(shí)現(xiàn)程序類(lèi)似,只是將中斷源改為INT0(INT1,INT2均可)中斷,使能INT0中斷使能位INT0IE,判斷INT0中斷標(biāo)志位INT0IF,由于INT0輸入為RB0引腳,上例中設(shè)RB0為輸入,并由INTEDG0判斷高低電平即可,注意要啟動(dòng)RB口的弱上拉功能,其總體的程序流程程圖類(lèi)似圖5。

            4 實(shí)驗(yàn)數(shù)據(jù)對(duì)比

            利用簡(jiǎn)單的電路及以上軟件程序在室溫為24.1℃時(shí),筆者用三種方法測(cè)量,為了得到更好的精度,每種分別設(shè)計(jì)了泄編和C評(píng)議二種程序,其結(jié)果與平均值如表1所示。

            表1 測(cè)試結(jié)果與平均值

            

            5 結(jié)束語(yǔ)

            由于測(cè)量脈寬是由定時(shí)器在高電平(低電平)期間計(jì)數(shù)實(shí)現(xiàn)的,所以單片機(jī)的指令周期將直接影響到測(cè)量的精度,指令周期越短精度越高。但是如果指令周期短而晶振頻率高,將會(huì)引入高頻干擾,所以晶振要根據(jù)實(shí)現(xiàn)情況選取。此外還要注意PIC單片機(jī)定時(shí)器預(yù)分頻比的設(shè)定,應(yīng)在保證測(cè)量信號(hào)脈寬進(jìn)不會(huì)發(fā)生溢出的情況下使分頻比最小,這樣有利于提高測(cè)量精度。

          pwm相關(guān)文章:pwm原理



          上一頁(yè) 1 2 3 下一頁(yè)

          評(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); })();