版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、<p> 《單片機應用與仿真訓練》設計報告</p><p> 多功能信號發(fā)生器設計</p><p> 姓 名: </p><p> 專業(yè)班級: 電儀 09-03 </p><p> 指導老師: </p><p> 所在學院:電氣
2、工程與自動化學院</p><p> 2012年6月25 日</p><p><b> 摘要</b></p><p> 本設計是多功能信號發(fā)生器,以 AT89S52 單片機為核心,通過按鍵輸入控制輸出信號的類型、頻率和幅值,采用 DA 轉(zhuǎn)換芯片DAC0832輸出相應的波形,同時以LED 顯示器進行實時顯示信號相關信息。我們采用 C 語言進行
3、編程,可實現(xiàn)100-1Khz的方波,鋸齒波,三角波和正弦波四種波形的產(chǎn)生,且波形的頻率、幅值可通過按鍵調(diào)節(jié),并顯示在數(shù)碼管上。而且,波形的幅值還可通過電位器實現(xiàn)無極調(diào)幅,增加了可選幅值范圍。經(jīng)測試該設計方案線路優(yōu)化,結(jié)構(gòu)緊湊,性能優(yōu)越,滿足設計要求。</p><p> 關鍵字:單片機AT89S52,DAC0832,信號發(fā)生器</p><p><b> 目錄</b>
4、</p><p><b> 第1章 概述1</b></p><p> 1.1選題背景及其意義1</p><p> 1.2 單片機概述1</p><p> 1.3 信號發(fā)生器分類1</p><p> 1.4 研究題目及其意義2</p><p> 第2章
5、信號發(fā)生器方案設計與選擇3</p><p> 2.1 方案的設計與選擇3</p><p> 2.2 設計原理簡介3</p><p> 2.3 設計功能5</p><p> 第3章 主要電路元器件介紹6</p><p> 3.1 AT89S52單片機簡介6</p><p>
6、 3.1.1 單片機簡介6</p><p> 3.1.2主要性能6</p><p> 3.1.3 管腳功能說明7</p><p> 3.2 DAC0832簡介8</p><p> 3.2.1 DAC0832的主要特性參數(shù)8</p><p> 3.2.2 DAC0832結(jié)構(gòu)8</p>
7、<p> 3.2.3 DAC0832工作方式9</p><p> 3.3 數(shù)碼顯示管10</p><p> 3.3.1 原理及分類10</p><p> 3.3.2 顯示器的工作方式10</p><p> 3.3.3 數(shù)碼管字型碼11</p><p> 第4章 單元電路的硬件設計12&
8、lt;/p><p> 4.1 硬件原理框圖12</p><p> 4.2 單片機 AT89S52 系統(tǒng)的設計12</p><p> 4.3 時鐘電路13</p><p> 4.4復位電路13</p><p> 4.5數(shù)碼管電路14</p><p> 4.6 DAC0832模數(shù)轉(zhuǎn)
9、換電路15</p><p> 4.7 LM324運放電路和低通濾波電路16</p><p> 4.8 按鍵和波形指示LED電路17</p><p> 第5章 系統(tǒng)軟件設計18</p><p> 5.1軟件開發(fā)環(huán)境簡介18</p><p> 5.1.1 Keil uVision4簡介18</p
10、><p> 5.1.2 Proteus7.10 簡介19</p><p> 5.1.3 Keil 與Proteus 聯(lián)合調(diào)試仿真19</p><p><b> 5.2主程序20</b></p><p> 5.3按鍵處理程序21</p><p> 5.4 數(shù)碼管輸出程序分析22<
11、;/p><p> 5.5 各種波形產(chǎn)生思路22</p><p> 5.5.1 方波產(chǎn)生思路22</p><p> 5.5.2 鋸齒波產(chǎn)生思路22</p><p> 5.5.3 三角波產(chǎn)生思路23</p><p> 5.5.4 正弦波產(chǎn)生思路23</p><p> 5.6 仿真的
12、各種波形效果23</p><p> 第6章 課程設計體會24</p><p><b> 參考文獻25</b></p><p><b> 致 謝26</b></p><p> 附1:源程序代碼27</p><p><b> 1.主程序27<
13、/b></p><p><b> 2.頭文件27</b></p><p> 附 2:系統(tǒng)原理圖31</p><p> 附 3:實物效果圖32</p><p><b> 第1章 概述</b></p><p> 1.1選題背景及其意義</p>
14、<p> 信號發(fā)生器又稱信號源或振蕩器,在生產(chǎn)實踐和科技領域中有著廣泛的應用。各種波形曲線均可以用三角函數(shù)方程式來表示。能夠產(chǎn)生多種波形,如方波、鋸齒波、三角波、正弦波的電路被稱為函數(shù)信號發(fā)生器。在通信、廣播、電視系統(tǒng),在工業(yè)、農(nóng)業(yè)、生物醫(yī)學領域內(nèi),函數(shù)信號發(fā)生器在實驗室和設備檢測中具有十分廣泛的用途。</p><p> 信號發(fā)生器作為一種常見的應用電子儀器設備,傳統(tǒng)的可以完全由硬件電路搭接而成,如
15、采用555振蕩電路發(fā)生正弦波、三角波和方波的電路便是可取的路徑之一,不用依靠單片機。但是這種電路存在波形質(zhì)量差,控制難,可調(diào)范圍小,電路復雜和體積大等缺點。在科學研究和生產(chǎn)實踐中,如工業(yè)過程控制,生物醫(yī)學,地震模擬機械振動等領域常常要用到低頻信號源。而由硬件電路構(gòu)成的低頻信號其性能難以令人滿意,而且由于低頻信號源所需的RC很大;大電阻,大電容在制作上有困難,參數(shù)的精度亦難以保證;體積大,漏電,損耗顯著更是致命的弱點。一旦工作需求功能有增
16、加,則電路復雜程度會大大增加</p><p><b> 1.2 單片機概述</b></p><p> 單片機是一種集成在電路芯片,是采用超大規(guī)模集成電路技術把具有數(shù)據(jù)處理能力的中央處理器 CPU 隨機存儲器 RAM、只讀存儲器 ROM、多種 I/O 口和中斷系統(tǒng)、定時器/計時器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D 轉(zhuǎn)換器等電路)集成
17、到一塊硅片上構(gòu)成的一個小而完善的計算機系統(tǒng)。單片機具有集成度高、系統(tǒng)結(jié)構(gòu)簡單、使用方便、實現(xiàn)模塊化、可靠性高、處理功能強、速度快等特點,因為被廣泛應用于儀器儀表、家用電器、醫(yī)用設備、航空航天、專用設備的智能化管理及過程控制等領域。</p><p> 1.3 信號發(fā)生器分類</p><p> 信號發(fā)生器是指產(chǎn)生所需參數(shù)的電信號的儀器。因其應用廣泛,種類繁多,特性各異,分類也不盡一致。按信
18、號波形可分為正弦信號、函數(shù)信號、脈沖信號和隨機信號發(fā)生器等四大類;按頻率覆蓋范圍分為低頻信號發(fā)生器、高頻信號發(fā)生器和微波信號發(fā)生器;按輸出電平可調(diào)節(jié)范圍和穩(wěn)定度分為簡易信號發(fā)生器、標準信號發(fā)生器和功率信號發(fā)生器;按頻率改變的方式分為調(diào)諧式信號發(fā)生器、掃頻式信號發(fā)生器、程控式信號發(fā)生器和頻率合成式信號發(fā)生器等。信號發(fā)生器又稱信號源或振蕩器,在生產(chǎn)實踐和科技領域中有著廣泛的應用。</p><p> 1.4 研究題目
19、及其意義</p><p> 信號發(fā)生器是一種經(jīng)常使用的設備,由純粹物理器件構(gòu)成的傳統(tǒng)的設計方法存在許多弊端,如:體積較大、重量較沉、移動不方便、信號失真較大、波形形狀調(diào)節(jié)過于死板,無法滿足用戶對精度、便攜性、穩(wěn)定性等要求,研究設計出一種具有頻率穩(wěn)定、準確、波形質(zhì)量好、輸出頻率范圍寬、便攜性好等特點的波形發(fā)生器具有較好的市場前景。以滿足工業(yè)領域?qū)π盘栐吹囊蟆1敬卧囼瀸崿F(xiàn)利用單片機 AT89S52 和 8 位 D
20、/A 轉(zhuǎn)換芯片 DAC0832 共同實現(xiàn)方波、鋸齒波、三角波、正弦波這四種常用波形的發(fā)生。根據(jù)設計的要求,對各種波形的頻率和幅度進行程序的編寫,并將所寫程序裝入單片機的程序存儲器中。在程序運行中,當接收到來自外界的命令,需要輸出某種波形時再調(diào)用相應的中斷服務子程序和波形發(fā)生程序,經(jīng)電路的數(shù)/模轉(zhuǎn)換器和運算放大器處理后,從信號發(fā)生器的輸出端口輸出。并且可以通過數(shù)碼管和鍵盤顯示模塊,鍵盤可以實現(xiàn)對幾種波形的切換。</p>&l
21、t;p> 第2章 信號發(fā)生器方案設計與選擇</p><p> 信號發(fā)生器是指產(chǎn)生所需參數(shù)的電信號的儀器。按信號波形可分為正弦信號、波形信號、脈沖信號和隨機信號發(fā)生器等四大類。本文利用單片機構(gòu)造低頻信號發(fā)生器,可產(chǎn)生正弦波,方波,三角波,鋸齒波四種波形,通過 D/A 轉(zhuǎn)換器 DAC0832 把數(shù)字信號轉(zhuǎn)變?yōu)槟M信號,經(jīng) LM324 放大輸出到示波器,與此同時外接 8 位 LED 數(shù)碼管顯示輸出信號的類型、
22、頻率和幅值。</p><p> 2.1 方案的設計與選擇</p><p> 方案一:NE555數(shù)字芯片結(jié)合外圍電路,組成波形發(fā)生器,能夠產(chǎn)生,方波,三角波,鋸齒波和正弦波,電路簡單,而且,頻率和幅值都能調(diào)節(jié),但是不能顯示頻率。</p><p> 方案二:采用單片函數(shù)發(fā)生器可產(chǎn)生正弦波、方波等,操作簡單易行,用 D/A 轉(zhuǎn)換器的輸出來改變調(diào)節(jié)電壓,可以實現(xiàn)數(shù)控調(diào)
23、整頻率,但產(chǎn)生信號的頻率穩(wěn)定度不高。</p><p> 方案三:利用芯片組成的電路輸出波形,MAX038 是 MAXIM 公司生產(chǎn)的一個只需要很少外部元件的精密高頻波形產(chǎn)生器,他能產(chǎn)生準確的高頻正弦波、三角波、方波。輸出頻率和占空比可以通過調(diào)整電流、電壓或電阻來分別地控制。所需的輸出波形可由在 A0和 A1 輸入端設置適當?shù)拇a來選擇,且具有輸出頻率范圍寬、波形穩(wěn)定、失真小、使用方便等特點。</p>
24、<p> 方案四:采用 Atmel 公司的 AT89S52單片機編程方法實現(xiàn),該方法的可以通過編程的方法控制信號波形的頻率和幅度,而在硬件電路不便的情況下,通過程序?qū)崿F(xiàn)頻率的變化和輸出波形的選擇,并同時在顯示器顯示相應的結(jié)果。</p><p> 方案一和二輸出信號頻率不夠穩(wěn)定;方案三成本高,程序復雜度高;方案四,軟硬件結(jié)合,硬件成本低,軟件起點低,優(yōu)化型相對比較好,容易實現(xiàn),且滿足設計要求。綜合
25、考慮,我們采用了方案四,用 AT89S52 單片機設計多功能信號發(fā)生器,能夠滿足信號的頻率穩(wěn)定性和精度的準確行。。</p><p> 2.2 設計原理簡介</p><p> 該設計設計一個多功能信號發(fā)生器,我們采用的是 AT89S52 單片機用軟件實現(xiàn)信號的輸出。該單片機是一個微型計算機,包括中央處理器 CPU,RAM,ROM、I/O 接口電路、定時計數(shù)器、串行通訊等,是波形設計的核心
26、。該信號發(fā)生器原理框圖如圖 2.1,總體原理為:利用 AT89S52 單片機構(gòu)造多功能信號發(fā)生器,可產(chǎn)生正弦波,方波,三角波,鋸齒波四種波形,通過 C 語言對單片機的編程即可產(chǎn)生相應的波形信號,并可以通過鍵盤進行各種功能的轉(zhuǎn)換和信號頻率的控制,當輸出的數(shù)字信號通過數(shù)模轉(zhuǎn)換成模擬信號也就得到所需要的信號波形,通過運算放大器的放大輸出波形,同時讓顯示器顯示輸出的波形信息。</p><p><b> 圖2-
27、1 系統(tǒng)框圖</b></p><p> 本方案其主要模塊包括復位電路、時鐘信號、鍵盤控制、D/A 轉(zhuǎn)化及 LED 顯示。其各個模塊的工作原理如下:</p><p> 1.復位電路是為單片機復位使用,使單片機接口初始化;89C51 等 CMOS51 系列單片機的復位引腳 RET 是施密特觸發(fā)輸入腳,內(nèi)部有一個上拉低電阻,當振蕩器起振以后,在 RST 引腳上輸出 2 個機器周期
28、以上的高電平,器件變進入復位狀態(tài)開始,此時 ALE、PSEN、P0、P1、P2、P4 輸出高電平,RST 上輸入返回低電平以后,變退出復位狀態(tài)開始工作。該方案采用的是人工開關復位,在系統(tǒng)運行時,按一下開關,就在 RST 斷出現(xiàn)一段高電平,使器件復位。</p><p> 2.時鐘信號是產(chǎn)生單片機工作的時鐘信號,控制著計算機的工作節(jié)奏,可以通過提高時鐘頻率來提高 CPU 的速度。AT89S52 內(nèi)部有一個可控的反相
29、放大器,引腳 XTAL1、XTAL2 為反相放大器輸入端和輸出端,在 XTAL1、XTAL2 上外接 12MHZ 晶振和 30pF 電容便組成振蕩器。時鐘信號常用于 CPU 定時和計數(shù)。</p><p> 3.鍵盤模塊是是用于控制信號輸入的類型,當按鍵按下時,可以通過單片機編AT89S52單片機數(shù)/模準換器、DAC0832、LM324、運放放大、接口電路、鍵盤輸入程讀取閉合的鍵號,實現(xiàn)相應的信號輸出。</
30、p><p><b> 其步驟主要是</b></p><p> a、判斷是否有鍵按下;</p><p> b、去抖動,延時 20ms 左右;</p><p> c、識別被按下的鍵號;</p><p> d、處理,實現(xiàn)功能。</p><p> 4.D/A 轉(zhuǎn)換也稱為數(shù)模
31、轉(zhuǎn)換,是把數(shù)字量變換成模擬量的線性電路。單片機產(chǎn)生的數(shù)字信號通過 DAC0832 轉(zhuǎn)化成模擬信號,輸出相應的電流值,通過LM324 集成運算放大器可以取出模擬量得電壓值,最后利用示波器獲得輸出的模擬信號的波形;衡量數(shù)模轉(zhuǎn)換的性能指標有分辨率、轉(zhuǎn)換時間、精度、線性度等。LED 顯示器用由若干個發(fā)光二極管按一定的規(guī)律排列而成,是一種能夠?qū)㈦娔苻D(zhuǎn)化為可見光的固態(tài)的半導體器件,它可以直接把電轉(zhuǎn)化為光用于是顯示相關輸出波形的信息,包括信號的類型、
32、頻率和幅值。</p><p><b> 2.3 設計功能</b></p><p> 1.產(chǎn)生方波、鋸齒波、三角波、正弦波四種波形頻率100HZ-1KHZ,按鍵可實現(xiàn)步進100HZ調(diào)節(jié)。</p><p> 2.產(chǎn)生-5V- +5V的幅值的波形信號,幅值調(diào)節(jié)可選按鍵步進0.1V,也可選擇用電位器無極調(diào)節(jié)。</p><p&g
33、t; 3.顯示采用 8 位 LED 顯示器,前兩位顯示幅值;后四位顯示頻率。</p><p> 4.按鍵輸入采用8個按鍵實現(xiàn)輸入,P00-P07。</p><p> 表 2.1按鍵功能及IO借口</p><p> 第3章 主要電路元器件介紹</p><p> 3.1 AT89S52單片機簡介</p><p>
34、 3.1.1 單片機簡介</p><p> AT89S52是一種低功耗、高性能CMOS 8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲器。使用Atmel 公司高密度非易失性存儲器技術制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52在眾多嵌入式控制應用系統(tǒng)中得到廣泛應
35、用。其外形及引腳排列如圖 3-1所示。</p><p> 圖 3-1 51單片機引腳圖</p><p><b> 3.1.2主要性能</b></p><p> ? 與MCS-51單片機產(chǎn)品兼容; </p><p> ? 8K字節(jié)在系統(tǒng)可編程Flash存儲器; </p><p> ? 1
36、000次擦寫周期; </p><p> ? 全靜態(tài)操作:0Hz-33MHz; </p><p> ? 三級加密程序存儲器; </p><p> ? 32個可編程I/O口線; </p><p> ? 三個16位定時器/計數(shù)器; </p><p><b> ? 六個中斷源; </b><
37、/p><p> ? 全雙工UART串行通道; </p><p> ? 低功耗空閑和掉電模式; </p><p> ? 掉電后中斷可喚醒; </p><p> ? 看門狗定時器; </p><p><b> ? 雙數(shù)據(jù)指針; </b></p><p><b>
38、 ? 掉電標識符。</b></p><p> 3.1.3 管腳功能說明</p><p> ? VCC:供電電壓 4~6V 典型值 5V);</p><p><b> ? GND:接地;</b></p><p> ? RST:復位引腳輸入高電平使 89C51 復位,返回低電平退出復位;</p&g
39、t;<p> ? EA/Vpp:運行方式時,EA為程序存儲器選擇信號,EA接地時 CPU 總是從外部存儲器中取指令,EA接高電平時 CPU 可以從內(nèi)部或外部取指令;FLASH 編程方式時,該引腳為編程電源輸入端 Vpp(=5V 或 12V);</p><p> ? PSEN:外部程序存儲器讀選通信號,CPU 從外部儲存器取指令時,從</p><p> PSEN引腳輸出讀
40、選通信號(負脈沖);</p><p> ? ALE/ PROG:運行方式時,ALE 為外部儲存器低8位地址鎖存信號,F(xiàn)LASH 編程方式時,該引腳為負脈沖輸入端;</p><p> ? XTAL1,XTAL2 為內(nèi)部振蕩器電路(反相放大器)的輸入端和輸出端,外接晶振電路;</p><p> ? P0 口:P0 口為一個 8 位漏級開路雙向 I/O 口,每腳可吸
41、收 8TTL 門電流。當 P0 口的管腳第一次寫 1 時,被定義為高阻輸入。P0 能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在 FIASH 編程時,P0 口作為原碼輸入口,當 FIASH進行校驗時,P0 輸出原碼,此時 P0 外部必須被拉高;</p><p> ? P1 口:P1 口是一個內(nèi)部提供上拉電阻的 8 位雙向 I/O 口,P1 口緩沖器能接收輸出4TTL 門電流。P1 口管腳寫入
42、1 后,被內(nèi)部上拉為高,可用作輸入,P1 口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在 FLASH 編程和校驗時,P1 口作為第八位地址接收;</p><p> ? P2 口:P2 口為一個內(nèi)部上拉電阻的 8 位雙向 I/O 口,P2 口緩沖器可接收,輸出 4個 TTL 門電流,當 P2 口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2 口的管腳被外部拉低,將輸出電
43、流。這是由于內(nèi)部上拉的緣故。P2 口當用于外部程序存儲器或 16 位地址外部數(shù)據(jù)存儲器進行存取時,P2 口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2 口輸出其特殊功能寄存器的內(nèi)容。P2 口在 FLASH 編程和校驗時接收高八位地址信號和控制信號;</p><p> ? P3 口:P3 口管腳是 8 個帶內(nèi)部上拉電阻的雙向 I/O 口,可接收輸出 4 個
44、TTL 門電流。當 P3 口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3 口將輸出電流(ILL)這是由于上拉的緣故。P3 口也可作為AT89S52 的一些特殊功能口如</p><p><b> 表 3.1。</b></p><p><b> 表 3.1</b></p><p>
45、 3.2 DAC0832簡介 </p><p> DAC0832是8分辨率的D/A轉(zhuǎn)換集成芯片。與微處理器完全兼容。這個DA芯片以其價格低廉、接口簡單、轉(zhuǎn)換控制容易等優(yōu)點,在單片機應用系統(tǒng)中得到廣泛的應用。D/A轉(zhuǎn)換器由8位輸入鎖存器、8位DAC寄存器、8位D/A轉(zhuǎn)換電路及轉(zhuǎn)換控制電路構(gòu)成。</p><p> 3.2.1 DAC0832的主要特性參數(shù)</p><p
46、> * 分辨率為8位; </p><p> * 電流穩(wěn)定時間1us; </p><p> * 可單緩沖、雙緩沖或直接數(shù)字輸入; </p><p> * 只需在滿量程下調(diào)整其線性度; </p><p> * 單一電源供電(+5V~+15V); </p><p> * 低功耗,20mW。</p>
47、;<p> 3.2.2 DAC0832結(jié)構(gòu)</p><p> * D0~D7:8位數(shù)據(jù)輸入線,TTL電平,有效時間應大于90ns(否則鎖存器的數(shù)據(jù)會出錯); </p><p> * ILE:數(shù)據(jù)鎖存允許控制信號輸入線,高電平有效; </p><p> * CS:片選信號輸入線(選通數(shù)據(jù)鎖存器),低電平有效; </p><p&
48、gt; * WR1:數(shù)據(jù)鎖存器寫選通輸入線,負脈沖(脈寬應大于500ns)有效。由ILE、CS、WR1的邏輯組合產(chǎn)生LE1,當LE1為高電平時,數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)線變換,LE1的負跳變時將輸入數(shù)據(jù)鎖存; </p><p> 圖 3-2 DAC0832的邏輯框圖和引腳排列</p><p> * XFER:數(shù)據(jù)傳輸控制信號輸入線,低電平有效,負脈沖(脈寬應大于500ns)有效; &
49、lt;/p><p> * WR2:DAC寄存器選通輸入線,負脈沖(脈寬應大于500ns)有效。由WR2、XFER的邏輯組合產(chǎn)生LE2,當LE2為高電平時,DAC寄存器的輸出隨寄存器的輸入而變化,LE2的負跳變時將數(shù)據(jù)鎖存器的內(nèi)容打入DAC寄存器并開始D/A轉(zhuǎn)換。 </p><p> * IOUT1:電流輸出端1,其值隨DAC寄存器的內(nèi)容線性變化; </p><p>
50、 * IOUT2:電流輸出端2,其值與IOUT1值之和為一常數(shù); </p><p> * Rfb:反饋信號輸入線,改變Rfb端外接電阻值可調(diào)整轉(zhuǎn)換滿量程精度; </p><p> * Vcc:電源輸入端,Vcc的范圍為+5V~+15V; </p><p> * VREF:基準電壓輸入線,VREF的范圍為-10V~+10V; </p><p
51、> * AGND:模擬信號地 </p><p> * DGND:數(shù)字信號地</p><p> 3.2.3 DAC0832工作方式</p><p> ?、艈尉彌_方式。單緩沖方式是控制輸入寄存器和DAC寄存器同時接收資料,或者只用輸入寄存器而把DAC寄存器接成直通方式。此方式適用只有一路模擬量輸出或幾路模擬量異步輸出的情形。 </p><
52、p> ?、齐p緩沖方式。雙緩沖方式是先使輸入寄存器接收資料,再控制輸入寄存器的輸出資料到DAC寄存器,即分兩次鎖存輸入資料。此方式適用于多個D/A轉(zhuǎn)換同步輸出的情節(jié)。 </p><p> ?、侵蓖ǚ绞?。直通方式是資料不經(jīng)兩級鎖存器鎖存,即 CS*,XFER* ,WR1* ,WR2* 均接地,ILE接高電平。此方式適用于連續(xù)反饋控制線路和不帶微機的控制系統(tǒng),使用時,必須通過另加I/O接口與CPU連接,以匹配CP
53、U與D/A轉(zhuǎn)換。</p><p><b> 3.3 數(shù)碼顯示管</b></p><p> 3.3.1 原理及分類</p><p> 一位 LED 顯示器由 8 個發(fā)光二極管組成,其中 7 個發(fā)光二極管 a-h控制 7 個筆畫段的亮或暗,另一位控制一個小數(shù)點的亮和暗。LED 顯示器有共陰極和共陽極 2 種形式,其結(jié) 圖
54、 3-3 數(shù)碼管結(jié)構(gòu)圖 構(gòu)如圖3-3所示。共陽極顯示器是發(fā)光二極管的陽極連接在一起,當需要顯示某字符時,只需要將共陽極端接高電平,a-h 中某些位接低電平即可。共陰極顯示器是發(fā)光二極管的陰極連接在一起,當需要顯示某字符時,只需要將共陰極端接低電平,a-h 中某些位接高電平即可。</p><p> 3.3.2 顯示器的工作方式</p><p> 顯示器的工作方式
55、分為靜態(tài)顯示方式和動態(tài)顯示方式兩種。</p><p><b> ? 靜態(tài)顯示方式 </b></p><p> 靜態(tài)顯示方式就是顯示器在顯示一個字符時,相應的發(fā)光二極管恒定的導通或截止,例如 a、b、c、、e、f 導通,g 截止時顯示“0”,這種使顯示器顯示字符的字形數(shù)據(jù)常稱為段數(shù)據(jù)。靜態(tài)顯示方式的每一個七段顯示器,需要由一個 8 位并行口控制。優(yōu)點是顯示穩(wěn)定,提高
56、了工作效率,缺點是位數(shù)較多時顯示口隨之增加。</p><p><b> ? 動態(tài)顯示方式</b></p><p> 動態(tài)顯示方式是一位一位的輪流點亮各位顯示器,對于每一位顯示器來說,每隔一段時間點亮一次。顯示器的亮度既與導通電流有關,也與點亮時間和間隔時間的比例有關。調(diào)整電流和時間參數(shù)可以實現(xiàn)亮度較高較穩(wěn)定的顯示,如顯示器的位數(shù)不大于 8 位,則控制顯示器公共極的
57、電位只需要一個 8 位口(位數(shù)據(jù)口),控制字形也需要一個 8 位口(段數(shù)據(jù)口)。</p><p> 3.3.3 數(shù)碼管字型碼</p><p> 要使顯示管顯示不同的數(shù)字或者字符,需要使端口輸出相應的字型碼,顯示器的字形與字碼關系如表 3.1:</p><p> 表 3.2 顯示器字形與字型碼對應關系表</p><p> 第4章 單元電
58、路的硬件設計</p><p> 硬件電路的設計決定一個系統(tǒng)的的功能,是設計的基礎所在,而一般設計的目標:可靠,簡潔,高效,優(yōu)化,好的硬件電路可以給程序的編寫帶來極大的優(yōu)勢,同時使可以很好的提高該信號設計的精度和靈敏度,使整個系統(tǒng)工作協(xié)調(diào)有序。</p><p> 4.1 硬件原理框圖</p><p> 對于該低頻信號發(fā)生器的設計,我們采用了以AT89S52單片機
59、芯片作為核心處理器,編程實現(xiàn)各種不同類型信號的產(chǎn)生,最后通過 DA 轉(zhuǎn)換輸出到示波器。結(jié)構(gòu)簡單,思路僅僅有條,而根據(jù)設計的基本要求,我們又把其細分為不同的功能模塊,各個功能模塊相互聯(lián)系,相互協(xié)調(diào),通過單片機程序構(gòu)成一個統(tǒng)一的整體,其整體電路原理框圖如圖4-1 所示:</p><p> 圖4-1硬件原理框圖</p><p> 4.2 單片機 AT89S52 系統(tǒng)的設計</p>
60、<p> AT89S52 單片機是該信號發(fā)生器的核心,具有 2 個定時器,32 個并行 I/O 口,1 個串行 I/O 口,5 個中斷源。由于本設計功能復雜,數(shù)據(jù)處理精確,數(shù)據(jù)存儲空間也足夠,因為我們采用了片選法選擇芯片,進行芯片的選擇和地址的譯碼。在單片機最小最小系統(tǒng)中,單片機從 P0.0-P0.7 口接收來自按鍵的信號,并通過 P1.0-P1.7 口輸出DAC0832的8位數(shù)據(jù),通過 DA 轉(zhuǎn)換芯片最終由示波器顯示輸
61、出波形;P2給鎖存器74HC573送數(shù)據(jù),P2分時送段信號和位信號。P3.7和P3.6分別控制送的是位還是段選信號。2個74HC573一個用來所存段選,另一個鎖存位選。P3.5、P3.4、P3.3、P3.2分別是方波、鋸齒波、三角波、正弦波的指示燈控制口。</p><p><b> 4.3 時鐘電路</b></p><p> 單片機的時鐘信號通常用兩種電路形式得到
62、:內(nèi)部振蕩和外部振蕩方式。在引腳XTAL1 和 XTAL2 外接晶體振蕩器,構(gòu)成了內(nèi)部振蕩方式。由于單片機內(nèi)部有一個高增益的反相放大器,當外接晶振后,就構(gòu)成了自激振蕩,并產(chǎn)生振動時鐘脈沖。晶振通常選用 6MHZ、12MHZ、24MHZ。本設計中時鐘電路圖如圖4-2,我們選擇了12MHZ和晶振分別接引腳XTAL1和XTAL2,電容 C1,C2 均選擇為 30pF,對振蕩器的頻率有穩(wěn)定作用,當頻率較大時,正弦波、方波、三角波及鋸齒波中每一點
63、的延時時間為幾微妙,故延時時間還要加上指令時間才能獲得較大的頻率波形。</p><p> 圖 4-2 時鐘電路</p><p><b> 4.4復位電路</b></p><p> 復位引腳 RST 通過一個斯密特觸發(fā)器與復位電路相連,斯密特觸發(fā)器用來抑制噪聲,在每個機器周期的 S5P2,斯密特觸發(fā)器的輸出電平由復位電路采樣一次,然后才能得
64、到內(nèi)部復位操作所需要的信號。復位電路通常采用上電自動復位和按鈕復位兩種方式。本設計選擇了按鍵復位如圖 4-3,在系統(tǒng)運行時,按一下按鍵,就在 RST 斷出現(xiàn)一段高電平,使器件復位。此時 ALE、PSEN、P0、圖 4-2時鐘電路圖P1、P2、P4 輸出高電平,RST 上輸入返回低電平以后,變退出復位狀態(tài)開始工作。</p><p> 圖 4-3 復位電路</p><p><b>
65、 4.5數(shù)碼管電路</b></p><p> 本設計選擇了 8 位共陰極數(shù)碼管如圖 4-4,它的 8 個發(fā)光二極管的陰極(二極管正端)連接在一起,通常公共陰極接低電平電平,其它管腳接段驅(qū)動電路輸出端。當某段驅(qū)動電路的輸出端為低電平時,則該端所連接的字段導通并點亮,根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時,要求段驅(qū)動電路能吸收額定的段導通電流,還需根據(jù)外接電源及額定段導通電流來確定相應的限
66、流電阻。</p><p> 圖 4-4 數(shù)碼管電路</p><p> 顯示電路用于顯示信號的波形種類和信號的頻率,并且使系統(tǒng)能根據(jù)按鍵實時顯示先關信息。該系統(tǒng)中添加 兩個74LHC573 鎖存器,用于驅(qū)動數(shù)碼顯示管,使其更易于控制,增加顯示的準確性。利用 P3.6和P3.7 控制數(shù)碼管的段選和位選。</p><p> 其中2位數(shù)碼管顯示幅值,4位數(shù)碼管顯示頻率
67、,幅值是以0.1V步進顯示,頻率是以100HZ步進顯示。</p><p> 4.6 DAC0832模數(shù)轉(zhuǎn)換電路</p><p> 由于單片機產(chǎn)生的是數(shù)字信號,要想得到所需要的波形,就要把數(shù)字信號轉(zhuǎn)換成模擬信號,所以該文選用價格低廉、接口簡單、轉(zhuǎn)換控制容易并具有8位分辨率的數(shù)模轉(zhuǎn)換器DAC0832。DAC0832主要由8位輸入寄存器、8位DAC寄存器、8位D/A轉(zhuǎn)換器以及輸入控制電路四部
68、分組成。但實際上,DAC0832輸出的電量也不是真正能連續(xù)可調(diào),而是以其絕對分辨率為單位增減,是準模擬量的輸出。DAC0832是電流型輸出,在應用時外接運放使之成為電壓型輸出。</p><p> 根據(jù)對DAC0832的數(shù)據(jù)鎖存器和DAC寄存器的不同的控制方式,DAC0832有三種工作方式:直通方式、單緩沖方式和雙緩沖方式。本設計選用直通方式。</p><p> DAC0832的數(shù)據(jù)口和
69、單片機的P2口相連。</p><p> CSDA:片選信號輸入線(選通數(shù)據(jù)鎖存器),低電平有效;</p><p> WR:數(shù)據(jù)鎖存器寫選通輸入線,負脈沖(脈寬應大于500ns)有效。由ILE、CS、WR1的邏輯組合產(chǎn)生LE1,當LE1為高電平時,數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)線變換,LE1的負跳變時將輸入數(shù)據(jù)鎖存;</p><p> 圖 4-5 DAC0832電路&
70、lt;/p><p> 系統(tǒng)硬件設計時考慮到要求波形的頻率和幅值都可調(diào),因此有兩種方案</p><p><b> 方案一:</b></p><p> 用按鍵來輸入相應的波形類型、頻率和幅值,然后,由單片機通過程序?qū)崿F(xiàn)波形類型、頻率和幅值的改變。</p><p><b> 方案二:</b></
71、p><p> 用按鍵選擇波形類型,設置波形的頻率,但是,通過電位器調(diào)節(jié)DAC0832的參考電壓來實現(xiàn)幅值的可調(diào)。</p><p> 經(jīng)過仔細分析發(fā)現(xiàn),方案一實施起來比較困難,因為,在調(diào)節(jié)波形的頻率的時候?qū)媾R波形的點數(shù)問題,例如,一個三角波一個周期30個點,當設置的頻率較低時,需要增加點數(shù),不然波形將會失真嚴重,當頻率較高時,為了滿足頻率的要求,一個周期內(nèi)波形的點數(shù)又不能太多。同時,波形
72、要實現(xiàn)幅值可調(diào)也要考慮點數(shù)問題,當點數(shù)太多時,如果只有0.1V在這么小的幅值里以DAC0832的分辨率根本分不出30個點。</p><p> 綜上所述,實現(xiàn)波形的幅值和頻率可調(diào)都將同時影響波形一個周期內(nèi)的點數(shù),這是一個有些復雜的技術問題,相對來說,方案一通過按鍵實現(xiàn)這一功能有些復雜,不一定能實現(xiàn),因此,硬件電路里綜合考慮了兩種方案。即系統(tǒng)電路既可以以方案一工作又能以方案二工作即波形頻率可通過案件調(diào)節(jié),波形幅值即
73、可通過按鍵步進0.1V調(diào)節(jié)還能通過調(diào)節(jié)電位器調(diào)節(jié)DAC0832參考電壓實現(xiàn)更多幅值的選擇增加了系統(tǒng)的功能。選擇方案只需通過一個跳線帽的位置來實現(xiàn)。</p><p> 4.7 LM324運放電路和低通濾波電路</p><p> 圖 4-6 LM324運放電路和低通濾波電路</p><p> LM324的5管腳與DAC0832的(IOUT2)12管腳相連,LM32
74、4的6管腳與DAC0832的(IOUT1)11管腳相連,LM324的7管腳與DAC0832的REF(9)管腳相連.</p><p> 第一級運算放大器的作用是將DAC0832輸出的電流信號轉(zhuǎn)化為電壓信號V1,第二級運算放大器的作用是將V1通過反向放大電路-(R2/R1)倍。</p><p> 題目要求輸出的電壓在0-5V可調(diào),而V1的電壓大約是5V,所以R1選擇5K的電阻,R2選擇10
75、K的電位器,這樣最大的輸出電壓為5*(10/2)=10,最小電壓為0,可以實現(xiàn)題目要求的0-5V。</p><p> 在第二個運算放大器的輸出端連了一個低通濾波器。如果不加低通濾波器,也能夠生成波形,但是產(chǎn)生的信號中毛刺很多,加一個低通濾波器不僅起到的濾波的作用,還起到了平滑的作用。低通濾波器的截止頻率F=1/(2*pi*R3*C6),這里我們選擇R3 為100歐姆電阻,C6為104電容,截止頻率F=16KHZ
76、。實驗表明,此時的輸出波形效果不錯。</p><p> 4.8 按鍵和波形指示LED電路</p><p> 圖 4-7 波形指示LED和按鍵電路</p><p> 本系統(tǒng)有4中波形產(chǎn)生分別是:方波、鋸齒波、三角波和正弦波。每種波形對應相應的LED燈,當選擇方波模式時單片機的P3.5輸出高電平DS1就亮了,顯示出,現(xiàn)在的波形模式是方波,同理DS2-鋸齒波,DS3
77、三角波,DS4正弦波。</p><p> 由于需要實現(xiàn)波形、幅值和頻率的可調(diào),所以,通過8個按鍵實現(xiàn)輸入。4個按鍵是波形模式選擇,4個按鍵分別是幅值加、減,頻率加、減。其對應關系見下表。</p><p> 表4.1 按鍵功能及I/O情況</p><p> 第5章 系統(tǒng)軟件設計</p><p> 本程序主要分為5大塊,主程序、按鍵處理程
78、序、數(shù)碼管輸出程序、查表和計算定時程序、定時器0的中斷服務程序。</p><p><b> 控制要求:</b></p><p> 設計制作一個多功能信號發(fā)生器,可以產(chǎn)生、方波、鋸齒波和三角波。設計原理圖,其中單片機通過軟件對鍵盤輸入的頻率數(shù)值進行處理,處理結(jié)果送與D/A轉(zhuǎn)換部分實現(xiàn)數(shù)/模轉(zhuǎn)換,輸出的電流再經(jīng)過電流/電壓轉(zhuǎn)換環(huán)節(jié),進而形成模擬電壓波形,最后經(jīng)過過載保
79、護電路輸出。同時在數(shù)碼管內(nèi)顯示該頻率數(shù)值。波形的切換可以通過按鍵直接實現(xiàn)。</p><p><b> 基本要求:</b></p><p> 1.具有產(chǎn)生方波、鋸齒波、三角波三種周期性波形的功能。</p><p> 2.輸出波形的頻率范圍為100Hz~1kHz;頻率步進間隔≤100Hz。</p><p> 3.輸出
80、波形幅度范圍0~5V,可按步進0.1V(峰-峰值)調(diào)整。</p><p> 4.具有顯示輸出波形的類型、周期和幅度的功能。</p><p> 擴展功能:本多功能信號發(fā)生器還能夠產(chǎn)生頻率可通過按鍵調(diào)節(jié) 的正弦波,其頻率是100HZ-1KHZ。幅值調(diào)節(jié)可按鍵步進調(diào)節(jié)也可通過電位器無極調(diào)節(jié)。</p><p> 5.1軟件開發(fā)環(huán)境簡介</p><p
81、> 5.1.1 Keil uVision4簡介</p><p> Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。運行
82、Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。如果你使用C語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調(diào)試工具也會令你事半功倍。</p><p><b> 優(yōu)點:</b></p><p> 1.Keil C51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,
83、容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。 </p><p> 2.與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。 Keil C51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows界面</p><p> 5.1.2 Proteus7.10 簡介</p><p&g
84、t; Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件(該軟件中國總代理為廣州風標電子技術有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機愛好者、從事單片機教學的教師、致力于單片機開發(fā)應用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單
85、片機與外圍電路協(xié)同仿真,一鍵切換到PCB設計,真正實現(xiàn)了從概念到產(chǎn)品的完整設計。是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。
86、</p><p><b> 功能特點:</b></p><p> Proteus軟件具有其它EDA工具軟件(例:multisim)的功能。這些功能是: </p><p><b> 1.原理布圖 </b></p><p> 2.PCB自動或人工布線 </p><p>
87、 3.SPICE電路仿真 </p><p><b> 革命性的特點 </b></p><p> 1.互動的電路仿真 </p><p> 用戶甚至可以實時采用諸如RAM,ROM,鍵盤,馬達,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。 </p><p> 2.仿真處理器及其外圍電路 </p&g
88、t;<p> 可以仿真51系列、AVR、PIC、ARM、等常用主流單片機。還可以直接在基于原理圖的虛擬原型上編程,再配合顯示及輸出,能看到運行后輸入輸出的效果。配合系統(tǒng)配置的虛擬邏輯分析儀、示波器等,Proteus建立了完備的電子設計開發(fā)環(huán)境。</p><p> 5.1.3 Keil 與Proteus 聯(lián)合調(diào)試仿真</p><p> 把Keil 與Proteus 聯(lián)合調(diào)
89、試將大大加快開發(fā)進度。用Proteus把硬件電路搭載出來,用keil寫c程序,把寫好要調(diào)試的程序下載到Proteus仿真的單片機里,然后,更改程序調(diào)試參數(shù)。在Proteus里邊有示波器,可以用示波器查看程序的運行結(jié)果,不斷調(diào)試,摘到達到滿意的效果時在進行實物調(diào)試,這樣不僅加快了調(diào)試的進程,而且使單片機的rom的擦寫次數(shù)明顯減少,增加了單片機的使用壽命。</p><p><b> 5.2主程序</
90、b></p><p> 圖 5-1主程序 流程圖</p><p> 主程序首先將需要初始化的部分進行初始化,然后負責循環(huán)執(zhí)行按鍵掃描,數(shù)碼管顯示、指示LED顯示和DA數(shù)據(jù)輸出。</p><p> 這些過程都是以模塊化的程序?qū)崿F(xiàn)的,程序中有,按鍵掃描程序、數(shù)碼管掃描顯示程序、LED掃描顯示程序、定時器定時計算程序、查表程序和DA數(shù)據(jù)輸出程序,通過調(diào)用這些程
91、序完成波形的產(chǎn)生,幅值和頻率的改變。</p><p><b> 5.3按鍵處理程序</b></p><p> 程序位于函數(shù)keyscan()中,keyscan()函數(shù)位于主循環(huán)中,每循環(huán)一次調(diào)用一次,檢測鍵盤是否按下,如果按下去延時抖動,然后檢測到底是哪個按鍵按下,針對不同的按鍵按下采取不同的動作。</p><p> 因為按鍵采用的是掃描
92、法,故需要注意消抖的處理,在此用軟件法去抖動即可。軟件法去抖動的實質(zhì)是軟件延時,即檢測到某一鍵狀態(tài)變化后延時一段時間,再檢測該按鍵的狀態(tài)是否保持著,如是則作為按鍵處理,否則,視為抖動,不予理睬。去抖動的延時時間一般參考資料多描述為20ms左右,在實際應用中應大于20ms。否則,會導致按一次多處理,影響程序正常執(zhí)行。</p><p> 圖5-2 按鍵掃描及處理程序流程圖</p><p>
93、 表 5.1各按鍵功能及I/O情況</p><p> 按鍵是以上表中的中的定義方式工作的,不同的按鍵按下就會有不同的參數(shù),程序根據(jù)這些參數(shù)來執(zhí)行,從而產(chǎn)生不同的波形,不同的頻率,在數(shù)碼管上顯示不同的信息。</p><p> 5.4 數(shù)碼管輸出程序分析</p><p> 圖 5-3 數(shù)碼管顯示流程圖</p><p> 數(shù)碼管輸出程序
94、是送段選碼和位選碼的程序,位于主程序中。輪流點亮6個數(shù)碼管,每大約5ms變換一次,由于輪換的次數(shù)太快,由于視覺暫留效應,看上去是6個數(shù)碼管看上去好像一直點亮。</p><p> 5.5 各種波形產(chǎn)生思路</p><p> 5.5.1 方波產(chǎn)生思路</p><p> 方波的產(chǎn)生比較簡單,只需要根據(jù)按鍵輸入的幅值和頻率計算出相應的DA數(shù)據(jù)送給數(shù)據(jù)就可以產(chǎn)生相應的波
95、形。</p><p> 具體來說,例如產(chǎn)生500Hz的2.5V的波形。</p><p> 首先,要計算出定時器的定時頻率,由于,方波只有兩種狀態(tài),峰值和0值。峰值時由按鍵設定的,其中峰值占一個周期的一半,即要定時產(chǎn)生1000Hz的定時器頻率,每進一次中斷函數(shù)就把DA的數(shù)據(jù)更新為上次值的取反。讓DA數(shù)據(jù)在峰值和0之間依次切換即可。</p><p> 5.5.2
96、鋸齒波產(chǎn)生思路</p><p> 首先,根據(jù)按鍵設定的波形頻率,選擇一個周期內(nèi)合適的點數(shù),根據(jù)點數(shù)和峰值計算相鄰2個點的幅度的步進值,根據(jù)點數(shù)和頻率設定相鄰2點的時間值,計算出定時器的初值,然后,定時輸出刷新DA的數(shù)據(jù)就可以產(chǎn)生一定頻率和幅值的波形。</p><p> 5.5.3 三角波產(chǎn)生思路</p><p> 首先,根據(jù)按鍵設定的波形頻率,選擇一個周期內(nèi)合
97、適的點數(shù),根據(jù)點數(shù)和峰值計算相鄰2個點的幅度的步進值,根據(jù)點數(shù)和頻率設定相鄰2點的時間值,計算出定時器的初值,然后,設置一個變量每進一次定時中斷DA數(shù)據(jù)就加幅值步進,當?shù)扔诳傸c數(shù)的一半時,每進一次定時中斷就把DA數(shù)據(jù)減幅值步進直到DA數(shù)據(jù)為0,計數(shù)變量清零。每進一次定時中斷輸出刷新DA的數(shù)據(jù)就可以產(chǎn)生一定頻率和幅值的三角波。</p><p> 5.5.4 正弦波產(chǎn)生思路</p><p>
98、 首先,寫一個表格,然后根據(jù)按鍵設定的波形頻率,選擇一個周期內(nèi)合適的點數(shù),根據(jù)點數(shù)和峰值計算相鄰2個點的幅度的步進值,根據(jù)點數(shù)和頻率設定相鄰2點的時間值,計算出定時器的初值,然后,設置一個變量每進一次定時中斷DA數(shù)據(jù)就加幅值步進,當?shù)扔诳傸c數(shù)的一半時,每進一次定時中斷就查表把DA數(shù)據(jù)減幅值步進直到DA數(shù)據(jù)為0,計數(shù)變量清零。每進一次定時中斷查表輸出刷新DA的數(shù)據(jù)就可以產(chǎn)生一定頻率和幅值的三角波。</p><p>
99、; 5.6 仿真的各種波形效果</p><p> 圖 5-4 各種波形效果圖</p><p> 第6章 課程設計體會</p><p> 經(jīng)過將近兩周的單片機課程設計,終于完成了我們的多功能信號發(fā)生器的設計,基本達到設計要求,從心底里來說,還是很高興的,畢竟這次設計把實物都做了出來。</p><p> 在本次設計的過程中,我發(fā)現(xiàn)很多的
100、問題,雖然以前還做過這樣的設計但這次設計真的讓我長進了很多。對于單片機設計,其硬件電路是比較簡單的,主要是解決程序設計的問題,而程序設計是一個很靈活的東西,它反映了你解決問題的邏輯思維和創(chuàng)新能力,它才是一個設計的靈魂所在。因此在整個設計過程中大部分時間是用在程序上面的。很多子程序是可以借鑒書本上的,但怎樣銜接各個子程序才是關鍵的問題所在,這需要對單片機的結(jié)構(gòu)很熟悉。因此可以說單片機的設計是軟件和硬件的結(jié)合,二者是密不可分的。</p
101、><p> 要設計一個成功的電路,必須要有耐心,要有堅持的毅力。在整個電路的設計過程中,花費時間最多的是各個單元電路的連接及電路的細節(jié)設計上,如在多種方案的選擇中,我們仔細比較分析其原理以及可行的原因。這就要求我們對硬件系統(tǒng)中各組件部分有充分透徹的理解和研究,并能對之靈活應用。完成這次設計后,我在書本理論知識的基礎上又有了更深層次的理解。</p><p> 同時在本次設計的過程中,我還學會
102、了高效率的查閱資料、運用工具書、利用網(wǎng)絡查找資料。我發(fā)現(xiàn),在我們所使用的書籍上有一些知識在實際應用中其實并不是十分理想,各種參數(shù)都需要自己去調(diào)整。偶而還會遇到錯誤的資料現(xiàn)象,這就要求我們應更加注重實踐環(huán)節(jié)。</p><p> 最后還要在此感謝指導老師們和我的同學,他們在整個過程中都給予了我充分的幫助與支持。</p><p><b> 參考文獻</b></p&
103、gt;<p> [1] 譚浩強.C 程序設計. 北京:清華大學出版社,2002</p><p> [2] 王為青,程國剛. 單片機 Keil Cx51 應用開發(fā)技術.北京:人民郵電大學出版社,2007</p><p> [3]道客巴巴 基于單片機的信號發(fā)生器設計[2010-04-0]http://www.doc88.com/p-79529167301.html</
104、p><p> [4]張友德,趙志英,涂時亮. 單片機微型機原理、應用和實驗. 上海:復旦大學出版社,2006.10</p><p> [5]丁向榮,謝俊,王彩申. 單片機 C 語言編程與實踐. 北京:電子工業(yè)出版社,2009.8</p><p><b> 致 謝</b></p><p> 在單片機課程設計過程中,我得
105、到指導老師和同學的無私幫助。我們想向曾經(jīng)給予我?guī)椭椭С值娜吮硎局孕牡母兄x!感謝我們的指導老師xx,本課程設計論文是在xx老師的關懷和指導下完成的。她嚴肅的科學態(tài)度,嚴謹?shù)闹螌W精神,精益求精的工作作風,深深地感染和激勵著我們,在此謹向xx老師致以誠摯的謝意和崇高的敬意。我們還要感謝在一起愉快的度過課程設計論文小組的同學們,正是由于你們的幫助和支持,我們才能克服一個一個的困難和疑惑,直至本文的順利完成。</p><p&
106、gt; 同時,我們要感謝的各位老師,正是由于他們的傳道、授業(yè)、解惑,讓我們學到了專業(yè)知識,并從他們身上學到了如何求知治學、如何為人處事。我們愿在未來的學習和研究過程中,以更加豐厚的成果來答謝曾經(jīng)關心、幫助和支持過我們的所有老師、同學、和朋友,學無止境。明天,將是我們終身學習另一天的開始! </p><p> 最后,再次對關心、幫助我們的老師和同學表示衷心地感謝!</p><p><
107、;b> 附1:源程序代碼</b></p><p><b> 1.主程序:</b></p><p> #include"h.h"</p><p> void main()</p><p><b> {</b></p><p>
108、timer_init();</p><p><b> while(1)</b></p><p><b> {</b></p><p> keysccan();</p><p> display();</p><p> if(buttonflag==1)//有按鍵動
109、作再執(zhí)行</p><p><b> {</b></p><p> switch(boxing)</p><p><b> {</b></p><p> case 0:led=0x20;//方波指示燈</p><p> th=tab2[f-1];//周期設定&
110、lt;/p><p> tl=tab3[f-1];//周期設定</p><p><b> break;</b></p><p> case 1:led=0x10;//鋸齒波指示燈</p><p> th=255;//周期設定</p><p> tl=tab5[f-1];//</p>
111、<p> dj=tab4[fz-1]/tab6[f-1];//步進計算</p><p><b> break;</b></p><p> case 2:led=0x08;//三角波指示燈</p><p> th=255;//周期設定</p><p> tl=tab7[f-1];//</p&g
112、t;<p> ds=tab4[fz-1]/tab8[f-1];//步進計算</p><p><b> break;</b></p><p> case 3:led=0x04;</p><p> th=255;//周期設定</p><p> tl=tab11[f-1];//</p>&
113、lt;p><b> break; </b></p><p><b> }</b></p><p><b> }</b></p><p> P3=led;//指示波形</p><p><b> }</b></p><
114、p><b> }</b></p><p><b> 2.頭文件:</b></p><p> #include<reg52.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設計--基于51單片機的信號發(fā)生器的設計
- 單片機課程設計報告(信號發(fā)生器)
- 單片機信號發(fā)生器課程設計論文
- 多功能信號發(fā)生器課程設計
- 多功能信號發(fā)生器-課程設計
- 單片機多功能函數(shù)信號發(fā)生器畢業(yè)設計
- 簡易信號發(fā)生器單片機課程設計報告
- 基于51單片機函數(shù)信號發(fā)生器設計
- 多功能信號發(fā)生器課程設計報告
- 課程設計---基于單片機的信號發(fā)生器的設計
- 課程設計-基于單片機的函數(shù)信號發(fā)生器設計
- 基于單片機的函數(shù)信號發(fā)生器課程設計
- 單片機原理及應用課程設計--信號發(fā)生器
- 課程設計—基于單片機的方波信號發(fā)生器
- 課程設計--基于單片機的函數(shù)信號發(fā)生器
- 單片機課程設計(波形發(fā)生器)
- 單片機課程設計---波形發(fā)生器
- 單片機課程設計—波形發(fā)生器
- 課程設計--單片機波形發(fā)生器
- 單片機課程設計-波形發(fā)生器
評論
0/150
提交評論