基于51單片機(jī)的波形發(fā)生器畢業(yè)論文_第1頁
已閱讀1頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  基于單片機(jī)原理的波形發(fā)生器</p><p><b>  摘要:</b></p><p>  本系統(tǒng)采用單片機(jī)C8051為控制核心,輸出數(shù)字量,然后由DAC0832把數(shù)字量轉(zhuǎn)換成模擬量;但是輸出的是電流,需要用運(yùn)放(OP07),把電流轉(zhuǎn)換成電壓量。顯示利用的是LCD1602的液晶,顯示其波形,幅值。按鍵應(yīng)用的是獨(dú)立按鍵,用來波形的切換,幅值,頻率的

2、調(diào)解。其運(yùn)算核心,我們通過MATLAB對(duì)正弦波,三角板,正弦波進(jìn)行采樣,得到一組組數(shù)據(jù),然后同過數(shù)組存儲(chǔ);利用中斷對(duì)數(shù)組進(jìn)行掃描。其頻率的調(diào)解就是調(diào)節(jié)其中斷間隔的時(shí)間,幅值就是調(diào)節(jié)其數(shù)字的大?。ㄍ瑫r(shí)乘以某個(gè)小于1的數(shù))。為了波形的合成,我們采用的點(diǎn)的個(gè)數(shù)都是20個(gè)。</p><p>  關(guān)鍵詞:AT-89C51 DAC0832 獨(dú)立按鍵 OP07</p><p>  The D

3、esign of Waveform Generator Based on 51</p><p><b>  Abstract:</b></p><p>  This system adopts single-chip C8051 as the control core, digital output, and then by DAC0832 convert digit

4、al to analog; But the output is current, the need to use operational amplifier (OP07), the amount of current into a voltage. Display using the LCD1602 LCD, display the waveform amplitude. Key applications is independent,

5、 switch to waveform, amplitude, frequency of mediation. Its core operation, we use MATLAB to sine wave, triangle, the sine wave samples, groups of data, and then with an arr</p><p>  Keywords:AT-89C51 DAC0

6、832 Separate button OP07</p><p><b>  一、題目要求及分析</b></p><p>  設(shè)計(jì)任務(wù):設(shè)計(jì)制作一個(gè)波形發(fā)生器,該波形發(fā)生器能產(chǎn)生正弦波、方波、三角波和由用戶編輯的特定形狀波形。</p><p><b>  示意圖如下:</b></p><p>

7、<b>  圖1 設(shè)計(jì)要求圖</b></p><p><b>  設(shè)計(jì)要求:</b></p><p>  1.具有產(chǎn)生正弦波、方波、三角波三種周期性波形的功能;</p><p>  2.用鍵盤輸入編輯生成上述三種波形(同周期)的線性組合波形,以及由基波及其諧波(5次以下)線性組合的波形。</p><p&

8、gt;  3.具有波形存儲(chǔ)功能。</p><p>  4.輸出波形的頻率范圍為100Hz~20kHz(非正弦波頻率按10次諧波計(jì)算);重復(fù)頻率可調(diào),頻率步進(jìn)間隔≤100Hz。</p><p>  5.輸出波形幅度范圍O~5V(峰—峰值),可按步進(jìn)0.1V(峰—峰值)調(diào)整。</p><p>  6.具有顯示輸出波形的類型、重復(fù)頻率(周期)和幅度的功能。</p&g

9、t;<p>  7.增加紅外配置功能(串口配置程序或其他方式)</p><p>  二、總體系統(tǒng)方案設(shè)計(jì)</p><p>  題目要求實(shí)現(xiàn)的任務(wù)是設(shè)計(jì)并制作一個(gè)函數(shù)信號(hào)發(fā)生器,能夠產(chǎn)生正弦波、方波、三角波,要求不用DDS和專用的波形產(chǎn)生芯片,頻率范圍在1Hz~1MHZ可調(diào),在頻率范圍為1HZ~10KHz時(shí),步進(jìn)不大于10Hz在頻率范圍為10KHz~1MHz時(shí),步進(jìn)不大于100

10、Hz,并且電壓范圍在0~5V可調(diào),步進(jìn)為0.1V,能夠?qū)崟r(shí)的顯示波形的類型及其頻率和幅值?,F(xiàn)在對(duì)以下方案進(jìn)論證和驗(yàn)證。</p><p><b>  2.1總體設(shè)計(jì)思路</b></p><p>  根據(jù)題目的要求,經(jīng)過仔細(xì)的考慮各種要素,制定了整體方案:以AT89C51單片機(jī)為控制核心,P0口接DAC0832信號(hào)輸入并進(jìn)行數(shù)模轉(zhuǎn)換,P1口接矩陣鍵盤,P2口接液晶顯示器L

