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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 一款基于51單片機的簡易示波器設(shè)計

          一款基于51單片機的簡易示波器設(shè)計

          作者: 時間:2014-06-13 來源:網(wǎng)絡(luò) 收藏

           

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

          3.2 測量頻率流程圖

          測量頻率流程圖如圖6所示。本設(shè)計頻率測量是基于計數(shù)法和測周期法混合使用。其基本思想就是先測量1 s內(nèi)被測信號的上升沿個數(shù),來一個上升沿計數(shù)器加1,為了防止計數(shù)器產(chǎn)生溢出,設(shè)計中將1 s分成20個50 ms,中斷20次,測出信號頻率,如果頻率值小于1K,則改用測周期法。

           

           

          3.3 液晶打點流程圖

          打點操作是作圖的基礎(chǔ),由于st7920控制器的繪圖RAM是一次進行兩個2個字節(jié)的數(shù)據(jù)的讀寫操作,也就是一次修改的是16個點的狀態(tài),而我們要想只修改一個點的狀態(tài)同時不改變其余相鄰15個點的狀態(tài),那只能是先把原來位置的16個點的狀態(tài)讀出,使用位操作指令修改其中一個點的狀態(tài),然后在回寫到RAM中。整體的過程即是:讀取-修改(位狀態(tài))-寫入。液晶畫點是編程的難點與重點,需要把液晶縱向每隔轉(zhuǎn)換為電壓,要把水平方向轉(zhuǎn)化為時間,將波形顯示出來,其步驟如下:先確定打點的位置;其次讀出該點所在的數(shù)據(jù)值;接著修改該點相應(yīng)的位的值,對于單色液晶來說,只有兩種操作,一是點亮該點,另一種是熄滅該點;最后將修改后的數(shù)據(jù)值寫入對應(yīng)的地址。打點流程圖如圖7.

           

           

          3.4 測試結(jié)果

          波形測試結(jié)果(波形之一,其他略)頻率幅度測試結(jié)果如表1所示。

           

           

          4 結(jié)束語

          本文提出的便攜式數(shù)字存儲的設(shè)計,它采用了LCD顯示、高速A/D采集與轉(zhuǎn)換、FIFO以及單片機等技術(shù),具有較強的實用性以及發(fā)展的市場潛力。而且幅度頻率測量誤差較小,顯示波形沒有明顯的失真,滿足設(shè)計要求。如果利用高端控制器,則可以實現(xiàn)高精度的測量,前景遠大,很有研究價值。

          51單片機相關(guān)文章:51單片機教程


          單片機相關(guān)文章:單片機教程


          單片機相關(guān)文章:單片機視頻教程


          單片機相關(guān)文章:單片機工作原理



          上一頁 1 2 下一頁

          關(guān)鍵詞: 51 示波器

          評論


          相關(guān)推薦

          技術(shù)專區(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); })();