通信工程畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的信號發(fā)生器設(shè)計(jì)_第1頁
通信工程畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的信號發(fā)生器設(shè)計(jì)_第2頁
通信工程畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的信號發(fā)生器設(shè)計(jì)_第3頁
通信工程畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的信號發(fā)生器設(shè)計(jì)_第4頁
通信工程畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的信號發(fā)生器設(shè)計(jì)_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、畢業(yè)論文(設(shè)計(jì)) 題 目 基于單片機(jī)的信號發(fā)生器設(shè)計(jì) 學(xué)生姓名 學(xué) 號 院 系 電子與信息工程學(xué)院專 業(yè) 通信工程指導(dǎo)教師 二一一年五月三十日目 錄緒論1第一章 系統(tǒng)設(shè)計(jì)3 1.1 系統(tǒng)方案的比較3 1.2 控制芯片的選擇3 第二章 系統(tǒng)硬件設(shè)計(jì)4 2.1 基本原理4 2.2 單片機(jī)介紹及資源分配4 2.2.1 單片機(jī)的介紹4 2.2.2 資源分配8 2.3 各部分電路原理8 2.3.1 dac0832芯片原理8 2.3.2 ne4558工作原理10 2.3.3 鍵盤電路原理112.3.4 led顯示電路原理13 第三章 系統(tǒng)軟件設(shè)計(jì)14 3.1主程序流程圖143.2子程序流程圖14第四章 測

2、試結(jié)果19 第五章 結(jié)論23 參考文獻(xiàn)24 致 謝25附錄a 電路原理圖26 附錄b 程序清單27 基于單片機(jī)的信號發(fā)生器設(shè)計(jì)摘 要:本系統(tǒng)是基于at89s52單片機(jī)的數(shù)字式低頻信號發(fā)生器。采用at89s52 單片機(jī)作為控制核心,外圍采用數(shù)字/模擬轉(zhuǎn)換電路(dac0832)、運(yùn)放電路(ne4558)、按鍵和led顯示燈電路等。通過按鍵控制可產(chǎn)生方波、鋸齒波、三角波、正弦波等,同時(shí)用led顯示燈指示對應(yīng)的波形。其設(shè)計(jì)簡單、性能優(yōu)良,可用于多種需要低頻信號源的場所,具有一定的實(shí)用性。關(guān)鍵詞:單片機(jī);信號發(fā)生器;d/a轉(zhuǎn)換引言波形發(fā)生器亦稱函數(shù)發(fā)生器,作為實(shí)驗(yàn)用信號源,是現(xiàn)今各種電子電路實(shí)驗(yàn)設(shè)計(jì)應(yīng)用

3、中必不可少的儀器設(shè)備之一。目前,市場上常見的波形發(fā)生器多為純硬件的搭接而成,且波形種類有限,多為鋸齒、正弦、方波、三角等波形。信號發(fā)生器作為一種常見的應(yīng)用電子儀器設(shè)備,傳統(tǒng)的可以完全由硬件電路搭接而成,如采用555振蕩電路發(fā)生正弦波、三角波和方波的電路便是可取的路徑之一,不用依靠單片機(jī)。但是這種電路存在波形質(zhì)量差,控制難,可調(diào)范圍小,電路復(fù)雜和體積大等缺點(diǎn)。在科學(xué)研究和生產(chǎn)實(shí)踐中,如工業(yè)過程控制,生物醫(yī)學(xué),地震模擬機(jī)械振動(dòng)等領(lǐng)域常常要用到低頻信號源。而由硬件電路構(gòu)成的低頻信號其性能難以令人滿意,而且由于低頻信號源所需的rc很大;大電阻,大電容在制作上有困難,參數(shù)的精度亦難以保證;體積大,漏電,

4、損耗顯著更是其致命的弱點(diǎn)。一旦工作需求功能有增加,則電路復(fù)雜程度會(huì)大大增加。當(dāng)今是科學(xué)技術(shù)及儀器設(shè)備高度智能化飛速發(fā)展的信息社會(huì),電子技術(shù)的進(jìn)步,給人們帶來了根本性的轉(zhuǎn)變?,F(xiàn)代電子領(lǐng)域中,單片機(jī)的應(yīng)用正在不斷的走向深入,這必將導(dǎo)致傳統(tǒng)控制與檢測技術(shù)的日益革新。單片機(jī)構(gòu)成的儀器具有高可靠性、高性能價(jià)格比,在智能儀表系統(tǒng)和辦公自動(dòng)化等諸多領(lǐng)域得以極為廣泛的應(yīng)用,并走入家庭,從洗衣機(jī)、微波爐到音響汽車,處處可見其應(yīng)用。因此,單片機(jī)技術(shù)開發(fā)和應(yīng)用水平已逐步成為一個(gè)國家工業(yè)發(fā)展水平的標(biāo)志之一。一塊單片機(jī)芯片就是一臺計(jì)算機(jī)。由于單片機(jī)的這種特殊的結(jié)構(gòu)形式,在某些應(yīng)用領(lǐng)域中,它承擔(dān)了大中型計(jì)算機(jī)和通用微型計(jì)