11、CD1602,由程序控制P0口產(chǎn)生波形(分別是正弦波、方波、三角波),再由按鍵及按鍵次數(shù)控制產(chǎn)生波形的種類及頻率和幅值在一定范圍內(nèi)可調(diào),并且能夠按任意鍵實(shí)現(xiàn)波形頻率和幅值的設(shè)定(不通過步進(jìn)按鍵設(shè)定來控制)。由運(yùn)放OP07實(shí)現(xiàn)DAC0832輸出電流到電壓的轉(zhuǎn)換,即實(shí)現(xiàn)數(shù)字信號(hào)到模擬信號(hào)的轉(zhuǎn)換。在LCD上實(shí)時(shí)的顯示波形的頻率和幅值,波形在示波器上產(chǎn)生。其波形的存儲(chǔ)方式,我們通過按鍵確定,一旦按鍵按下后,就把當(dāng)時(shí)的波形對(duì)應(yīng)的參數(shù)存儲(chǔ)起來,例如

12、幅度值,頻率值等參數(shù)。波形的合成:為了波形的合成,我們?cè)诓蓸拥臅r(shí)候,對(duì)正弦波,三角波,方波都只取樂20個(gè)點(diǎn);因?yàn)辄c(diǎn)越少,其頻率達(dá)到的值就會(huì)越大;合成時(shí)就是對(duì)幅值點(diǎn)進(jìn)行一個(gè)疊加后賦給DAC0832輸出一組波形。紅外,通過外部中斷高低電平的延時(shí)的時(shí)間來進(jìn)行解碼。</p><p><b>  2.2總體框圖</b></p><p>  本系統(tǒng)總體框圖如圖2所示:</p

13、><p><b>  圖2系統(tǒng)總體框圖</b></p><p><b>  2.3信號(hào)發(fā)生部分</b></p><p>  方案一:采用模擬分立元件或單片壓控函數(shù)發(fā)生器,可以產(chǎn)生正弦波、方波、三角波,通過調(diào)整外部元件可以改變輸出頻率,但采用模擬元器件由于元件分散性太大,因而產(chǎn)生頻率穩(wěn)定性較差,精度低,地抗干擾能力低,成本高,而

14、且靈活心性較差,不能實(shí)現(xiàn)任意波形以及波形運(yùn)算輸出等智能化的功能。</p><p>  方案二:采用鎖相式頻率合成方案,鎖相式頻率合成一個(gè)高穩(wěn)定度和精確度的大量離散技術(shù),他在一定程度上解決了既要頻率穩(wěn)定精確又要頻率在較大的范圍內(nèi)可調(diào)的矛盾,但是頻率受VCO可便頻率范圍的影響,高低頻率比不可能做的很高,而且只能產(chǎn)生正弦波或方波,不能滿足任意波形的要求。</p><p>  方案三:采用單片機(jī)和

15、數(shù)模轉(zhuǎn)換DAC0832實(shí)現(xiàn)波形的產(chǎn)生。波形的產(chǎn)生是通過AT89C51執(zhí)行方波波形程序,向D/A轉(zhuǎn)換器的輸入端按一定的規(guī)律發(fā)生數(shù)據(jù),從而在DA轉(zhuǎn)換電路輸出端得到相應(yīng)的電壓波形。在AT89C51的P1口接矩陣按鍵,通過軟件編程來選擇波形、幅值、頻率,每種波形對(duì)應(yīng)一個(gè)按鍵,此方案原理簡(jiǎn)單,實(shí)現(xiàn)起來比較容易。</p><p>  經(jīng)比較,方案三能夠更好的實(shí)現(xiàn)題目的要求,三種波形的產(chǎn)生可有程序控制,并通過按鍵選擇波形的輸出

16、,在示波器上顯示波形。波形的周期與頻率步進(jìn)也可以用程序控制,具有線路簡(jiǎn)單、結(jié)構(gòu)緊湊等優(yōu)點(diǎn)。在本設(shè)計(jì)的基礎(chǔ)上,加上LCD顯示器,則可以通過按鍵設(shè)定波形頻率,并在LCD顯示頻率、幅值電壓。輸出的波形穩(wěn)定,精度高,濾波好,抗干擾效果好,連接簡(jiǎn)單,性價(jià)比高。綜上所述,我們選擇第三種方案。</p><p><b>  2.4顯示部分</b></p><p>  方案一:數(shù)碼管顯

17、示,由于本題要求實(shí)時(shí)的顯示輸出信號(hào)的幅度、頻率,而數(shù)字不能顯示字符。</p><p>  方案二:LED點(diǎn)陣顯示,LED點(diǎn)陣顯示雖然能夠顯示數(shù)字和字符,但是顯示的效果不好,而且不易編程。</p><p>  方案三:LCD液晶顯示,LCD液晶顯示不但能顯示字符和數(shù)字,而且效果較好,且容易實(shí)現(xiàn)。</p><p><b>  2.5按鍵部分</b>

