找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1769|回復(fù): 0
收起左側(cè)

基于單片機(jī)DAC0832的低頻波形發(fā)生器設(shè)計(jì)文檔

[復(fù)制鏈接]
ID:1077798 發(fā)表于 2023-5-16 11:52 | 顯示全部樓層 |閱讀模式
(1)利用所學(xué)單片機(jī)的理論知識(shí)進(jìn)行軟硬件整體設(shè)計(jì),鍛煉理論聯(lián)系實(shí)際、提高我們的綜合應(yīng)用能力。
(2)我們這次的設(shè)計(jì)是以單片機(jī)為基礎(chǔ),設(shè)計(jì)并開發(fā)統(tǒng)輸出多種波形(正弦波、三角波、鋸齒波、方波、梯形波)且頻率,幅度可變的函數(shù)發(fā)生器。
(3)掌握各個(gè)接口芯片(如 0832 等)的功質(zhì)特性及接口方法,并能運(yùn)用其實(shí)現(xiàn)一個(gè)簡單的微機(jī)應(yīng)用系統(tǒng)功能器件。
(4) 在平時(shí)的學(xué)習(xí)中,我們所學(xué)的知識(shí)大都是課本上的,在機(jī)房的練習(xí)大家也都是分散的對(duì)各個(gè)章節(jié)的內(nèi)容進(jìn)行練習(xí),因此,缺乏一種系統(tǒng)的設(shè)計(jì)鍛練。在所學(xué)結(jié)束以后,這樣的設(shè)計(jì)十分有助于知識(shí)系統(tǒng)的總結(jié)到一起。
(5) 通過這幾個(gè)波形進(jìn)行組合形成了一個(gè)函數(shù)發(fā)生器,使得我對(duì)系統(tǒng)的整個(gè)框架的設(shè)計(jì)有了一個(gè)很好的鍛煉,這不僅有助于大家找到自己感興趣的項(xiàng)目,更可以鍛練大家微機(jī)知識(shí)的應(yīng)用。

1.2 設(shè)計(jì)內(nèi)容

(1)利用設(shè)計(jì)一個(gè)能產(chǎn)生正弦波、方波、三角波、梯形波、鋸齒波的波形發(fā)生器。(2)以單片機(jī)為核心,利用數(shù)模轉(zhuǎn)換芯片0832 完成數(shù)模轉(zhuǎn)換。

(3)以按鍵來選擇要產(chǎn)生的波形。(4)用示波器觀察波形。



第 2 章 系統(tǒng)總體設(shè)計(jì)
2.1  系統(tǒng)基本模塊設(shè)計(jì)與論證
2.1.1   信號(hào)發(fā)生模塊

采用單片機(jī)和 DAC0832 數(shù)模轉(zhuǎn)換器生成波形。通過編程的方法來控制輸入到數(shù)模轉(zhuǎn)換電路的數(shù)字量,從而控制輸出信號(hào)的波形和頻率。它的特點(diǎn)是價(jià)格低、設(shè)計(jì)簡單, 在低頻范圍內(nèi)穩(wěn)定性好、操作方便、體積小、耗電少。


2.1.2   輸出顯示模塊

用 LCD 液晶進(jìn)行顯示。LCD 由于其顯示清晰,顯示內(nèi)容豐富,顯示信息量大,使用方便,顯示快速而得到了廣泛的應(yīng)用。


2.1.3  鍵盤模塊

采用獨(dú)立式按鍵電路,每個(gè)按鍵單獨(dú)占有一根 I/O 接口線,每個(gè) I/O 口的工作狀態(tài)互不影響,此類鍵盤采用端口直接掃描方式。缺點(diǎn)為當(dāng)按鍵較多時(shí)占用單片機(jī)的 I/O 口數(shù)目較多,優(yōu)點(diǎn)為電路設(shè)計(jì)簡單,且編程相對(duì)比較容易。


2.1.4   電路設(shè)計(jì)最終方案

本系統(tǒng)包括主控模塊,顯示模塊,信號(hào)發(fā)生模塊,鍵盤模塊,運(yùn)放模塊,綜上各方案所述,確定最終設(shè)計(jì)方案為:采用AT89C51 作為主控制系統(tǒng),LCD 液晶顯示作為顯示部分,獨(dú)立式按鍵作為鍵盤模塊,數(shù)模轉(zhuǎn)換芯片 DAC0832 作為信號(hào)發(fā)生模塊,LM324 作為電流/電壓轉(zhuǎn)換放大模塊。