5、算機(jī)無法完成的一些工作。使其具有很多顯著的優(yōu)點(diǎn)和特點(diǎn),因此在各個(gè)領(lǐng)域中都得到了迅猛的發(fā)展。單片機(jī)的特點(diǎn)歸納起來有以下幾個(gè)方面。具有優(yōu)異的性能價(jià)格比單片機(jī)盡可能地把應(yīng)用所需的存儲(chǔ)器,各種功能的i/o 接口集成在一塊芯片內(nèi),因而其性能很高,而價(jià)格卻相對較低廉,即性能價(jià)格比很高。于同一檔次的微機(jī)。集成度高、體積小、可靠性高單片機(jī)把各種功能部件集成在一塊芯片上,因而集成度高,均為大規(guī)?;虺笠?guī)模集成電路。又內(nèi)部采用總線結(jié)構(gòu),減少了芯片之間的連線,這大大提高了單片機(jī)的可靠性與抗干擾能力。同時(shí),其體積小,對于強(qiáng)磁場環(huán)境易于采取屏蔽措施,適合于在惡劣環(huán)境下工作??刂乒δ軓?qiáng)單片機(jī)體積雖小,但“五臟俱全”,它非

6、常適用于專門的控制用途。為了滿足工業(yè)控制要求,一般單片機(jī)的指令系統(tǒng)中有極豐富的轉(zhuǎn)移指令,i/o口的邏輯操作指令以及位操作指令。其邏輯控制功能及運(yùn)行速度均高于同一檔次的微機(jī)低電壓、低功耗單片機(jī)大量用于攜帶式產(chǎn)品和家用消費(fèi)類產(chǎn)品,低電壓和低功耗尤為重要。目前,許多單片機(jī)已可在2.2v電壓下運(yùn)行,有的已能在1.2v或0.9v下工作,功耗降至a級,一粒鈕扣電池就可長期使用。利用單片機(jī)采用程序設(shè)計(jì)方法來產(chǎn)生低頻信號,其下限頻率很低。具有線路相對簡單,結(jié)構(gòu)緊湊,價(jià)格低廉,頻率穩(wěn)定度高,抗干擾能力強(qiáng),用途廣泛等優(yōu)點(diǎn),并且能夠?qū)Σㄐ芜M(jìn)行細(xì)微調(diào)整,改良波形,使其滿足系統(tǒng)的要求。只要對電路稍加修改,調(diào)整程序,即可

7、完成功能升級。這里介紹一種采用at89s52單片機(jī)和一片dac0832數(shù)模轉(zhuǎn)換器做成的數(shù)字式低頻信號發(fā)生器,它的特點(diǎn)是價(jià)格低、性能高,在低頻范圍穩(wěn)定性好、操作方便、體積小、耗電少等。信號發(fā)生器與其它相比還具有如下優(yōu)點(diǎn):較分立元件信號發(fā)生器而言,具有頻率高,工作穩(wěn)定,容易調(diào)試等特性;較專用dds芯片的信號發(fā)生器而言,具有結(jié)構(gòu)簡單,成本低等特性。1 系統(tǒng)設(shè)計(jì) 1.1 系統(tǒng)方案的比較方案一:采用函數(shù)信號發(fā)生器icl8038集成模擬芯片,(如圖2-1)它是一種可以同時(shí)產(chǎn)生方波、三角波、正弦波的專用集成電路。但是這種模塊產(chǎn)生的波形都不是純凈的波形,會(huì)寄生一些高次諧波分量,采用其他的措施雖可濾除一些,但不

8、能完全濾除掉。方案二:采用分立元件實(shí)現(xiàn)非穩(wěn)態(tài)的多諧振振蕩器,然后根據(jù)需要加入積分電路等構(gòu)成正弦、矩形、三角等波形發(fā)生器。這種信號發(fā)生器輸出頻率范圍窄,而且電路參數(shù)設(shè)定較繁瑣,其頻率大小的測量往往需要通過硬件電路的切換來實(shí)現(xiàn),操作不方便。 方案三:采用單片機(jī)和dac0832數(shù)模轉(zhuǎn)換器生成波形,由于是軟件濾波,所以不會(huì)有寄生的高次諧波分量,生成的波形比較純凈。它的特點(diǎn)是價(jià)格低、性能高,在低頻范圍內(nèi)穩(wěn)定性好、操作方便、體積小、耗電少。經(jīng)比較,方案三既可滿足畢業(yè)設(shè)計(jì)的基本要求又能充分發(fā)揮其優(yōu)勢,電路簡單,易控制,性價(jià)比較高,所以采用該方案。1.2 控制芯片的選擇方案一:at89s52單片機(jī)是一種高性能

9、8位單片微型計(jì)算機(jī)。它把構(gòu)成計(jì)算機(jī)的中央處理器cpu、存儲(chǔ)器、寄存器、i/o接口制作在一塊集成電路芯片中,從而構(gòu)成較為完整的計(jì)算機(jī)。方案二:c8051f005單片機(jī)是完全集成的混合信號系統(tǒng)級芯片,具有與at80s52兼容的微控制器的內(nèi)核,與mcs-51指令集完全兼容。除了具有標(biāo)準(zhǔn)at80s52的數(shù)字外設(shè)部件之外,片內(nèi)還集成了數(shù)據(jù)采集和控制系統(tǒng)中常用的模擬部件和其他數(shù)字外設(shè)及功能部件。方案選擇:方案二中c8051f005芯片系統(tǒng)內(nèi)部結(jié)構(gòu)復(fù)雜,不易控制,芯片成本高,對于本系統(tǒng)而言利用率低,at89s52芯片比較常用,簡單易控制,成本低,性能穩(wěn)定故采用方案一。2 系統(tǒng)硬件設(shè)計(jì)2.1 基本原理系統(tǒng)框圖