18、</p><p>  方案一:采用獨(dú)立按鍵,他的按鍵的數(shù)目比少,但是它的結(jié)構(gòu)簡(jiǎn)單,方便操作,執(zhí)行效率高等優(yōu)勢(shì)。</p><p>  方案二:采用矩陣鍵盤,它以較少得IO口實(shí)現(xiàn)了按鍵的功能,隨之其操作比較復(fù)雜。</p><p>  經(jīng)對(duì)比,由于我們需求的按鍵比較少,但是對(duì)執(zhí)行的效率比較高,所以采用獨(dú)立按鍵。</p><p><b> 

19、 三、硬件電路</b></p><p>  本系統(tǒng)由單片機(jī)、波形轉(zhuǎn)換(D/A)電路、顯示接口電路、鍵盤電路、電源電路、串口電路等六部分組成。電路圖如圖3.1所示:</p><p><b>  圖3硬件電路原理圖</b></p><p>  3.1功能與基本原理</p><p>  功能:形成掃描碼、鍵值識(shí)別、

20、案件處理、參數(shù)設(shè)置、字符設(shè)置等形成液晶顯示波形的類型及頻率和幅值;通過定時(shí)器0產(chǎn)生定時(shí)中斷,形成波形的數(shù)字編碼,并輸出到D/A接口電路和顯示驅(qū)動(dòng)電路。</p><p>  AT89C51外接12M晶振作為時(shí)鐘頻率,并采用電源復(fù)位設(shè)計(jì)。復(fù)位電路采用上電復(fù)位,其工作原理是,當(dāng)通電時(shí),電容兩端相當(dāng)于短路,于是TST引腳為高電平,然后對(duì)電容充電。RST端電壓慢慢下降,降到一定程度,即為低電平,單片機(jī)開始工作。產(chǎn)生方波程序

21、思路:對(duì)于小于100Hz的頻率,根據(jù)定時(shí)器溢出時(shí)間1us,將頻率值換算為定時(shí)器溢出次數(shù),當(dāng)達(dá)到規(guī)定的次數(shù)時(shí),將輸出管腳的狀態(tài)取反達(dá)到方波的產(chǎn)生;對(duì)于大于100HZ的頻率,直接根據(jù)頻率值設(shè)置其定時(shí)溢出的時(shí)間,當(dāng)溢出時(shí)間達(dá)到時(shí),將輸出管腳取反達(dá)到方波的產(chǎn)生。產(chǎn)生三角波程序思路:要產(chǎn)生峰值電壓為5V的三角波,一個(gè)周期需要定時(shí)510次,由此便可以計(jì)算出每次定時(shí)溢出的時(shí)間,再將每次定時(shí)的電壓加權(quán)便可以達(dá)到三角波的波形;產(chǎn)生正弦波程序思路:給正弦波

22、的一個(gè)周期設(shè)定table表,由20個(gè)數(shù)據(jù),相當(dāng)于每個(gè)周期定時(shí)255次,則每次定時(shí)溢出的時(shí)間便可計(jì)算出,每個(gè)點(diǎn)的電壓加權(quán)便可得到正弦波的電壓,即,形成正弦波。</p><p><b>  3.2資源分配</b></p><p>  軟、硬件設(shè)計(jì)是比不可少的,為了滿足功能和指標(biāo)的要求,資源分配為:?jiǎn)纹瑱C(jī)用12MHz晶振,P0口與DAC0832相連;P1口接矩陣按鍵,實(shí)現(xiàn)頻

23、率、幅值以及波形的選擇;P2口接LCD1602液晶顯示器,實(shí)時(shí)顯示波形的頻率、幅值、類型。</p><p>  3.2.1顯示接口電路</p><p>  功能:驅(qū)動(dòng)LCD液晶顯示、掃描按鈕。</p><p>  由LCD1602液晶顯示器和矩陣按鍵組成。當(dāng)某一按鍵按下時(shí),掃描程序掃描到之后,通過P2口將數(shù)字信號(hào)發(fā)送到LCD1602,LCD1602液晶專門用于顯示字

24、母、數(shù)字、符號(hào)等點(diǎn)陣式LCD,其外接電壓時(shí)5V。掃描利用軟件程序?qū)崿F(xiàn),當(dāng)某一按鍵按下時(shí),掃描立即檢測(cè)到,隨即調(diào)用子程序,執(zhí)行相應(yīng)的功能。其與單片機(jī)連接如圖4所示:</p><p><b>  圖4顯示部分電路圖</b></p><p>  3.3波形轉(zhuǎn)換(D/A)電路</p><p>  功能:將波形樣值得編碼轉(zhuǎn)換成模擬值,完成波形的輸出。&l

25、t;/p><p>  由一片DAC0832和LF356運(yùn)放組成。DAC0832是一個(gè)具有兩個(gè)輸入數(shù)據(jù)寄存器的8位DAC。目前生產(chǎn)的DAC芯片分為兩類,一類芯片內(nèi)部設(shè)置有數(shù)據(jù)寄存器,不需要外加電路就可以直接與微型計(jì)算機(jī)接口。另一類芯片內(nèi)沒有數(shù)據(jù)寄存器,輸出信號(hào)隨數(shù)據(jù)輸入線的狀態(tài)的變化而變化,因此不能直接與微型計(jì)算機(jī)接口,必須通過并行口與微型計(jì)算機(jī)接口。DAC0832是具有20條引線的雙列直插式CMOS器件,它內(nèi)部具有兩