2.2  系統(tǒng)原理及總體結(jié)構(gòu)圖
2.2.1   系統(tǒng)總體結(jié)構(gòu)圖
根據(jù)上述電路設(shè)計(jì)的最終方案,系統(tǒng)總體設(shè)計(jì)結(jié)構(gòu)如圖 1 所示。




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



3.1.1   數(shù)模轉(zhuǎn)換電路

數(shù)模轉(zhuǎn)換電路是本設(shè)計(jì)的關(guān)鍵電路,它決定著將數(shù)字信號(hào)轉(zhuǎn)變?yōu)槟M信號(hào),從而得到各種所需要的波形。

1.     數(shù)模轉(zhuǎn)換器的工作原理

數(shù)模轉(zhuǎn)換器可將數(shù)字量信號(hào)轉(zhuǎn)換成與此數(shù)值成正比的模擬量信號(hào)。需要轉(zhuǎn)換的數(shù)字量由一個(gè)二進(jìn)制數(shù)字表示,每位二進(jìn)制數(shù)字都有一定的權(quán),在轉(zhuǎn)換中,應(yīng)將二進(jìn)制數(shù)的每一位按照權(quán)的大小轉(zhuǎn)換成相應(yīng)的模擬量輸出分量,然后將各個(gè)輸出分量疊加,總和就是與數(shù)字量成正比的模擬量數(shù)值。

上述的 D/A 轉(zhuǎn)換,常用如圖 5 所示的倒 T 形解碼網(wǎng)絡(luò)加以實(shí)現(xiàn)。


圖5    倒T形電阻網(wǎng)絡(luò)D/A轉(zhuǎn)換器

電路設(shè)計(jì)如圖 5 所示,包括由 R-2R 組成的電阻網(wǎng)絡(luò)、模擬電子開關(guān)和集成運(yùn)算放大器。

對(duì)于電阻網(wǎng)絡(luò),無論從哪個(gè) R-2R 節(jié)點(diǎn)看,等效電阻都是 R,因此,從參考電壓端輸入的電流為: IR=VREF/R

根據(jù)分流公式,各支路電流為:
I7=I/21I6 =I/22I5 =I/23I4 =I/24I3 =I/25I2 =I/26I1 =I/27I0 =I/28
于是,經(jīng)過運(yùn)算放大器輸出的模擬電壓 VO 為:

VO = - RF∑Ii= -Rfb VREF/R×28(D7×27 +D6×26 +D5×25+ D4×24+D3×23+D2×22+D1×21+D0×20)

其中 VREF 是進(jìn)行 D/A 轉(zhuǎn)換的系統(tǒng)提供的參考電壓,Rfb 為集成運(yùn)算放大器的反饋電阻,D7 ~ D0 取值為 0 或 1,0 表示切換開關(guān)與地相連,1 表示與參考電壓相連。通過上述電路,即完成了二進(jìn)制數(shù)字信號(hào)到模擬電壓信號(hào)的轉(zhuǎn)換。

2.       數(shù)模轉(zhuǎn)換器的主要技術(shù)指標(biāo)
(1) 分辨率
分辨率指輸入給 D/A 轉(zhuǎn)換器的單位數(shù)字量引起的模擬量輸出的變化,通常定義為輸


出滿刻度值與 2n 之比(n 為 D/A 轉(zhuǎn)換器的二進(jìn)制位數(shù))。二進(jìn)制位數(shù)越多,分辨率越高, 即 D/A 轉(zhuǎn)換器對(duì)輸入量變化的敏感程度越高。使用時(shí),應(yīng)根據(jù)對(duì) D/A 轉(zhuǎn)換器分辨率的需要來選定 D/A 轉(zhuǎn)換器的位數(shù)。

(2) 相對(duì)精度

相對(duì)精度是指在滿刻度已經(jīng)校準(zhǔn)的前提下,在整個(gè)刻度范圍內(nèi),對(duì)應(yīng)于任一數(shù)碼的模擬量輸出與它的理論值之差。通常用偏差幾個(gè) LSB 來表示。

(3) 建立時(shí)間