10、如圖2.1所示波形指示按鍵單片機(jī)數(shù)模轉(zhuǎn)換電流、電壓轉(zhuǎn)換輸出電源 圖2.1 低頻信號發(fā)生器系統(tǒng)框圖低頻信號發(fā)生器系統(tǒng)主要由cpu、d/a轉(zhuǎn)換電路、基準(zhǔn)電壓電路、電流/電壓轉(zhuǎn)換電路、按鍵和波形指示電路、電源等電路組成。其工作原理為當(dāng)分別按下四個(gè)按鍵中的任一個(gè)按鍵就會(huì)分別出現(xiàn)方波、鋸齒波、三角波、正弦波,并且有四個(gè)發(fā)光二極管分別作為不同的波形指示燈。2.2 單片機(jī)介紹及資源分配2.2.1 單片機(jī)的介紹(1)at89s52的引腳圖如圖2.2所示 圖2.2 at89s52引腳圖(2)管腳說明 低頻信號發(fā)生器采用at89s52單片機(jī)作為控制核心,其內(nèi)部組成包括:一個(gè)8位的微處理器cpu及片內(nèi)振蕩器和時(shí)鐘產(chǎn)

11、生電路,但石英晶體和微調(diào)電容需要外接;片內(nèi)數(shù)據(jù)存儲(chǔ)器ram低128字節(jié),存放讀/寫數(shù)據(jù);高128字節(jié)被特殊功能寄存器占用;片內(nèi)程序存儲(chǔ)器4kb rom;四個(gè)8位并行i/o(輸入/輸出)接口p3 -p0,每個(gè)口可以用作輸入,也可以用作輸出;兩個(gè)定時(shí)/計(jì)數(shù)器,每個(gè)定時(shí)/計(jì)數(shù)器都可以設(shè)置成計(jì)數(shù)方式,用以對外部事件進(jìn)行計(jì)數(shù),也可以設(shè)置成定時(shí)方式,并可以根據(jù)計(jì)數(shù)或定時(shí)的結(jié)果實(shí)現(xiàn)計(jì)算機(jī)控制;五個(gè)中斷源的中斷控制系統(tǒng);一個(gè)全雙工uart(通用異步接收發(fā)送器)的串行i/o口。vcc:供電電壓。gnd:接地。rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持rst腳兩個(gè)機(jī)器周期的高電平時(shí)間。ale/prog:當(dāng)訪問外

12、部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時(shí),ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時(shí), ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。/psen:外部程序存儲(chǔ)器的選通信號。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩

13、次有效的/psen信號將不出現(xiàn)。/ea/vpp:當(dāng)/ea保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000h-ffffh),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/ea將內(nèi)部鎖定為reset;當(dāng)/ea端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。xtal1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。xtal2:來自反向振蕩器的輸出。89s52 單片機(jī)外部有32個(gè)端口可供用戶使用,其功能如下:表2.1 89s52并行i/o接口端口引腳位置第一功能第二功能 符號 功能符號功能p039-32p0.0-p0.7通用i/0口ad0-ad7地址

14、數(shù)據(jù)總線p11-8p1.0-p1.7通用i/0口p221-28p2.0-p2.7通用i/0口a8-a15地址總線(高位)p310p3.0通用i/0口rxd串行通信發(fā)送口11p3.1txd串行通信接收口12p3.2int0外部中斷013p3.3int1外部中斷114p3.4t0計(jì)數(shù)器0輸入端口15p3.5t1計(jì)數(shù)器1輸入端口16p3.6wr外部存儲(chǔ)器寫功能17p3.7rd外部存儲(chǔ)器讀功能p0口:p0口為一個(gè)8位漏級開路雙向i/o口,每腳可吸收8ttl門電流。當(dāng)p1口的管腳第一次寫1時(shí),被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時(shí),p0 口

15、作為原碼輸入口,當(dāng)fiash進(jìn)行校驗(yàn)時(shí),p0輸出原碼,此時(shí)p0外部必須被拉高。p1口:p1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗(yàn)時(shí),p1口作為第八位地址接收。p2口:p2口為一個(gè)內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個(gè)ttl門電流,當(dāng)p2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲(chǔ)器或16

16、位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),p2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗(yàn)時(shí)接收高八位地址信號和控制信號。p3口:p3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個(gè)ttl門電流。當(dāng)p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。p3口也可作為at89c51的一些特殊功能口,如下所示: 口管腳 備選功能p3.0 rxd(串行輸入通道)p3.1 txd(串行輸出通道)p3.2 /in

17、t0(外中斷0)p3.3 /int1(外中斷1)p3.4 t0(定時(shí)器0外部輸入)p3.5 t1(定時(shí)器1外部輸入)p3.6 /wr(外部數(shù)據(jù)存儲(chǔ)器寫選通)p3.7 /rd(外部數(shù)據(jù)存儲(chǔ)器讀選通)(3)at89s52的晶振及其連接方法 cpu工作時(shí)都必須有一個(gè)時(shí)鐘脈沖。有兩種方式可以向89s52提供時(shí)鐘脈沖:一是外部時(shí)鐘方式,即使用外部電路向89s52提供時(shí)鐘脈沖,見圖2.3(a);二是內(nèi)部時(shí)鐘方式,即使用晶振由89s52內(nèi)部電路產(chǎn)生時(shí)鐘脈沖。一般常用第二種方法,其電路見圖2.3(b)。89s52xtal2xtal189s52xtal2xtal1懸空外部時(shí)鐘信號c1c2j(a)外部時(shí)鐘方式(b

18、)內(nèi)部時(shí)鐘方式圖2.3 89s52的時(shí)鐘脈沖j一般為石英晶體,其頻率由系統(tǒng)需要和器件決定,在頻率穩(wěn)定度要求不高時(shí)也可以使用陶瓷濾波器。一般來說,使用石英晶體時(shí),c1=c2=30pf。使用陶瓷濾波器時(shí),c1=c2=47pf。(4)at89s52的復(fù)位 復(fù)位是單片機(jī)的初始化操作,其主要的作用是把pc初始化為0000h,使單片機(jī)從0000h單元開始執(zhí)行程序。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯(cuò)或操作失誤使系統(tǒng)處于死鎖狀態(tài)時(shí),為擺脫困境,也需要按復(fù)位鍵以重新啟動(dòng)。除使pc歸零外,復(fù)位操作還對其他一些專用寄存器有影響,它們的復(fù)位狀態(tài)如表2.2所示。表2.2 復(fù)位后的內(nèi)部寄存器狀態(tài)寄存器復(fù)位狀