26、級(jí)數(shù)據(jù)寄存器,完成8位電流D/A轉(zhuǎn)換,股不需要外加電路。DAC0832是電流輸出型,示波器上顯示波形,通常需要電壓信號(hào),電流信號(hào)到電壓信號(hào)的轉(zhuǎn)換可以用運(yùn)算放大器LF356實(shí)現(xiàn)。</p><p>  單片機(jī)想DAC0832發(fā)送數(shù)字編碼,產(chǎn)生不同的輸出。先利用采樣定理對(duì)各種波形進(jìn)行抽樣,然后把各種采樣值進(jìn)行編碼,收到的數(shù)字量存入各個(gè)波形表,執(zhí)行程序時(shí)通過查表的方法依次取出,經(jīng)過D/A轉(zhuǎn)換后輸出就可以得到波形。假如N個(gè)

27、點(diǎn)構(gòu)成波形的一個(gè)周期,則DAC0832輸出N個(gè)樣點(diǎn)值后,樣值點(diǎn)形成運(yùn)動(dòng)軌跡,即,一個(gè)周期。重復(fù)輸出N個(gè)點(diǎn)后,成為第二個(gè)周期。利用單片機(jī)的晶振控制輸出周期的速度,也就是控制輸出的波形的頻率。這樣就控制了輸出波形的及其幅值和頻率,例如:正弦波,取20個(gè)樣值點(diǎn)。具體連接的電路圖如圖5所示:</p><p>  圖5D/A轉(zhuǎn)換的電路連接圖</p><p><b>  3.4紅外電路<

28、;/b></p><p><b>  圖6紅外電路</b></p><p>  紅外的工作原理:51單片機(jī)對(duì)遙控的解碼和我們前面所講的串口并口通信不同,他不是單純的用高電平代表1,低電平代表0。這一點(diǎn)大家要從思想上面轉(zhuǎn)變過來。他是發(fā)送一連串的數(shù)據(jù)幀,這個(gè)數(shù)據(jù)幀就是一連串的二進(jìn)制代碼,單片機(jī)通過區(qū)分高電平的持續(xù)時(shí)間來區(qū)別紅外編碼的。我們就以HC6800單片機(jī)上的紅

29、外接頭為例來說明,當(dāng)高電平的脈沖寬度為1.12ms的時(shí)候單片機(jī)認(rèn)為它為0,當(dāng)高電平的脈沖寬度為2.25的時(shí)候單片機(jī)認(rèn)為它為1。單片機(jī)是通過判斷脈沖的寬度來得到信息位為0還是為1的。當(dāng)我們按下遙控器的按鍵時(shí),遙控器將發(fā)出如圖2的一串二進(jìn)制代碼,我們稱它為一幀數(shù)據(jù)。根據(jù)各部分的功能??蓪⑺鼈兎譃?部分,分別為引導(dǎo)碼、地址碼、地址碼、數(shù)據(jù)碼、數(shù)據(jù)反碼。遙控器發(fā)射代碼時(shí).均是低位在前。高位在后。由圖2分析可以得到.引導(dǎo)碼高電平為4.5ms,低電

30、平為4.5ms。當(dāng)接收到此碼時(shí).表示一幀數(shù)據(jù)的開始。單片機(jī)可以準(zhǔn)備接收下面的數(shù)據(jù)。地址碼由8位二進(jìn)制組成,共256種.圖中地址碼重發(fā)了一次。主要是加強(qiáng)遙控器的可靠性.如果兩次地址碼不相同.則說明本幀數(shù)據(jù)有錯(cuò).應(yīng)丟棄。不同的設(shè)備可以擁有不同的地址碼.因此。同種編碼的遙控器只要設(shè)</p><p><b>  3.5復(fù)位電路</b></p><p>  這種復(fù)位電路的工作原

31、理是:?jiǎn)纹瑱C(jī)的復(fù)位電路在剛接通電時(shí),剛開始電容是沒有電的,電容內(nèi)的電阻很低,通電后,5V的電通過電阻給電容進(jìn)行充電,電容兩端的電會(huì)由0V慢慢的升到4V左右(此時(shí)間很短一般小于0.3秒),RC構(gòu)成的微分電路在上電瞬間產(chǎn)生一個(gè)微分脈沖,其寬度大于兩個(gè)機(jī)器周期,89C51將復(fù)位。正因?yàn)檫@樣,復(fù)位腳的電由低電位升到高電位,引起了內(nèi)部電路的復(fù)位工作,RST端電壓慢慢下降,降到一定電壓值以后,即為低電平,單片機(jī)開始正</p><

