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

正文內(nèi)容

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

2024-12-07 09:54本頁面

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

  

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