19、態(tài)寄存器復(fù)位狀態(tài) pc 0000h tmod00hacc00htcon00hb00hth000hpsw00htl000hsp07hth100hdptr0000htl100hp0-p30ffhscon00hip(xxx00000)sbuf(xxxxxxxx)ie(0xx00000)pcon(0xxx0000)另外,復(fù)位操作還對單片機(jī)的個(gè)別引腳有影響,例如會(huì)把a(bǔ)le和/psen變成無效狀態(tài),即使ale=0,/psen=1.rst變成低電平后,退出復(fù)位狀態(tài),cpu從初始狀態(tài)開始工作。89s52復(fù)位操作有3種方式:上電復(fù)位、上電按鈕復(fù)位和系統(tǒng)復(fù)位。上電復(fù)位電路如圖2.4所示。對于cmos型單片機(jī)因rs

20、t引腳的內(nèi)部有一個(gè)拉低電阻,故電阻r可不接。單片機(jī)在上電瞬間,rc電路充電,rst引腳端出現(xiàn)正脈沖,只要rst端保持兩個(gè)機(jī)器周期以上的高電平,就能使單片機(jī)有效地復(fù)位。當(dāng)晶體振蕩頻率為12mhz時(shí),rc的典型值為c=10uf,r=8.2k歐姆。簡單復(fù)位電路中,干擾信號易串入復(fù)位端,可能會(huì)引起內(nèi)部某些寄存器錯(cuò)誤復(fù)位,這時(shí)可在rst引腳上接一去耦電容。通常因?yàn)橄到y(tǒng)運(yùn)行等的需要,常常需要人工按鈕復(fù)位,復(fù)位電路如圖2.5所示,其中r2r1,只需將一個(gè)常開按鈕開關(guān)并聯(lián)于上電復(fù)位電路,按下開關(guān)一定時(shí)間就能使rst引腳端為高電平,從而使單片機(jī)復(fù)位。 圖2.4 上電復(fù)位電路 圖2.5 上電按鈕復(fù)位電路2.2.2

21、 資源分配晶振采用12mhz。p1口的p1.0-p1.3分別與四個(gè)按鍵連接,分別控制鋸齒波、三角波、正弦波和方波,p1.4-p1.7與四個(gè)發(fā)光二極管相連,按鍵一對應(yīng)發(fā)光二極管一,依次類推,發(fā)光二極管四對應(yīng)按鍵四,實(shí)現(xiàn)輸出一個(gè)波形對應(yīng)亮一個(gè)燈。p0口與dac0832的d0-d7數(shù)據(jù)輸入端相連。p2口用來控制dac0832的輸入寄存器選擇信號/cs和數(shù)據(jù)傳送信號/xfer。2.3 各部分電路原理2.3.1 dac0832芯片原理管腳功能介紹(如圖2.6所示)圖2.6 dac0832管腳圖di7di0:8位的數(shù)據(jù)輸入端,di7為最高位。ile:數(shù)據(jù)鎖存允許控制信號輸入線,高電平有效。/cs:選片信號

22、輸入線(選通數(shù)據(jù)鎖存器),低電平有效。/wr1:數(shù)據(jù)鎖存器寫選選通輸入線,負(fù)脈沖有效,由ile、/cs、/wr1的邏輯組合產(chǎn)生/le1,當(dāng)/le1為高電平時(shí),數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)線變化,/le1的負(fù)跳變時(shí)將輸入數(shù)據(jù)鎖存。/xfer:數(shù)據(jù)傳輸控制信號輸入線,低電平有效,負(fù)脈沖有效。/wr2:dac寄存器選通輸入線,負(fù)脈沖有效,由/wr2、/xfer的邏輯組合產(chǎn)生/le2,當(dāng)/le2為高電平時(shí),dac寄存器的輸出隨寄存器的輸入而變化,/le2的負(fù)跳變時(shí)將數(shù)據(jù)鎖存器的內(nèi)容打入dac寄存器并開始d/a轉(zhuǎn)換。iout1:模擬電流輸出端1,當(dāng)dac寄存器中數(shù)據(jù)全為1時(shí),輸出電流最大,當(dāng) dac寄存器中

23、數(shù)據(jù)全為0時(shí),輸出電流為0。iout2:模擬電流輸出端2, iout2與iout1的和為一個(gè)常數(shù),即iout1iout2常數(shù)。rfb:反饋電阻引出端,dac0832內(nèi)部已經(jīng)有反饋電阻,所以 rfb端可以直接接到外部運(yùn)算放大器的輸出端,這樣相當(dāng)于將一個(gè)反饋電阻接在運(yùn)算放大器的輸出端和輸入端之間。vref:參考電壓輸入端,此端可接一個(gè)正電壓,也可接一個(gè)負(fù)電壓,它決定0至255的數(shù)字量轉(zhuǎn)化出來的模擬量電壓值的幅度,vref范圍為(+10-10)v。vref端與d/a內(nèi)部t形電阻網(wǎng)絡(luò)相連。vcc:芯片供電電壓,范圍為(+5+15)v。agnd:模擬量地,即模擬電路接地端。dgnd:數(shù)字量地。 當(dāng)wr2

