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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于C8051F單片機信號發(fā)生器設(shè)計與應(yīng)用

          基于C8051F單片機信號發(fā)生器設(shè)計與應(yīng)用

          作者: 時間:2016-12-02 來源:網(wǎng)絡(luò) 收藏


          程序由一個主程序和三個中斷服務(wù)程序組成,如圖4所示。三個中斷程序包括T0中斷服務(wù)程序、外部中斷服務(wù)程序和串口中斷服務(wù)程序。


          圖3單片機端軟件操作流程圖

          4.2人機交互界面

          應(yīng)用Visual Basic軟件的通信控件MSComm,實現(xiàn)了與單片機系統(tǒng)的串行通信。VB提供了具有強大功能的通信控件MSComm,該控件可設(shè)置串行通信的數(shù)據(jù)發(fā)送和接收,對串口狀態(tài)及串口通信的信息格式和協(xié)議進(jìn)行設(shè)置。該串口是一個標(biāo)準(zhǔn)的十位串口通信,包括8位標(biāo)準(zhǔn)數(shù)據(jù)和數(shù)據(jù)的起始位和停止位。這些串口在Pc和單片機之間充當(dāng)解釋器的角色。當(dāng)數(shù)據(jù)從PC傳送給單片機時,字符數(shù)據(jù)會被轉(zhuǎn)換成串行比特流;而當(dāng)接收數(shù)據(jù)時,比特流數(shù)據(jù)會轉(zhuǎn)換成字符數(shù)據(jù)傳遞到PC機。

          采用VB6.0編程可以實現(xiàn)便于操作的可視化界面,并且對整個系統(tǒng)進(jìn)行實時的控制.交互界面如圖4(a)所示。


          圖4 VB交互界面

          工具欄中文件下拉菜單中設(shè)置了讀取數(shù)據(jù),保存數(shù)據(jù),新建及頁面設(shè)置等一些基本的交互功能選項;工具下拉菜單中有測量獲取數(shù)據(jù)和繪圖設(shè)置的選項,通過這個選項可以準(zhǔn)備的獲得曲線上某一點的準(zhǔn)確值,繪圖設(shè)置中可以選擇繪圖方式、繪圖色彩及捕捉網(wǎng)格的大小設(shè)置,如圖4佑1所示。


          圖5信號發(fā)生器采集的彈道侵徹過載曲線

          DSP中可以選擇對彈道曲線的濾波方式,軟件給出了低通濾波等三種濾波方式,通過濾波可以得到更加光滑無毛刺的曲線。以低通濾波為例,軟件設(shè)計了三種濾波器的選擇,包括切比雪夫I型、切比雪夫II型和巴特沃茲型??梢酝ㄟ^調(diào)整濾波器的參數(shù)如階數(shù)、歸一化頻率和阻帶衰減值,得到需要的過載曲線。

          圖5給出了實際侵徹過程中測到的兩條過載曲線,其中下圖是某條曲線中的一段,并且經(jīng)過濾波處理過。

          5 結(jié)束語

          本文利用C8051F121單片機具有的片內(nèi)12位電壓方式數(shù)/模轉(zhuǎn)換器和內(nèi)部集成化的數(shù)據(jù)采集和控制系統(tǒng)中常用的模擬部件和其它數(shù)字外設(shè)及功能部件,設(shè)計了可以獲取任意波形的信號發(fā)生器。采用了串口通信和D/A轉(zhuǎn)換,在Visual Basic可視化操作界面下方便地讀取和保存數(shù)據(jù)、編輯曲線,并且可以進(jìn)行一些必要的信號處理和優(yōu)化。而且電路簡單清晰,功能明確。

          本文作者創(chuàng)新點:針對整體項目的實際要求,以較低的成本實現(xiàn)了彈道存儲測試需要的各種信號,經(jīng)過仿真和電路測試,完全達(dá)到了設(shè)計的要求。設(shè)計的人機交互平臺功能強大,使用方便,具有很好的推廣和使用價值。

          上一頁 1 2 下一頁

          評論


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