32、p>  常工作(這是單片機(jī)的上電復(fù)位,也叫初始化復(fù)位);當(dāng)按下復(fù)位鍵時(shí),電容兩端放電,電容又回到0V了,于是又進(jìn)行了一次復(fù)位工作(這是手動(dòng)復(fù)位原理)。</p><p><b>  圖7復(fù)位電路</b></p><p><b>  3.6外部時(shí)鐘電路</b></p><p>  圖3采用11.0592MHz的晶振和兩個(gè)

33、22pf的電容組成時(shí)鐘電路部分</p><p><b>  圖8外部時(shí)鐘電路</b></p><p>  3.7 LCD顯示部分電路</p><p>  為了節(jié)約成本,采用1602來作為顯示器,用獨(dú)立按鍵來控制不同的顯示,能完成基本的顯示功能。</p><p>  圖9LCD液晶顯示電路</p><p

34、><b>  3.8電源部分</b></p><p>  本電源設(shè)計(jì)了兩個(gè)接口,方便不同接口的電源接入,并且在電源部分加上濾波電容,起過濾接入電源的雜波的作用,為了電路中得到+12V、-12V和+5V的直流工作電壓,用變壓器變壓后再通過芯片和電容設(shè)計(jì)出所需要的電路。</p><p><b>  圖10電源電路</b></p>

35、<p><b>  3.9獨(dú)立按鍵部分</b></p><p>  圖八為用獨(dú)立按鍵來控制不同的輸出波形</p><p><b>  圖11獨(dú)立按鍵</b></p><p>  3.10串口通信模塊</p><p>  圖中通過MAX232進(jìn)行TTL電平和232電平轉(zhuǎn)換,從而單片機(jī)和上位機(jī)

36、之間通信提供通道。</p><p><b>  圖12串口通信電路</b></p><p>  通信電路的目的就是讓通信雙發(fā)的電平匹配,單片機(jī)用的是TTL電平,上位機(jī)的串口用的是232電平。TTL電平的邏輯1的電壓范圍是+3.3V到+5V,邏輯0的電壓范圍是0到+3.3V;232電平的邏輯1的電壓范圍是-15V到-5V,邏輯0的電壓范圍是+5V到+15V。因此設(shè)計(jì)串口

37、通信電路就是讓這兩種電平統(tǒng)一。</p><p><b>  四、軟件設(shè)計(jì)</b></p><p>  主程序和子程序都存放在AT89C51單片機(jī)中。主程序的功能是:開機(jī)以后負(fù)責(zé)查鍵,即做出鍵盤掃描及顯示工作,然后根據(jù)用戶所按的鍵轉(zhuǎn)到相應(yīng)的子程序進(jìn)行處理。子程序的功能有:延時(shí)子程序、中斷程序、顯示子程序、按鍵子程序,按鍵子程序中有任意頻率的設(shè)置的數(shù)字鍵(0~9)及確定鍵

38、、幅值和頻率的加和減鍵、幅值頻率的轉(zhuǎn)換鍵、波形的轉(zhuǎn)換鍵等共15個(gè)鍵。主程序的流程圖如圖4.1所示:</p><p>  完成全部硬件和軟件過后,將程序下載到單片機(jī)中進(jìn)行測(cè)試,通過反復(fù)測(cè)試,反復(fù)的修改函數(shù)的功能,同時(shí)完善硬件的功能,使系統(tǒng)達(dá)到最優(yōu)控制。</p><p><b>  4.1程序流程圖</b></p><p><b>  圖

39、13程序流程圖</b></p><p>  4.2 LCD顯示流程圖</p><p>  圖14 LCD顯示框圖</p><p><b>  五、系統(tǒng)仿真</b></p><p><b>  5.1仿真電路圖</b></p><p>  通過Proteus軟件和電

40、路原理圖繪制出如下仿真電路圖,對(duì)程序和電路功能進(jìn)行測(cè)試</p><p>  圖15 proteus仿真電路圖</p><p><b>  5.2輸出波形圖</b></p><p>  將編寫好的程序下載到單片機(jī)中進(jìn)行仿真,通過反復(fù)測(cè)試,反復(fù)的修改函數(shù)的功能,使系統(tǒng)輸出如下波形:</p><p><b>  圖1

41、6正弦波</b></p><p><b>  圖17方波</b></p><p><b>  圖18三角波</b></p><p>  圖19正弦波、方波、三角波三種波形疊加后的波形</p><p><b>  六、硬件和軟件測(cè)試</b></p>&l

42、t;p><b>  6.1硬件調(diào)試</b></p><p>  整個(gè)硬件調(diào)試過程基本順利,由于采用了分單元模塊制作,各個(gè)單元電路工作穩(wěn)定,給調(diào)試工作帶來很大的方便。</p><p>  放大模塊部分在實(shí)物模擬時(shí),出現(xiàn)發(fā)送信號(hào)不穩(wěn)定、跳變的問題,經(jīng)過仔細(xì)的檢查,電路連線路勁和線路連接問題,最終發(fā)現(xiàn)電路連接是出現(xiàn)連接未牢固的問題,從而得以解決。</p>