24、和xfer同時(shí)有效時(shí),8位dac寄存器端為高電平“1”,此時(shí)dac寄存器的輸出端q跟隨輸入端d也就是輸入寄存器q端的電平變化;反之,當(dāng)端為低電平“0”時(shí),第一級8位輸入寄存器q端的狀態(tài)則鎖存到第二級8位dac寄存器中,以便第三級8位dac轉(zhuǎn)換器進(jìn)行d/a轉(zhuǎn)換。一般情況下為了簡化接口電路,可以把wr2和xfer直接接地,使第二級8位dac寄存器的輸入端到輸出端直通,只有第一級8位輸入寄存器置成可選通、可鎖存的單緩沖輸入方式。 特殊情況下可采用雙緩沖輸入方式,即把兩個(gè)寄存器都分別接成受控方式。制作低頻信號發(fā)生器有許多方案:主要有單緩沖方式,雙緩沖方式和直通方式。單緩沖方式具有適用于只有一路模擬信號

25、輸出或幾路模擬信號非同步輸出的情形的優(yōu)點(diǎn),但是電路線路連接比較簡單。而雙緩沖方式適用于在需要同時(shí)輸出幾路模擬信號的場合,每一路模擬量輸出需一片dac0832芯片,構(gòu)成多個(gè)dac0832同步輸出電路,程序簡單化,但是電路線路連接比較復(fù)雜。根據(jù)以上分析,我選擇了單緩沖方式使用方便,程序簡單,易操作。這里我采用dac0832與單片機(jī)89s52的典型的單緩沖方式接口電路。ile接高電平,/wr1和/wr2相連后接89s52的/wr,/cs和/xfer相連后接89s52的地址高位,這樣就同時(shí)片選了dac0832的數(shù)據(jù)鎖存器和dac寄存器,89s52對dac0832執(zhí)行一次寫操作就把一個(gè)數(shù)據(jù)寫入數(shù)據(jù)鎖存器

26、的同時(shí)也直接寫入到了dac寄存器,模擬量輸出隨之變化。dac0832的輸出是電流,使用運(yùn)算放大器可以將其電流輸出線性地轉(zhuǎn)換成電壓輸出。根據(jù)運(yùn)算放大器和dac0832的連接方法,運(yùn)算放大器的輸出可以分為單極性和雙極性兩種。這里我采用雙極性方式(如圖2.7所示)。圖2.7 dac0832雙極性電壓輸出電路2.3.2 ne4558工作原理 圖2.8 ne4558引腳圖 圖2.9 ne4558運(yùn)放引腳圖4558 是一片雙運(yùn)放,帶內(nèi)部補(bǔ)償電路。極好的通道分離特性允許在單運(yùn)放應(yīng)用中使用雙運(yùn)放器件,從而提供了最高的封裝密度。他的內(nèi)部包含兩組形式完全相同的運(yùn)算放大器,除電源共用外,兩組運(yùn)放相互獨(dú)立。每一組運(yùn)算

27、放大器可用圖2.9所示的符號來表示,它有5個(gè)引出腳,其中“+”、“-”為兩個(gè)信號輸入端,“v+”、“v-”為正、負(fù)電源端,“out”為輸出端。兩個(gè)信號輸入端中,“-”為反相輸入端,表示運(yùn)放輸出端out的信號與該輸入端的為相反;“+”為同相輸入端,表示運(yùn)放輸出端out的信號與輸入端的相位相同。aout:放大信號輸出(1)。 ain-:反相信號輸入(1)。ain+:同相信號輸入(1)。 gnd:接地。 bin+:同相信號輸入(2)。 bin-:反相信號輸入(2)。 bout2:放大信號輸出(2)。 vcc:電源。4558特性有很多,2mhz單位增益帶寬保證,ne4558 的電源電壓為 18v,具備

28、短路保護(hù)功能,無需頻率補(bǔ)償,無閂鎖效應(yīng),寬廣的共模和差動(dòng)電壓范圍,低功耗。因此被廣泛運(yùn)用在各種電路中。2.3.3 鍵盤電路原理在單片機(jī)應(yīng)用系統(tǒng)中為了控制系統(tǒng)的工作狀態(tài),以及向系統(tǒng)輸入數(shù)據(jù),應(yīng)用系統(tǒng)應(yīng)設(shè)有按鍵或鍵盤,實(shí)現(xiàn)簡單的人機(jī)會(huì)話。鍵盤是一組按鍵的組合,鍵通常是一種常開型按鈕開關(guān),平時(shí)鍵的兩個(gè)出點(diǎn)處于斷開狀態(tài),按下鍵時(shí)他們才閉合。從鍵盤的結(jié)構(gòu)來分類,鍵盤可以分為獨(dú)立式和矩陣式兩類,每一類按其識別方法又都可以分為編碼和未編碼鍵盤兩種。鍵盤上閉合鍵的識別由專門的硬件譯碼器實(shí)現(xiàn)并產(chǎn)生編號或鍵值的稱為編碼鍵盤,由軟件識別的稱未編碼鍵盤。在由單片機(jī)組成的測控系統(tǒng)及智能化儀器中,用得較多的是未編碼鍵盤,

