2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

2、調(diào)解。其運算核心,我們通過MATLAB對正弦波,三角板,正弦波進(jìn)行采樣,得到一組組數(shù)據(jù),然后同過數(shù)組存儲;利用中斷對數(shù)組進(jìn)行掃描。其頻率的調(diào)解就是調(diào)節(jié)其中斷間隔的時間,幅值就是調(diào)節(jié)其數(shù)字的大?。ㄍ瑫r乘以某個小于1的數(shù))。為了波形的合成,我們采用的點的個數(shù)都是20個。</p><p>  關(guān)鍵詞:AT-89C51 DAC0832 獨立按鍵 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è)計任務(wù):設(shè)計制作一個波形發(fā)生器,該波形發(fā)生器能產(chǎn)生正弦波、方波、三角波和由用戶編輯的特定形狀波形。</p><p><b>  示意圖如下:</b></p><p>

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

8、gt;  3.具有波形存儲功能。</p><p>  4.輸出波形的頻率范圍為100Hz~20kHz(非正弦波頻率按10次諧波計算);重復(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è)計</p><p>  題目要求實現(xiàn)的任務(wù)是設(shè)計并制作一個函數(shù)信號發(fā)生器,能夠產(chǎn)生正弦波、方波、三角波,要求不用DDS和專用的波形產(chǎn)生芯片,頻率范圍在1Hz~1MHZ可調(diào),在頻率范圍為1HZ~10KHz時,步進(jìn)不大于10Hz在頻率范圍為10KHz~1MHz時,步進(jìn)不大于100

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

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

12、幅度值,頻率值等參數(shù)。波形的合成:為了波形的合成,我們在采樣的時候,對正弦波,三角波,方波都只取樂20個點;因為點越少,其頻率達(dá)到的值就會越大;合成時就是對幅值點進(jìn)行一個疊加后賦給DAC0832輸出一組波形。紅外,通過外部中斷高低電平的延時的時間來進(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信號發(fā)生部分</b></p><p>  方案一:采用模擬分立元件或單片壓控函數(shù)發(fā)生器,可以產(chǎn)生正弦波、方波、三角波,通過調(diào)整外部元件可以改變輸出頻率,但采用模擬元器件由于元件分散性太大,因而產(chǎn)生頻率穩(wěn)定性較差,精度低,地抗干擾能力低,成本高,而

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

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

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

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

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

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

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

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

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

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

24、母、數(shù)字、符號等點陣式LCD,其外接電壓時5V。掃描利用軟件程序?qū)崿F(xiàn),當(dāng)某一按鍵按下時,掃描立即檢測到,隨即調(diào)用子程序,執(zhí)行相應(yīng)的功能。其與單片機連接如圖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運放組成。DAC0832是一個具有兩個輸入數(shù)據(jù)寄存器的8位DAC。目前生產(chǎn)的DAC芯片分為兩類,一類芯片內(nèi)部設(shè)置有數(shù)據(jù)寄存器,不需要外加電路就可以直接與微型計算機接口。另一類芯片內(nèi)沒有數(shù)據(jù)寄存器,輸出信號隨數(shù)據(jù)輸入線的狀態(tài)的變化而變化,因此不能直接與微型計算機接口,必須通過并行口與微型計算機接口。DAC0832是具有20條引線的雙列直插式CMOS器件,它內(nèi)部具有兩

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

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

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

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

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

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

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

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

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

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

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

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

38、、幅值和頻率的加和減鍵、幅值頻率的轉(zhuǎn)換鍵、波形的轉(zhuǎn)換鍵等共15個鍵。主程序的流程圖如圖4.1所示:</p><p>  完成全部硬件和軟件過后,將程序下載到單片機中進(jìn)行測試,通過反復(fù)測試,反復(fù)的修改函數(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、路原理圖繪制出如下仿真電路圖,對程序和電路功能進(jìn)行測試</p><p>  圖15 proteus仿真電路圖</p><p><b>  5.2輸出波形圖</b></p><p>  將編寫好的程序下載到單片機中進(jìn)行仿真,通過反復(fù)測試,反復(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>  六、硬件和軟件測試</b></p>&l

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

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

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

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

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

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

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

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

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

51、gt;<p>  在論文完成之際,我首先謹(jǐn)向在我做畢業(yè)設(shè)計期間給予我無微不至的關(guān)懷、誨人不倦的老師致以崇高的敬意和真誠的謝意;起床對朝夕相處的同學(xué)和在畢業(yè)設(shè)計期間給予我支持和幫助的朋友送上我深深的謝意!</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)延時程序去抖</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;首列號送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;第零行有鍵按下,行首鍵號送A&l

65、t;/p><p>  AJMPLK;轉(zhuǎn)求鍵號</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;修改列號</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;延時</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毫秒延時子程序</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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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

提交評論