43、<p><b>  6.2軟件調(diào)試</b></p><p>  雖然對(duì)于單片機(jī)的變成較熟悉,但是還存在一些問題,主要有以下問題:</p><p> ?。?)在寫調(diào)幅值的程序時(shí),按照自己的想法寫好,下載帶單片機(jī)中,發(fā)現(xiàn),每按一次鍵,幅值一次性增大到5V或者一次性減為0V,經(jīng)過對(duì)程序的分析得知,當(dāng)按下鍵時(shí),程序循環(huán)很多次,為次添加一條鍵按下時(shí)死循環(huán)的語句使每次

44、按下鍵幅值加一次后的只保持住,從而解決了問題。</p><p>  (2)當(dāng)幅值和顯示調(diào)試成功后,寫調(diào)頻程序時(shí),在硬件電路中調(diào)試時(shí)發(fā)現(xiàn),三種波形融合到一起出現(xiàn),在經(jīng)過添加定時(shí)器中斷的方法,結(jié)果使P0口不能夠輸出模擬信號(hào),經(jīng)過努力,最后終于解決了這個(gè)問題。</p><p> ?。?)由于AT89C51本身性能的問題,而且硬件方面又沒有用倍頻電路,產(chǎn)生的三角波和方波的頻率沒有達(dá)到1MHz,只達(dá)

45、到2KHz,但是方波達(dá)到了1MHz。</p><p><b>  七、設(shè)計(jì)心得</b></p><p>  本次課程設(shè)計(jì),我系統(tǒng)電路的主要設(shè)計(jì),在做課程設(shè)計(jì)的時(shí)間了我學(xué)到了很多東西,總的來說有如下收獲:</p><p> ?。?)通過對(duì)電路的設(shè)計(jì),對(duì)51系列單片機(jī)的原理和功能有了進(jìn)一步的了解,學(xué)到了更多的電路知識(shí),如復(fù)位電路的原理,晶振電路的作

46、用,旁路電容的作用,上拉電阻的功能,串口通信電路,熟悉了ULN2003芯片的原理和功能,認(rèn)識(shí)了溫濕度傳感器DHT21,并且能對(duì)其進(jìn)行應(yīng)用。</p><p> ?。?)通過原理圖和PCB圖的繪制,學(xué)會(huì)了AltumDesigner軟件的使用,并且能用它完成一些簡(jiǎn)單的電路設(shè)計(jì),并且對(duì)元器件的封裝有了一定的了解和認(rèn)識(shí)。</p><p> ?。?)通過元器件的購買和電路板的焊接,增強(qiáng)了自身的實(shí)踐動(dòng)手

47、能力,對(duì)電路原理的應(yīng)用有了更深刻的認(rèn)識(shí)。</p><p> ?。?)在測(cè)試階段,尤其是在硬件電路的檢查階段,有很深的體會(huì),有時(shí)候一個(gè)簡(jiǎn)單的錯(cuò)誤就有可能造成電路無法正常工作,通過找錯(cuò)排錯(cuò),更加熟悉了電路的原理和51單片機(jī)的工作原理。</p><p>  (5)通過本次課程設(shè)計(jì),我更加深刻的認(rèn)識(shí)到團(tuán)隊(duì)合作的重要性,小組成員分工合作,是設(shè)計(jì)成功的關(guān)鍵,只有大家團(tuán)結(jié)一致,才能更快更好的完成任務(wù),但

48、是從本課程設(shè)計(jì)中,我也看到了自身還存在許多不足,在實(shí)踐動(dòng)手能力方面比較弱,對(duì)一些電路知識(shí)掌握得不是很好。</p><p><b>  八、參考文獻(xiàn)</b></p><p>  [1]童詩白,華成英.模擬電子技術(shù)基礎(chǔ)〔M〕.北京:高等教育出版社,2003.345-362</p><p>  [2]潘永雄,沙河,劉向陽.電子線路CAD實(shí)用教程〔M〕