建立時(shí)間是描述 D/A 轉(zhuǎn)換器轉(zhuǎn)換快慢的一個(gè)參數(shù),用于表明轉(zhuǎn)換時(shí)間或轉(zhuǎn)換速度。其值為從輸入數(shù)字量到輸出達(dá)到總值誤差±(1/2)LSB(最低有效位)時(shí)所需的時(shí)間。電流輸出的轉(zhuǎn)換時(shí)間較短,而電壓輸出的轉(zhuǎn)換器,由于要加上完成 I-V 轉(zhuǎn)換的運(yùn)算放大器的延遲時(shí)間,因此轉(zhuǎn)換時(shí)間要長一些?焖 D/A 轉(zhuǎn)換器的轉(zhuǎn)換時(shí)間可控制在 1us 以下。

(4) 線性度

通常用非線性誤差的大小表示 D/A 轉(zhuǎn)換器的線性度,輸入輸出特性的偏差與滿刻度輸出之比的百分?jǐn)?shù)表示非線性誤差。一定溫度下的最大非線性誤差一般為 0.01%~0.03%。

3.   DAC0832 數(shù)模轉(zhuǎn)換芯片主要特性與結(jié)構(gòu)

半導(dǎo)體公司生產(chǎn)的具有 2 個(gè)數(shù)據(jù)寄存器的 8 位分辨率的D/A 轉(zhuǎn)換芯片。此芯片與微處理器完全兼容,并且價(jià)格低廉,接口簡單,轉(zhuǎn)換控制容易, 在單片機(jī)應(yīng)用系統(tǒng)中得到了廣泛的應(yīng)用。

1.      DAC0832 的主要特性
l  分辨率為 8 位;
l  轉(zhuǎn)換時(shí)間為 1us;
l  可單緩沖、雙緩沖或者直接數(shù)字轉(zhuǎn)換;
l  只需在滿量程下調(diào)整其線性度;
l  邏輯電平輸入與 TTL 兼容;
l  單一電源供電(+5V~+15V);
l  基準(zhǔn)電壓的范圍為±10V。
2.      DAC0832 的內(nèi)部結(jié)構(gòu)

DAC0832 的內(nèi)部結(jié)構(gòu)框圖如圖 6 所示。它由 8 位輸入鎖存器、8 位 DAC 寄存器、8 位 D/A 轉(zhuǎn)換器及轉(zhuǎn)換控制電路構(gòu)成,通過兩個(gè)輸入寄存器構(gòu)成兩級(jí)數(shù)據(jù)輸入鎖存。




圖 6   DAC0832 內(nèi)部邏輯框圖

使用時(shí),數(shù)據(jù)輸入可以采用兩級(jí)鎖存(雙鎖存)、單級(jí)鎖存(一級(jí)鎖存,一級(jí)直通方式)或直接輸入(兩級(jí)直通)形式。上圖中,2個(gè)與門電路組成寄存器輸出控制邏輯電路, 該邏輯電路的功能是進(jìn)行數(shù)據(jù)鎖存控制。

3.      DAC0832 的引腳功能
DI0~DI7:8 位數(shù)據(jù)輸入線。
— —
CS:片選信號(hào)輸入,低電平有效。
ILE:數(shù)據(jù)鎖存允許控制信號(hào),高電平有效。
— —
WR1:輸入寄存器寫選通輸入信號(hào),低
平有效。


圖 7   DAC0832 的引腳
— —
WR2:DAC 寄存器寫選通輸入信號(hào),低電平有效。
:數(shù)據(jù)傳送控制信號(hào),低電平有效。上述兩個(gè)信號(hào)控制 DAC 寄存器是否為數(shù)據(jù)直
— —            — — — —                                                                 — —            — — — —
通方式。當(dāng) WR2=0 和XFER=0 時(shí),為 DAC 寄存器直通方式;當(dāng) WR2=1 或XFER=1 時(shí),


為 DAC 寄存器鎖存方式。
IOUT1、IOUT2:電流輸出,IOUT1+IOUT2=常數(shù)。

Rfb:反饋電阻輸入端。內(nèi)部接反饋電阻,外部通過該引腳接運(yùn)放輸出端。為了取得電壓輸出,需要在輸出端接運(yùn)算放大器,Rfb 即為運(yùn)算放大器的反饋電阻端。

Vref:基準(zhǔn)電壓,其值為-10V~+10V。AGND:模擬信號(hào)地。