29、我這里也使用未編碼鍵盤。未編碼鍵盤又分為獨(dú)立式鍵盤跟矩陣式鍵盤。(1)獨(dú)立式未編碼鍵盤結(jié)構(gòu)的工作原理及接口 在單片機(jī)應(yīng)用系統(tǒng)中常常需要簡單的幾個(gè)鍵完成數(shù)據(jù)、命令的輸入,此時(shí)可采用獨(dú)立式鍵盤的結(jié)構(gòu)。其接口如圖2.10所示。此接口電路的工作原理很簡單,無鍵按下時(shí),各輸入線為高電平;有鍵按下時(shí),相應(yīng)的輸入線為低電平,cpu查詢此輸入口的狀態(tài)就可知是哪個(gè)鍵閉合。采用一鍵一線的方法,當(dāng)按鍵的數(shù)目增加時(shí),將增加輸入口的數(shù)量,為了減少占用輸入線數(shù),可采用矩陣式結(jié)構(gòu)的鍵盤。+5v圖2.10 獨(dú)立式未編碼鍵盤(2)矩陣式未編碼鍵盤結(jié)構(gòu)的工作原理 如圖2.11所示是4*4的鍵盤接口,它是矩陣式的結(jié)構(gòu)。圖中鍵盤的行

30、線(x0x3)與列線(y0y3)的交叉處通過一個(gè)按鍵來聯(lián)通,行線通過電阻接+5v,當(dāng)鍵盤上沒有鍵閉合時(shí)所有的行線和列線都斷開,則行線都呈高電平。當(dāng)鍵盤上某一個(gè)鍵閉合時(shí),則該鍵所對應(yīng)的行線和列線被短路。例如:6號鍵被按下閉合時(shí),行線x1和列線y2被短路,此時(shí)x1的電平由y2的電位所決定。如果把行線接到單片機(jī)的輸入口,列線接到單片機(jī)的輸出口,則在單片機(jī)的控制下,先使列線y0為低電平,其余三根列線y1、y2、y3都為高電平,讀行線狀態(tài)。如果x0、x1、x2、x3、都為高電平,則y0這一列上沒有鍵合。如果讀出的行線狀態(tài)不全為高電平,則為低電平的行線和y0相交的鍵處于閉合狀態(tài)。如果y0這一列上沒有鍵合,

31、接著使列線y1為低電平,其余列線為高電平,用同樣方法檢查y1這一列上有無鍵閉合。依此類推,最后使列線y3為低電平,其余的列線為高電平,檢查y3這一列上是否有鍵閉合。這種逐行逐列地檢查鍵盤狀態(tài)的過程稱為對鍵盤的一次掃描。cpu對鍵盤掃描可以采取程序控制的隨機(jī)方式,cpu空閑時(shí)掃描鍵盤;也可以采取定時(shí)控制方式,每隔一定時(shí)間,cpu對鍵盤掃描一次,cpu可隨時(shí)響應(yīng)鍵盤輸入請求;還可以采用中斷方式,當(dāng)鍵盤上有鍵閉合時(shí),向cpu請求中斷,cpu響應(yīng)鍵盤輸入中斷,對鍵盤掃描,以識別哪一個(gè)鍵處于閉合狀態(tài),并對鍵輸入信息作出相應(yīng)處理。cpu對鍵盤上閉合鍵的鍵號確定,可以根據(jù)行線和列線的狀態(tài)計(jì)算求得,也可以根據(jù)

32、行線和列線狀態(tài)查表求得。x3x2x1x0y0y1y2y3 12840 139 5 1 14 10 6 2 15 11 7 3+5v圖2.11 4*4矩陣式未編碼鍵盤結(jié)構(gòu)圖根據(jù)我設(shè)計(jì)的電路特點(diǎn),只需要用到4個(gè)按鈕來選擇波形,實(shí)現(xiàn)的功能也比較簡單,所以我采用獨(dú)立式未編碼鍵盤結(jié)構(gòu)。鍵盤原理圖如圖2.12所示。s1sw-pbs2sw-pbs3sw-pbs4sw-pbr41kr31kr21kr11kvcc圖2.12 鍵盤原理圖2.3.4 led顯示電路原理在這里使用的是發(fā)光二極管,發(fā)光二極管通常用砷化鎵、磷化鎵等所制成的。當(dāng)這種管子通以電流時(shí)將發(fā)出光來,這是由于電子與空穴直接復(fù)合而放出的能量的結(jié)果。當(dāng)p

33、n結(jié)處加以一個(gè)適當(dāng)?shù)恼妷簳r(shí),此管即導(dǎo)通,也就會(huì)發(fā)光。這樣我們就能知道我們所需要了解的信息,在此設(shè)計(jì)中發(fā)光二極管通過軟件的控制顯示波形種類。led電路圖如圖2.13所示。 圖2.13 led電路圖4個(gè)led的負(fù)極分別接p1.4p1.7,當(dāng)p1口高4位任意一個(gè)為低電平時(shí),其對應(yīng)的led就會(huì)導(dǎo)通,從而發(fā)光,通過程序的控制可以設(shè)計(jì)波形類型的顯示。3 系統(tǒng)軟件設(shè)計(jì)軟件設(shè)計(jì)上,根據(jù)功能分了幾個(gè)模塊編程。模塊主要有:主程序模塊、鋸齒波模塊、三角波模塊、正弦波模塊、方波模塊、延時(shí)子程序模塊等。顯示波形模塊是利用dac0832的8位特點(diǎn),把波形的數(shù)據(jù)以8位數(shù)據(jù)的形勢送進(jìn)cpu中,只要一按鍵就能顯示波形。3.1

34、主程序流程圖如圖3.1所示開始key1按下了嗎?輸出鋸齒波輸出三角波輸出正弦波輸出方波key2按下了嗎?key3按下了嗎?key4按下了嗎?yyyynnnn圖3.1主程序流程圖本軟件設(shè)計(jì)過程中主要實(shí)現(xiàn)利用按鍵來控制不同波形的輸出,當(dāng)按鍵1按下時(shí),函數(shù)發(fā)生器就輸出鋸齒波;當(dāng)按鍵2按下時(shí),函數(shù)發(fā)生器就輸出三角波;當(dāng)按鍵3按下時(shí),函數(shù)發(fā)生器就輸出正弦波;當(dāng)按鍵4按下時(shí),函數(shù)發(fā)生器就輸出方波。通過按鍵可以以任意循環(huán)方式輸出不同波形。3.2子程序流程圖鋸齒波流程圖如圖3.2所示。a=00ha送到0832輸出a=a+1開始a=ffsafadsfdfffffh?yn圖3.2 鋸齒波流程圖鋸齒波產(chǎn)生將00h送

