版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
多脈沖信號發(fā)生器的軟件設(shè)計案例概述目錄TOC\o"1-3"\h\u11800多脈沖信號發(fā)生器的軟件設(shè)計案例概述 1293031.1系統(tǒng)主程序設(shè)計 1207241.2各模塊程序設(shè)計 2242241.1.1波形發(fā)生程序設(shè)計 2303111.1.2顯示程序設(shè)計 530748第2章仿真調(diào)試與結(jié)果分析 9137072.1仿真調(diào)試 973052.2仿真結(jié)果分析 1053472.2.1顯示模塊實驗仿真結(jié)果 10169662.2.2按鍵模塊實驗仿真結(jié)果 10234172.2.3波形模塊實驗仿真結(jié)果 11158042.2.4總體仿真結(jié)果 1460292.3PCB設(shè)計 161.1系統(tǒng)主程序設(shè)計本設(shè)計采用的是模塊化編程,將每個需要實現(xiàn)的功能進行模塊化。然后,在主程序中調(diào)用子程序。首先,需要對單片機進行初始化,再執(zhí)行主程序。在主程序中,判斷是否有按鍵按下,當檢測的模式按鍵按下后,切換對應(yīng)的波形輸出,當檢測到頻率改變按鍵按下后,改變當前波形的輸出頻率,系統(tǒng)的主程序流程如圖4-1所示。圖4-1主程序流程圖1.2各模塊程序設(shè)計1.1.1波形發(fā)生程序設(shè)計 (1)正弦波:0x80,0x82,0x85,0x88,0x8b,0x8e,0x91,0x94,0x97,0x9a,0x9d,0xa0,0xa3,0xa6,0xa9,0xac,0xaf,0xb2,0xb6,0xb9,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd3,0xd6,0xd1,0xda,0xdd,0xdf,0xe8,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xe4,0xf1,0xf5,0xf4,0xf5,0xf6,0xf2,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xf1,0xf0,0xff,0xff,0xf7,0xf5,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,由于DAc0832是8精度的轉(zhuǎn)換器,其計算如下:QUOTE80×5v/25680×5v/256(即80×LSB)82×LSB……根據(jù)DAC0832的特性將一個周期正弦波數(shù)字量分為256段,將這些數(shù)字量組成數(shù)組再通過循環(huán)就能得到正弦波。具體程序如下://正弦波voidZXB_wave(unsignedintfreq){ unsignedchari; freq=freq/300; for(i=0;i<255;i++) { P2=SinTab[i]; //delay(); delay_us1(freq); }}(2)方波:單片機將初始數(shù)字量0送入到DAC0832中,先延遲段時間,再將0xff送到其中,再經(jīng)過延遲,通過不斷地循環(huán)就得到了方波。具體程序如下://方波voidFangbo_wave(unsignedintfreq){ P2=0x00; delay_us(freq); P2=0xff; delay_us(freq);}(3)三角波:單片機將初始數(shù)字量0送入到DAC0832中,一直加1,當數(shù)值到達0xff時,再把DAC0832中的數(shù)字量不斷減1,通過不斷地循環(huán)就得到了三角波。具體程序如下://三角波voidSANjiaobo_wave(unsignedintfreq){ unsignedchari; freq=freq/500;if(freq>1)freq=freq-1; for(i=0;i<255;i++) { P2=i; delay_us1(freq); } for(i=255;i>0;i--) { P2=i; delay_us1(freq); }}(4)鋸齒波:鋸齒波產(chǎn)生的原理于三角波類似,就是在數(shù)字量輸出最高點直接躍變到最低點,然后通過循環(huán)獲得鋸齒波的輸出。具體程序如下://鋸齒波voidJUchibo_wave(unsignedintfreq){ unsignedchari; freq=freq/300;for(i=255;i>0;i--) { P2=i; delay_us1(freq); }}波形的輸出主要是控制模塊使AT89C52單片機,用軟件設(shè)計的方法來產(chǎn)生四種波形,調(diào)試程序來控制按下相應(yīng)按鍵實現(xiàn)的功能所輸出的信號。1.1.2顯示程序設(shè)計LCD可以顯示數(shù)字字母,英文等,但是中文字符輸出不了,LCD顯示內(nèi)置了字符發(fā)生器,字符的顯示和代碼是意義對應(yīng)的,并且每一位的顯示都有其對應(yīng)的地址,因此在設(shè)計顯示的程序的時候需要對想顯示的字符和數(shù)字進行UNcode碼對應(yīng),在一屏顯示的時候需要先將片選信號置低,然后發(fā)送數(shù)據(jù)包,根據(jù)顯示器的相應(yīng)來操作,由于顯示器只能顯示兩行,所以多個數(shù)據(jù)顯示的時候可以進行切換,切換的時候就需要清屏,然后重新發(fā)送數(shù)據(jù),這樣通過清屏命令可以實現(xiàn)切換菜單,實現(xiàn)多組信息的顯示。LCD1602功能指令圖如下圖4-2所示:圖4-2LCD1602功能指令圖LCD初始化流程圖如下圖4-3所示。圖4-3LCD1602初始化流程圖其程序如下所示:voidLcdInint() //LCD初始化子程序{ LcdWCom(0x38);//開啟顯示 LcdWCom(0x0c);//開顯示但不顯示光標 LcdWCom(0x06);//寫一個指針加1 LcdWCom(0x01);//清屏 LcdWCom(0x80);//設(shè)置數(shù)據(jù)指針起點}顯示流程圖如圖4-4所示。圖4-4液晶顯示程序流程圖#include"lcd.h"#include"string.h"#include"stdio.h"voidLcdWCom(ucharcom) //LCD寫入命令的子程序{ LCD1602_e=0;//使能端置低電平 LCD1602_rs=0; //選擇發(fā)送命令端 LCD1602_rw=0; //選擇寫入端 LCD1602_Mingling=com;//放入命令 Lcd1602_delay1ms(1); //延時1s保持數(shù)據(jù)穩(wěn)定 LCD1602_e=1; Lcd1602_delay1ms(5); LCD1602_e=0;}voidLcdWData(uchardat) //寫入字節(jié)數(shù)據(jù)的子程序{ LCD1602_e=0; //使能清零 LCD1602_rs=1; //選擇輸入數(shù)據(jù) LCD1602_rw=0; //選擇端置0 LCD1602_Shuju=dat;//寫入數(shù)據(jù) Lcd1602_delay1ms(1); LCD1602_e=1;//使能端置1 Lcd1602_delay1ms(5);//延時5s LCD1602_e=0;}第2章仿真調(diào)試與結(jié)果分析2.1仿真調(diào)試本設(shè)計是在Proteus下進行仿真調(diào)試的,建立的仿真程序,Proteus是可以模擬實際電路的仿真軟件,可以完成數(shù)字電路以及模擬電路的仿真,Proteus7.8版本可以仿真51系列大部分的單片機,在7.8版本后,升級后的Proteus可以仿真STM32等單片機,功能更加強大。本設(shè)計在7.8環(huán)境下對多脈沖信號發(fā)生器進行了仿真分析,根據(jù)本設(shè)計的方案以及硬件電路設(shè)計。繪制了仿真原理圖,仿真原理圖如圖5-1所示。圖5-1仿真原理圖如圖5-1,仿真原理圖包含了單片機的最小系統(tǒng)電路,顯示電路,DAC0832數(shù)模轉(zhuǎn)換電路,還有放大電路,為了更好的觀察波形的變換,本設(shè)計利用Proteus自帶的虛擬示波器進行波形觀察,改變按鍵可以切換波形,然后通過頻率的按鍵來實現(xiàn)波形頻率變化,仿真原理圖和電路的設(shè)計完全是一致的,Proteus環(huán)境下,單片機可以同時仿真軟件,這樣在驗證電路設(shè)計的同時也能實現(xiàn)軟件的仿真驗證。2.2仿真結(jié)果分析2.2.1顯示模塊實驗仿真結(jié)果由單片機的最小系統(tǒng)搭配LCD液晶顯示屏組成,為了測試LCD是否能顯示對應(yīng)的字符串,通過程序的編寫了以學號組成的字符組“178111522215”讓顯示器顯示。其主要設(shè)計思路為,先顯示模塊的初始化再確定顯示的位置和顯示的內(nèi)容。如下圖5-2所示。圖5-2顯示實驗仿真結(jié)果實驗結(jié)果:LCD1602成功按照編寫的軟件程序顯示了相應(yīng)的字符。2.2.2按鍵模塊實驗仿真結(jié)果按鍵模塊使用了8個獨立按鍵和LCD1602組成,P1.0~P1.3四個接口控制MODE的切換P1.3~P1.6控制頻率的加減。其主要為了測試按鍵按下是否能改變顯示的結(jié)果,沒有設(shè)置頻率的上線不影響實驗的結(jié)果。按鍵模塊仿真結(jié)果如下圖5-3所示,先在按1下“MODE3”按鍵,“+100HZ”按鍵點擊13下,“+10HZ”按鍵點擊2下。圖5-3按鍵模塊仿真結(jié)果實驗結(jié)果:顯示屏根據(jù)按鍵的按下顯示出相應(yīng)的數(shù)字。八個獨立的按鍵先全部置為低電平,外加的上拉電阻使單片機端口置為高電平,當點擊按鍵時,相應(yīng)的按鍵連接的端口才會變?yōu)榈碗娖?,單片機芯片通過循環(huán)檢測就能判斷按鍵是否有按下。2.2.3波形模塊實驗仿真結(jié)果根據(jù)DAC0832的數(shù)據(jù)手冊只要芯片外接一個運放就可以組成實現(xiàn)波形輸出電路。具體接法如下圖5-4所示。圖5-4DAC0832接線圖其中輸入“+Vref”需要接一個電平接的是5V的參考電壓,“IOUT1”接的是運放的反向輸入端,“IOUT2”接的是運放的同向輸入端?!癛fb”電阻是在DAC芯片的內(nèi)部接在芯片的第九引腳,根據(jù)應(yīng)用手冊提供的輸出電壓計算公式得到相應(yīng)得輸出電壓。將方波波形程序加載到單片機中其結(jié)果如5-5所示。圖5-5方波實驗仿真結(jié)果這里將DAC芯片的DI0~DI7數(shù)據(jù)輸入引腳接到單片機的P1端。其中“CS”片選引腳置低電平芯片才能正常輸出電壓,查看應(yīng)用手冊將芯片的控制引腳都接上有效的電平信號。根據(jù)實驗實現(xiàn)了方波的輸出,但得到的波形并不穩(wěn)定,需要外接電路的除雜降噪處理。將三角波波形程序加載到單片機中其結(jié)果如5-6所示:圖5-6三角波實驗仿真結(jié)果實驗現(xiàn)象:將波形放大可以看到輸出的三角波是由一個個階梯波連接而成與DAC0832輸出信號的原理符合。從第一個波形幅值最低點到下一個最低點為一個周期,一般通過調(diào)節(jié)延時的時間可以改變其時間周期。DAC將輸出電壓分為256份,一份的電壓值對應(yīng)的一位的數(shù)字量轉(zhuǎn)換為相應(yīng)位的模擬量。將鋸齒波波形程序加載到單片機中其,結(jié)果如5-7所示。圖5-7鋸齒波實驗仿真結(jié)果實驗現(xiàn)象:矩形波輸出與三角波的輸出結(jié)果相似。修改了相應(yīng)的軟件部分,當輸出波形到達最高值直接斷崖式的回歸到最低值。將正弦波波形程序加載到單片機中其,結(jié)果如5-8所示:圖5-8正弦波實驗仿真結(jié)果由實驗結(jié)果可知輸出的波形信號不經(jīng)過調(diào)理放大電路的調(diào)制,波形的輸出不穩(wěn)定出現(xiàn)失真現(xiàn)象。因只考慮波形能否正常的輸出由于直放置了一個運放,其輸出波形是以X軸為中心線對稱的。2.2.4總體仿真結(jié)果單片機加載完成hex文件時候,啟動仿真,首先對正弦波的仿真結(jié)果進行測試,根據(jù)示波器的信號輸出,測試結(jié)果如圖5-9所示。圖5-9正弦波仿真結(jié)果如圖5-9,通過示波器的觀察,我們可以看到,本設(shè)計的輸出的正弦波脈沖信號波形比較理想,符合設(shè)計要求。然后通過按鍵切換波形,對三角波的波形進行測試,測試結(jié)果如圖5-10所示。圖5-10f=400Hz三角波仿真結(jié)果如圖5-10,三角波的仿真結(jié)果中,輸出頻率為400Hz,通過改變按鍵選擇波形,調(diào)整三角波的輸出頻率,仿真結(jié)果如圖5-11所示。圖5-11f=500Hz三角波仿真結(jié)果通過改變頻率的按鍵,我們可以看到,三角波的輸出會有一個變換過程,變換之后頻率也改變了,符合設(shè)計要求。之后對鋸齒波進行仿真測試,鋸齒波的測試放著結(jié)果如圖5-12所示。圖5-12f=500Hz鋸齒波仿真結(jié)果如圖5-12,通過示波器可以看到,鋸齒波的頻率為500Hz,輸出的波形符合設(shè)計要求,并且波形比較好。最后是對方波的信號進行仿真,方波相對于其他波形來說,比較好生成,方波的仿真結(jié)果如圖5-13所示。圖5-13f=500Hz方波仿真結(jié)果2.3PCB設(shè)計關(guān)于PCB的設(shè)計這里用的是AD18,AD是一款用于3DPCB設(shè)計和嵌入式系統(tǒng)開發(fā)的設(shè)計軟件。AD作為現(xiàn)在常用的電子設(shè)計的工具使用,主要由PCBlayout、FPGA設(shè)計、嵌入式開發(fā)三大核心模塊組成。其軟件具有的操作簡單、展示直觀、方便的優(yōu)點深受各類用戶稱贊。在AD18版本中加強了PCB布線的功能,讓用戶能更加流暢的完成工作,對于學習PCB板設(shè)計提供了良好的環(huán)境。圖5-14電路原理圖原理圖如上圖5-14所示,首先根據(jù)仿真電路繪制原理圖。其主要由最小單片機系統(tǒng)、DC電源接口、顯示模塊和調(diào)理電路構(gòu)成。當我們添加完元器件的封裝和檢測電路圖沒有報錯后就可以導入到PCB中。首先先介紹其主要元器件,如下表5-15所示。表5-15主要元器件清單序號元件標號元件名稱數(shù)量1S1,S3,S3,S4,S5,S6,S7,S8,S9輕觸按鍵92S10自鎖開關(guān)1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 模型攻擊防御技術(shù)探索-第3篇
- 數(shù)據(jù)備份與恢復方案設(shè)計要點
- 2026年數(shù)據(jù)分析基礎(chǔ)概念與原理題解
- 2026年國際貿(mào)易實務(wù)操作報關(guān)員考試模擬卷
- 2026年電氣工程師技能進階全題型試題集
- 2026年軟件工程原理與項目管理試題集
- 2026年銀行金融測試銀行業(yè)務(wù)知識招聘筆試練習題
- 2026年國際商務(wù)談判技巧與文化差異應(yīng)對考核題
- 2026年財務(wù)報告編制與財務(wù)分析技能測試
- 2026年藝術(shù)鑒賞能力與文化修養(yǎng)測試題
- 2026上海市事業(yè)單位招聘筆試備考試題及答案解析
- 高支模培訓教學課件
- GB/T 21558-2025建筑絕熱用硬質(zhì)聚氨酯泡沫塑料
- 企業(yè)中長期發(fā)展戰(zhàn)略規(guī)劃書
- 道路運輸春運安全培訓課件
- IPC-6012C-2010 中文版 剛性印制板的鑒定及性能規(guī)范
- 機器人手術(shù)術(shù)中應(yīng)急預(yù)案演練方案
- 2025年度護士長工作述職報告
- 污水處理藥劑采購項目方案投標文件(技術(shù)標)
- 醫(yī)院信訪應(yīng)急預(yù)案(3篇)
- 2025年領(lǐng)導干部任前廉政知識測試題庫(附答案)
評論
0/150
提交評論