freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于52單片機(jī)的波形發(fā)生器的設(shè)計(jì)-資料下載頁

2024-12-07 09:54本頁面

【導(dǎo)讀】齒波和脈沖波五種波形的模擬量的輸出。該波形發(fā)生器主要由兩部分組成:系。統(tǒng)硬件設(shè)計(jì)和系統(tǒng)軟件設(shè)計(jì),在系統(tǒng)硬件設(shè)計(jì)中,以STC89C52單片機(jī)為核心,模塊74LS165和LCD1602頻率、幅度顯示模塊。并且采用單片機(jī)仿真軟件。產(chǎn)生子程序、按鍵功能子程序和顯示子程序等模塊。特點(diǎn),有一定的開發(fā)價(jià)值。實(shí)驗(yàn)表明,設(shè)計(jì)系統(tǒng)的測(cè)試結(jié)果與實(shí)際波形的頻率

  

【正文】 程序、顯示子程序、延時(shí)子程序、各波形產(chǎn)生子程序等。 主程序流程圖 主程序設(shè)計(jì)思路 :首先給單片機(jī)上電,對(duì) LCD1602 和中斷進(jìn)行初始化設(shè)置,然后進(jìn)行進(jìn)行按鍵掃描,如果有按鍵按下就產(chǎn)生外部中斷 0 中斷,首先判斷方波選擇按鍵 SQ 是否按下,若按下對(duì)應(yīng)的 LED 指示燈點(diǎn)亮;若沒按下繼續(xù)判斷鋸齒波選擇按鍵 ST 是否按下,若按下對(duì)應(yīng)的 LED 指示燈點(diǎn)亮;若沒按下繼續(xù)判斷三角波選擇按鍵 TRI 是否按下,若按下對(duì)應(yīng)的 LED 指示燈點(diǎn)亮;若沒按下繼續(xù)判斷正弦波選擇按鍵 SIN 是否按下,若按下對(duì)應(yīng)的 LED 指示燈點(diǎn)亮,若四個(gè)按鍵均未按下,跳到主程序,等待中斷的產(chǎn)生。主程序流程圖如圖 所示 [9]。 基于單片機(jī)的波形發(fā)生器的設(shè)計(jì) 19 Y N Y N Y N Y N 圖 主程序流程圖 頻率調(diào)整子程序 (1) 程序設(shè)計(jì)思路 按鍵部分我們通過 8位撥碼開關(guān)來實(shí)現(xiàn) 8位數(shù)字量通過 74ls165的并行輸入開 始 初始化,設(shè)置常量及指針 SQUK 按下 熄滅 SQUL 熄滅 SAWL 熄滅 TRIL 熄滅 SINL 點(diǎn)亮 SINL 調(diào)用方波輸出程序,輸出一個(gè)方周期的方波 點(diǎn)亮 TRIL 點(diǎn)亮 SAWL 點(diǎn)亮 SQUL 調(diào)用鋸齒波波輸出程序,輸出一個(gè)方周期的鋸齒波波 調(diào)用三角波輸出程序,輸出一個(gè)方周期的三角波 調(diào)用正弦波輸出程序,輸出一個(gè)方周期的正弦波 SAWK按下 TRIK 按下 SINK 按下 基于單片機(jī)的波形發(fā)生器的設(shè)計(jì) 20 串行輸出的數(shù)據(jù)存入單片機(jī)的累加器 A 中,然后將 A 中的值取反后送給寄存器R3,以 R3 為延時(shí)常數(shù)進(jìn)行延時(shí),使得階梯電壓沒升高一定的數(shù)值后就以 R3 為延時(shí)常數(shù)進(jìn)行延時(shí),從而改變波形的輸出頻率,使頻率能夠?qū)崟r(shí)隨著撥碼按鍵開關(guān)量的輸入而改變,實(shí)時(shí)性較強(qiáng)。 (2) 部分程序 START1: CLR ; 并行置入數(shù)據(jù) ,S/ =0 SETB ; 允許 串行移位 ,S/ =1 RXDATA1:MOV SCON,00010000B ; 設(shè)置串口方式 0,允許接收 ,啟動(dòng)接收 JNB RI,$ ; 等待外部數(shù)據(jù) CLR RI ; 清除接收完標(biāo)志 MOV A,SBUF ; 讀取數(shù)據(jù) CPL A MOV R3,A 顯示子程序流程圖 圖 顯示子 程序流程圖 [10] 入口 讀忙“ BF”信號(hào) BF=1? 向控制器寫入要訪問的外 RAM 地址 讀忙“ BF”信號(hào) 數(shù)據(jù)顯示完? BF=1? 讀 /寫顯示數(shù)據(jù) 返主程序 讀忙“ ”信號(hào)BF=1? N N N Y Y Y 基于單片機(jī)的波形發(fā)生器的設(shè)計(jì) 21 各波形產(chǎn)生子程序 (1) 鋸齒波產(chǎn)生子程序 1) 鋸齒波 產(chǎn)生原理 鋸齒波中的斜線用一個(gè)個(gè)小臺(tái)階來逼近,在一個(gè)周期內(nèi)從最小值開始逐步遞增, 當(dāng)達(dá)到最大值后又回到最小值,如此循環(huán),當(dāng)臺(tái)階間隔 很小時(shí),波形基本上近似于直線。適當(dāng)選擇循環(huán)的時(shí)間,可以得到不同周期的鋸齒波。鋸齒波發(fā)生原理與方波類似,只是高低兩個(gè)延時(shí)的常數(shù)不同,所以用延時(shí)法,來產(chǎn)生鋸齒波。先將 00H 給寄存器 R6 賦值,然后讓它不斷地自加 1,直到加到 255,DAC0832 可以又自動(dòng)歸 0,然后再不斷地重復(fù)上述過程進(jìn)而產(chǎn)生鋸齒波。 2) 鋸齒波 產(chǎn)生子程序 流程圖 如圖 所示。 圖 鋸齒波產(chǎn)生子程序流程圖 (2) 方波產(chǎn)生子程序 1) 方波產(chǎn)生原理 先給寄存器 R0 賦值 00H,并且將 0FFH 送給 P0 口( DAC0832 的八位數(shù)據(jù)輸入端與 P0 口相連)使得 DAC0832 電壓輸出端輸出高電平,然后讓它不斷地R7, Acc 清零 P0=R7 讀撥碼開關(guān)狀態(tài),取反后存入 R3 以 R3 為延時(shí)常數(shù),延時(shí) R7=R7+1 R0=254? R7=255? 返回 Y N 基于單片機(jī)的波形發(fā)生器的設(shè)計(jì) 22 自加 2,直到加到 254,重新給寄存器 R0 賦值 00H,并且將 00H 送給 P0 口,使得 DAC0832 電壓輸出端輸出低電平,然后讓它不斷地自加 2,直到加到 254,可以又自動(dòng)歸 0,然后再不斷地重復(fù)上述過程進(jìn)而產(chǎn)生方波。 2) 方波 產(chǎn)生子程序 流程圖 見圖 。 圖 方波產(chǎn)生子程序流程圖 設(shè) R0=9 P0口輸出 0FFH 讀撥碼開 關(guān)狀態(tài),取反后存入 R3 以 R3 為延時(shí)常數(shù),延時(shí) R0=R0+2 R0=254? R0 清零 P0口輸出 00H 讀撥碼開關(guān)狀態(tài),取反后存入 R3 以 R3 為延時(shí)常數(shù),延時(shí) R0=R0+2 ? R0=254? 返回 Y N 設(shè) R0=0 口輸出讀撥碼開關(guān)狀態(tài),取反后存入以 為延時(shí)常數(shù),延時(shí)?清零口輸出讀撥碼開關(guān)狀態(tài),取反后存入以 為延時(shí)常數(shù),延時(shí)??返回N Y 基于單片機(jī)的波形發(fā)生器的設(shè)計(jì) 23 (3) 三角波產(chǎn)生子程序 1) 三角波產(chǎn)生子程序 流程圖見圖 。 圖 三角 波 產(chǎn)生子程序流程圖 2) 三角波產(chǎn)生原理 設(shè) R7=0 P0=R7 讀撥碼開關(guān)狀態(tài),取反后存入 R3 以 R3 為延時(shí)常數(shù),延時(shí) R7=R7+2 R0=254? P0=R7 讀撥碼開關(guān)狀態(tài),取反后存入 R3 以 R3 為延時(shí)常數(shù),延時(shí) R7=R72 R7=2? R7=0? 返回 Y N Y N 基于單片機(jī)的波形發(fā)生器的設(shè)計(jì) 24 先給寄存器 R7 賦值 00H,然后讓它不斷地自加 2,每次 R7 加 2 后都要進(jìn)行一次 DA 轉(zhuǎn)換,直到加到 255,然后讓它不斷地自減 2,每次 R7 減 2 后都要進(jìn)行一次 DA 轉(zhuǎn)換,直到減到 00,可以又自動(dòng)歸 0,然后再不斷地重復(fù)上述過程進(jìn)而產(chǎn)生三角波。 (4) 正弦波產(chǎn)生 子程序 1) 正弦波產(chǎn)生子程序 流程圖見圖 。 圖 正弦波 產(chǎn)生子程序流程圖 R0 指向正弦數(shù)據(jù)表頭 根據(jù) R0 查表,輸出數(shù)據(jù) 讀撥碼開關(guān)狀態(tài),取反后存入 R3 R0=R0+1 數(shù),延時(shí) R0=254? R0=R01 根據(jù) R0 查表,輸出數(shù)據(jù) 以 R3 為延時(shí)常數(shù),延時(shí) R0=R01 R0=9? R0=0? 返回 Y N Y N 以 R3 為延時(shí)常數(shù),延時(shí) 讀撥碼開關(guān)狀態(tài),取反后存入 R3 基于單片機(jī)的波形發(fā)生器的設(shè)計(jì) 25 2 ) 正弦波產(chǎn)生原理 方法一: 采用分立元件構(gòu)成非穩(wěn)態(tài)的多諧振振蕩器,根據(jù)具體需要加入積分電路等構(gòu)成波形發(fā)生 器。但這種波形發(fā)生器輸出頻率范圍窄,而且電路參數(shù)設(shè)定較繁瑣,輸出的波形易受外界環(huán)境影響,不穩(wěn)定,對(duì)電路硬件要求很高,不易實(shí)現(xiàn)。 故不采用本方法來產(chǎn)生正弦波。 方法二: DAC0832 是 8 位的 D/A 轉(zhuǎn)換器件,其工作電壓是 0—5V,當(dāng)輸入00H 數(shù)字量的時(shí)候,輸出為 0V電壓;當(dāng)輸入 07FH 數(shù)字量的時(shí)候,輸出為 電壓;當(dāng)輸入 0FFH 數(shù)字量的時(shí)候,輸出為 5V電壓。單片機(jī)的 I/O 輸出均為 +5 V的 TTL電平,因此產(chǎn)生的正弦波(以正弦波為例)幅值為 + V。將一個(gè)周期內(nèi)的正弦波形等分為 256 份,對(duì)應(yīng) 256 個(gè)數(shù)字量, 利用查數(shù)據(jù)表的方式來實(shí)現(xiàn)波形的產(chǎn)生。將這些單極性方式下的數(shù)字量轉(zhuǎn)換為正弦值模擬量輸出。而每次送到 DAC0832 的八位數(shù)字量是根據(jù)查正弦波形數(shù)據(jù)表格而得到 。 基于單片機(jī)的波形發(fā)生器的設(shè)計(jì) 26 5 系統(tǒng)軟硬件調(diào)試與數(shù) 據(jù) 處理 軟件仿真及 軟件 程序調(diào)試 軟件仿真 環(huán)境 在 軟件中進(jìn)行硬件電路的原理圖的繪制和仿真,在仿真的過程中,由于考慮到單片機(jī)的可用 I/O 口只有 32 個(gè),若將 8 位撥碼開關(guān)直接接到單片機(jī)的一個(gè) I/O 口會(huì)導(dǎo)致 LCD 的顯示接口不能與單片機(jī)有效的連接,因此最后采用 8 位并入串出的移位寄存器 74LS165 來實(shí)現(xiàn)兩 根數(shù)據(jù)線就可以與單片機(jī)連接,達(dá)到單片機(jī)實(shí)時(shí)采集撥碼開關(guān)的 8 位數(shù)字量來改變波形的頻率。 軟件 程序調(diào)試 系統(tǒng)軟件調(diào)試是通過程序調(diào)節(jié)從而使電路系統(tǒng)更好的工作,以期得到更接近準(zhǔn)確的數(shù)據(jù),從而使電路工作輸出更精確,更接近實(shí)際。 本設(shè)計(jì)主要做了以下程序調(diào)試: ( 1) 編寫完成了通過四個(gè)按鍵實(shí)現(xiàn)四種波形的輸出,但是此時(shí)的波形的頻率和幅度不可調(diào)。 ( 2) 通過我在圖書館查資料,編寫完成了可以通過 8 位撥碼開關(guān)的數(shù)字量送給單片機(jī)的 累加器 A,然后取反后在送給寄存器 R3 中,然后然 R3 減 1,直到減到 0 為止 ,利用此段延時(shí)作為兩 個(gè)階梯電壓之間的時(shí)間差,從而達(dá)到實(shí)時(shí)改變四種波形的頻率的目的。 ( 3) 為了節(jié)省單片機(jī)的 I/O 口資源,加了 8 位并入串出的移位寄存器74LS165 來將撥碼開關(guān)的 8 位數(shù)字量送給單片機(jī),經(jīng)單片機(jī)處理后改變波形的頻率。但是在加入程序后由于將 MOV SCON, 00010000B 誤寫為 MOV SCON, 00010000H 導(dǎo)致無法實(shí)現(xiàn)頻率可調(diào),最后改正后,即將正確的 74LS165的程序加入到每個(gè)波形的處理子程序中后,四種波形頻率均可調(diào) [10]。 ( 4) 編寫完成了能夠使 LCD1602 顯示 40H46HRAM 單元的 內(nèi)容程序,但是此程序不能顯示波形的頻率和幅度,經(jīng)過我修改程序?qū)艽a開關(guān)的 8 位數(shù)字量采集后送到寄存器 R0 中,然后通過 MOV R0,10H 和 MOV 40H,@R0 指令實(shí) 基于單片機(jī)的波形發(fā)生器的設(shè)計(jì) 27 現(xiàn)在 LCD1602上可顯示隨著撥碼開關(guān)的 8位數(shù)字量的改變而實(shí)現(xiàn)波形頻率的動(dòng)態(tài)變化。但是仿真的時(shí)候還是不能顯示波形頻率。 ( 5) 顯示程序中的數(shù)據(jù)表只有放到子程序里才行,不能放在 RET 外面,否則程序功能無法實(shí)現(xiàn);由于調(diào)用 DISPLAY 是需要一段延時(shí),故每產(chǎn)生一個(gè)周期的波形后必然對(duì)整個(gè)波形的最后的一個(gè)電平狀態(tài)延時(shí)一段時(shí)間( DISPLAY子程序所占的機(jī) 器周期) 。 ( 6) 在頻率處理 電路設(shè)計(jì) 時(shí),由于 自身 電路設(shè)計(jì) 的 不足和外界 噪聲 的干擾,致使 LCD1602 顯示的頻率、幅度與用數(shù)字示波器觀察得到的頻率、幅度有一定的 不一致 ,但通過一組組的數(shù)據(jù)觀察和比較,發(fā)現(xiàn)了其中的誤差規(guī)律,一次次對(duì)數(shù)據(jù)進(jìn)行記錄、分析、 統(tǒng)計(jì)、 總結(jié),進(jìn)行了一次次的 修 正,從而減小了誤差。 經(jīng)過以上程序的調(diào)試,最終實(shí)現(xiàn)了具有頻率和幅度均可調(diào) 的 四種波形 的輸出 , 并 且能在 LCD1602 上顯示波形的頻率和幅度。能夠更 好的服務(wù)于硬件, 因此本系統(tǒng) 達(dá)到 了 設(shè)計(jì)任務(wù) 書 所要求的性能指標(biāo)。 硬件 PCB 制作、 安裝、測(cè)試與 調(diào)試 PCB
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1