35、入寄存器a中,dac0832輸出a中的內(nèi)容,當(dāng)a中的內(nèi)容等于ffh返回開始,當(dāng)a中的內(nèi)容不為ffh時(shí),a中的內(nèi)容累加,從而輸出波形。鋸齒波產(chǎn)生子程序如下:; 幅度從00ffsantoo: mov a ,#00h ;a=00h mov dptr,#7fffh;dac0832 的寄存器地址=7fffhlloop: movx dptr,a ;吧a中的值放入7fffh所在的寄存器inc a ;a=a+1; cjne a,ffh,lloop ; 如果a=ff則返回,否則繼續(xù)循環(huán) ret;返回三角波流程圖如圖3.3所示開始a=00ha送到0832輸出a=a+1a=00h?a=a-1a送到0832輸出a=0

36、0h?nyyn圖3.3 三角波流程圖三角波產(chǎn)生通過a中數(shù)值的加一遞升,當(dāng)a中的內(nèi)容加到為0時(shí), a中的內(nèi)容減一遞減,從而循環(huán)產(chǎn)生三角波。三角波產(chǎn)生子程序如下:trian :mov a ,#00h mov dptr,#7fffhup: movx dptr,a inc a jnz up down: dec a movx dptr,a jnz down ret正弦波程序流程圖如圖3.4所示開始a=00ha=129?dptr1=dptr1+1a=正弦函數(shù)表數(shù)據(jù)a送到0832輸出yn圖3.4 正弦波程序流程圖正弦波波形設(shè)計(jì)通過查表指令得出。其產(chǎn)生子程序如下:sine: mov dptr1,#sintab

37、 mov dptr,#7fffh loop: clr a movc a,a+dptr1 cjne a,#129,loop1 retloop1: movx dptr,a inc dptr1 ajmp loopsintab:db 128,132,137,141,146,150,154,159,163,167 db 171,176,180,184,188,191,195,199,203,206 db 210,213,216,219,222,225,228,231,233,236 db 238,240,242,244,246,247,249,250,251,252 db 253,254,254,255

38、,255,255,255,255,254,254 db 253,252,251,250,249,247,246,244,242,240 db 238,236,233,231,228,225,222,219,216,213 db 210,206,203,198,195,192,188,184,180,176 db 172,167,163,159,155,150,146,141,137,133 db 128,124,119,115,111,106,102,97,93,89,85 db 81,77,73,69,65,61,57,54,50,47,43,40,37 db 34,31,28,25,23,

39、20,18,16,14,12,10,9,7 db 6,5,4,3,2,2,1,1,1,1,1,2,2,3,4,5,6 db 7,9,10,12,14,16,18,20,23,25,28,30,33,36 db 40,43,46,50,53,57,60,64,68,72,76,80,84 db 88,93,97,101,106,110,114,119,123,128,129方波程序流程圖如圖3.5所示開始a=00ha送到0832輸出延時(shí)a=ffha送到0832輸出延時(shí)圖3.5 方波程序流程圖方波產(chǎn)生是當(dāng)a中的內(nèi)容為0時(shí),輸出對應(yīng)模擬量,然后延時(shí),當(dāng)a中的內(nèi)容為0ffh時(shí),同樣輸出對應(yīng)模擬量,再延

40、時(shí),從而得到方波。方波產(chǎn)生子程序如下:squn:mov dptr,#7fffh mov a ,#0ffh ;1movx dptr,a lcall delay mov a ,#00h;0movx dptr,a lcall delay ret 延時(shí)子程序如下:delay: mov r7,#10hdly0: mov r6,#0edh nopdly1: djnz r6,dly1 djnz r7,dly0 ret方波的上限和下限的延時(shí)時(shí)間為:7mss=1+(1+1+2237+2)16+1=7648us4 測試結(jié)果在確定編程思路以后將各部分的程序及各子程序編好,使用keil進(jìn)行編譯,根據(jù)提示的錯(cuò)誤對程序進(jìn)

41、行修改。除了語法差錯(cuò)和邏輯差錯(cuò)外,當(dāng)確認(rèn)程序沒問題時(shí),通過直接加載到protues軟件電路中進(jìn)行仿真。當(dāng)按鍵1撥下時(shí),波形為鋸齒波,同時(shí)指示燈1發(fā)光。仿真圖如圖4.1所示。 圖4.1 鋸齒波仿真圖當(dāng)按鍵2撥下時(shí),波形為三角波,同時(shí)指示燈2發(fā)光。仿真圖如圖4.2所示。 圖4.2 三角波仿真圖當(dāng)按鍵3撥下時(shí),波形為正弦波,同時(shí)指示燈3發(fā)光。仿真圖如圖4.3所示。 圖4.3 正弦波仿真圖當(dāng)按鍵4撥下時(shí),波行為方波,同時(shí)指示燈4發(fā)光。仿真圖如圖4.4所示。 圖4.4 方波仿真圖在對系統(tǒng)進(jìn)行波形仿真時(shí)可以在虛擬示波器上觀察到鋸齒波、三角波、正弦波和方波的波形。其中鋸齒波、三角波以及正弦波的輸出誤差較大,

