<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ò) 收藏
          1 引言

          在實際的彈道加速度測試中,需要產(chǎn)生許多波形曲線用來驗證,而能夠產(chǎn)生任意波形的信號發(fā)生器價格昂貴,不適合工程實際的需求.通過設(shè)計產(chǎn)生的信號發(fā)牛裝置,不僅成本低,而且功能強大,可以產(chǎn)生滿足各種需要的信號。C8051Fxxx系列單片機是完全集成的混合信號系統(tǒng)級芯片,具有與8051兼容的微控制器內(nèi)核,與MCS-51指令集完全兼容。除了具有標(biāo)準(zhǔn)8052的數(shù)字外設(shè)部件之外,片內(nèi)還集成了數(shù)據(jù)采集和控制系統(tǒng)中常用的模擬部件和其它數(shù)字外設(shè)及功能部件;內(nèi)置FLASH程序存儲器、內(nèi)部RAM,大部分器件內(nèi)部還有位于外部數(shù)據(jù)存儲器窄間的RAM,即XRAM。數(shù)模混合的高度集成使得該單片機系統(tǒng)IJ以方便實現(xiàn)數(shù)控及簡單信號處理等功能。C8051F121單片機具有片內(nèi)VDD監(jiān)視器、看門狗定時器和時鐘振蕩器,是真正能獨立工作的片上系統(tǒng)。使用C8051F121單片機設(shè)計任意波形信號發(fā)牛器,不僅減少了器件,簡化了電路,節(jié)約了成本,更使得系統(tǒng)穩(wěn)定節(jié)能。方便快捷地輸出多種低頻信號。

          2 系統(tǒng)原理與組成

          系統(tǒng)以C8051F121單片機為核心,通過串口通信將PC機中的數(shù)據(jù)傳送到單片機中,然后單片機將所接受的數(shù)據(jù)存放到128k的外部存儲器中。系統(tǒng)的控制電路啟動D/A轉(zhuǎn)換將外部存儲器中的數(shù)據(jù)轉(zhuǎn)化成模擬信號,生成所需要的波形。波形的幅值、脈寬、頻率、持續(xù)時問等參數(shù)均可以在VB程序下進行調(diào)節(jié),可以實現(xiàn)任意波形的信號發(fā)生功能。

          系統(tǒng)基本組成如圖1所示,應(yīng)用模塊可以根據(jù)工程實際中的具體要求,實現(xiàn)不同的目的。本文中應(yīng)用模塊為加速度測試系統(tǒng),用來實現(xiàn)測試裝置的模擬信號輸入。


          圖1系統(tǒng)組成結(jié)構(gòu)圖

          3 系統(tǒng)硬件設(shè)計與實現(xiàn)

          系統(tǒng)實現(xiàn)信號發(fā)生功能設(shè)計目標(biāo)主要包括以下幾個方面:串口通信模塊,電源供電模塊,外部擴展存儲器模塊,外部晶振以及復(fù)位模塊。下面詳細介紹一下各單元的硬件電路和實現(xiàn)的功能。


          圖2信號發(fā)生器硬件結(jié)構(gòu)圖

          3.1電源模塊設(shè)計

          整個系統(tǒng)采用3.3V供電,考慮到硬件系統(tǒng)對電源要求有穩(wěn)壓功能,另外也考慮到硬件系統(tǒng)的低功耗等特點,電源部分采用AR33將電源的5V電壓轉(zhuǎn)換成系統(tǒng)需要的3.3V;為了減少輸出電源的高頻噪聲,在單片機、鎖存器,外部擴展存儲器以及電源輸出部分分別應(yīng)用了0.01uF和luF,0.1uF和4.7uF的配對電容,對電源進行濾波。

          3.2 外部擴展存儲器設(shè)計

          C8051Fl21MCU內(nèi)部有位于外部數(shù)據(jù)存儲器空間的8K字節(jié)片上RAM,但是對于實際的彈道速度信號發(fā)生器而言存儲空間偏小,因而需要擴展容量更大的外部存儲器。C8051F121提供用于訪問片外存儲器和存儲器映射I/0器件的外部數(shù)據(jù)存儲器接口(EMIF)。設(shè)計中采用的是IDT公司的IDT71V124SA芯片,3.3V供電,是高速的CMOS靜態(tài)RAM,采用了高性能,高可靠性的CMOS技術(shù)和JEDEC中心電源/接地管腳分布,極大地減少了噪聲,優(yōu)化了系統(tǒng)性能。IDT7IVl24SA芯片提供了128x8存儲容量,很好地滿足了設(shè)計系統(tǒng)對數(shù)據(jù)和程序存儲空間的要求。在單片機和外部存儲器之間應(yīng)用了一個地址鎖存器74VHC573,用來鎖存存儲到IDT71V124SA的數(shù)據(jù)。接口部分采用地址和數(shù)據(jù)總線復(fù)用的方式以減少所需要的端口引腳數(shù),這樣配置使得外部存儲器和C805IFl21之間傳輸數(shù)據(jù)時低位地址保持在鎖存器中,不需要再為數(shù)據(jù)傳輸增加8位端口。

          3.3 外部晶振設(shè)計

          對于實際的系統(tǒng)而言,C8051F121單片機的內(nèi)部時鐘頻率不能滿足要求,因而需要配置較大頻率的外部振蕩器。C8051Fl2x器件包含一個內(nèi)部振蕩器和一個外部振蕩器驅(qū)動電路,可以驅(qū)動外部晶體、陶瓷諧振器、電容或RC網(wǎng)絡(luò)。設(shè)計中采用外部晶體作為外部振蕩器。晶體振蕩器被使能后,幅值檢測電路需要一段穩(wěn)定時間才能達到正確的偏囂。在使能振蕩器下作和檢XTLVLD位之間至少等待1 ms,以防止過早將外部振蕩器切換為系統(tǒng)時鐘。等查詢到XTLVLD=>’1’時,將系統(tǒng)時鐘切換到外部振蕩器。由于晶體振蕩器電路對PCB布局非常敏感。在布局中將晶體盡可能地靠近了器件的XTAL引腳。引線地短并用地平面屏蔽,防止從其它引線引入噪聲或干擾。

          3.4DAC設(shè)置

          C8051F121器件有兩個片內(nèi)12位電壓方式數(shù)/模轉(zhuǎn)換器(DAC)。設(shè)計中使用了DAC1。并基于定時器溢出更新輸出,這樣在用DAC產(chǎn)生一個固定采樣頻率的波形時,可以消除中斷延遲不同和指令執(zhí)行時間不同對DAC輸出時序的影響。當(dāng)DACIMD位(DAClCN[4:3])被設(shè)置為‘01’、‘10’或‘ll’時,對DAC兩個數(shù)據(jù)寄存器(DAClL和DAClH)的寫操作被保持,直到相應(yīng)的定時器溢出事件(分別為定時器3、定時器4或定時器2)發(fā)生時DACOH:DACOL的內(nèi)容才被復(fù)制到DAC輸入鎖存器,允許DAC數(shù)據(jù)改變?yōu)樾轮?。設(shè)計中在DAC輸出口加入了電壓跟隨器,平穩(wěn)地輸出波形。

          4 軟件設(shè)計

          系統(tǒng)軟件設(shè)計部分包括單片機端和人機交互端兩個部分。單片機端主要是通過串口接受來自采集系統(tǒng)的信號,保存到存儲器中,輸出電壓信號;人機交互端主要通過Visual Basic軟件編寫圖形界面,接受和傳送數(shù)據(jù),并且通過改變信號的幅值、脈寬、頻率、持續(xù)時間等來實現(xiàn)對整個系統(tǒng)的控制。

          4.1單片機端實現(xiàn)程序

          單片機端軟件采用C51編寫,使用KeiluVision集成開發(fā)環(huán)境。主要完成單片機的初始化、串口通信和DAC輸出設(shè)置,單片機的初始化主要是單片機的串口中斷打開和系統(tǒng)配置初始化。單片機的串口通信模塊主要完成單片機和上位機的通信,把系統(tǒng)需要的信息交由上位機進行處理。由于C8051F121單片機具有片內(nèi)的UART,兇而只要設(shè)置適當(dāng)?shù)钠孀衅魇箚纹瑱C工作起來,設(shè)計中串口通訊方式使用了效率高的中斷方式接受和發(fā)送數(shù)據(jù)。

          上一頁 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); })();