DGND:數(shù)字信號(hào)地,為工作電源地和數(shù)字邏輯地,可在基準(zhǔn)電源處進(jìn)行單點(diǎn)共地。VCC:電源輸入端,其值為+5V~+15V。

4.      DAC0832 芯片與單片機(jī)的接口
— —                  — —        — —
采用直通工作方式,當(dāng) DAC0832 芯片的片選信號(hào)CS、寫信號(hào) WR1、WR2 及傳送
— — — —
控制信號(hào)XFER的引腳全部接地,允許輸入鎖存信號(hào) ILE 引腳+5V 時(shí),DAC0832 芯片就

處于直通工作方式,數(shù)字量一旦輸入,就直接進(jìn)入 DAC 寄存器,進(jìn)行 D/A 轉(zhuǎn)換,從輸出端得到轉(zhuǎn)換的模擬量。


3.1.2   電流/電壓轉(zhuǎn)換放大電路



由于從 DAC0832 轉(zhuǎn)換出來的模擬信號(hào)為電流信號(hào),為了方便觀測(cè)輸出信號(hào)的特征, 特將 DAC0832 輸出的信號(hào)經(jīng)過電流/電壓轉(zhuǎn)換放大電路轉(zhuǎn)變?yōu)殡妷盒盘?hào)。本設(shè)計(jì)中使用的運(yùn)放為 LM324。LM324 運(yùn)算放大器是價(jià)格便宜的帶差動(dòng)輸入功能的四運(yùn)算放大器。其引腳圖如圖 8 所示。
圖 8   LM324 引腳
LM324 的特點(diǎn):
1.短路保護(hù)輸出
2.真差動(dòng)輸入級(jí)
3.可單電源工作:3V-32V
4.低偏置電流:最大 100nA(LM324A)


5.每封裝含四個(gè)運(yùn)算放大器。
6.具有內(nèi)部補(bǔ)償?shù)墓δ堋?/font>
7.共模范圍擴(kuò)展到負(fù)電源
8.行業(yè)標(biāo)準(zhǔn)的引腳排列
9.輸入端具有靜電保護(hù)功能

DAC0832 輸出信號(hào)經(jīng)運(yùn)放電路轉(zhuǎn)變?yōu)殡妷汉笥袃煞N輸出方式。一種為單極性輸出方式。此方式中,DAC0832 通過使用一片LM324 運(yùn)算放大器將從單片機(jī)輸入的數(shù)字量 Din 轉(zhuǎn)換為電壓輸出,其輸出電壓為 Uout=Din/28 *(-VREF)。當(dāng) VREF=5V 時(shí),Uout的輸出范圍為-5V~0V。另一種為雙極性輸出方式。本設(shè)計(jì)中采用雙極性輸出方式,如圖 9 所示。其雙極性輸出原理為:因?yàn)?U1為-5V~0V,根據(jù)電流環(huán)路定理有

U1 + UREF  + Uout   = 0
R       2R        2R

即:Uout=-VREF-2U1

所以當(dāng) VREF=5V,而 U1 為-5V~ 0V 輸出時(shí),Uout 的輸出為-5~+5V,即實(shí)現(xiàn)了雙極性輸出。


            

圖 9   DAC0832 和兩片 LM324 實(shí)現(xiàn)雙極性輸出

3.1.3   液晶顯示電路

顯示模塊主要是用來顯示輸出信號(hào)的波形類型和頻率大小,本設(shè)計(jì)中以 LM016L 作為顯示器件。LM016L 智能型顯示模塊是一種低功耗、低價(jià)值、低損耗的顯示器件,它不但可以顯示各式各樣的字符、漢字和圖形,同時(shí)具有可編程能力,且與單片機(jī)接口方便。

1.        引腳功能說明

LCD LM016L 采用標(biāo)準(zhǔn)的14腳接口,各引腳接口說明如下: 第1腳:VSS 為地電源。

第2腳:VDD 接5V 正電源。

第3腳:VEE 為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K 的電位器調(diào)整對(duì)比度。

第4腳:RS 為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第5腳:R/W 為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng) RS 和 R/W 共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng) RS 為低電平 R/W 為高電平時(shí)可以

讀忙信號(hào),當(dāng) RS 為高電平 R/W 為低電平時(shí)可以寫入數(shù)據(jù)。