42、方波波形較為理想。這一方面與電路設(shè)置的參數(shù)有關(guān),另一方面也與使用的仿真軟件有關(guān)。對于上述問題的解決辦法是:改變仿真電路的參數(shù)或著換用版本較高的仿真軟件。當(dāng)然一般產(chǎn)生這種情況的原因多由于電路的參數(shù)設(shè)計(jì)不合理所制。當(dāng)仿真時(shí),由于存在一定的系統(tǒng)誤差,波形效果不是很好。5 結(jié)論基于單片機(jī)的信號發(fā)生器設(shè)計(jì),該課題的設(shè)計(jì)目的是充分運(yùn)用大學(xué)期間所學(xué)的專業(yè)知識,考察現(xiàn)在正在使用的信號發(fā)生器的基本功能,完成一個(gè)基本的實(shí)際系統(tǒng)的設(shè)計(jì)全過程。關(guān)鍵是這個(gè)實(shí)際系統(tǒng)設(shè)計(jì)的過程,在整個(gè)過程中我可以充分發(fā)揮單片機(jī)知識。特別是這個(gè)信號發(fā)生器的設(shè)計(jì)中涉及到一個(gè)典型的控制過程。通過單片機(jī)控制一個(gè)模數(shù)轉(zhuǎn)換器dac0832產(chǎn)生所需要的

43、電流,然后使用運(yùn)算放大器ne4558可以將其電流輸出線性地轉(zhuǎn)換成電壓輸出,通過程序的控制,可以產(chǎn)生一系列有規(guī)律的波形。這樣一個(gè)信號發(fā)生裝置在控制領(lǐng)域有相當(dāng)廣泛的應(yīng)用范圍。此設(shè)計(jì)方案硬件較為簡單,主要是由單片機(jī)跟dac08322個(gè)芯片構(gòu)成,連線也較簡便。鍵盤電路用的獨(dú)立未編碼結(jié)構(gòu),一個(gè)鍵控制一個(gè)波形。顯示電路主要是由發(fā)光二極管構(gòu)成,利用發(fā)光二極管的導(dǎo)通即發(fā)光的特性來顯示是哪個(gè)波形的輸出,簡單易懂。軟件程序方面較為復(fù)雜一點(diǎn),此方案主要是靠程序的控制,主要由4個(gè)波形產(chǎn)生的子程序加上有承上啟下作用的主程序構(gòu)成,程序思路還是比較清晰。其中正弦波的程序較為繁瑣,因?yàn)槭峭ㄟ^查表指令產(chǎn)生的,所以要列出個(gè)含有較

44、多字符的表格。當(dāng)然還是存在不足的地方,比如不能實(shí)現(xiàn)頻率與幅度的可調(diào),顯示電路跟鍵盤電路有待進(jìn)一步改進(jìn)。參考文獻(xiàn)1楊恢先,黃輝先.單片機(jī)原理及應(yīng)用m.人民郵電出版社,2006.2曾一江.單片機(jī)微機(jī)原理與接口技術(shù)m.科學(xué)出版社,2006.3王新強(qiáng).基于at89s52的智能信號發(fā)生器j.河南機(jī)電高等??茖W(xué)校學(xué)報(bào),2006,14(3):37-39.4康華光,陳大欽.電子技術(shù)基礎(chǔ)m.高等教育出版社,1998.致謝文從選題的確定,論文的寫作、修改到最后定稿得到了我的指導(dǎo)老師=老師的悉心指導(dǎo)。特別是他多次詢問寫作進(jìn)程,并為我指點(diǎn)迷津,幫助我開拓思路,精心點(diǎn)撥,熱忱鼓勵(lì)。他嚴(yán)肅的教學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,精益

45、求精的工作作風(fēng)深深地感染和激勵(lì)著我。在此,謹(jǐn)向李致金老師致以誠摯的謝意。同時(shí),論文的順利完成,離不開其它各位老師、同學(xué)和朋友的關(guān)心和幫助。在整個(gè)的論文寫作中,各位老師、同學(xué)和朋友積極的幫助我查資料和提供有利于論文寫作的建議和意見,在他們的幫助下,論文得以不斷的完善,最終幫助我完整的寫完了整個(gè)論文。再次衷心地感謝所有在我論文寫作過程中給予過我?guī)椭娜藗?,謝謝!附錄a 電路原理圖附錄b 程序key1 bit p1.0key2 bit p1.1key3 bit p1.2key4 bit p1.3;按鍵key1:鋸齒波 按鍵key2:三角波 按鍵key3: 正弦波 ;按鍵key4: 方波; org 0

46、000h ljmp main org 0030hmain:mov sp,#50hscan_key1:mov a,p1 anl a,#0fh cjne a,#0eh,scan_key2 ljmp b1scan_key2:mov a,p1 anl a,#0fh cjne a,#0dh,scan_key3 ljmp b2scan_key3:mov a,p1 anl a,#0fh cjne a,#0bh,scan_key4 ljmp b3scan_key4:mov a,p1 anl a,#0fh cjne a,#07h,scan_key1 ljmp b4;利用dac0832產(chǎn)生鋸齒波;b1:clr p

47、1.4 setb p1.5 setb p1.6 setb p1.7santoo:mov a ,#00h mov dptr,#7fffhlloop:movx dptr,a inc a ; cjne a,ffh,lloop ljmp scan_key1;利用dac0832產(chǎn)生三角波;b2: clr p1.5 setb p1.4 setb p1.6 setb p1.7trian :mov a ,#00h mov dptr,#7fffhup: movx dptr,a inc a jnz up down: dec a movx dptr,a jnz down ljmp scan_key2;利用dac0832產(chǎn)生正弦波;在表格里取數(shù)送到指定地址b3: clr p1.6 setb

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論