49、.西安:西安電子科技大學(xué)出版社,2001.13-118.</p><p>  [3]張毅剛,彭喜源,譚曉昀,曲春波.MCS-51單片機(jī)應(yīng)用設(shè)計(jì)[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1997.53-61</p><p><b>  九、</b></p><p><b>  致 謝</b></p><p&g

50、t;  本次畢業(yè)設(shè)計(jì)共歷時(shí)兩個(gè)多月的時(shí)間,在各位老師和同學(xué)們的關(guān)心幫助下才得以順利完成。在這段時(shí)間里,不僅大大提高了我的實(shí)踐經(jīng)驗(yàn),也使我學(xué)到了許多書本上不曾接觸的只是,開拓了視野,增廣了知識(shí)面,醉重要的是學(xué)會(huì)了如何利用信息資源幫助自己尋早資料,提高了自己的徐學(xué)能力。我對(duì)本課題的內(nèi)容本來知道的很少,經(jīng)過了這次的學(xué)習(xí)和知道老師的悉心教導(dǎo),現(xiàn)在已經(jīng)對(duì)它有了深刻的認(rèn)識(shí),雖然無法達(dá)到專業(yè)水平,但也是有了巨大的收獲,感覺自己受益匪淺。</p&

51、gt;<p>  在論文完成之際,我首先謹(jǐn)向在我做畢業(yè)設(shè)計(jì)期間給予我無微不至的關(guān)懷、誨人不倦的老師致以崇高的敬意和真誠(chéng)的謝意;起床對(duì)朝夕相處的同學(xué)和在畢業(yè)設(shè)計(jì)期間給予我支持和幫助的朋友送上我深深的謝意!</p><p><b>  十、附件</b></p><p><b>  源代碼</b></p><p>

52、  JUCHIEQU50H</p><p>  SANJIEQU51H</p><p>  FANGBEQU52H</p><p>  TIXINEQU53H</p><p>  KUEQU55H</p><p>  ORG0000H;程序入口</p><p>  AJ

53、MPMAIN;指向主程序</p><p>  ORG0003H;主程序入口地址</p><p>  AJMPINTT0;指向按鍵中斷程序</p><p>  ORG0030H;中斷程序入口地址</p><p>  MAIN:;主程序</p><p>  MOVP2,#00H;將P2

54、口初始化為0</p><p>  SETBEA;開總中斷</p><p>  SETBEX0;開啟外部中斷0</p><p>  SETBIT0;將外部中斷0設(shè)置為下降沿有效</p><p>  MOVDPTR,#00FFH;設(shè)置輸入寄存器地址</p><p>  MOVJUCHI,#00H;

55、初始化</p><p>  MOVSANJI,#00H</p><p>  MOVFANGB,#00H</p><p>  MOVTIXIN,#00H</p><p>  ;***************************************************</p><p><b> 

56、 START:</b></p><p>  MOVA,KU;將鍵碼送累加器A</p><p>  CJNEA,#00H,W1;將累加器A和00H比較,如果相等,則00鍵按下 順序執(zhí)行,否則跳到W1再判斷01鍵是否按下 </p><p>  MOVSANJI,#00H;屏蔽其他波形</p&g

57、t;<p>  MOVFANGB,#00H</p><p>  MOVTIXIN,#00H</p><p>  AJMPJCB;跳轉(zhuǎn)到鋸齒波形</p><p>  W1:CJNEA,#01H,W2;判斷01鍵是否按下</p><p>  MOVJUCHI,#00H;屏蔽其他波形</p><

58、;p>  MOVFANGB,#00H</p><p>  MOVTIXIN,#00H</p><p>  AJMPSJB;跳轉(zhuǎn)到三角波形</p><p>  W2:CJNEA,#02H,W3;判斷02鍵是否按下</p><p>  MOVTIXIN,#00H</p><p>  MOVJUCH

59、I,#00H;屏蔽其他波形</p><p>  MOVSANJI,#00H</p><p>  AJMPFB;跳轉(zhuǎn)到方波</p><p>  W3:CJNEA,#03H,W4;判斷03鍵是否按下,沒有按下,跳轉(zhuǎn)回去繼續(xù)循環(huán)掃描</p><p>  MOVJUCHI,#00H;屏蔽其他波形</p><p&

60、gt;  MOVSANJI,#00H</p><p>  MOVFANGB,#00H</p><p>  AJMPTXB;跳轉(zhuǎn)到梯形波</p><p>  W4:AJMPSTART</p><p>  ;**********************************************</p><

61、p>  INTT0:;中斷程序</p><p>  ;***********鍵盤掃描子程序KEY*****************</p><p>  KEY:ACALLKS;調(diào)按鍵查詢子程序,判斷是否有鍵按下</p><p>  JNZK1;有鍵按下,轉(zhuǎn)移 WEI1跳轉(zhuǎn)</p><p>  ACALLDEL

62、AY;無鍵按下,調(diào)延時(shí)程序去抖</p><p>  AJMPK4;繼續(xù)查詢按鍵</p><p>  ;***********鍵盤逐列掃描程序***********************************</p><p>  K1:ACALLDELAY</p><p>  ACALLKS;再次判別是否有鍵按下<

63、/p><p>  JNZK2;有鍵按下,轉(zhuǎn)移</p><p><b>  AJMPK4</b></p><p>  K2:MOVR3,#0FEH;首列掃描字送R3</p><p>  MOVR4,#00H;首列號(hào)送R4</p><p>  K3MOVA,R3</p>

64、<p>  MOVP2,A;列掃描字送P2口</p><p>  MOVP1,#0FFH;初始化P1口</p><p>  MOVA,P1;讀取行掃描值</p><p>  JBACC.0,L1;第零行無鍵按下轉(zhuǎn)查第一行為1跳轉(zhuǎn)</p><p>  MOVA,#00H;第零行有鍵按下,行首鍵號(hào)送A&l

65、t;/p><p>  AJMPLK;轉(zhuǎn)求鍵號(hào)</p><p>  L1:JBACC.1,NEXT;第一行無鍵按下,轉(zhuǎn)查下一列</p><p>  MOVA,#03H</p><p>  AJMPLK;鍵掃描結(jié)束,返回</p><p>  ;*******************************

66、*****************************</p><p><b>  NEXT:</b></p><p>  INCR4;修改列號(hào)</p><p>  MOVA,R3</p><p>  JNBACC.2,KEY;三列掃描完返回按鍵查詢狀態(tài)</p><p> 

67、 RLA;未掃描完,改為下列掃描字</p><p>  MOVR3,A;掃描字暫存R3</p><p>  AJMPK3;轉(zhuǎn)列掃描程序</p><p>  LK:ADDA,R4;形成鍵碼送A</p><p><b>  MOVKU,A</b></p><p>  PUSH

68、ACC;鍵碼入棧保護(hù)</p><p>  ;**********************************************</p><p><b>  K4:</b></p><p>  ACALLKS;等待鍵釋放</p><p><b>  JNZK4</b>&

69、lt;/p><p>  POPACC;鍵釋放,彈棧送A</p><p>  RETI;中斷返回</p><p>  ;**********按鍵查詢子程序**************************************</p><p>  KS:MOVA,#00H</p><p>  MOVP2,

70、#00H;全掃描字送p2口</p><p>  MOVP1,#0FFH</p><p>  MOVA,P1;讀入P1口狀態(tài)</p><p>  CPLA;變正邏輯,高電平表示有鍵按下</p><p>  ANLA,#0FH;屏蔽高四位</p><p>  RET;子程序返回</p

71、><p>  ;****************鋸齒波***********************</p><p><b>  JCB:</b></p><p>  MOVA,JUCHI;轉(zhuǎn)換初值</p><p>  WW:MOVX@DPTR,A;D/A轉(zhuǎn)換</p><p>  INC

72、A;A自加1</p><p><b>  NOP;延時(shí)</b></p><p>  CJNEA,#255,WW;判斷A是否加到255,若沒有返回到WW繼續(xù)加</p><p>  MOVJUCHI,A</p><p>  AJMPSTART</p><p>  ;********

73、**********三角波********************</p><p><b>  SJB:</b></p><p>  MOVA,SANJI;轉(zhuǎn)換初值</p><p>  EE:MOVX@DPTR,A;D/A轉(zhuǎn)換</p><p><b>  INCA</b></p

74、><p><b>  NOP</b></p><p>  CJNEA,#255,EE</p><p><b>  DEC A</b></p><p>  QQ:MOVX@DPTR,A</p><p><b>  DECA</b></p&

75、gt;<p><b>  NOP</b></p><p>  CJNEA,#00,QQ</p><p>  MOVSANJI,A</p><p>  AJMPSTART</p><p>  ;******************方波*********************</p>&l

76、t;p><b>  FB:</b></p><p>  MOVA,FANGB</p><p>  MOVX@DPTR,A</p><p>  ACALLDELAY3</p><p>  ACALLDELAY3</p><p><b>  CPLA</b>&

77、lt;/p><p>  MOVX@DPTR,A</p><p>  ACALLDELAY3</p><p>  ACALLDELAY3</p><p>  MOVFANGB,A</p><p><b>  POPACC</b></p><p>  AJMPSTAR

78、T</p><p>  ;***************梯形波**********************</p><p><b>  TXB:</b></p><p>  MOVA,TIXIN</p><p>  SS:MOVX@DPTR,A</p><p><b>  IN

79、CA</b></p><p>  ACALLDELAY3</p><p>  CJNEA,#255,SS</p><p>  ACALLDELAY3</p><p>  ACALLDELAY3</p><p><b>  DECA</b></p><p&

80、gt;  ZZ:MOVX@DPTR,A</p><p><b>  DECA</b></p><p>  ACALLDELAY3</p><p>  CJNEA,#00,ZZ</p><p>  ACALLDELAY3</p><p>  ACALLDELAY3</p>

81、<p>  MOVTIXIN,A</p><p>  AJMPSTART</p><p>  ;*******************************************************1ms</p><p>  DELAY3:MOVR0,#7DH</p><p><b>  DEL7:NOP&

82、lt;/b></p><p><b>  NOP</b></p><p>  DJNZR0,DEL7</p><p><b>  RET</b></p><p>  ;*******************************************50毫秒延時(shí)子程序</p>

83、;<p>  DELAY2:MOVR0,#05</p><p>  DEL5:MOVR1,#10</p><p>  DEL4:MOVR2,7DH</p><p><b>  DEL3:NOP</b></p><p><b>  NOP</b></p>&l

84、t;p>  DJNZR2,DEL3</p><p>  DJNZR1,DEL4</p><p>  DJNZR0,DEL5</p><p><b>  RET</b></p><p>  ;******************************************</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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論