第6腳:E 端為使能端,當(dāng) E 端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。

2.        基本操作時(shí)序表
讀寫操作時(shí)序如圖10和圖11所示。


圖 10 讀操作時(shí)序
圖 11   寫操作時(shí)序
3.        LCD LM016L 的 RAM 地址映射及標(biāo)準(zhǔn)字庫表
液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)


志為低電平,表示不忙,否則此指令失效。圖12是016的內(nèi)部顯示地址。



圖 12   1602LCD 內(nèi)部顯示地址

016液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形。



圖 13 字符代碼與圖形對(duì)應(yīng)圖
4.        液晶 LM016L 顯示電路圖
本設(shè)計(jì)中,液晶顯示電路與單片機(jī)的連接如圖 14 所示。



圖 14  液晶顯示電路

3.1.4  鍵盤電路

該子系統(tǒng)是5 個(gè)獨(dú)立鍵盤和一個(gè)2 輸入與門組成,其中與門輸出端連接單片機(jī)的P3.2 口以便形成外部中斷。5 個(gè)按鍵分別連接單片機(jī)的 P2.0~P2.4 口。2 輸入與門一引腳與K1 按鍵相連,另一引腳接高電平。當(dāng) K1 按下時(shí),INT0 為低電平,可知外部中斷到了, 系統(tǒng)執(zhí)行中斷程序。當(dāng) K2~K5 按鍵某一個(gè)按下時(shí),對(duì)應(yīng)的 P2.1~P2.4 口中某個(gè)為低電平, 系統(tǒng)可以感知此按鍵按下,從而執(zhí)行相應(yīng)的程序。每個(gè)按鍵的功能如表 2 所示。

表 2 按鍵功能表

功能
屬性
波形選擇
自動(dòng)復(fù)位
頻率升高
自動(dòng)復(fù)位
頻率降低
自動(dòng)復(fù)位
步進(jìn)值
自動(dòng)復(fù)位
按鍵電路的電路圖如圖 15 所示。
                          
圖 15 按鍵電路圖




第 4 章 系統(tǒng)軟件設(shè)計(jì)

系統(tǒng)軟件主要是用來控制信號(hào)發(fā)生器系統(tǒng)按照設(shè)計(jì)的邏輯進(jìn)行運(yùn)行。在軟件設(shè)計(jì)上, 根據(jù)功能分成了多個(gè)模塊編程,主要包括:主程序模塊、四種不同的波形產(chǎn)生模塊、按鍵處理模塊、外部中斷模塊、液晶顯示模塊等。


4.1  系統(tǒng)主程序流程框圖
系統(tǒng)主程序流程圖如圖 16 所示,源程序見附件。


圖 16   系統(tǒng)主程序流程圖


4.2  信號(hào)產(chǎn)生子程序

本系統(tǒng)采用編程的方法,來輸出四種不同的波形即正弦波、矩形波、三角波、鋸齒波。各種波形的產(chǎn)生方法如下。


4.2.1   正弦波發(fā)生子程序

正弦波的產(chǎn)生比較特殊,它不能由單片機(jī)直接產(chǎn)生,只能由如圖 17 所示的階梯波來向正弦波逼近。很顯然,在一個(gè)周期內(nèi)階梯波的階梯數(shù)目越多,單片機(jī)輸出的波形也就



越接近正弦波。



圖 17   正弦波信號(hào)的產(chǎn)生

先假定正弦波的振幅是 2.56 V,則波谷對(duì)應(yīng)的數(shù)字量為最小值 00H,波峰對(duì)應(yīng)的數(shù)字量為最大值 FFH。將正弦波的第一個(gè)周期的波形按角度均分為若干等份,并計(jì)算出各點(diǎn)對(duì)應(yīng)的電壓值,電壓值計(jì)算方法:Vx=2.5·(1+sinθ),因?yàn)?00H~FFH 對(duì)應(yīng)的數(shù)字量為0~255,所以根據(jù)算出的電壓就可直接寫出各點(diǎn)所對(duì)應(yīng)的數(shù)字量。單片機(jī)將一個(gè)周期的數(shù)字量存入一定的存儲(chǔ)區(qū)域中,然后依次循環(huán)取出這些數(shù)字量,并送 D/A 電路轉(zhuǎn)換成階梯波,即近似的正弦波輸出。圖 18 為正弦波產(chǎn)生的流程圖。



