![論文--信號(hào)發(fā)生器_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/30/0ae4599c-385d-4895-b6ef-63e87b84db96/0ae4599c-385d-4895-b6ef-63e87b84db961.gif)
![論文--信號(hào)發(fā)生器_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/30/0ae4599c-385d-4895-b6ef-63e87b84db96/0ae4599c-385d-4895-b6ef-63e87b84db962.gif)
![論文--信號(hào)發(fā)生器_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/30/0ae4599c-385d-4895-b6ef-63e87b84db96/0ae4599c-385d-4895-b6ef-63e87b84db963.gif)
![論文--信號(hào)發(fā)生器_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/30/0ae4599c-385d-4895-b6ef-63e87b84db96/0ae4599c-385d-4895-b6ef-63e87b84db964.gif)
![論文--信號(hào)發(fā)生器_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/30/0ae4599c-385d-4895-b6ef-63e87b84db96/0ae4599c-385d-4895-b6ef-63e87b84db965.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、單片機(jī)系統(tǒng)實(shí)訓(xùn) (論文)說明書題 目: 信號(hào)發(fā)生器 院 (系): 信息與通信學(xué)院 專 業(yè): 電子信息工程 學(xué)生姓名: 蘇勇堅(jiān) 學(xué) 號(hào): 1101120424 指導(dǎo)教師: 符強(qiáng) 2012 年 12 月 31 日1摘 要本文以STC89C52單片機(jī)為核心設(shè)計(jì)了一個(gè)低頻函數(shù)信號(hào)發(fā)生器。信號(hào)發(fā)生器采用數(shù)字波形合成技術(shù),通過硬件電路和軟件程序相結(jié)合,DAC0832可輸出自定義波形,如正弦波、方波、三角波、三角波,波形的頻率和幅度在一定范圍內(nèi)可任意改變。波形和頻率的改變通過軟件控制,幅度的改變通過硬件與軟件實(shí)現(xiàn)。介紹了波形的生成原理、硬件電路和軟件部分的設(shè)計(jì)原理。本系統(tǒng)可以產(chǎn)生最高頻率20HZ的波形。該信
2、號(hào)發(fā)生器具有體積小、價(jià)格低、性能穩(wěn)定、功能齊全的優(yōu)點(diǎn)。關(guān)鍵詞: 低頻信號(hào)發(fā)生器;單片機(jī)STC89S52;D /A轉(zhuǎn)換;AbstractThis paper STC89C52 single-chip microcomputer as the core design a low frequency function signal generator. Signal generator with digital waveform synthesis technology, through the hardware circuit and software program, combining can
3、 output custom waveform, such as sine, square wave, triangle wave, triangle wave, wave frequency and amplitude in a certain range can be arbitrary change. Waveform and frequency change through the software control, amplitude change through the hardware and software realization. Introduces the wavefo
4、rm generation principle, hardware circuit and software part of the design principle. This system can produce the highest frequency and hz waveform. The signal generator has small volume, low price, stable performance, fully functional advantages.Key words: Low frequency signal generator; SCM STC89S5
5、2; D/A conversion;2目 錄緒論錯(cuò)誤!未定義書簽。1 系統(tǒng)硬件介紹11.1 硬件主控芯片概述及功能介紹11.1.1主控芯片STC89S5211.1.2 STC89S52特性11.1.3 STC89S52參數(shù)11.2 硬件電路21.2.1STC89S52主控部分21.2.2LCD1602顯示部分31.2.3DAC0832模-數(shù)轉(zhuǎn)換部分42 系統(tǒng)軟件設(shè)計(jì)52.1細(xì)分程序的設(shè)計(jì)52.1.1主函數(shù)流程圖62.1.2主函數(shù)程序62.1.3按鍵程序流程圖82.1.4按鍵程序82.1.5顯示程序流程圖102.1.6顯示程序113 硬件制作與調(diào)試113.1 系統(tǒng)PCB板的設(shè)計(jì)113.2 系統(tǒng)硬
6、件調(diào)試123.3 軟件及聯(lián)機(jī)調(diào)試123.4 主控程序調(diào)試124 實(shí)訓(xùn)心得體會(huì)13謝 辭14參考文獻(xiàn)15附 錄1623緒論隨著電子的快速發(fā)展,人們所需要的測(cè)量?jī)x器也越來越多,精度也要求越來越高,而波形發(fā)生器就是這些重要儀器中的一種,一下設(shè)計(jì)便是初步對(duì)波形發(fā)生器的了解所設(shè)計(jì)的,其目的是對(duì)波發(fā)生器有一定的了解。1 系統(tǒng)硬件介紹1.1硬件主控芯片概述及功能介紹STC89S52是基于一個(gè)低功耗、高性能CMOS8位微控制器,并帶有8kB的嵌入的高速Flash 存儲(chǔ)器。128 位寬度的存儲(chǔ)器接口和獨(dú)特的加速結(jié)構(gòu)使8 位代碼能夠在最大時(shí)鐘速率下運(yùn)行。 1.1.1主控芯片STC89S52STC89S52是一種低
7、功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時(shí)器,內(nèi)置4KB EEPROM,MAX810復(fù)位電路,2個(gè)16 位 定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口。另外 STC89C52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)
8、工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。最高運(yùn)作頻率35MHz,6T/12T可選。1.1.2 STC89S52特性8K字節(jié)程序存儲(chǔ)空間,512字節(jié)數(shù)據(jù)存儲(chǔ)空間,內(nèi)帶2K字節(jié)EEPROM存儲(chǔ)空間,可直接使用串口下載。1.1.3 STC89S52參數(shù)1. 增強(qiáng)型8051 單片機(jī),6 時(shí)鐘/機(jī)器周期和12 時(shí)鐘/機(jī)器周期可以任意 選擇,指令代碼完全兼容傳統(tǒng)8051.1。2. 工作電壓:5.5V3.3V(5V 單片機(jī))/3.8V2.0V(3V 單片機(jī))。3. 工作頻率范圍:040MHz,相當(dāng)于普通8051 的
9、080MHz,實(shí)際工作 頻率可達(dá)48MHz。4. 用戶應(yīng)用程序空間為8K 字節(jié)。5. 片上集成512 字節(jié)RAM。6. 通用I/O 口(32 個(gè)),復(fù)位后為:P0/P1/P2/P3 是準(zhǔn)雙向口/弱上拉, P0 口是漏極開路輸出,作為總線擴(kuò)展用時(shí),不用加上拉電阻,作為 I/O 口用時(shí),需加上拉電阻。7. ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無需專用編程器,無 需專用仿真器,可通過串口(RxD/P3.0,TxD/P3.1)直接下載用戶程 序,數(shù)秒即可完成一片。8. 具有EEPROM 功能。9. 具有看門狗功能。10. 共3 個(gè)16 位定時(shí)器/計(jì)數(shù)器。即定時(shí)器T0、T1、T2。
10、11. 外部中斷4 路,下降沿中斷或低電平觸發(fā)電路,Power Down 模式可 由外部中斷低電平觸發(fā)中斷方式喚醒。12. 通用異步串行口(UART),還可用定時(shí)器軟件實(shí)現(xiàn)多個(gè)UART。13. 工作溫度范圍:-40+85(工業(yè)級(jí))/075(商業(yè)級(jí))。14. PDIP 封裝。1.2 硬件電路1.2.1 STC89S52主控部分以STC89S52為主控組成的單片機(jī)最小系統(tǒng),主要有幾部分組成,如圖1.2.1.1所示,由S0、C3、R1組成的單片機(jī)復(fù)位電路;由C1、C2、Y1組成的單片機(jī)頻率輸入部分,其中C1、C2為諧振電容,20PF30PF均可,Y1為12MHZ晶振;J6組成單片
11、機(jī)下載口,J1為單片機(jī)P0口的10K上拉電阻,其中P0口為液晶LCD1602的數(shù)據(jù)接口;P1為DAC0832數(shù)據(jù)接口;P32、P33為按鍵以及LCD1602控制接口。 圖1.2.1.1 單片機(jī)主控部分1.2.2LCD1602顯示部分 顯示部分主要由LCD1602來顯示,如圖1.2.2.1,1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊。它由若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒芎芎玫仫@示圖形,但用它來顯示字符與數(shù)字完全足
12、夠了,而且操作簡(jiǎn)單方便,PCB布線也簡(jiǎn)單,有較好的顯示效果,所以這里用它來做顯示部分。圖1.2.2.1 顯示部分1.2.3DAC0832模-數(shù)轉(zhuǎn)換部分由于單片機(jī)產(chǎn)生的是數(shù)字信號(hào),要想得到所需要的波形,就要把數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),所以該文選用價(jià)格低廉、接口簡(jiǎn)單、轉(zhuǎn)換控制容易并具有8位分辨率的數(shù)模轉(zhuǎn)換器DAC0832。DAC0832主要由8位輸入寄存器、8位DAC寄存器、8位D/A轉(zhuǎn)換器以及輸入控制電路四部分組成。但實(shí)際上,DAC0832輸出的電量也不是真正能連續(xù)可調(diào),而是以其絕對(duì)分辨率為單位增減,是準(zhǔn)模擬量的輸出。DAC0832是電流型輸出,在應(yīng)用時(shí)外接運(yùn)放使之成為電壓型輸出。根據(jù)對(duì)DAC08
13、32的數(shù)據(jù)鎖存器和DAC寄存器的不同的控制方式,DAC0832有三種工作方式:直通方式、單緩沖方式和雙緩沖方式。本設(shè)計(jì)選用直通方式。DAC0832的數(shù)據(jù)口和單片機(jī)的P1口相連。CSDA:片選信號(hào)輸入線(選通數(shù)據(jù)鎖存器),低電平有效;WR:數(shù)據(jù)鎖存器寫選通輸入線,負(fù)脈沖(脈寬應(yīng)大于500ns)有效。由ILE、CS、WR1的邏輯組合產(chǎn)生LE1,當(dāng)LE1為高電平時(shí),數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)線變換,LE1的負(fù)跳變時(shí)將輸入數(shù)據(jù)鎖存。模-數(shù)轉(zhuǎn)換部分如圖1.2.3.1所示。圖1.2.2.1 模-數(shù)轉(zhuǎn)換部分LM324的3管腳與DAC0832的(IOUT2)12管腳相連,LM324的2管腳與DAC0832的(I
14、OUT1)11管腳相連,LM324的1管腳與DAC0832的REF(9)管腳相連.第一級(jí)運(yùn)算放大器的作用是將DAC0832輸出的電流信號(hào)轉(zhuǎn)化為電壓信號(hào)V1,第二級(jí)運(yùn)算放大器的作用是將V1通過反向放大電路-(R4/R3)倍。本次試驗(yàn)設(shè)計(jì)的輸出電壓在0-5V可調(diào),而V1的電壓大約是5V,所以R1選擇10K的電阻,R2選擇20K的電位器,這樣最大的輸出電壓為2*(10/2)=10,最小電壓為0。在第二個(gè)運(yùn)算放大器的輸出端連了一個(gè)低通濾波器。如果不加低通濾波器,也能夠生成波形,但是產(chǎn)生的信號(hào)中毛刺很多,加一個(gè)低通濾波器不僅起到的濾波的作用,還起到了平滑的作用。低通濾波器的截止頻率F=1/(2*pi*R
15、3*C6),這里我們選擇R5 為100歐姆電阻,C4為104電容,截止頻率F=16KHZ。實(shí)驗(yàn)表明,此時(shí)的輸出波形效果相對(duì)較好。2 系統(tǒng)軟件設(shè)計(jì)本系統(tǒng)的主要硬件是DAC0832模-數(shù)轉(zhuǎn)換電路,以及LCD1602顯示電路。軟件部分主函數(shù)中主要是掃描按鍵以及顯示,利用定時(shí)器中斷對(duì)DAC0832進(jìn)行送數(shù)據(jù)讓其進(jìn)行模-數(shù)轉(zhuǎn)換,外部中斷0與1主要是用來對(duì)頻率、波形選擇的調(diào)節(jié)。2.1 細(xì)分程序的設(shè)計(jì)2.1.1主函數(shù)流程圖 2.1.2主函數(shù)程序/* * 名稱 : main() * 功能 : 主函數(shù) * 輸入 : 無 * 輸出 : 無 */void main() lcd_dis(); disgeshibai(
16、 ); TMOD=0X01; IT0=1; IT1=1; EA=1; EX0=1; EX1=1; ET0=1; IP=0X05; TR0=1;while(1) ;2.1.3按鍵程序流程圖 2.1.4按鍵程序/* * 名稱 : void int0() interrupt 0 * 功能 : 鍵盤掃描函數(shù) * 輸入 : 無 * 輸出 : 無 */void it1() interrupt 2if(key3=0)delay(10); if(key3=0) cho=cho+1; if(cho>=3) cho=0; boxingxshi(); while(key3=0); /等待 void it0()
17、 interrupt 0/以下為K2鍵判斷 * if(key2=0) delay(10); if(key2=0) z=z+1; if(z>=65535) z=3; disgeshibai( ); while(key2=0);/等待 TIME0_H=(0xffff-z)/256; TIME0_L=(0xffff-z)%256;/定時(shí)器中斷處理程序。 void intt0() interrupt 1TH0=TIME0_H;TL0=TIME0_L; switch(cho) case 0: P1=sinb; /調(diào)SIN正弦波碼表 b+;if(b=128)b=0;break; /正弦波 case
18、1: P1=d; if(m)d=d+4;if(d>=256)m=0; if(!m)d=d-4;if(d<=0)m=1;break; /三角波 case 2: e+;if(e<=v) P1=0xff; else P1=0x00; if(e=128)e=0;break; / 方波 2.1.5顯示程序流程圖 3 硬件制作與調(diào)試3.1 系統(tǒng)PCB板的設(shè)計(jì)PCB即印刷電路板,是電子電路的承載體。在現(xiàn)代電子產(chǎn)品中,幾乎都要使用PCB。PCB板的設(shè)計(jì)是電路設(shè)計(jì)的最后一個(gè)環(huán)節(jié),也是對(duì)原理電路的再設(shè)計(jì)。因此PCB板的設(shè)計(jì)是理論設(shè)計(jì)到實(shí)際應(yīng)用一個(gè)十分重要的內(nèi)容。印制電路板(PCB)是電子產(chǎn)品中電
19、路元件和器件的支撐件它提供電路元件和器件之間的電氣連接。PCB設(shè)計(jì)的好壞對(duì)抗干擾能力影響很大因此,在進(jìn)行PCB設(shè)計(jì)時(shí)必須遵守印制電路板設(shè)計(jì)原則和抗干擾措施的一般原則,并應(yīng)符合抗干擾設(shè)計(jì)的要求。本次設(shè)計(jì)采用Altium公司PROTEL系列設(shè)計(jì)完成SCH到PCB的設(shè)計(jì),并且手工完成電路焊接以及整機(jī)的裝配。3.2 系統(tǒng)硬件調(diào)試本系統(tǒng)的硬件調(diào)試分為以下階段進(jìn)行調(diào)試: (1)邏輯錯(cuò)誤調(diào)試樣機(jī)硬件的邏輯錯(cuò)誤是由于設(shè)計(jì)錯(cuò)誤和加工過程中的工藝性錯(cuò)誤所造成的。這類錯(cuò)誤包括:錯(cuò)線、開路、短路等幾種,其中短路是最常見的故障。(2)器件調(diào)試元器件失效的原因有兩個(gè)方面:一是器件本身已損壞或性能不符合要求;二是由于組裝錯(cuò)
20、誤造成的元器件失效,如電解電容、二極管的極性錯(cuò)誤,集成塊安裝方向錯(cuò)誤等。(3)可靠性調(diào)試引起系統(tǒng)不可靠的因素很多,如金屬化孔、接插件接觸不良會(huì)造成系統(tǒng)時(shí)好時(shí)壞;內(nèi)部和外部的干擾、電源紋波系數(shù)過大、器件負(fù)載過大等造成邏輯電平不穩(wěn)定;另外,走線和布局的不合理等也會(huì)引起系統(tǒng)可靠性差。3.3 軟件及聯(lián)機(jī)調(diào)試 Keil 4是美國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過匯編語言后再使用C來開發(fā),體會(huì)更加深刻。Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Window
21、s界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢(shì)。Keil 4件是一個(gè)基于32位Windows環(huán)境的應(yīng)用程序,支持C語言和匯編語言編程,其6.0以上的版本將編譯和仿真軟件統(tǒng)一為Vision(通常稱為V2)。Keil提供包括C編譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案, 3.4 主控程序調(diào)試應(yīng)用Keil進(jìn)行軟件仿真開發(fā)的主要步驟為:編寫源程序并保存建立工程并添加源文件設(shè)置工程編譯/匯編、連接,產(chǎn)生目標(biāo)文件程序調(diào)試。成功編譯/
22、匯編、連接后,選擇菜單Debug-Start/Stop Debug Session(或按Ctrl+F5鍵)進(jìn)入程序調(diào)試狀態(tài),Keil提供對(duì)程序的模擬調(diào)試功能,內(nèi)建一個(gè)功能強(qiáng)大的仿真CPU以模擬執(zhí)行程序。Keil能以單步執(zhí)行(按F11或選擇Debug-Step)、過程單步執(zhí)行(按F10或選擇Debug-Step Over)、全速執(zhí)行等多種運(yùn)行方式進(jìn)行程序調(diào)試。如果發(fā)現(xiàn)程序有錯(cuò),可采用在線匯編功能對(duì)程序進(jìn)行在線修改(Debug-Inline Assambly),不必執(zhí)行先退出調(diào)試環(huán)境、修改源程序、對(duì)工程重新進(jìn)行編譯/匯編和連接、然后再次進(jìn)入調(diào)試狀態(tài)的步驟。對(duì)于一些必須滿足一定條件(如按鍵被按下等)
23、才能被執(zhí)行的、難以用單步執(zhí)行方式進(jìn)行調(diào)試的程序行,可采用斷點(diǎn)設(shè)置的方法處理(Debug-Insert/Remove Breakpoint或Debug-Breakpoints等)。在模擬調(diào)試程序后,還須通過編程器將.hex目標(biāo)文件燒寫入單片機(jī)中才能觀察目標(biāo)樣機(jī)真實(shí)的運(yùn)行狀況。4 實(shí)訓(xùn)心得體會(huì)通過這次單片機(jī)實(shí)訓(xùn),我感覺收獲良多,對(duì)單片機(jī)的了解、編程和protel繪制電路圖等各個(gè)方面的能力有了進(jìn)一步的提高,把課本上的知識(shí)應(yīng)用到實(shí)踐,整個(gè)過程受益匪淺。實(shí)訓(xùn)開始在硬件系統(tǒng)的設(shè)計(jì)時(shí),初步設(shè)計(jì)包括顯示部分,按鍵部分,主控部分,模數(shù)轉(zhuǎn)換部分,因?yàn)樵诖髮5臅r(shí)候有過做板的經(jīng)驗(yàn),所以整體來說硬件沒有什么大的調(diào)試,就
24、是在轉(zhuǎn)印過程中,墨太少,則轉(zhuǎn)印到銅板上就顯得很少了,后來用油性筆補(bǔ)上就可以了。但是在載程序進(jìn)去調(diào)試的時(shí)候還是發(fā)現(xiàn)有些線路出現(xiàn)了問題,下載程序的時(shí)候按按鍵時(shí)LCD字幕顯示亂碼,后來經(jīng)查發(fā)現(xiàn)是因?yàn)橛袀€(gè)單片機(jī)的管腳短接焊在一起了,重新焊接后故障排除了。在軟件系統(tǒng)的設(shè)計(jì)上,確實(shí)花了很大的功夫,首先考慮到利用外部中斷0與1對(duì)頻率與幅度進(jìn)行調(diào)節(jié),在優(yōu)先等級(jí)上這兩個(gè)中斷都應(yīng)該較高,所以這里選擇定時(shí)器1中斷來進(jìn)行時(shí)間軸上的建立,開始調(diào)程序的時(shí)候沒注意到定時(shí)器1和外部中斷的優(yōu)先級(jí)關(guān)系,導(dǎo)致了P33按鍵無法使用,最后經(jīng)過同學(xué)的幫忙才把這問題解決;其次當(dāng)其中定時(shí)器進(jìn)行DAC0832模數(shù)轉(zhuǎn)換時(shí),按鍵進(jìn)行波形轉(zhuǎn)換以及頻
25、率與幅度調(diào)節(jié)時(shí),顯示字符很久才顯示出一個(gè)字符出來,后來通過仔細(xì)思考以及同學(xué)的提點(diǎn),想到了是由定時(shí)器中斷引起的,每過一段時(shí)間中斷一次,打亂了顯示的讀數(shù)據(jù)的時(shí)序,所以才會(huì)很久才顯示出來,后來每次按鍵讓其顯示字符時(shí),在顯示之前先把定時(shí)器中斷關(guān)掉,然后顯示完所需的字符后再打開定時(shí)器中斷,經(jīng)過實(shí)踐驗(yàn)證,我的想法是正確的,存在的問題也引刃而解;再次,顯示頻率時(shí)算法出現(xiàn)了問題,浮點(diǎn)數(shù)進(jìn)行乘除時(shí),那個(gè)數(shù)也必須是浮點(diǎn)數(shù)才能得出所需的值,調(diào)節(jié)頻率時(shí),頻率顯示錯(cuò)亂了,第一次顯示頻率正確,但是調(diào)節(jié)時(shí)頻率顯示就有誤了,我是調(diào)節(jié)定時(shí)器初值來進(jìn)行頻率調(diào)節(jié)的,后來經(jīng)過同學(xué)的提醒,其實(shí)可以反過來想,也就是說對(duì)頻率進(jìn)行加減調(diào)節(jié),
26、然后通過轉(zhuǎn)換函數(shù)把頻率轉(zhuǎn)換成定時(shí)器初值,然后再去執(zhí)行,這樣無論調(diào)節(jié)度還是精確度都有了一定的提高;最后是輸出的頻率很低,只有20多HZ,經(jīng)過仔細(xì)排查原因,問題出來幅度調(diào)節(jié)那里,因?yàn)槊看谓o數(shù)據(jù)之前都要進(jìn)行一次乘除運(yùn)算,增加了CPU的負(fù)擔(dān)同時(shí)大大延遲了CPU送出數(shù)據(jù)的時(shí)間,所以頻率就會(huì)很低,后來想到其實(shí)可以通過控制電子開關(guān)去選擇運(yùn)放的反饋電阻進(jìn)行幅度調(diào)節(jié),這樣大大提高了CPU的利用率,但是硬件方面卻要復(fù)雜一點(diǎn),但是后來由于時(shí)間問題,也沒時(shí)間再去修改硬件了。這次實(shí)訓(xùn)自己所設(shè)計(jì)的的不完美,由于時(shí)間的關(guān)系,另外一個(gè)關(guān)系就是自己對(duì)單片機(jī)方面的知識(shí)也欠缺,導(dǎo)致很多功能還未完全弄清楚,尤其是頻率轉(zhuǎn)換方面還沒弄好
27、,如果時(shí)間可以充裕,相信自己可以慢慢弄清楚。謝 辭學(xué)期期末的實(shí)訓(xùn)就快結(jié)束了,在實(shí)訓(xùn)的過程中,雖然很忙,有苦也有甜,但是對(duì)于我來說,能從中學(xué)到東西是這次實(shí)訓(xùn)最大的成功。首先,感謝信息與通信學(xué)院為我們電子信息工程學(xué)生提供了一次實(shí)訓(xùn)學(xué)習(xí)的平臺(tái)。通過這次實(shí)訓(xùn),我對(duì)電子設(shè)計(jì)的認(rèn)識(shí)有了進(jìn)一步的了解,同時(shí)也認(rèn)識(shí)到自己在硬件和軟件方面的缺陷。主要表現(xiàn)在對(duì)很多原理知識(shí)掌握的不是很清楚,對(duì)硬件設(shè)計(jì)的正確方法掌握不多,造成了很多的重復(fù)性工作,特別是在系統(tǒng)設(shè)計(jì)的過程中,從方案的對(duì)比到方案確定、芯片元件的選擇、程序代碼的編寫、最后的仿真等等,都存在一定程度上的不足。在硬件方面,學(xué)院提供了很好的實(shí)訓(xùn)平臺(tái),并且為學(xué)生免費(fèi)提
28、供大量需使用的電子元件,為能夠成功完成這次實(shí)訓(xùn)創(chuàng)造了很好的條件。還要感謝老師,為學(xué)生提供幫助,同時(shí)也要感謝實(shí)訓(xùn)期間為我提供幫助的同學(xué),正是因?yàn)樵谖矣行┏绦蛘{(diào)試方面不懂的時(shí)候,他們能不吝賜教,讓我獲益良多,使我順利的完成了每次實(shí)驗(yàn)課程以及這次的實(shí)訓(xùn)。 參考文獻(xiàn)1 郭天祥.新概念51單片機(jī)C語言教程 入門、提高、開發(fā)、拓展全.北京.電子工業(yè)出版社 2009.12 楊栓科.模擬電路技術(shù)基礎(chǔ).西安交通大學(xué)電子學(xué)教研組 編.高等教育出版社 2003.13 張志良 主編 :?jiǎn)纹瑱C(jī)原理及控制技術(shù)(第2版) 北京:機(jī)械工業(yè)出版社,20054 張毅剛 主編 :?jiǎn)纹瑱C(jī)原理及應(yīng)用.北
29、京:高等教育出版社,20065 黃仁欣 主編 :單片機(jī)原理及應(yīng)用技術(shù).北京:清華大學(xué)出版社,20076 馮育長(zhǎng) 主編 :?jiǎn)纹瑱C(jī)系統(tǒng)設(shè)計(jì)與實(shí)例分析.西安:西安電子科技大學(xué)出版社,20077 梅開鄉(xiāng) 主編 :數(shù)字邏輯電路(第2版)北京:電子工業(yè)出版社,20058 吉 雷 主編 :Protel99從入門到精通西安:西安電子科技大學(xué)出版社,2004 附錄 圖1 PCB圖圖2仿真圖圖3正弦波實(shí)驗(yàn)圖圖4三角波實(shí)驗(yàn)圖圖5 LCD顯示方波圖5 LCD顯示三角波總程序:/*主程序:#include<at89x51.h>#include<sinx.h>#include&
30、lt;0832.h>#include<intrins.h>void main() lcd_dis(); disgeshibai( ); TMOD=0X01; IT0=1; /設(shè)置中斷觸發(fā)方式,下降沿 IT1=1; EA=1; EX0=1;/開外部中斷0 EX1=1;/開外部中斷1 ET0=1; IP=0X05; /按鍵中斷級(jí)別高 TR0=1;while(1) ;/*O832.H處理頭文件程序#ifndef _0832_h_#define _0832_h_TIME0_H=0xff,TIME0_L=0xd9;unsigned char cho=0; sbit key3=P33;
31、sbit key2=P32;sbit RW=P26; /LCD控制sbit E=P27; /LCD使能信號(hào)sbit RS=P25; /LCD數(shù)據(jù)/命令選擇信號(hào)#define uchar unsigned char#define uint unsigned int#define uint unsigned intuchar code tab_L1312="sin_wave","tri_wave","squ_wave"uchar code tab_L212="Fre:00000Hz"uchar code table=&
32、quot;0123456789"j;n;y=0;b=0,d=0,e=0;uint z=3; v=64;m=1;fre; /*函數(shù)聲明區(qū)*void lcd_dis(); /lcd顯示函數(shù)void lcd_init(); /LCD初始化函數(shù)void write_com(uchar); /寫命令函數(shù)void write_data(uchar); /寫數(shù)據(jù)函數(shù)void delay(uchar); /延時(shí)函數(shù)void disgeshibai(void);void delayxh(void);void xinhaofasheng(void);/*void disgeshibai(void) wr
33、ite_com(0x80+0x49); write_data(table1000000/(z+2)*128)/100%10);/計(jì)算千位頻率 write_com(0x80+0x48); write_data(table1000000/(z+2)*128)/1000); /計(jì)算百位頻率 write_com(0x80+0x4A); write_data(table1000000/(z+2)*128)/10%10); /計(jì)算十位頻率 write_com(0x80+0x4B); write_data(table1000000/(z+2)*128)%10); /計(jì)算個(gè)位頻率 /*lcd顯示函數(shù)開始*vo
34、id lcd_dis()uchar n; lcd_init();write_com(1);write_com(0x80+4); /設(shè)置光標(biāo)位置for(n=0;n<9;n+) /顯示第二排字符write_data(tab_L10n);delay(2);write_com(0x80+0x43); / 設(shè)置光標(biāo)位置for(n=0;n<12;n+) /顯示第一排字符write_data(tab_L2n);delay(2); /*LCD初始化函數(shù)開始*void lcd_init()RW=0; E=0;/ 關(guān)閉液晶顯示write_com(0x38); /設(shè)置顯示模式:16X2,5X7,8位數(shù)據(jù)
35、接口write_com(0x0c); /開顯示,不顯示光標(biāo),光標(biāo)不閃爍write_com(0x06); /地址指針及光標(biāo)加一,且光標(biāo)加一整屏顯示不移動(dòng)write_com(0x80); /設(shè)置光標(biāo)指針/*寫命令函數(shù)開始*void write_com(uchar com)RS=0; /低電平寫命令P0=com; /寫入delay(10); /延時(shí)約1msE=1; /LCD使能端置高電平delay(10); /延時(shí)約1msE=0; /LCD使能端拉低電平/*寫數(shù)據(jù)函數(shù)開始*void write_data(uchar dat)RS=1; /低電平寫數(shù)據(jù)P0=dat; /寫入命令delay(10); /
36、延時(shí)約1msE=1; /LCD使能端置高電平delay(10); /延時(shí)約1msE=0; /LCD使能端拉低電平/*延時(shí)函數(shù)開始*void delay(uchar k)uint i,j;for(i=k;i>0;i-)for(j=100;j>0;j-);void boxingxshi() switch(cho) /顯示不同波形 case 0:write_com(0x80+4); /設(shè)置光標(biāo)位置 for(n=0;n<3;n+) /正弦波顯示 write_data(tab_L10n);break; case 1:write_com(0x80+4); /設(shè)置光標(biāo)位置 for(n=0;
37、n<3;n+) /三角波顯示 write_data(tab_L11n);break; default:write_com(0x80+4); /設(shè)置光標(biāo)位置 for(n=0;n<3;n+) /方波顯示 write_data(tab_L12n);break; /按鍵中斷處理程序。void it1() interrupt 2if(key3=0)delay(10); if(key3=0) cho=cho+1; if(cho>=3) cho=0; boxingxshi(); while(key3=0); /等待 void it0() interrupt 0 if(key2=0) del
38、ay(10); if(key2=0) z=z+1; if(z>=65535) z=10; disgeshibai( ); while(key2=0);/等待 TIME0_H=(0xffff-z)/256; TIME0_L=(0xffff-z)%256;/定時(shí)器中斷處理程序。 void intt0() interrupt 1TH0=TIME0_H;TL0=TIME0_L; switch(cho) case 0: P1=sinb; /調(diào)SIN正弦波碼表 b+;if(b=128)b=0;break; /正弦波 case 1: P1=d; if(m)d=d+4;if(d>=256)m=0;
39、 if(!m)d=d-4;if(d<=0)m=1;break; /三角波 case 2: e+;if(e<=v) P1=0xff; else P1=0x00; if(e=128)e=0;break; / 方波 /*SIN.H正弦函數(shù)碼表/正弦表;每半個(gè)周期256個(gè)取值,最大限度保證波形不失真。/各個(gè)值通過MATLAB算出,并四設(shè)五如取整。具體程序如下#ifndef _sinx_h_#define _sinx_h_unsigned char code sin128= 0x7F,0x85,0x8B,0x92,0x98,0x9E,0xA4,0xAA,0xB0,0xB6,0xBB,0xC1
40、,0xC6,0xCB,0xD0,0xD5,0xD9,0xDD,0xE2,0xE5,0xE9,0xEC,0xEF,0xF2,0xF5,0xF7,0xF9,0xFB,0xFC,0xFD,0xFE,0xFE,0xFE,0xFE,0xFE,0xFD,0xFC,0xFB,0xF9,0xF7,0xF5,0xF2,0xEF,0xEC,0xE9,0xE5,0xE2,0xDD,0xD9,0xD5,0xD0,0xCB,0xC6,0xC1,0xBB,0xB6,0xB0,0xAA,0xA4,0x9E,0x98,0x92,0x8B,0x85,0x7F,0x79,0x73,0x6C,0x66,0x60,0x5A,0x54,0x4E,0x48,0x43,0x3D,0x38,0x33,0x2E,0x29,0x25,0x21,0x1
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二手機(jī)器轉(zhuǎn)讓簡(jiǎn)單合同范本年
- 施工工程運(yùn)輸合同范本
- 購(gòu)買二手房買賣合同范本
- 2025cc直播平臺(tái)主播轉(zhuǎn)公會(huì)合同
- 二手商品房買賣合同
- 水泥銷售合同范本
- 石料買賣合同
- 2025續(xù)訂勞動(dòng)合同通知書模板
- 2025建筑企業(yè)流動(dòng)資金借款合同范本版
- 廣告發(fā)布投放合同
- 會(huì)議系統(tǒng)設(shè)備維護(hù)方案
- 少兒口才培訓(xùn)主持課件
- 新《學(xué)前教育法》知識(shí)講座課件
- 公文寫作題庫(500道)
- 學(xué)校教學(xué)常規(guī)管理學(xué)習(xí)活動(dòng)課件
- 集成墻板購(gòu)銷合同范本(2024版)
- 骨髓穿刺課件
- 2024中國(guó)保險(xiǎn)發(fā)展報(bào)告-中南大風(fēng)險(xiǎn)管理研究中心.燕道數(shù)科
- 元素的用途完整版本
- 建筑設(shè)計(jì)工程設(shè)計(jì)方案
- 供熱行業(yè)環(huán)境保護(hù)管理辦法
評(píng)論
0/150
提交評(píng)論