版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> XXXX大 學(xué)</b></p><p> 畢 業(yè) 設(shè) 計(jì)( 論 文 )</p><p> 二〇XX 年 X 月 X 日</p><p> 題 目基于單片機(jī)的智能信號(hào)發(fā)生器設(shè)計(jì)</p><p> 作 者</p><p> 學(xué) 院</p&g
2、t;<p> 專 業(yè)</p><p> 學(xué) 號(hào)</p><p> 指導(dǎo)教師</p><p><b> 摘 要</b></p><p> 本系統(tǒng)是基于AT89S52單片機(jī)的數(shù)字式低頻信號(hào)發(fā)生器。采用AT89S52 單片機(jī)作為控制核心,外圍采用數(shù)字/模擬轉(zhuǎn)換電路(DAC0832)、運(yùn)放電路
3、(NE4558)、按鍵和LED顯示燈電路等。通過按鍵控制可產(chǎn)生方波、鋸齒波、三角波、正弦波等,同時(shí)用LED顯示燈指示對(duì)應(yīng)的波形。其設(shè)計(jì)簡(jiǎn)單、性能優(yōu)良,可用于多種需要低頻信號(hào)源的場(chǎng)所,具有一定的實(shí)用性。</p><p> 關(guān)鍵詞:單片機(jī);信號(hào)發(fā)生器;D/A轉(zhuǎn)換</p><p><b> ABSTRACT</b></p><p> The s
4、ystem is a digital signal generator based on single chip computer. At89s52 is used as a control microcontroller core. The system is composed by digital/analog conversion(DAC0832), imply circuit(NE4558),button and LED li
5、ghts .It can generate the square, triangle and sine wave, with LED display. The system can be used for a signal source in the low-frequency signal source. It is very practical.</p><p> Key words : The sing
6、le chip computer;The signal generator;D/ A conversion</p><p><b> 目 錄</b></p><p><b> 緒論1</b></p><p> 第一章 系統(tǒng)設(shè)計(jì)3 </p><p> 1.1 系統(tǒng)方案的比較3
7、</p><p> 1.2 控制芯片的選擇3 </p><p> 第二章 系統(tǒng)硬件設(shè)計(jì)4 </p><p> 2.1 基本原理4 </p><p> 2.2 單片機(jī)介紹及資源分配4 </p><p> 2.2.1 單片機(jī)的介紹4 </p><p> 2.2.2
8、資源分配8 </p><p> 2.3 各部分電路原理9 </p><p> 2.3.1 DAC0832芯片原理9 </p><p> 2.3.2 NE4558工作原理11 </p><p> 2.3.3 鍵盤電路原理12</p><p> 2.3.4 LED顯示電路原理14 </
9、p><p> 第三章 系統(tǒng)軟件設(shè)計(jì)16 </p><p> 3.1主程序流程圖16</p><p> 3.2子程序流程圖17</p><p> 第四章 測(cè)試結(jié)果23 </p><p> 第五章 結(jié)論25 </p><p><b> 參考文獻(xiàn)26 </b&
10、gt;</p><p><b> 致 謝27</b></p><p> 附錄A 元件清單28 </p><p> 附錄B 電路原理圖29 </p><p> 附錄C PCB圖30 </p><p> 附錄D 程序清單31 </p><p><b&
11、gt; 緒論</b></p><p> 波形發(fā)生器亦稱函數(shù)發(fā)生器,作為實(shí)驗(yàn)用信號(hào)源,是現(xiàn)今各種電子電路實(shí)驗(yàn)設(shè)計(jì)應(yīng)用中必不可少的儀器設(shè)備之一。目前,市場(chǎng)上常見的波形發(fā)生器多為純硬件的搭接而成,且波形種類有限,多為鋸齒、正弦、方波、三角等波形。</p><p> 信號(hào)發(fā)生器作為一種常見的應(yīng)用電子儀器設(shè)備,傳統(tǒng)的可以完全由硬件電路搭接而成,如采用555振蕩電路發(fā)生正弦波、三角波
12、和方波的電路便是可取的路徑之一,不用依靠單片機(jī)。但是這種電路存在波形質(zhì)量差,控制難,可調(diào)范圍小,電路復(fù)雜和體積大等缺點(diǎn)。在科學(xué)研究和生產(chǎn)實(shí)踐中,如工業(yè)過程控制,生物醫(yī)學(xué),地震模擬機(jī)械振動(dòng)等領(lǐng)域常常要用到低頻信號(hào)源。而由硬件電路構(gòu)成的低頻信號(hào)其性能難以令人滿意,而且由于低頻信號(hào)源所需的RC很大;大電阻,大電容在制作上有困難,參數(shù)的精度亦難以保證;體積大,漏電,損耗顯著更是其致命的弱點(diǎn)。一旦工作需求功能有增加,則電路復(fù)雜程度會(huì)大大增加。&l
13、t;/p><p> 當(dāng)今是科學(xué)技術(shù)及儀器設(shè)備高度智能化飛速發(fā)展的信息社會(huì),電子技術(shù)的進(jìn)步,給人們帶來了根本性的轉(zhuǎn)變?,F(xiàn)代電子領(lǐng)域中,單片機(jī)的應(yīng)用正在不斷的走向深入,這必將導(dǎo)致傳統(tǒng)控制與檢測(cè)技術(shù)的日益革新。單片機(jī)構(gòu)成的儀器具有高可靠性、高性能價(jià)格比,在智能儀表系統(tǒng)和辦公自動(dòng)化等諸多領(lǐng)域得以極為廣泛的應(yīng)用,并走入家庭,從洗衣機(jī)、微波爐到音響汽車,處處可見其應(yīng)用。因此,單片機(jī)技術(shù)開發(fā)和應(yīng)用水平已逐步成為一個(gè)國(guó)家工業(yè)發(fā)展水
14、平的標(biāo)志之一。</p><p> 一塊單片機(jī)芯片就是一臺(tái)計(jì)算機(jī)。由于單片機(jī)的這種特殊的結(jié)構(gòu)形式,在某些應(yīng)用領(lǐng)域中,它承擔(dān)了大中型計(jì)算機(jī)和通用微型計(jì)算機(jī)無法完成的一些工作。使其具有很多顯著的優(yōu)點(diǎn)和特點(diǎn),因此在各個(gè)領(lǐng)域中都得到了迅猛的發(fā)展。單片機(jī)的特點(diǎn)歸納起來有以下幾個(gè)方面。</p><p> 具有優(yōu)異的性能價(jià)格比</p><p> 單片機(jī)盡可能地把應(yīng)用所需的存儲(chǔ)
15、器,各種功能的I/O 接口集成在一塊芯片內(nèi),因而其性能很高,而價(jià)格卻相對(duì)較低廉,即性能價(jià)格比很高。</p><p> 集成度高、體積小、可靠性高</p><p> 單片機(jī)把各種功能部件集成在一塊芯片上,因而集成度高,均為大規(guī)?;虺笠?guī)模集成電路。又內(nèi)部采用總線結(jié)構(gòu),減少了芯片之間的連線,這大大提高了單片機(jī)的可靠性與抗干擾能力。同時(shí),其體積小,對(duì)于強(qiáng)磁場(chǎng)環(huán)境易于采取屏蔽措施,適合于在惡劣
16、環(huán)境下工作。</p><p><b> 控制功能強(qiáng)</b></p><p> 單片機(jī)體積雖小,但“五臟俱全”,它非常適用于專門的控制用途。為了滿足工業(yè)控制要求,一般單片機(jī)的指令系統(tǒng)中有極豐富的轉(zhuǎn)移指令,I/O口的邏輯操作指令以及位操作指令。其邏輯控制功能及運(yùn)行速度均高于同一檔次的微機(jī)。</p><p><b> 低電壓、低功耗&
17、lt;/b></p><p> 單片機(jī)大量用于攜帶式產(chǎn)品和家用消費(fèi)類產(chǎn)品,低電壓和低功耗尤為重要。目前,許多單片機(jī)已可在2.2V電壓下運(yùn)行,有的已能在1.2V或0.9V下工作,功耗降至μA級(jí),一粒鈕扣電池就可長(zhǎng)期使用。</p><p> 利用單片機(jī)采用程序設(shè)計(jì)方法來產(chǎn)生低頻信號(hào),其下限頻率很低。具有線路相對(duì)簡(jiǎn)單,結(jié)構(gòu)緊湊,價(jià)格低廉,頻率穩(wěn)定度高,抗干擾能力強(qiáng),用途廣泛等優(yōu)點(diǎn),并且
18、能夠?qū)Σㄐ芜M(jìn)行細(xì)微調(diào)整,改良波形,使其滿足系統(tǒng)的要求。只要對(duì)電路稍加修改,調(diào)整程序,即可完成功能升級(jí)。</p><p> 這里介紹一種采用AT89S52單片機(jī)和一片DAC0832數(shù)模轉(zhuǎn)換器做成的數(shù)字式低頻信號(hào)發(fā)生器,它的特點(diǎn)是價(jià)格低、性能高,在低頻范圍穩(wěn)定性好、操作方便、體積小、耗電少等。</p><p> 信號(hào)發(fā)生器與其它相比還具有如下優(yōu)點(diǎn):較分立元件信號(hào)發(fā)生器而言,具有頻率高,工作
19、穩(wěn)定,容易調(diào)試等特性;較專用DDS芯片的信號(hào)發(fā)生器而言,具有結(jié)構(gòu)簡(jiǎn)單,成本低等特性。</p><p><b> 第一章 系統(tǒng)設(shè)計(jì)</b></p><p> 1.1 系統(tǒng)方案的比較</p><p> 方案一:采用函數(shù)信號(hào)發(fā)生器ICL8038集成模擬芯片,(如圖2-1)它是一種可以同時(shí)產(chǎn)生方波、三角波、正弦波的專用集成電路。但是這種模塊產(chǎn)
20、生的波形都不是純凈的波形,會(huì)寄生一些高次諧波分量,采用其他的措施雖可濾除一些,但不能完全濾除掉。</p><p> 方案二:采用分立元件實(shí)現(xiàn)非穩(wěn)態(tài)的多諧振振蕩器,然后根據(jù)需要加入積分電路等構(gòu)成正弦、矩形、三角等波形發(fā)生器。這種信號(hào)發(fā)生器輸出頻率范圍窄,而且電路參數(shù)設(shè)定較繁瑣,其頻率大小的測(cè)量往往需要通過硬件電路的切換來實(shí)現(xiàn),操作不方便。 </p><p>
21、 方案三:采用單片機(jī)和DAC0832數(shù)模轉(zhuǎn)換器生成波形,由于是軟件濾波,所以不會(huì)有寄生的高次諧波分量,生成的波形比較純凈。它的特點(diǎn)是價(jià)格低、性能高,在低頻范圍內(nèi)穩(wěn)定性好、操作方便、體積小、耗電少。</p><p> 經(jīng)比較,方案三既可滿足畢業(yè)設(shè)計(jì)的基本要求又能充分發(fā)揮其優(yōu)勢(shì),電路簡(jiǎn)單,易控制,性價(jià)比較高,所以采用該方案。</p><p> 1.2 控制芯片的選擇</p>
22、<p> 方案一:AT89S52單片機(jī)是一種高性能8位單片微型計(jì)算機(jī)。它把構(gòu)成計(jì)算機(jī)的中央處理器CPU、存儲(chǔ)器、寄存器、I/O接口制作在一塊集成電路芯片中,從而構(gòu)成較為完整的計(jì)算機(jī)。</p><p> 方案二:C8051F005單片機(jī)是完全集成的混合信號(hào)系統(tǒng)級(jí)芯片,具有與AT80S52兼容的微控制器的內(nèi)核,與MCS-51指令集完全兼容。除了具有標(biāo)準(zhǔn)AT80S52的數(shù)字外設(shè)部件之外,片內(nèi)還集成了數(shù)
23、據(jù)采集和控制系統(tǒng)中常用的模擬部件和其他數(shù)字外設(shè)及功能部件。</p><p> 方案選擇:方案二中C8051F005芯片系統(tǒng)內(nèi)部結(jié)構(gòu)復(fù)雜,不易控制,芯片成本高,對(duì)于本系統(tǒng)而言利用率低,AT89S52芯片比較常用,簡(jiǎn)單易控制,成本低,性能穩(wěn)定故采用方案一。</p><p> 第二章 系統(tǒng)硬件設(shè)計(jì)</p><p><b> 2.1 基本原理</b
24、></p><p> 系統(tǒng)框圖如圖2.1所示</p><p> 圖2.1低頻信號(hào)發(fā)生器系統(tǒng)框圖</p><p> 低頻信號(hào)發(fā)生器系統(tǒng)主要由CPU、D/A轉(zhuǎn)換電路、基準(zhǔn)電壓電路、電流/電壓轉(zhuǎn)換電路、按鍵和波形指示電路、電源等電路組成。</p><p> 其工作原理為當(dāng)分別按下四個(gè)按鍵中的任一個(gè)按鍵就會(huì)分別出現(xiàn)方波、鋸齒波、三角波、
25、正弦波,并且有四個(gè)發(fā)光二極管分別作為不同的波形指示燈。</p><p> 2.2 單片機(jī)介紹及資源分配</p><p> 2.2.1 單片機(jī)的介紹</p><p> ?。?)AT89S52的引腳圖如圖2.2所示</p><p> 圖2.2 AT89S52引腳圖</p><p> ?。?)管腳說明 低頻信號(hào)發(fā)
26、生器采用AT89S52單片機(jī)作為控制核心,其內(nèi)部組成包括:一個(gè)8位的微處理器CPU及片內(nèi)振蕩器和時(shí)鐘產(chǎn)生電路,但石英晶體和微調(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ù)方式,用以對(duì)外部事件進(jìn)行計(jì)數(shù),也可以設(shè)置成定時(shí)方式
27、,并可以根據(jù)計(jì)數(shù)或定時(shí)的結(jié)果實(shí)現(xiàn)計(jì)算機(jī)控制;五個(gè)中斷源的中斷控制系統(tǒng);一個(gè)全雙工UART(通用異步接收發(fā)送器)的串行I/O口。</p><p><b> VCC:供電電壓。</b></p><p><b> GND:接地。</b></p><p> RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高
28、電平時(shí)間。</p><p> ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)
29、行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。</p><p> /PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。</p><p> /EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H
30、-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p> XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。</p><p> XTAL2:來自反向振蕩器的輸出。</p><p> 89S52
31、單片機(jī)外部有32個(gè)端口可供用戶使用,其功能如下:</p><p> 表2.1 89S52并行I/O接口</p><p> P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,
32、此時(shí)P0外部必須被拉高。</p><p> P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。</p><p> P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可
33、接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。</p&
34、gt;<p> P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。</p><p> P3口也可作為AT89C51的一些特殊功能口,如下所示: </p><p><
35、b> 口管腳 備選功能</b></p><p> P3.0 RXD(串行輸入通道)</p><p> P3.1 TXD(串行輸出通道)</p><p> P3.2 /INT0(外中斷0)</p><p> P3.3 /INT1(外中斷1)</p><p> P3.4 T0(定時(shí)器0外部輸入
36、)</p><p> P3.5 T1(定時(shí)器1外部輸入)</p><p> P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)</p><p> P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)</p><p> ?。?)AT89S52的晶振及其連接方法 CPU工作時(shí)都必須有一個(gè)時(shí)鐘脈沖。有兩種方式可以向89S52提供時(shí)鐘脈沖:一是外部時(shí)鐘方式,即使用
37、外部電路向89S52提供時(shí)鐘脈沖,見圖2.3(a);二是內(nèi)部時(shí)鐘方式,即使用晶振由89S52內(nèi)部電路產(chǎn)生時(shí)鐘脈沖。一般常用第二種方法,其電路見圖2.3(b)。</p><p> 圖2.3 89S52的時(shí)鐘脈沖</p><p> J一般為石英晶體,其頻率由系統(tǒng)需要和器件決定,在頻率穩(wěn)定度要求不高時(shí)也可以使用陶瓷濾波器。一般來說,使用石英晶體時(shí),C1=C2=30pF。使用陶瓷濾波器時(shí),C1
38、=C2=47pF。</p><p> (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ù)位操作還對(duì)其他一些專用寄存器有影響,它們的復(fù)位狀態(tài)如表2.2所示。</p><p>
39、; 表2.2 復(fù)位后的內(nèi)部寄存器狀態(tài)</p><p> 另外,復(fù)位操作還對(duì)單片機(jī)的個(gè)別引腳有影響,例如會(huì)把ALE和/PSEN變成無效狀態(tài),即使ALE=0,/PSEN=1.RST變成低電平后,退出復(fù)位狀態(tài),CPU從初始狀態(tài)開始工作。</p><p> 89S52復(fù)位操作有3種方式:上電復(fù)位、上電按鈕復(fù)位和系統(tǒng)復(fù)位。上電復(fù)位電路如圖2.4所示。對(duì)于CMOS型單片機(jī)因RST引腳的內(nèi)部有一個(gè)
40、拉低電阻,故電阻R可不接。單片機(jī)在上電瞬間,RC電路充電,RST引腳端出現(xiàn)正脈沖,只要RST端保持兩個(gè)機(jī)器周期以上的高電平,就能使單片機(jī)有效地復(fù)位。當(dāng)晶體振蕩頻率為12MHz時(shí),RC的典型值為C=10uF,R=8.2K歐姆。簡(jiǎn)單復(fù)位電路中,干擾信號(hào)易串入復(fù)位端,可能會(huì)引起內(nèi)部某些寄存器錯(cuò)誤復(fù)位,這時(shí)可在RST引腳上接一去耦電容。</p><p> 通常因?yàn)橄到y(tǒng)運(yùn)行等的需要,常常需要人工按鈕復(fù)位,復(fù)位電路如圖2.
41、5所示,其中R2>>R1,只需將一個(gè)常開按鈕開關(guān)并聯(lián)于上電復(fù)位電路,按下開關(guān)一定時(shí)間就能使RST引腳端為高電平,從而使單片機(jī)復(fù)位。</p><p> 圖2.4 上電復(fù)位電路 圖2.5 上電按鈕復(fù)位電路</p><p> 2.2.2 資源分配</p><p> 晶振采用12MHZ。P1口的P1.0-P1.3分別與
42、四個(gè)按鍵連接,分別控制鋸齒波、三角波、正弦波和方波,P1.4-P1.7與四個(gè)發(fā)光二極管相連,按鍵一對(duì)應(yīng)發(fā)光二極管一,依次類推,發(fā)光二極管四對(duì)應(yīng)按鍵四,實(shí)現(xiàn)輸出一個(gè)波形對(duì)應(yīng)亮一個(gè)燈。</p><p> P0口與DAC0832的D0-D7數(shù)據(jù)輸入端相連。</p><p> P2口用來控制DAC0832的輸入寄存器選擇信號(hào)/CS和數(shù)據(jù)傳送信號(hào)/XFER。</p><p&g
43、t; 2.3 各部分電路原理</p><p> 2.3.1 DAC0832芯片原理</p><p> 管腳功能介紹(如圖2.6所示)</p><p> 圖2.6 DAC0832管腳圖</p><p> DI7~DI0:8位的數(shù)據(jù)輸入端,DI7為最高位。</p><p> ILE:數(shù)據(jù)鎖存允許控制信號(hào)輸入
44、線,高電平有效。</p><p> /CS:選片信號(hào)輸入線(選通數(shù)據(jù)鎖存器),低電平有效。</p><p> /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ù)鎖存。</p><p> /XFER:數(shù)據(jù)傳輸控制信號(hào)輸入線,低電平有效
45、,負(fù)脈沖有效。</p><p> /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)換。</p><p> IOUT1:模擬電流輸出端1,當(dāng)DAC寄存器中數(shù)據(jù)全為1時(shí),輸出電流最大,當(dāng) DAC寄存器中數(shù)據(jù)全為0時(shí),輸出
46、電流為0。</p><p> IOUT2:模擬電流輸出端2, IOUT2與IOUT1的和為一個(gè)常數(shù),即IOUT1+I(xiàn)OUT2=常數(shù)。</p><p> RFB:反饋電阻引出端,DAC0832內(nèi)部已經(jīng)有反饋電阻,所以 RFB端可以直接接到外部運(yùn)算放大器的輸出端,這樣相當(dāng)于將一個(gè)反饋電阻接在運(yùn)算放大器的輸出端和輸入端之間。</p><p> VREF:參考電壓輸入
47、端,此端可接一個(gè)正電壓,也可接一個(gè)負(fù)電壓,它決定0至255的數(shù)字量轉(zhuǎn)化出來的模擬量電壓值的幅度,VREF范圍為(+10~-10)V。VREF端與D/A內(nèi)部T形電阻網(wǎng)絡(luò)相連。</p><p> Vcc:芯片供電電壓,范圍為(+5~+15)V。</p><p> AGND:模擬量地,即模擬電路接地端。</p><p> DGND:數(shù)字量地。 </p>
48、<p> 當(dāng)WR2和XFER同時(shí)有效時(shí),8位DAC寄存器端為高電平“1”,此時(shí)DAC寄存器的輸出端Q跟隨輸入端D也就是輸入寄存器Q端的電平變化;反之,當(dāng)端為低電平“0”時(shí),第一級(jí)8位輸入寄存器Q端的狀態(tài)則鎖存到第二級(jí)8位DAC寄存器中,以便第三級(jí)8位DAC轉(zhuǎn)換器進(jìn)行D/A轉(zhuǎn)換。</p><p> 一般情況下為了簡(jiǎn)化接口電路,可以把WR2和XFER直接接地,使第二級(jí)8位DAC寄存器的輸入端到輸出端直
49、通,只有第一級(jí)8位輸入寄存器置成可選通、可鎖存的單緩沖輸入方式。 特殊情況下可采用雙緩沖輸入方式,即把兩個(gè)寄存器都分別接成受控方式。</p><p> 制作低頻信號(hào)發(fā)生器有許多方案:主要有單緩沖方式,雙緩沖方式和直通方式。</p><p> 單緩沖方式具有適用于只有一路模擬信號(hào)輸出或幾路模擬信號(hào)非同步輸出的情形的優(yōu)點(diǎn),但是電路線路連接比較簡(jiǎn)單。而雙緩沖方式適用于在需要同時(shí)輸出幾路模擬信
50、號(hào)的場(chǎng)合,每一路模擬量輸出需一片DAC0832芯片,構(gòu)成多個(gè)DAC0832同步輸出電路,程序簡(jiǎn)單化,但是電路線路連接比較復(fù)雜。根據(jù)以上分析,我選擇了單緩沖方式使用方便,程序簡(jiǎn)單,易操作。</p><p> 這里我采用DAC0832與單片機(jī)89S52的典型的單緩沖方式接口電路。ILE接高電平,/WR1和/WR2相連后接89S52的/WR,/CS和/XFER相連后接89S52的地址高位,這樣就同時(shí)片選了DAC083
51、2的數(shù)據(jù)鎖存器和DAC寄存器,89S52對(duì)DAC0832執(zhí)行一次寫操作就把一個(gè)數(shù)據(jù)寫入數(shù)據(jù)鎖存器的同時(shí)也直接寫入到了DAC寄存器,模擬量輸出隨之變化。</p><p> DAC0832的輸出是電流,使用運(yùn)算放大器可以將其電流輸出線性地轉(zhuǎn)換成電壓輸出。根據(jù)運(yùn)算放大器和DAC0832的連接方法,運(yùn)算放大器的輸出可以分為單極性和雙極性兩種。這里我采用雙極性方式(如圖2.7所示)。</p><p&g
52、t; 圖2.7 DAC0832雙極性電壓輸出電路</p><p> 2.3.2 NE4558工作原理</p><p> 圖2.8 NE4558引腳圖 圖2.9 NE4558運(yùn)放引腳圖</p><p> 4558 是一片雙運(yùn)放,帶內(nèi)部補(bǔ)償電路。極好的通道分離特性允許在單運(yùn)放應(yīng)用中使用雙運(yùn)放器件,從而提供了最高的封裝密
53、度。他的內(nèi)部包含兩組形式完全相同的運(yùn)算放大器,除電源共用外,兩組運(yùn)放相互獨(dú)立。每一組運(yùn)算放大器可用圖2.9所示的符號(hào)來表示,它有5個(gè)引出腳,其中“+”、“-”為兩個(gè)信號(hào)輸入端,“V+”、“V-”為正、負(fù)電源端,“OUT”為輸出端。兩個(gè)信號(hào)輸入端中,“-”為反相輸入端,表示運(yùn)放輸出端OUT的信號(hào)與該輸入端的為相反;“+”為同相輸入端,表示運(yùn)放輸出端OUT的信號(hào)與輸入端的相位相同。</p><p> AOUT:放大
54、信號(hào)輸出(1)。 </p><p> AIN-:反相信號(hào)輸入(1)。</p><p> AIN+:同相信號(hào)輸入(1)。 </p><p><b> GND:接地。 </b></p><p> BIN+:同相信號(hào)輸入(2)。 </p><p> BIN-:反相信號(hào)輸入(2)。 </p
55、><p> BOUT2:放大信號(hào)輸出(2)。 </p><p><b> Vcc:電源。</b></p><p> 4558特性有很多,2MHz單位增益帶寬保證,NE4558 的電源電壓為 ±18v,具備短路保護(hù)功能,無需頻率補(bǔ)償,無閂鎖效應(yīng),寬廣的共模和差動(dòng)電壓范圍,低功耗。因此被廣泛運(yùn)用在各種電路中。</p>&l
56、t;p> 2.3.3 鍵盤電路原理</p><p> 在單片機(jī)應(yīng)用系統(tǒng)中為了控制系統(tǒng)的工作狀態(tài),以及向系統(tǒng)輸入數(shù)據(jù),應(yīng)用系統(tǒng)應(yīng)設(shè)有按鍵或鍵盤,實(shí)現(xiàn)簡(jiǎn)單的人機(jī)會(huì)話。鍵盤是一組按鍵的組合,鍵通常是一種常開型按鈕開關(guān),平時(shí)鍵的兩個(gè)出點(diǎn)處于斷開狀態(tài),按下鍵時(shí)他們才閉合。從鍵盤的結(jié)構(gòu)來分類,鍵盤可以分為獨(dú)立式和矩陣式兩類,每一類按其識(shí)別方法又都可以分為編碼和未編碼鍵盤兩種。鍵盤上閉合鍵的識(shí)別由專門的硬件譯碼器實(shí)
57、現(xiàn)并產(chǎn)生編號(hào)或鍵值的稱為編碼鍵盤,由軟件識(shí)別的稱未編碼鍵盤。在由單片機(jī)組成的測(cè)控系統(tǒng)及智能化儀器中,用得較多的是未編碼鍵盤,我這里也使用未編碼鍵盤。</p><p> 未編碼鍵盤又分為獨(dú)立式鍵盤跟矩陣式鍵盤。</p><p> ?。?)獨(dú)立式未編碼鍵盤結(jié)構(gòu)的工作原理及接口 在單片機(jī)應(yīng)用系統(tǒng)中常常需要簡(jiǎn)單的幾個(gè)鍵完成數(shù)據(jù)、命令的輸入,此時(shí)可采用獨(dú)立式鍵盤的結(jié)構(gòu)。其接口如圖2.10所示。此
58、接口電路的工作原理很簡(jiǎn)單,無鍵按下時(shí),各輸入線為高電平;有鍵按下時(shí),相應(yīng)的輸入線為低電平,CPU查詢此輸入口的狀態(tài)就可知是哪個(gè)鍵閉合。采用一鍵一線的方法,當(dāng)按鍵的數(shù)目增加時(shí),將增加輸入口的數(shù)量,為了減少占用輸入線數(shù),可采用矩陣式結(jié)構(gòu)的鍵盤。</p><p> 圖2.10 獨(dú)立式未編碼鍵盤</p><p> ?。?)矩陣式未編碼鍵盤結(jié)構(gòu)的工作原理 如圖2.11所示是4*4的鍵盤接口,它是
59、矩陣式的結(jié)構(gòu)。圖中鍵盤的行線(X0~X3)與列線(Y0~Y3)的交叉處通過一個(gè)按鍵來聯(lián)通,行線通過電阻接+5V,當(dāng)鍵盤上沒有鍵閉合時(shí)所有的行線和列線都斷開,則行線都呈高電平。當(dāng)鍵盤上某一個(gè)鍵閉合時(shí),則該鍵所對(duì)應(yīng)的行線和列線被短路。例如:6號(hào)鍵被按下閉合時(shí),行線X1和列線Y2被短路,此時(shí)X1的電平由Y2的電位所決定。如果把行線接到單片機(jī)的輸入口,列線接到單片機(jī)的輸出口,則在單片機(jī)的控制下,先使列線Y0為低電平,其余三根列線Y1、Y2、Y3
60、都為高電平,讀行線狀態(tài)。如果X0、X1、X2、X3、都為高電平,則Y0這一列上沒有鍵合。如果讀出的行線狀態(tài)不全為高電平,則為低電平的行線和Y0相交的鍵處于閉合狀態(tài)。如果Y0這一列上沒有鍵合,接著使列線Y1為低電平,其余列線為高電平,用同樣方法檢查Y1這一列上有無鍵閉合。依此類推,最后使列線Y3為低電平,其余的列線為高電平,檢查Y3這一列上是否有鍵閉合。這種逐行逐列地檢查鍵盤狀態(tài)的過程稱為對(duì)鍵盤的一次掃描。CPU對(duì)鍵盤掃描可以采取程序控制
61、的隨機(jī)方式,CPU空閑時(shí)掃描鍵盤;也可以</p><p> 圖2.11 4*4矩陣式未編碼鍵盤結(jié)構(gòu)圖</p><p> 根據(jù)我設(shè)計(jì)的電路特點(diǎn),只需要用到4個(gè)按鈕來選擇波形,實(shí)現(xiàn)的功能也比較簡(jiǎn)單,所以我采用獨(dú)立式未編碼鍵盤結(jié)構(gòu)。鍵盤原理圖如圖2.12所示。</p><p> 圖2.12 鍵盤原理圖</p><p> 2.3.4 LE
62、D顯示電路原理</p><p> 在這里使用的是發(fā)光二極管,發(fā)光二極管通常用砷化鎵、磷化鎵等所制成的。當(dāng)這種管子通以電流時(shí)將發(fā)出光來,這是由于電子與空穴直接復(fù)合而放出的能量的結(jié)果。當(dāng)PN結(jié)處加以一個(gè)適當(dāng)?shù)恼妷簳r(shí),此管即導(dǎo)通,也就會(huì)發(fā)光。這樣我們就能知道我們所需要了解的信息,在此設(shè)計(jì)中發(fā)光二極管通過軟件的控制顯示波形種類。LED電路圖如圖2.13所示。</p><p> 圖2.13
63、LED電路圖</p><p> 4個(gè)LED的負(fù)極分別接P1.4~P1.7,當(dāng)P1口高4位任意一個(gè)為低電平時(shí),其對(duì)應(yīng)的LED就會(huì)導(dǎo)通,從而發(fā)光,通過程序的控制可以設(shè)計(jì)波形類型的顯示。</p><p> 第三章 系統(tǒng)軟件設(shè)計(jì)</p><p> 軟件設(shè)計(jì)上,根據(jù)功能分了幾個(gè)模塊編程。模塊主要有:主程序模塊、鋸齒波模塊、三角波模塊、正弦波模塊、方波模塊、延時(shí)子程序模
64、塊等。</p><p> 顯示波形模塊是利用DAC0832的8位特點(diǎn),把波形的數(shù)據(jù)以8位數(shù)據(jù)的形勢(shì)送進(jìn)CPU中,只要一按鍵就能顯示波形。</p><p><b> 3.1主程序流程圖</b></p><p><b> 如圖3.1所示</b></p><p> 圖3.1主程序流程圖</p
65、><p> 本軟件設(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)方式輸出不同波形。</p><p><b> 3.2子程序流程圖</b></p><p> 鋸齒波
66、流程圖如圖3.2所示。</p><p> 圖3.2 鋸齒波流程圖</p><p> 鋸齒波產(chǎn)生將00H送入寄存器A中,DAC0832輸出A中的內(nèi)容,當(dāng)A中的內(nèi)容等于FFH返回開始,當(dāng)A中的內(nèi)容不為FFH時(shí),A中的內(nèi)容累加,從而輸出波形。</p><p> 鋸齒波產(chǎn)生子程序如下:</p><p> SANTOO: MOV A ,#0
67、0H </p><p> MOV DPTR,#7FFFH</p><p> LLOOP: MOVX @DPTR,A </p><p><b> INC A ;</b></p><p> CJNE A,FFH,LLOOP </p><p><b> RET</b>
68、;</p><p> 三角波流程圖如圖3.3所示</p><p> 圖3.3 三角波流程圖</p><p> 三角波產(chǎn)生通過A中數(shù)值的加一遞升,當(dāng)A中的內(nèi)容加到為0時(shí), A中的內(nèi)容減一遞減,從而循環(huán)產(chǎn)生三角波。</p><p> 三角波產(chǎn)生子程序如下:</p><p> TRIAN :MOV A ,#00H
69、</p><p> MOV DPTR,#7FFFH</p><p> UP: MOVX @DPTR,A INC A JNZ UP DO
70、WN: DEC A MOVX @DPTR,A JNZ DOWN RET</p><p> 正弦波程序流程圖如圖3.4所示</p><p> 圖3.4
71、 正弦波程序流程圖</p><p> 正弦波波形設(shè)計(jì)通過查表指令得出。其產(chǎn)生子程序如下:</p><p> SINE: MOV DPTR1,#sinTab</p><p> MOV DPTR,#7FFFH </p><p> LOOP: CLR A</p><p> MOVC A,@A+DPTR1&
72、lt;/p><p> CJNE A,#129,LOOP1</p><p><b> RET</b></p><p> LOOP1: MOVX @DPTR,A</p><p><b> INC DPTR1</b></p><p><b> AJMP LOOP&
73、lt;/b></p><p> sinTab:DB 128,132,137,141,146,150,154,159,163,167</p><p> DB 171,176,180,184,188,191,195,199,203,206</p><p> DB 210,213,216,219,222,225,228,231,233,236</p>
74、;<p> DB 238,240,242,244,246,247,249,250,251,252</p><p> DB 253,254,254,255,255,255,255,255,254,254</p><p> DB 253,252,251,250,249,247,246,244,242,240</p><p> DB 238,236,
75、233,231,228,225,222,219,216,213</p><p> DB 210,206,203,198,195,192,188,184,180,176</p><p> DB 172,167,163,159,155,150,146,141,137,133</p><p> DB 128,124,119,115,111,106,102,97,93
76、,89,85</p><p> DB 81,77,73,69,65,61,57,54,50,47,43,40,37</p><p> DB 34,31,28,25,23,20,18,16,14,12,10,9,7</p><p> DB 6,5,4,3,2,2,1,1,1,1,1,2,2,3,4,5,6</p><p> DB 7,9
77、,10,12,14,16,18,20,23,25,28,30,33,36</p><p> DB 40,43,46,50,53,57,60,64,68,72,76,80,84</p><p> DB 88,93,97,101,106,110,114,119,123,128,129</p><p> 方波程序流程圖如圖3.5所示</p><p
78、> 圖3.5 方波程序流程圖</p><p> 方波產(chǎn)生是當(dāng)A中的內(nèi)容為0時(shí),輸出對(duì)應(yīng)模擬量,然后延時(shí),當(dāng)A中的內(nèi)容為0FFH時(shí),同樣輸出對(duì)應(yīng)模擬量,再延時(shí),從而得到方波。</p><p> 方波產(chǎn)生子程序如下:</p><p> SQUN:MOV DPTR,#7FFFH </p><p> MOV A ,#
79、0FFH </p><p> MOVX @DPTR,A </p><p> LCALL Delay </p><p> MOV A ,#00H</p><p> MOVX @DPTR,A </p><p> LCALL Delay
80、 </p><p> RET </p><p><b> 延時(shí)子程序如下:</b></p><p> Delay: MOV R7,#10H</p><p> DLY0: MOV R6,#0EDH</p><p><b>
81、 NOP</b></p><p> DLY1: DJNZ R6,DLY1</p><p> DJNZ R7,DLY0</p><p><b> RET</b></p><p> 方波的上限和下限的延時(shí)時(shí)間為:7ms</p><p> S=1+(1+1+2×
82、237+2)×16+1=7648us</p><p><b> 第四章 測(cè)試結(jié)果</b></p><p> 在確定編程思路以后將各部分的程序及各子程序編好,使用keil進(jìn)行編譯,根據(jù)提示的錯(cuò)誤對(duì)程序進(jìn)行修改。除了語法差錯(cuò)和邏輯差錯(cuò)外,當(dāng)確認(rèn)程序沒問題時(shí),通過直接加載到protues軟件電路中進(jìn)行仿真。</p><p> 當(dāng)按鍵
83、1撥下時(shí),波形為鋸齒波,同時(shí)指示燈1發(fā)光。仿真圖如圖4.1所示。</p><p> 圖4.1 鋸齒波仿真圖</p><p> 當(dāng)按鍵2撥下時(shí),波形為三角波,同時(shí)指示燈2發(fā)光。仿真圖如圖4.2所示。</p><p> 圖4.2 三角波仿真圖</p><p> 當(dāng)按鍵3撥下時(shí),波形為正弦波,同時(shí)指示燈3發(fā)光。仿真圖如圖4.3所示。<
84、/p><p> 圖4.3 正弦波仿真圖</p><p> 當(dāng)按鍵4撥下時(shí),波行為方波,同時(shí)指示燈4發(fā)光。仿真圖如圖4.4所示。</p><p> 圖4.4 方波仿真圖</p><p> 在對(duì)系統(tǒng)進(jìn)行波形仿真時(shí)可以在虛擬示波器上觀察到鋸齒波、三角波、正弦波和方波的波形。其中鋸齒波、三角波以及正弦波的輸出誤差較大,方波波形較為理想。這一方面與
85、電路設(shè)置的參數(shù)有關(guān),另一方面也與使用的仿真軟件有關(guān)。對(duì)于上述問題的解決辦法是:改變仿真電路的參數(shù)或著換用版本較高的仿真軟件。當(dāng)然一般產(chǎn)生這種情況的原因多由于電路的參數(shù)設(shè)計(jì)不合理所制。當(dāng)仿真時(shí),由于存在一定的系統(tǒng)誤差,波形效果不是很好。</p><p><b> 第五章 結(jié)論</b></p><p> 基于單片機(jī)的智能信號(hào)發(fā)生器設(shè)計(jì),該課題的設(shè)計(jì)目的是充分運(yùn)用大學(xué)
86、期間所學(xué)的專業(yè)知識(shí),考察現(xiàn)在正在使用的信號(hào)發(fā)生器的基本功能,完成一個(gè)基本的實(shí)際系統(tǒng)的設(shè)計(jì)全過程。關(guān)鍵是這個(gè)實(shí)際系統(tǒng)設(shè)計(jì)的過程,在整個(gè)過程中我可以充分發(fā)揮單片機(jī)知識(shí)。特別是這個(gè)信號(hào)發(fā)生器的設(shè)計(jì)中涉及到一個(gè)典型的控制過程。通過單片機(jī)控制一個(gè)模數(shù)轉(zhuǎn)換器DAC0832產(chǎn)生所需要的電流,然后使用運(yùn)算放大器NE4558可以將其電流輸出線性地轉(zhuǎn)換成電壓輸出,通過程序的控制,可以產(chǎn)生一系列有規(guī)律的波形。這樣一個(gè)信號(hào)發(fā)生裝置在控制領(lǐng)域有相當(dāng)廣泛的應(yīng)用范圍
87、。</p><p> 此設(shè)計(jì)方案硬件較為簡(jiǎn)單,主要是由單片機(jī)跟DAC08322個(gè)芯片構(gòu)成,連線也較簡(jiǎn)便。鍵盤電路用的獨(dú)立未編碼結(jié)構(gòu),一個(gè)鍵控制一個(gè)波形。顯示電路主要是由發(fā)光二極管構(gòu)成,利用發(fā)光二極管的導(dǎo)通即發(fā)光的特性來顯示是哪個(gè)波形的輸出,簡(jiǎn)單易懂。軟件程序方面較為復(fù)雜一點(diǎn),此方案主要是靠程序的控制,主要由4個(gè)波形產(chǎn)生的子程序加上有承上啟下作用的主程序構(gòu)成,程序思路還是比較清晰。其中正弦波的程序較為繁瑣,因?yàn)槭?/p>
88、通過查表指令產(chǎn)生的,所以要列出個(gè)含有較多字符的表格。</p><p> 當(dāng)然還是存在不足的地方,比如不能實(shí)現(xiàn)頻率與幅度的可調(diào),顯示電路跟鍵盤電路有待進(jìn)一步改進(jìn)。</p><p><b> 參考文獻(xiàn)</b></p><p> [1]楊恢先,黃輝先.單片機(jī)原理及應(yīng)用[M].人民郵電出版社,2006.</p><p>
89、 [2]曾一江.單片機(jī)微機(jī)原理與接口技術(shù)[M].科學(xué)出版社,2006.</p><p> [3]王新強(qiáng).基于AT89S52的智能信號(hào)發(fā)生器[J].河南機(jī)電高等專科學(xué)校學(xué)報(bào),2006,14(3):37-39.</p><p> [4]康華光,陳大欽.電子技術(shù)基礎(chǔ)[M].高等教育出版社,1998.</p><p><b> 致 謝</b>&
90、lt;/p><p> 文從選題的確定,論文的寫作、修改到最后定稿得到了我的指導(dǎo)老師XXX老師的悉心指導(dǎo)。特別是她多次詢問寫作進(jìn)程,并為我指點(diǎn)迷津,幫助我開拓思路,精心點(diǎn)撥,熱忱鼓勵(lì)。她嚴(yán)肅的教學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,精益求精的工作作風(fēng)深深地感染和激勵(lì)著我。在此,謹(jǐn)向XXX老師致以誠(chéng)摯的謝意和崇高的敬意。</p><p> 同時(shí),論文的順利完成,離不開其它各位老師、同學(xué)和朋友的關(guān)心和幫助。在
91、整個(gè)的論文寫作中,各位老師、同學(xué)和朋友積極的幫助我查資料和提供有利于論文寫作的建議和意見,在他們的幫助下,論文得以不斷的完善,最終幫助我完整的寫完了整個(gè)論文。再次衷心地感謝所有在我論文寫作過程中給予過我?guī)椭娜藗?,謝謝!</p><p><b> 附錄A 元件清單</b></p><p><b> 附錄B 電路原理圖</b></p>
92、;<p><b> 附錄C PCB圖</b></p><p><b> 附錄D 程序清單</b></p><p> KEY1 BIT P1.0</p><p> KEY2 BIT P1.1</p><p> KEY3 BIT P1.2</p><
93、;p> KEY4 BIT P1.3</p><p> ;按鍵KEY1:鋸齒波 按鍵KEY2:三角波 按鍵KEY3: 正弦波 </p><p> ;按鍵KEY4: 方波;</p><p> ORG 0000H</p><p> LJMP MAIN</p><p> ORG 0030H&l
94、t;/p><p> MAIN:MOV SP,#50H</p><p> SCAN_KEY1:MOV A,P1</p><p> ANL A,#0FH</p><p> CJNE A,#0EH,SCAN_KEY2</p><p><b> LJMP B1</b></p><
95、p> SCAN_KEY2:MOV A,P1</p><p> ANl A,#0FH</p><p> CJNE A,#0DH,SCAN_KEY3</p><p><b> LJMP B2</b></p><p> SCAN_KEY3:MOV A,P1</p><p> ANl A
96、,#0FH</p><p> CJNE A,#0BH,SCAN_KEY4</p><p><b> LJMP B3</b></p><p> SCAN_KEY4:MOV A,P1</p><p> ANl A,#0FH</p><p> CJNE A,#07H,SCAN_KEY1<
97、/p><p><b> LJMP B4</b></p><p> ;利用dac0832產(chǎn)生鋸齒波;</p><p> B1:CLR P1.4</p><p> SETB P1.5</p><p> SETB P1.6</p><p> SETB P1.7&
98、lt;/p><p> SANTOO:MOV A ,#00H </p><p> MOV DPTR,#7FFFH</p><p> LLOOP:MOVX @DPTR,A </p><p><b> INC A ;</b></p><p> CJNE A,FFH,LLOOP </p&
99、gt;<p> LJMP SCAN_KEY1</p><p> ;利用dac0832產(chǎn)生三角波;</p><p> B2: CLR P1.5</p><p> SETB P1.4</p><p> SETB P1.6</p><p> SETB P1.7</p>&l
100、t;p> TRIAN :MOV A ,#00H</p><p> MOV DPTR,#7FFFH</p><p> UP: MOVX @DPTR,A INC A
101、; JNZ UP DOWN: DEC A MOVX @DPTR,A JNZ DOWN LJMP SCAN_KEY2&l
102、t;/p><p> ;利用dac0832產(chǎn)生正弦波;</p><p> ;在表格里取數(shù)送到指定地址</p><p> B3: CLR P1.6</p><p> SETB P1.4</p><p> SETB P1.5</p><p> SETB P1.7</p>
103、<p> SINE: MOV DPTR1,#sinTab</p><p> MOV DPTR,#7FFFH </p><p> LOOP: CLR A</p><p> MOVC A,@A+DPTR1</p><p> CJNE A,#129,LOOP1</p><p><b&g
104、t; RET</b></p><p> LOOP1: MOVX @DPTR,A</p><p><b> INC DPTR1</b></p><p><b> AJMP LOOP</b></p><p> sinTab:DB 128,132,137,141,146,150,15
105、4,159,163,167</p><p> DB 171,176,180,184,188,191,195,199,203,206</p><p> DB 210,213,216,219,222,225,228,231,233,236</p><p> DB 238,240,242,244,246,247,249,250,251,252</p>
106、<p> DB 253,254,254,255,255,255,255,255,254,254</p><p> DB 253,252,251,250,249,247,246,244,242,240</p><p> DB 238,236,233,231,228,225,222,219,216,213</p><p> DB 210,206,203
107、,198,195,192,188,184,180,176</p><p> DB 172,167,163,159,155,150,146,141,137,133</p><p> DB 128,124,119,115,111,106,102,97,93,89,85</p><p> DB 81,77,73,69,65,61,57,54,50,47,43,40,
108、37</p><p> DB 34,31,28,25,23,20,18,16,14,12,10,9,7</p><p> DB 6,5,4,3,2,2,1,1,1,1,1,2,2,3,4,5,6</p><p> DB 7,9,10,12,14,16,18,20,23,25,28,30,33,36</p><p> DB 40,43,
109、46,50,53,57,60,64,68,72,76,80,84</p><p> DB 88,93,97,101,106,110,114,119,123,128,129</p><p> LJMP SCAN_KEY3</p><p> ;利用dac0832產(chǎn)生方波;</p><p> B4: CLR P1.7</p>
110、<p> SETB P1.4</p><p> SETB P1.6</p><p> SETB P1.5</p><p> SQUN:MOV DPTR,#7FFFH </p><p> MOV A ,#0FFH </p><p> MOVX @DPTR,
111、A </p><p> LCALL Delay </p><p> MOV A ,#00H</p><p> MOVX @DPTR,A </p><p> LCALL Delay </p><p> LJMP SCAN_KEY4<
112、/p><p> Delay:MOV R7,#10H</p><p> DLY0: MOV R6,#0EDH</p><p><b> NOP</b></p><p> DLY1: DJNZ R6,DLY1</p><p> DJNZ R7,DLY0</p><
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)的智能信號(hào)發(fā)生器設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----基于單片機(jī)的信號(hào)發(fā)生器設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)的信號(hào)發(fā)生器
- 基于單片機(jī)的函數(shù)信號(hào)發(fā)生器畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)的函數(shù)信號(hào)發(fā)生器
- 基于單片機(jī)的函數(shù)信號(hào)發(fā)生器畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)-----基于單片機(jī)的函數(shù)信號(hào)發(fā)生器
- 基于單片機(jī)的函數(shù)信號(hào)發(fā)生器畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的函數(shù)信號(hào)發(fā)生器畢業(yè)設(shè)計(jì)
- 單片機(jī)函數(shù)信號(hào)發(fā)生器畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的信號(hào)發(fā)生器設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----基于單片機(jī)的方波信號(hào)發(fā)生器
- 單片機(jī)的函數(shù)信號(hào)發(fā)生器畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的受控正弦信號(hào)發(fā)生器設(shè)計(jì)
- 數(shù)字信號(hào)發(fā)生器畢業(yè)設(shè)計(jì)--基于單片機(jī)的數(shù)字信號(hào)發(fā)生器設(shè)計(jì)
- 基于單片機(jī)的函數(shù)信號(hào)發(fā)生器畢業(yè)設(shè)計(jì) (2)
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)的低頻信號(hào)發(fā)生器設(shè)計(jì)
- 基于單片機(jī)的函數(shù)信號(hào)發(fā)生器畢業(yè)設(shè)計(jì) (2)
- 畢業(yè)設(shè)計(jì)--- 基于單片機(jī)pc程控脈沖信號(hào)發(fā)生器設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)pc程控脈沖信號(hào)發(fā)生器設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論