數(shù)字波形發(fā)生器畢業(yè)設(shè)計.doc_第1頁
數(shù)字波形發(fā)生器畢業(yè)設(shè)計.doc_第2頁
數(shù)字波形發(fā)生器畢業(yè)設(shè)計.doc_第3頁
數(shù)字波形發(fā)生器畢業(yè)設(shè)計.doc_第4頁
數(shù)字波形發(fā)生器畢業(yè)設(shè)計.doc_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)字波形發(fā)生器的設(shè)計摘 要 波形發(fā)生器是一種常用的信號源,廣泛地應(yīng)用于電子電路、自動控制系統(tǒng)和教學(xué)實驗等領(lǐng)域。本函數(shù)發(fā)生器采用89c52單片機(jī)作為控制核心,外圍采用數(shù)字/模擬轉(zhuǎn)換電路(dac0832)、運放電路(lm324)、按鍵和液晶顯示電路等。電路采用89c52單片機(jī)與一片dac0832數(shù)模轉(zhuǎn)換器組成低頻信號發(fā)生器。通過按鍵控制可分別控制選擇輸出的幅值和頻率,同時用1602顯示器顯示幅值和頻率.本系統(tǒng)設(shè)計簡單、性能優(yōu)良,具有一定的實用性。關(guān)鍵詞 at89c52 daco832 波形發(fā)生器1 序言波形發(fā)生器是一種常用的信號源,廣泛的應(yīng)用于電子電路、自動控制系統(tǒng)和教學(xué)實驗等領(lǐng)域,是現(xiàn)代測試領(lǐng)域內(nèi)應(yīng)用最為廣泛的通用儀器之一。在研制、生產(chǎn)、測試和維修各種電子元件、部件以及整機(jī)設(shè)備時,都需要有信號源。由它產(chǎn)生不同頻率不同波形的電壓、電流信號并加到被測器件或設(shè)備上,用其他儀器觀察。測量被測儀器的輸出響應(yīng),以分析確定它們的性能參數(shù)。信號發(fā)生器是電子測量領(lǐng)域中最基本、應(yīng)用最為廣泛的一類電子儀器。它可以產(chǎn)生多種波形信號,如鋸齒波、三角波、梯形波等,因而廣泛應(yīng)用于通信、雷達(dá)、導(dǎo)航、宇航等領(lǐng)域3。自單片機(jī)廣泛應(yīng)用以來,各種器件日益智能化,而智能的實現(xiàn)需要各種信號??梢灶A(yù)見,波形發(fā)生器已成為重要的產(chǎn)品,發(fā)展前景十分看好。市場上精度高的波形發(fā)生器十分昂貴,結(jié)構(gòu)復(fù)雜,如何降低成本普及產(chǎn)品是目前波形發(fā)生器的重要課題。2. 系統(tǒng)總體設(shè)計思路概述2.1數(shù)字波形發(fā)生器的方案論證總體方案設(shè)計方案一:利用d/a轉(zhuǎn)換器輸出的模擬量與輸入數(shù)字量成正比關(guān)系這一特點,將d/a轉(zhuǎn)換器作為微機(jī)輸出接口,cpu通過程序向d/a轉(zhuǎn)換器輸出隨時間呈現(xiàn)不同變化規(guī)律的數(shù)字量,則d/a轉(zhuǎn)換器就可輸出各種各樣的模擬量,如方波、三角波、鋸齒波、正弦波等。此方案可滿足題目的要求,產(chǎn)生波形程序控制,并通過按鍵選擇幅值電壓和頻率,并在lcd1602液晶屏中顯示相應(yīng)幅值電壓和選擇的頻率,按鍵選擇頻率、幅值、波形。優(yōu)點是結(jié)構(gòu)簡單,滿足此次設(shè)計條件,,實際發(fā)現(xiàn)此方案的優(yōu)點是電路原實現(xiàn)比較容易,缺點是程序較長,單片機(jī)速度低不能持續(xù)調(diào)節(jié)頻率和幅值。 方案二:由晶體管,運放ic通用器件組成,用8038函數(shù)發(fā)生器件功能少產(chǎn)生波形。缺點是精度不高,頻率上限較低,缺點是頻率和占空比不能獨立調(diào)節(jié),相互影響1。 方案三:運用模擬電路輸出波形,通過單片機(jī)控制輸出,但實際上設(shè)計條件要求很高,結(jié)構(gòu)復(fù)雜,不具可行性1。 綜上,方案一較符合實際條件,具有可操作性。2.2功能與基本原理設(shè)計要求:產(chǎn)生數(shù)字可控信號,要求波形、頻率和幅值可調(diào),范圍盡可能大。根據(jù)題目要求,經(jīng)過仔細(xì)考慮各種因素,制定整體設(shè)計方案:本次設(shè)計波形的產(chǎn)生采用單片機(jī)實現(xiàn),在89c52的p2口接4個按鈕,通過軟件編程來選擇幅值、電壓和頻率,一個總的控制按鍵,一個按鍵控制幅值電壓,一個控制頻率,一個控制波形的選擇。在lcd1602上實時顯示頻率和幅值。波形的產(chǎn)生是通過stc89c52執(zhí)行波形發(fā)生程序,產(chǎn)生波形的數(shù)字編碼,向數(shù)模轉(zhuǎn)換芯片dac0832輸入波形的數(shù)字編碼,從而在dac0832輸出端得到相應(yīng)的電流波形,再通過電路得到電壓波形。本系統(tǒng)的總體框圖如圖所示:按鍵控制單片機(jī)lm324運放電路輸出dac0832轉(zhuǎn)換1602顯示 圖2-13 硬件系統(tǒng)設(shè)計總的硬件電路由單片機(jī)、波形轉(zhuǎn)換(d/a)電路、顯示接口電路、鍵盤接口電路等部分組成。下面對各部分分別介紹。3.1.stc89c52單片機(jī)模塊stc89c52是一個低電壓,高性能cmos 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的flash只讀程序存儲器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲器(ram),器件采用atmel公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)mcs-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和flash存儲單元,功能強(qiáng)大的stc89c52單片機(jī)可為您提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場合。stc89c52有40個引腳,32個外部雙向輸入/輸出(i/o)端口,同時內(nèi)含2個外中斷口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口線,stc89c52可以按照常規(guī)方法進(jìn)行編程,但不可以在線編程(s系列的才支持在線編程)。其將通用的微處理器和flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的flash存儲器可有效地降低開發(fā)成本2。 模塊功能:通過運行程序產(chǎn)生符合要求的數(shù)字編碼。本次設(shè)計采用的是內(nèi)部時鐘方式,晶振的振蕩頻率12mhz,機(jī)器周期為1us。 實際可用到部分包擴(kuò)時鐘電路、復(fù)位電路如圖3.1.1所示采用40個引腳,雙列直插式封裝,用hmos工藝制造,其外部引腳排列如圖3.1.1所示。圖3.1.1.89c52單片機(jī)引腳圖應(yīng)用引腳功能如下:p0口與dac0832的d0-d7數(shù)據(jù)輸入端相連,p1口接入液晶顯示器lcd1602。p2口用來連接切換按鈕vcc接5v電源正端,gnd接電源地端。3.2.波形轉(zhuǎn)換(d/a)電路模塊模塊功能:單片機(jī)向0832發(fā)送輸出波形的數(shù)字編碼,產(chǎn)生不同的輸出。將波形樣值的編碼轉(zhuǎn)換成模擬值,完成波形輸出。單片機(jī)向0832 發(fā)送數(shù)字編碼,產(chǎn)生不同的輸出。dac0832完成8為電流d/a轉(zhuǎn)換,向 lm324輸入電流信號,運算放大器lm324將電流信號轉(zhuǎn)換成電壓信號,輸出電壓模擬信號。兩個15k電阻并聯(lián)的阻值與7.5k的電阻阻值相等,電壓輸出值與dac0832電流輸出值相等。即v(out)=i(out).波形轉(zhuǎn)換(d/a)電路圖如下3.2.1所示:3.2.1波形轉(zhuǎn)換(d/a)電路圖3.2.1.dac0832芯片dac0832完成8為電流d/a轉(zhuǎn)換,輸出為電流模擬信號,0x7f,0x90,0xa1 0xb2,0xc3,0xd4,0xe5分別對應(yīng)d/a輸出的0v,2v,4v,6v,8v,10v,12v3。dac0832芯片應(yīng)用引腳功能如下di0di7: 數(shù)據(jù)輸入線,接入89c52p1口。iout1、iout2 : 電流輸出引腳,將轉(zhuǎn)換的信號接入lm324。/wr1:輸入寄存器的寫選通信號。ile : 數(shù)據(jù)允許鎖存信號,高電平有效;/xfer: 數(shù)據(jù)傳送信號,低電平有效。/wr2為dac寄存器的寫選通信號。vref : 基準(zhǔn)電源輸入引腳 。rfb : 反饋信號輸入引腳,反饋電阻在芯片內(nèi)部。vcc: 電源輸入引腳。agnd: 模擬信號地dgnd: 數(shù)字地。3.2.2. lm324芯片lm324為四運放集成電路,可用正電源330v,或正負(fù)雙電源1.5v15v工作4。lm324引腳排列見圖3.2.1.1。3.2.1.1lm324引腳3.3.顯示接口電路模塊由lcd1602液晶顯示器和三個按鈕組成。當(dāng)?shù)谝粋€按鍵按下一次后,程序開始掃描,再由第二個按鍵控制顯示幅值,第三個按鍵控制顯示頻率。有單片機(jī)的p0口和p2口將數(shù)字信號發(fā)送到lcd1602。lcd1602是專門用于顯示字母、數(shù)字、符號等點陣式lcd,它的外接電壓也是5v掃描利用軟件程序?qū)崿F(xiàn),其與單片機(jī)的連接如圖3.3.1所示2。 模塊功能:驅(qū)動lcd1602液晶顯示頻率,顯示幅值 。3.3.1.lcd1602引腳1602引腳功能:lcd1602采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口如下所示。vs:電源地vdd:電源正極。vl:液晶顯示偏壓。rs:數(shù)據(jù)/命令選擇。r/w:讀/寫選擇。e:使能信號。d0:數(shù)據(jù)。1.3. 按鍵模塊本設(shè)計中有四個按鍵,分別為總控制按鍵、頻率轉(zhuǎn)換按鍵、幅值轉(zhuǎn)換按鍵、波形選擇按鍵。其與單片機(jī)的連接如圖所示。4.系統(tǒng)軟件設(shè)計4.1.顯示子程序頻率顯示:建立頻率要顯示的數(shù)組6行,復(fù)位后1602顯示數(shù)組第0行,keytemp=0,key1按一次, keytemp+1,1602顯示數(shù)組第keytemp+1行幅值顯示:建立幅值7行,key2按一次,keytemp2+1,1602顯示keytemp2*2(+-012v)。流程圖如下:開始開始n判斷key2是否按下判斷key1是否按下n yy1602顯示程序keytemp2+1keytemp+11602顯示程序 顯示第0行1602顯示程序1602顯示程序顯示0v顯示第keytemp+1行顯示keytemp2*2行4.2.波形選擇子程序建立方波、三角波、正弦波的數(shù)組:初始p=0,p=1、2、3;key3按下一次,p+1,p=1,選擇方波,p=2,選擇三角波,p=3,選擇正弦波流程圖如下:開始判斷key4是否按下 yp+1p=1p=3p=2輸出正弦波輸出三角波輸出方波4.3.頻率調(diào)節(jié)子程序 key1按一次, keytemp+1 ,keytemp對應(yīng)不同freq值,延時freq次查表輸出一個值,得到不同頻率的波形流程圖如下:開始初始化程序key1鍵是否按下 ykeytemp+1輸出不同頻率值波形延時freq次對應(yīng)不同freq值4.4.幅度調(diào)節(jié)子程序每個波形建立7個數(shù)組,對應(yīng)各種不同幅值的波形,key2按一次, keytemp2+1,每個keytemp2值對應(yīng)一個特定幅值波形,keytemp2=0、1、2、3、4、5、6。流程圖如下:開始key2鍵是否按下 ykeytemp2+1主程序輸出特定幅值波形4.5. 總控制子程序key3鍵按下,開啟主程序,執(zhí)行計數(shù)器計數(shù),開啟液晶lm1602程序流程圖如下:開始yy開啟頻率調(diào)節(jié)程序開啟幅度調(diào)節(jié)程序key3鍵是否按下y開啟計數(shù)器每125ms溢出4.6.主程序控制子程序,使軟件能產(chǎn)生不同型號的波形。流程圖如下:開始初始化程序頻率、幅值顯示有變化key3鍵是否按下y掃描幅度調(diào)節(jié)子程序掃描頻率調(diào)節(jié)子程序無變化執(zhí)行下一步6.調(diào)試與測試結(jié)果 6.1. 硬件調(diào)試整個硬件調(diào)試過程基本順利,由于采用了分單元模塊制作,各單元電路工作穩(wěn)定,給調(diào)試工作帶來很大的方便。各單元調(diào)試通過以后,進(jìn)行整機(jī)調(diào)試,調(diào)試結(jié)果顯示,整個系統(tǒng)能夠正常工作。6.2. 軟件調(diào)試由于對51系列單片機(jī)編程不是很熟悉,在對波形頻率上沒能成功,沒有得到預(yù)期的結(jié)果。 調(diào)試結(jié)果6.3液晶顯示結(jié)果圖方波波形圖頻率:f=1000/freq,freq可設(shè)置,freq與頻率無線性關(guān)系,f不能持續(xù)可調(diào)。附錄 實驗結(jié)果與實際要求對比1. 多波形中其他波形不好控制,無法得到頻率幅度持續(xù)變化2. 具有輸出頻率設(shè)定與顯示功能,顯示位數(shù)為9位;輸出波形的占空比應(yīng)在47%53%之間;輸出幅度為012v,分級可調(diào),且能顯示波形,幅度,幅度與頻率顯示交替進(jìn)行;這三點要求均基本達(dá)到。3設(shè)計和調(diào)試遇到的主要問題設(shè)計時的主要問題是軟件方案上,涉及到51單片機(jī)編程,對單片機(jī)不熟悉,所以編程時很迷茫,這一大模塊設(shè)計不是很好。參考文獻(xiàn)11 戚作鈞.無線電技術(shù)基礎(chǔ)m.第一版北京:人民教育出版社,1959:165-18312余錫存 曹國華.單片機(jī)原理及接口技術(shù)m.陜西:西安電子科技大學(xué)出版社,200013雷麗文 等.微機(jī)原理與接口技術(shù)m.北京:電子工業(yè)出版社,199714 戚作鈞.無線電技術(shù)基礎(chǔ)m.第一版北京:人民教育出版社,1959:165-18315馮建華,趙亮.單片機(jī)應(yīng)用系統(tǒng)設(shè)計與產(chǎn)品開發(fā)m.北京:人民郵電出版社,20046電子制作.北京:電子制作編輯部, 2006,8:67-68.7 鄭阿奇計算機(jī)網(wǎng)絡(luò)原理與應(yīng)用m第一版北京:電子工業(yè)出版社,2003:34-457donald a. neaman. electronic circuit analysis and design,second edition m.北京清華大學(xué)出版社,2000致 謝我所設(shè)計的數(shù)字波形發(fā)生器的設(shè)計在指導(dǎo)老師幫助下成功結(jié)束了,指導(dǎo)老師楊俊鋒老師給了我悉心的指導(dǎo),也給我的設(shè)計提出了寶貴的意見和建議。本設(shè)計中包括了單片機(jī)、電路理論等多領(lǐng)域知識。回顧次設(shè)計的深入學(xué)習(xí)與設(shè)計過程,我在專業(yè)知識和專業(yè)技能方面都取得了很大的進(jìn)步,這次設(shè)計使我熟悉了分析問題、處理問題的方法,為以后工作、學(xué)習(xí)都打下了堅實的基礎(chǔ)。設(shè)計過程中得到了導(dǎo)教師和同學(xué)的大量幫助,感謝我的指導(dǎo)教師和同學(xué)們對我的關(guān)心、指導(dǎo)和教誨。the design of waveform generatorshikangliang directed by yangjunfengabstract waveform generator is a kind of common source, widely used in electronic circuit, automatic control system and teaching experiment, etc. this function generator used stc89c52 single chip microcomputer as control core and periphery the digital/simulation of transform circuit (dac0832), amplifier (tl082), keys and lcd display circuit, etc. stc89c52 circuit adopts microcontroller and a dac0832 digital-to-analog converters low frequency signal generator of. through the button control which can control the selection of output amplitude and frequency, at the same time use the lcd1602 display shows amplitude and frequency. the system is simple in design, good performance, and has practical valuekeywords at89c52 dac0832 waveform generator程序設(shè)計#include#include#includelcd_1602_h.h#define uchar unsigned char#define uint unsigned int#define dadata p1/1.顯示程序uchar code a67=1000.00, /頻率顯示 0100.00, 0010.00,0001.00,0000.10,0000.05 ;uchar code squaretab72= /輸出的幅度數(shù)組0x7f,0x7f, /0v 0x90,0x6e, /正負(fù)2v0xa1,0x5d, /正負(fù)4v0xb2,0x4c, /正負(fù)6v0xc3,0x3b, /正負(fù)8v0xd4,0x2a, /正負(fù)10v0xe5,0x19;/正負(fù)12vuchar code squaretab182= /輸出的幅度數(shù)組0x7f,0x7f, /0v0x7f,0x7f, /0v0x7f,0x7f, /0v0x7f,0x7f, /0v0x7f,0x7f, /0v0x7f,0x7f, /0v0x7f,0x7f, /0v0x7f,0x7f, /0v0x7f,0x7f; /0v uchar code squaretab282= /輸出的幅度數(shù)組0x90,0x90, /正負(fù)2v0x90,0x90, /正負(fù)2v0x90,0x90, /正負(fù)2v0x90,0x90, /正負(fù)2v0x6e,0x6e, /正負(fù)2v0x6e,0x6e, /正負(fù)2v0x6e,0x6e, /正負(fù)2v0x6e,0x6e /正負(fù)2vuchar code squaretab382= /輸出的幅度數(shù)組0xa1,0xa1, /正負(fù)4v0xa1,0xa1, /正負(fù)4v0xa1,0xa1, /正負(fù)4v0xa1,0xa1, /正負(fù)4v0x5d,0x5d, /正負(fù)4v0x5d,0x5d, /正負(fù)4v0x5d,0x5d, /正負(fù)4v0x5d,0x5d;uchar code squaretab482= /輸出的幅度數(shù)組0xb2,0xb2, /正負(fù)6v0xb2,0xb2, /正負(fù)6v0xb2,0xb2, /正負(fù)6v0xb2,0xb2, /正負(fù)6v0x4c,0x4c, /正負(fù)6v0x4c,0x4c, /正負(fù)6v0x4c,0x4c, /正負(fù)6v0x4c,0x4c, /正負(fù)6v0x4c,0x4c;uchar code squaretab582= /輸出的幅度數(shù)組0xc3,0x3b, /正負(fù)8v0xc3,0x3b, /正負(fù)8v0xc3,0x3b, /正負(fù)8v0xc3,0x3b, /正負(fù)8v0xc3,0x3b, /正負(fù)8v0xc3,0x3b, /正負(fù)8v0xc3,0x3b, /正負(fù)8v0xc3,0x3b;uchar code squaretab682= /輸出的幅度數(shù)組0xd4,0x2a, /正負(fù)10v0xd4,0x2a, /正負(fù)10v0xd4,0x2a, /正負(fù)10v0xd4,0x2a, /正負(fù)10v0xd4,0x2a, /正負(fù)10v0xd4,0x2a, /正負(fù)10v0xd4,0x2a, /正負(fù)10v0xd4,0x2a;uchar code squaretab682= /輸出的幅度數(shù)組0xe5,0xe5;/正負(fù)12v0xe5,0xe5;/正負(fù)12v0xe5,0xe5;/正負(fù)12v0xe5,0xe5;/正負(fù)12v0x19,0x19;/正負(fù)12v0x19,0x19;/正負(fù)12v0x19,0x19;/正負(fù)12v0x19,0x19;uchar code sanjiaotab182= /輸出的幅度數(shù)組127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,;uchar code sanjiaotab282= /輸出的幅度數(shù)組127,129,131,133,135,137,139,141,143,141,139,137,135,133,131,129,;uchar code sanjiaotab382= /輸出的幅度數(shù)組127,132,137,142,147,152,157,162,167,162,157,152,147,142,137,132,;uchar code sanjiaotab482= /輸出的幅度數(shù)組127,135,143,151,159,167,175,183,191,183,175,167,159,151,143,135,;uchar code sanjiaotab582= /輸出的幅度數(shù)組127,137,147,157,167,177,187,197,207,197,187,177,167,157,147,137,;uchar code sanjiaotab682= /輸出的幅度數(shù)組127,140,153,166,179,193,205,118,221,118,205,193,179,166,153,140,;uchar code sanjiaotab782= /輸出的幅度數(shù)組127,142,157,172,187,202,217,232,255,232,217,202,187,172,157,142,;uchar code sintab182= /輸出的幅度數(shù)組127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,;uchar code sintab282= /輸出的幅度數(shù)組135,143,146,148,146,143,135,127,119,112,108,106,108,112,119,127,;uchar code sintab382= /輸出的幅度數(shù)組143,157,166,169,166,157,143,127,111,97,88,85,88,97,111,127,;uchar code sintab482= /輸出的幅度數(shù)組151,172,185,190,185,172,151,127,103,82,69,64,69,82,103,127,;uchar code sintab582= /輸出的幅度數(shù)組159,186,204,211,204,186,159,127,95,68,50,43,50,68,95,127,;uchar code sintab682= /輸出的幅度數(shù)組167,201,224,232,224,201,167,127,87,53,30,22,30,53,87,127,;uchar code sintab782= /輸出的幅度數(shù)組175,215,243,256,243,215,175,127,79,39,11,0,11,39,79,127,;.uchar code disp1=voltage: 000v ;uchar code disp2=frq:0000000.00hz;/2.按鍵控制程序uint i,num,p,q,k,freq=0;uchar count,s;uchar keytemp=0,keytemp2=0,keytemp3=0;sbit da=p23;sbit wr1=p24;sbit key1=p25;sbit key2=p26;sbit key3=p27;sbit key4=p22; void delay(uint z)uint i,j;for(i=z;i0;i-)for(j=110;j0;j-);void t0_time()interrupt 1th0=(65536-125)/256; /定時器裝初值 精確到0.125mstl0=(65536-125)%256;num+;/波形選擇程序 void key4_ctr_wave() /波形選擇控制按鍵if(key4=0) tr0=0;_nop_();if(key4=0)keytemp3+;while(!key4)tr0=1; if(keytemp3=1) /通過按鍵按下的次數(shù)控制波形q=1; /選擇波形一 /whileif(keytemp3=2)/選擇波形2q=2;if(keytemp3=3)/選擇波形3 q=3; /頻率調(diào)節(jié)程序 void key1_ctr_frq() /調(diào)頻控制按鍵if(key1=0) tr0=0;_nop_();if(key1=0)keytemp+;while(!key1)tr0=1; if(keytemp=1) /通過按鍵按下的次數(shù)控制頻率freq=1; /選擇頻率1khz /whileif(keytemp=2)/選擇頻率100hzfreq=10;if(keytemp=3)/選擇頻率10hzfreq=100;if(keytemp=4) /選擇頻率1hzfreq=1000;if(keytemp=5) /選擇頻率0.1hzfreq=10000;if(keytemp=6) /選擇頻率0.05hzfreq=20000;if(keytemp=6)keytemp=1;write_1602_com(0xc0+7);for(k=0;k=7)keytemp2=0;/中斷程序void key3_ctr() /總控制按鍵if(key3=0) /功能按鍵tr0=0;_nop_();/精確延時1usif(key3=0)delay(2);while(!key3)s+;/if(s=2)da=1;if(s=2)s=1;void init()tmod=0x01; /設(shè)定定時器0為工作方式1th0=(65536-125)/256; /進(jìn)行1ms的精確定時 tl0=(65536-125)%256; /定時器裝初值ea=1; /開總中斷et0=1; /開定時器0中斷tr0=1;init_1602();void main()dadata=0x00;da=0; wr1=0;init();display_1602(0x80, disp1);_nop_();display_1602(0x80+0x40,disp2);_nop_();while(1) for(q=0,q16,q+)key3_ctr();/if(count=2)count=0;if(s=1) /總控制按鍵key1_ctr_frq();key2_ctr_vol();_nop_(); if(num=freq) /選頻num=0;count+;if(count=2)count=0; if(keytemp2=0) if(p=1) switch(q)case 0:dadata=squaretab10count;break;case 1:dadata=squaretab10count;break;case 2:dadata=squaretab11count;break;case 3:dadata=squaretab11count;break;case 4:dadata=squaretab12count;break;case 5:dadata=squaretab12count;break;case 6:dadata=squaretab13count;break;case 7:dadata=squaretab13count;break;case 8:dadata=squaretab14count;break;case 9:dadata=squaretab14count;break;case 10: dadata=squaretab15count;break;case 11: dadata=squaretab15count;break;case 12: dadata=squaretab16count;break;case 13: dadata=squaretab16count;break;case 14: dadata=squaretab17count;break;case 15: dadata=squaretab17count;break; / end switch/end if if(p=2)switch(q)if(keytemp2=0) if(p=1) switch(q)case 0:dadata=squaretab10count;break;case 1:dadata=squaretab10count;break;case 2:dadata=squaretab11count;break;case 3:dadata=squaretab11count;break;case 4:dadata=squaretab12count;break;case 5:dadata=squaretab12count;break;case 6:dadata=squaretab13count;break;case 7:dadata=squaretab13count;break;case 8:dadata=squaretab14count;break;case 9:dadata=squaretab14count;break;case 10: dadata=squaretab15count;break;case 11: dadata=squaretab15count;break;case 12: dadata=squaretab16count;break;case 13: dadata=squaretab16count;break;case 14: dadata=squaretab17count;break;case 15: dadata=squaretab17count;break; / end switch/end if if(p=2) switch(q)case 0:dadata=sanjiaotab10count;break;case 1:dadata=sanjiaotab10count;break;case 2:dadata=sanjiaotab11count;break;case 3:dadata=sanjiaotab11count;break;case 4:dadata=sanjiaotab12count;break;case 5:dadata=sanjiaotab12count;break;case 6:dadata=sanjiaotab13count;break;case 7:dadata=sanjiaotab13count;break;case 8:dadata=sanjiaotab14count;break;case 9:dadata=sanjiaotab14count;break;case 10: dadata=sanjiaotab15count;break;case 11: dadata=sanjiaotab15count;break;case 12: dadata=sanjiaotab16count;break;case 13: dadata=sanjiaotab16count;break;case 14: dadata=sanjiaotab17count;break;case 15: dadata=sanjiaotab17count;break; / end switch/end ifif(p=3) switch(q)case 0:dadata=sintab10count;break;case 1:dadata=sintab10count;break;case 2:dadata=sintab11count;break;case 3:dadata=sintab11count;break;case 4:dadata=sintab12count;break;case 5:dadata=sintab12count;break;case 6:dadata=sintab13count;break;case 7:dadata=sintab13count;break;case 8:dadata=sintab14count;break;case 9:dadata=sintab14count;break;case 10: dadata=sintab15count;break;case 11: dadata=sintab15count;break;case 12: dadata=sintab16count;break;case 13: dadata=sintab16count;break;case 14: dadata=sintab17count;break;case 15: dadata=sintab17count;break; / end switch/end if/end ifif(keytemp2=1) if(p=1) switch(q)case 0:dadata=squaretab20count;break;case 1:dadata=squaretab20count;break;case 2:dadata=squaretab21count;break;case 3:dadata=squaretab21count;break;case 4:dadata=squaretab22count;break;case 5:dadata=squaretab22count;break;case 6:dadata=squaretab23count;break;case 7:dadata=squaretab23count;break;case 8:dadata=squaretab24count;break;case 9:dadata=squaretab24count;break;case 10: dadata=squaretab25count;break;case 11: dadata=squaretab25count;break;case 12: dadata=squaretab26count;break;case 13: dadata=squaretab26count;break;case 14: dadata=squaretab27count

溫馨提示

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

最新文檔

評論

0/150

提交評論