圖 18 正弦波產(chǎn)生的流程圖

4.2.2   矩形波發(fā)生子程序

如圖 19 所示,矩形波的實(shí)現(xiàn)比較簡單。首先定義一個(gè)無符號(hào)字符型變量 i=0,使自變量 i 不斷的自動(dòng)加 1,若 i 的值小于squa_num,將 P0 口賦值為 0xFF;若 i 的值大于squa_num,則將 P0 口賦值為 0x00。當(dāng) i 自加到 256 后又自動(dòng)變?yōu)?0,以此循環(huán),即可得



到矩形波。當(dāng) squa_num=128 時(shí),此時(shí)輸出的為方波。調(diào)節(jié) squa_num 的大小,即可實(shí)現(xiàn)矩形波占空比的調(diào)節(jié);調(diào)節(jié)延時(shí)時(shí)間的大小,即可實(shí)現(xiàn)矩形波頻率的改變。




圖 19 矩形波產(chǎn)生流程圖

4.2.3   三角波發(fā)生子程序

三角波中的斜線用一個(gè)個(gè)小臺(tái)階來逼近,當(dāng)臺(tái)階間隔很小時(shí),波形基本上近似一直線。首先定義一個(gè)無符號(hào)字符型變量i=0,使自變量 i 不斷的自動(dòng)加 1,若 i 的值小于 128, 將 P0 口賦值為 i;若 i 的值大于 128,則將 P0 口賦值為 256-i。當(dāng) i 自加到 256 后又自動(dòng)變?yōu)?0,以此循環(huán),從而 P0 口實(shí)現(xiàn)了周期性的數(shù)字量變換,在經(jīng)過數(shù)模轉(zhuǎn)換后轉(zhuǎn)變成模擬信號(hào),經(jīng)運(yùn)算放大電路后就得到了周期性的三角波。三角波產(chǎn)生流程圖如圖 20 所示。



圖 20 三角波發(fā)生流程圖


4.2.4   鋸齒波發(fā)生子程序

鋸齒波的實(shí)現(xiàn)過程與三角波類似,也是定義一個(gè)變量 i=0,并使 P0=i,自變量 i 不斷的自動(dòng)加 1,直到加到 255,然后 i 又可以自動(dòng)歸為 0,再不斷的重復(fù)上過程。在此過程中,P0 口的值也隨著 i 一樣變化,經(jīng)數(shù)模轉(zhuǎn)換 DAC0832 后,周期性逐一變化的數(shù)字量就轉(zhuǎn)換為鋸齒波輸出了。通過調(diào)節(jié) P0 口每相鄰兩個(gè)值之間的延遲時(shí)間,就可以改變鋸齒波的頻率。圖 21 為鋸齒波發(fā)生流程圖。



圖 21 鋸齒波發(fā)生流程圖


4.3 按鍵處理子程序
在本設(shè)計(jì)中,主要是通過按鍵來調(diào)節(jié)輸出波形的類型、頻率的大小及矩形波的占空比,采用程序控制掃描方式,時(shí)刻監(jiān)視著有無按鍵按下。為了能夠更準(zhǔn)確的判斷按鍵的情況,一旦有按鍵按下時(shí),先延時(shí)去除按鍵的抖動(dòng),再判斷是哪個(gè)按鍵按下,從而單片機(jī)對(duì)應(yīng)的執(zhí)行相應(yīng)的程序。圖 22 為按鍵處理流程圖。
圖 22  按鍵處理流程圖


4.4 液晶顯示子程序
LCD LM016L 的顯示函數(shù)很簡單,只要嚴(yán)格按照其時(shí)序圖操作,并結(jié)合其相關(guān)指令集,寫好 LCD 的初始化程序,清屏程序,寫指令程序,寫數(shù)據(jù)程序,讀數(shù)據(jù)程序等一系列驅(qū)動(dòng)程序,即可完成 LCD 的所有顯示需要。在本設(shè)計(jì)中,由于需要顯示的內(nèi)容比較多, 且有些需要重復(fù)顯示,有些只要顯示一次,故只畫出液晶顯示的基本流程,如圖 23 所示。
圖 23  液晶顯示流程圖


4.5  INT0 中斷子程序

中斷子程序是用來控制輸出波形的選擇及將輸出波形的類型在 LCD 液晶顯示屏上顯示出來。當(dāng)波形選擇按鍵 K1 按下時(shí),進(jìn)入中斷程序中,此時(shí)波形選擇標(biāo)識(shí) WaveChoice 加 1,LCD 液晶顯示屏上顯示出相應(yīng)的波形類型。中斷結(jié)束后,主程序中根據(jù)WaveChoice的值輸出相應(yīng)的波形。圖 24 為 INT0 中斷流程圖。




圖 24 INT0 中斷流程圖


第 5 章 系統(tǒng)調(diào)試

5.1  系統(tǒng)調(diào)試過程
1.      編譯、連接項(xiàng)目,形成目標(biāo)文件

打開 Keil 新建工程文件,然后添加源程序文件,保存時(shí)把文件后綴名改成“.c”,再直接導(dǎo)入新建的工程中。

把源程序全部錄入后,先粗略的檢查一遍,主要改正明顯的各種錯(cuò)誤,這樣可以減少之后的修改工作量。接著 Options forTarget “Target 1” ,點(diǎn)擊 Output ,勾選 Create Hex 那個(gè)選項(xiàng),生成可執(zhí)行的文件。然后點(diǎn)擊 Project 菜單下的 Built Target 命令然后再進(jìn)行編譯、連接,形成目標(biāo)文件。編譯、連接用 Project 菜單下的 Built Target 命令(或快捷鍵 F7),也可以直接點(diǎn)擊工具欄中相對(duì)應(yīng)的圖標(biāo)。

2.      運(yùn)行調(diào)試

在 Proteus 軟件中先從元件庫中加載要使用的那些元件,然后把元件放在圖紙上一個(gè)一個(gè)的接線,盡量不讓線交錯(cuò),便于查看、分析,有必要時(shí),使用接線標(biāo)號(hào)法。完成所有元器件的接線后,在單片機(jī)上右擊選 Edit Properties,在 Program file 那一行右側(cè)點(diǎn)擊, 然后選擇前面生成的以“.hex”為后綴名的文件,為單片機(jī) AT89C51 添加可執(zhí)行文件。然后點(diǎn)擊左下角的相關(guān)按鍵,開始進(jìn)行仿真。

3.源程序(部分重要代碼)

5.2  系統(tǒng)仿真結(jié)果
經(jīng)以上調(diào)試,確認(rèn)程序沒有問題時(shí),加載到 Proteus 軟件中進(jìn)行仿真,所得仿真結(jié)果

如下。
(1)剛開始運(yùn)行程序,沒有按鍵操作時(shí),仿真結(jié)果如圖 25 所示。

           

圖 25  仿真初始化結(jié)果
(2)當(dāng)按下進(jìn)行波形四種波形選擇時(shí),每種波形的仿真結(jié)果如下。

           
頻率增大后
           
圖 26   正弦波



           
頻率增大后
           

圖 27   方波

           
頻率增加后
           
圖 28   三角波

經(jīng)過為期兩周的單片機(jī)綜合應(yīng)用實(shí)踐的學(xué)習(xí)深有體會(huì),主要有以下幾個(gè)方面:

(1)      通過查閱大量資料使自己對(duì)信號(hào)發(fā)生器的研究現(xiàn)狀、原理、工作方式等的基本    概念及技術(shù)發(fā)展有了更好的理解。

(2)      針對(duì)設(shè)計(jì)的任務(wù)和要求,確定信號(hào)發(fā)生器的設(shè)計(jì)方案,并逐步來實(shí)現(xiàn)。

(3)      本系統(tǒng)使用了單片機(jī)作為主控制器,直接由軟件產(chǎn)生不同波形信號(hào)的輸出, 因此在如何編寫程序方面下了很大的功夫,也收獲了很多知識(shí)。



     附錄A 電路原理圖

本人初學(xué),僅供參考,存在錯(cuò)誤和不足之處,請(qǐng)大家回帖多多指教,不勝感激.切勿照搬
以上圖文的Word格式文檔下載(word文檔內(nèi)容和本網(wǎng)頁上的一模一樣,方便大家保存):
word文檔: word文檔.docx (1.81 MB, 下載次數(shù): 10)
程序:http://www.torrancerestoration.com/bbs/dpj-229095-1.html
仿真:無

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表