微機(jī)原理課程設(shè)計波形發(fā)生器_第1頁
微機(jī)原理課程設(shè)計波形發(fā)生器_第2頁
微機(jī)原理課程設(shè)計波形發(fā)生器_第3頁
微機(jī)原理課程設(shè)計波形發(fā)生器_第4頁
微機(jī)原理課程設(shè)計波形發(fā)生器_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

年4月19日微機(jī)原理課程設(shè)計波形發(fā)生器文檔僅供參考,不當(dāng)之處,請聯(lián)系改正。微機(jī)原理課程設(shè)計波形發(fā)生器基本要求:經(jīng)過按鍵選擇波形,波形選擇(方波、三角波)。8255A和0832經(jīng)過按鍵設(shè)定波形的頻率,同時波形頻率在數(shù)碼管上顯示。8255A頻率設(shè)定后,經(jīng)過8253精確計時來設(shè)置波形寬度大小,比如方波的占空比。8259A產(chǎn)生中斷,用示波器顯示輸出波形。附加要求:經(jīng)過按鍵能夠增大或者降低頻率;顯示正弦波。目錄一理論部分1.1課程設(shè)計的目的………………………21.2課程設(shè)計要求與內(nèi)容…………………21.3總體設(shè)計方案…………2(1)設(shè)計思想及方案論證………………2(2)總體設(shè)計方案框圖…………………31.4系統(tǒng)硬件設(shè)計…………41.5系統(tǒng)軟件設(shè)計…………5二實踐部分2.1系統(tǒng)硬件原理簡介……………………62.2程序調(diào)試………………92.3軟件系統(tǒng)的使用說明…………………9三課程設(shè)計結(jié)果分析3.1實驗結(jié)果………………103.2結(jié)果分析………………11四課程設(shè)計總結(jié)………………………11五附錄5.1源程序及說明…………12波形發(fā)生器一理論部分1.1課程設(shè)計的目的(1)綜合模擬電子線路、數(shù)字電子技術(shù)和微機(jī)原理等多門專業(yè)基礎(chǔ)課程的知識,使學(xué)生對以計算機(jī)為核心的通信、測量或控制系統(tǒng)有個全面了解和實踐的過程。(2)掌握常規(guī)芯片的使用方法、掌握簡單微型計算機(jī)應(yīng)用系統(tǒng)軟硬的設(shè)計方法,進(jìn)一步鍛煉同學(xué)們在微型計算機(jī)應(yīng)用方面的實際工作能力,強化本學(xué)科內(nèi)容并擴(kuò)展知識面。(3)體驗分析問題、提出解決方案、經(jīng)過編程等手段實現(xiàn)解決方案、不斷調(diào)試最終達(dá)到設(shè)計要求的全過程。(4)培養(yǎng)學(xué)生的創(chuàng)造力和對專業(yè)的適應(yīng)性。1.2課程設(shè)計的內(nèi)容和要求1、經(jīng)過按鍵選擇波形,波形選擇(方波、三角波、正弦波)。8255A和08322、經(jīng)過按鍵設(shè)定波形的頻率,同時波形頻率在數(shù)碼管上顯示。8255A3、頻率設(shè)定后,經(jīng)過8253精確計時來設(shè)置波形寬度大小,比如方波的占空比。4、8259A產(chǎn)生中斷,用示波器顯示輸出波形。5、經(jīng)過按鍵能夠增大或者降低頻率;6、畫出電路原理圖,說明工作原理,編寫程序及程序流程圖。1.3總體設(shè)計方案(1)設(shè)計思想及方案論證由于要求達(dá)到模擬信號波形發(fā)生,因此要由D/A轉(zhuǎn)換芯片0832來來完成此項任務(wù),由8253形成波形的主要做法是:先輸出一個下限電平,將其保持t然后輸出一個稍高的電平,在保持t,然后重復(fù)此過程,因此需要延長0832輸入數(shù)據(jù)的時間間隔來改變頻率。如圖1信號發(fā)生波形圖所示。0832輸入的數(shù)據(jù)的延時能夠經(jīng)過軟件完成,也能夠經(jīng)過硬件完成。由于實驗要求輸出的波的頻率能夠改變,且精確,因此選用硬件延時+5V+5V0V圖1信號發(fā)生波形圖硬件延時主要由計時器8253和中斷控制器8259來實現(xiàn)。由8253輸出的方波的高低電平,來觸發(fā)8259的IR0端,8259給CPU中斷信號,CPU中斷來執(zhí)行相應(yīng)的中斷子程序,中斷子程序為向0832輸出數(shù)據(jù)的程序,經(jīng)過選擇此程序能夠產(chǎn)生鋸齒波,方波,正弦波。由于0832產(chǎn)生的方波的頻率能夠控制,因此每次中斷執(zhí)行波形發(fā)生程序的時間間隔能夠精確控制。以此來控制輸出的波形頻率。最后經(jīng)過8255驅(qū)動LED數(shù)碼顯示管,實現(xiàn)對輸入的頻率的顯示,由鍵盤直接輸入波形頻率,經(jīng)過LED數(shù)碼顯示管顯示。(2)總體設(shè)計方案框圖總體設(shè)計就是先由8255驅(qū)動LED顯示輸入的頻率,再經(jīng)過8253定時中斷,中斷的子程序來執(zhí)行輸出,輸出的信號經(jīng)過信號發(fā)生器形成波形。圖圖2硬件簡圖CLK(1.8432MHZ)Intel8253Intel8259ACPU8086DAC0832Intel8255A示波器LED數(shù)碼顯示管1.4系統(tǒng)硬件設(shè)計硬件設(shè)計電路圖圖圖3硬件設(shè)計電路圖XD7XD6XD5XD4XD3XD2XD1XD0D7D6D5D4D3D2D1D0WRRDCSA0INTXIOWXIORIOY0XA2INTRXD7XD6XD5XD4XD3XD2XD1XD0XIOWXIORIOY1XA3XA2D7D6D5D4D3D2D1D0WRRDCSA1A0IR0OUT0CLK0GATE01.8432MHZ+5V82548259AXD7XD6XD5XD4XD3XD2XD1XD0XD7XD6XD5XD4XD3XD2XD1XD0XIOWXIORIOY3XA3XA2D7D6D5D4D3D2D1D0WRRDCSA1A0D7D6D5D4D3D2D1D0WRCSXIOWIOY2OUT示波器PB0PB1PB2PB3PB4PB5PB6PB7PA0PA1PA2PA3PA4PA5ABCDEFGDPX1X2X3X4X5X6LED顯示器8255ADAC0832系統(tǒng)總線系統(tǒng)總線系統(tǒng)總線系統(tǒng)總線1.5系統(tǒng)軟件設(shè)計軟件設(shè)計流圖初始化初始化8259、8255、8253、0832輸入頻率并將計算所得計數(shù)初值寫入相應(yīng)的8253控制字主程序(無限循環(huán)程序)有中斷關(guān)電源,退出系統(tǒng)響應(yīng)中斷,保護(hù)斷點進(jìn)入中斷程序,向0832輸出波結(jié)束中斷開始NY圖4軟件設(shè)計流圖二實踐部分2.1系統(tǒng)硬件原理簡介(一)可編程并行I/O接口芯片8255A8255A可編程并行I/O接口芯片,為40個引腳的雙列直插芯片8255A具有3個相互獨立的輸入/輸出通道端口,三種工作方式。方式0——基本輸入輸出方式;方式1——選通輸入/出方式;方式2——雙向選通輸入/輸出方式;圖58255圖58255A引腳圖引腳功能:RESET:復(fù)位信號,高電平有效,所有內(nèi)部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成輸入方式。RD:讀命令信號輸入,低電平有效,用來控制數(shù)據(jù)由8255A讀WR:寫命令信號輸入,地點平有效,用來控制寫到8255ACS:片選信號輸入,經(jīng)過譯碼器與地址總線相連D0~D7:三態(tài)雙向數(shù)據(jù)總線,8255與CPU數(shù)據(jù)傳送的通道,實現(xiàn)8位數(shù)據(jù)的讀/寫操作,控制字和狀態(tài)信息也經(jīng)過數(shù)據(jù)總線傳送。(二)可編程定時/計數(shù)器Intel8253Intel8253是一種能夠完成定時和計數(shù)的芯片,8253內(nèi)部有3個16位計數(shù)器通道,經(jīng)過對她們編程,每個計數(shù)器能夠按照6種工作方式工作,而且都能夠按2或10進(jìn)制格式進(jìn)行計數(shù),最高頻率為2HZ。8253還能夠用于許多其它場合,比如可作編程方波發(fā)生器,分頻器等。圖68253圖68253引腳圖引腳功能:1、數(shù)據(jù)緩沖總線數(shù)據(jù)總線緩沖器是8253與系統(tǒng)總線相連時使用的接口電路,它由8位雙相三態(tài)緩沖器構(gòu)成,CPU用輸入輸出指令對8253進(jìn)行讀寫操作的信息都由8位數(shù)據(jù)總線傳輸:(1)CPU在對8253進(jìn)行初始化編程時,向她寫入控制字。(2)CPU向某一計時器寫入計數(shù)初值。(3)從計數(shù)器讀出計數(shù)值。2、讀寫控制邏輯讀寫控制邏輯接受系統(tǒng)控制總線送來的輸入信號,經(jīng)由組合后形成控制信號,對各部分操作進(jìn)行控制??山邮艿男盘栍校?1)CS片選,低電平有效,由數(shù)據(jù)總線經(jīng)由IO端口譯碼電路產(chǎn)生。只有CS低電平時,CPU才能對8253進(jìn)行讀寫操作。(2)RD讀信號,低電平有效,當(dāng)RD位地電平時,表示CPU正在讀取所選定的計數(shù)器的通道的內(nèi)容。(3)WR寫信號,低電平有效。當(dāng)WR為低電平時,表示CPU正在將計數(shù)器初值寫入所選中的通道口中,或者將控制字寫入內(nèi)部寄存器中。(4)A1A2端口選擇信號,改變它的值,來選擇8253內(nèi)三個計數(shù)器通道。如果8253和與8位數(shù)據(jù)總線的微機(jī)相連,只要將A1A0分別與地址總線相聯(lián)。如果系統(tǒng)采用的是8086CPU,則數(shù)據(jù)總線為16位,傳輸數(shù)據(jù)時,總是將低8位數(shù)據(jù)送往偶地址,將高8位送往奇地址。3、計數(shù)器8253內(nèi)部包含三個完全相同俄計數(shù)器定時器通道,對3個通道的操作是完全獨立的。每個通道都包含1個8位的控制字寄存器,1個16位的減寄存器,和一個鎖存器,執(zhí)行部件是一個16位的減法計數(shù)器。每個通道工作時,對輸入到CLK引腳上的脈沖按2進(jìn)制或10進(jìn)制格式進(jìn)行計數(shù)。每當(dāng)輸入一個時鐘脈沖,計數(shù)器減1,當(dāng)計數(shù)器的值減為0時從,從OUT引腳輸出一個脈沖信號。GATE引腳上的門控制信號,決定她是否允許計數(shù)。(三)可編程中斷控制器8259A8259A是8086/8088系列的可編程中斷控制器,8259A為28個引腳的雙列直插芯片。圖78259A圖78259A引腳圖主要功能:(1)據(jù)8級優(yōu)先級控制,經(jīng)過聯(lián)級能夠擴(kuò)展到64級優(yōu)先控制。(2)每一級中斷可由程序單獨屏蔽或允許。(3)可提供中斷類型號傳送給CPU。(4)能夠經(jīng)過編程選擇多種不同工作方式。引腳功能:D7-D0:雙向數(shù)據(jù)線,三態(tài),與數(shù)據(jù)總線相連。IR7-IR0:外設(shè)的中斷請求信號輸入端,輸入,中斷請求:能夠是電平觸發(fā),或者邊緣觸發(fā)。RD:讀命令信號,輸入,低電平有效,用來控制數(shù)據(jù)由8259A讀WR:寫命令信號,輸入,地點平有效,用來控制寫到8259CS:片選信號,輸入,經(jīng)過譯碼器與地址總線相連INT:向CPU發(fā)出中斷請求信號,輸出,與CPU的INTR相連INTA:CPU給8259A的中斷響應(yīng)信號,輸入。(四)D/A轉(zhuǎn)換器DAC0832NSC公司生產(chǎn)的DAC0832,是一種內(nèi)部帶有數(shù)據(jù)輸入寄存器的8位D/A轉(zhuǎn)化器,采用CMOS工藝制成,芯片內(nèi)部R-2R梯形電阻網(wǎng)絡(luò),用于對參考電壓產(chǎn)生的電壓進(jìn)行分流,完成模數(shù)轉(zhuǎn)換,轉(zhuǎn)換結(jié)果以一組差動電流IOUT1、IOUT2輸出。引腳的功能:VREF:參考電壓輸入端。根據(jù)需要一定大小的電壓,由于它是轉(zhuǎn)換的基準(zhǔn),要求數(shù)值正確,穩(wěn)定性好。VCC:工作電壓輸入端。AGAN為模擬地,DGAN為數(shù)字地。在模擬電路中,所有的模擬地要連在一起然后將模擬地,數(shù)字地連接到一個公共接地點。DI7-DI0:數(shù)據(jù)輸入??芍苯舆B接到數(shù)據(jù)總線。IOUT1IOUT2:互補的電流輸出端。為了輸出模擬電壓,需加轉(zhuǎn)換電路。圖8DAC0832圖8DAC0832引腳圖2.2程序調(diào)試由于此次課程設(shè)計涉及內(nèi)容較多程序較長,因此不適合采用整體調(diào)試的方式。因此,采用先逐次調(diào)試獨立功能模塊,再調(diào)試組合模塊,最后調(diào)試整體程序的方法。具體過程如下所示:1、調(diào)試0832產(chǎn)生三種波形程序2、調(diào)試輸入頻率計算計數(shù)初值程序3、調(diào)試8253輸出方波程序4、調(diào)試8259產(chǎn)生中斷響應(yīng)程序5、調(diào)試8255經(jīng)過LED顯示數(shù)據(jù)程序6、調(diào)試輸入頻率計算計數(shù)初值并經(jīng)過LED顯示數(shù)據(jù)程序7、調(diào)試8253使8259產(chǎn)生中斷的程序8、調(diào)試整體程序2.3軟件系統(tǒng)的使用說明經(jīng)過鍵盤輸入要輸出的波形的頻率,然后選擇輸出的波形,LED數(shù)碼顯示管上能夠顯示輸入的頻率,模擬示波器顯示DAC0832AUTO端口輸出的波形。三課程設(shè)計結(jié)果分析3.1實驗結(jié)果圖9程序運行截圖圖10矩形波圖11三角波圖12正弦波3.2結(jié)果分析運行程序時,分別產(chǎn)生100HZ、500HZ、1000HZ、1500HZ、1600HZ的波形,結(jié)果發(fā)現(xiàn)100HZ--1500HZ的波形頻率與所設(shè)定的頻率一致或有極小的偏差,但從1600HZ開始誤差逐漸變大,遠(yuǎn)遠(yuǎn)偏離所設(shè)定的頻率,且小于所設(shè)定頻率。究其原因是:執(zhí)行中斷程序的時間與中斷周期的比值越來越大,或者說隨著頻率增大執(zhí)行中斷響應(yīng)的時間對輸出波形頻率的影響越大。因此,頻率越高誤差越大。改進(jìn)方式:精簡中斷服務(wù)程序,減小程序執(zhí)行時間;在0832輸出端加上倍頻器,減小0832的輸出頻率,以此降低誤差。四課程設(shè)計總結(jié)在這次實習(xí)中,我鞏固了微機(jī)課中所學(xué)的知識,了解了各種芯片的的用法,各個接口的名稱和功能。進(jìn)一步鍛煉了在微型計算機(jī)應(yīng)用方面的實際工作能力,強化了對微機(jī)原理學(xué)科內(nèi)容的認(rèn)識并擴(kuò)展了知識面。經(jīng)過設(shè)計實驗,使我掌握了模擬量輸入/輸出通道的設(shè)計,常見控制程序的設(shè)計方法,數(shù)據(jù)處理及非線性補償技術(shù),以及數(shù)字控制器的設(shè)計方法。本設(shè)計從幾個基礎(chǔ)的部分著手總結(jié)綜合運用各種資料最后完成一個數(shù)字信號發(fā)生器系統(tǒng)。經(jīng)過這次課程設(shè)計使我懂得了理論與實際相結(jié)合的重要性,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才是真正的知識,才能提高自己的實際動手能力和獨立思考的能力。而且在做課程設(shè)計的過程中,不但是考驗自己所學(xué)的《微機(jī)原理與接口技術(shù)》知識,更是要鍛煉自己的分析問題的能力和解決實際問題的能力,而在在此次課程設(shè)計過程中得到了充分的體現(xiàn)。在此次設(shè)計中體也會到了交流知識的重要性,在千篇一律的設(shè)計中,顯示自己的特色,在實用性和執(zhí)行效率間取得平衡,是設(shè)計的關(guān)鍵所在。經(jīng)過這次課程設(shè)計,使我得到了一次用專業(yè)知識、專業(yè)技能分析和解決問題全面系統(tǒng)的鍛煉。使我更加深刻的了解微機(jī)原理與接口技術(shù),以及在常見編程設(shè)計思路技巧(特別是匯編語言)的掌握方面都能向前邁了一大步,為日后成為合格的應(yīng)用型人才打下良好的基礎(chǔ)。五附錄5.1源程序及說明;****************根據(jù)查看端口資源修改下列符號值*******************IOY0EQU3000H;片選IOY0對應(yīng)的端口始地址MY8259_ICW1EQUIOY0+00H;實驗系統(tǒng)中8259的ICW1端口地址MY8259_ICW2EQUIOY0+04H;實驗系統(tǒng)中8259的ICW2端口地址MY8259_ICW3EQUIOY0+04H;實驗系統(tǒng)中8259的ICW3端口地址MY8259_ICW4EQUIOY0+04H;實驗系統(tǒng)中8259的ICW4端口地址MY8259_OCW1EQUIOY0+04H;實驗系統(tǒng)中8259的OCW1端口地址MY8259_OCW2EQUIOY0+00H;實驗系統(tǒng)中8259的OCW2端口地址MY8259_OCW3EQUIOY0+00H;實驗系統(tǒng)中8259的OCW3端口地址;***************************************************************IOY1EQU3040H;片選IOY1對應(yīng)的端口始地址MY8254_COUNT0EQUIOY1+00H*4;8254計數(shù)器0端口地址MY8254_COUNT1EQUIOY1+01H*4;8254計數(shù)器1端口地址MY8254_COUNT2EQUIOY1+02H*4;8254計數(shù)器2端口地址MY8254_MODEEQUIOY1+03H*4;8254控制寄存器端口地址;***************************************************************IOY2EQU3080H;片選IOY2對應(yīng)的端口始地址MY8255_AEQUIOY2+00H*4;8255的A口地址MY8255_BEQUIOY2+01H*4;8255的B口地址MY8255_CEQUIOY2+02H*4;8255的C口地址MY8255_MODEEQUIOY2+03H*4;8255的控制寄存器地址;***************************************************************IOY3EQU30C0H;片選IOY3對應(yīng)的端口始地址DA0832EQUIOY3+00H*4;DA0832的端口地址;***************************************************************STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSDATA1SEGMENTSINBUFDB80H,8CH,98H,0A5H,0B0H,0BCH,0C7H,0D1H;SINBUF正弦波64點采樣值DB0DAH,0E2H,0EAH,0F0H,0F6H,0FAH,0FDH,0FFHDB0FFH,0FDH,0FAH,0F6H,0F0H,0EAH,0E2H,0DAHDB0D1H,0C7H,0BCH,0B0H,0A5H,98H,8CH,80HDB7FH,73H,67H,5AH,4FH,43H,38H,2EHDB25H,1DH,15H,0FH,09H,05H,02H,00HDB00H,02H,05H,09H,0FH,15H,1DH,25HDB2EH,38H,43H,4FH,5AH,67H,73H,7FHSANBUFDB00H,08H,10H,18H,20H,28H,30H,38H;SANBUF三角波64點采樣值DB40H,48H,50H,58H,60H,68H,70H,78HDB80H,88H,90H,98H,0A0H,0A8H,0B0H,0B8HDB0C0H,0C8H,0D0H,0D8H,0E0H,0E8H,0F0H,0F8HDB0F8H,0F0H,0E8H,0E0H,0D8H,0D0H,0C8H,0C0HDB0B8H,0B0H,0A8H,0A0H,98H,90H,88H,80HDB78H,70H,68H,60H,58H,50H,48H,40HDB38H,30H,28H,20H,18H,10H,08H,00HFANBUFDB32DUP(0),32DUP(0FFH);FANBUF方波64點采樣值LEDTABDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;共陰極數(shù)碼管0-F對應(yīng)輸入碼值DB7FH,6FH,77H,7CH,39H,5EH,79H,71HMESDB'Pressanykeytoexit!',0AH,0DH,0AH,0DH,'$';提示語任意按鍵退出DOS系統(tǒng)MESS1DB0DH,0AH,'SQUARE1',0DH,0AH;功能鍵提示語DB'TRIANGLE2',0DH,0AHDB'SINE3',0DH,0AHDB'CHANGETHEFREQZ--4',0DH,0AHDB'EXIT5',0DH,0AH,'$'MESS2DB0DH,0AH,'INPUTTHEFREQZ:',0Ah,0DH,'$';提示輸入六位頻率FLAG4DB0H;判斷是否初次執(zhí)行顯示頻率FLAG5DB0H;判斷是否初次執(zhí)行輸入頻率CHOOSEDB0H;保存輸入的功能鍵JISHUDW0H;保存波形已經(jīng)輸出的頻率FREQZDW?;保存輸入的頻率COUNTDW?;保存根據(jù)輸入頻率所計算得的計數(shù)初值COUNT1DB?;計數(shù)初值低八位COUNT2DB?;計數(shù)初值高八位SHUJUDB10DUP(0);保存輸入頻率每位的真實值DATA1ENDSCODESEGMENTASSUMECS:CODE,DS:DATA1START:MOVAX,DATA1;將DATA1放入數(shù)據(jù)段MOVDS,AXP1:CALLINPUTMOVDX,MY8254_MODE;初始化8254工作方式MOVAL,34H;計數(shù)器0,方式2OUTDX,ALMOVDX,MY8254_COUNT0;裝入計數(shù)初值MOVAL,COUNT1;裝入計數(shù)初值低字節(jié)OUTDX,ALMOVAL,COUNT2;裝入計數(shù)初值高字節(jié)OUTDX,ALCMPFLAG5,1;判斷是否初次執(zhí)行輸入頻率JZAA;不是則跳轉(zhuǎn)到等待輸入功能鍵CALLDISPLY;調(diào)用數(shù)碼管顯示輸入頻率程序KL:CMPFLAG4,1;判斷是否初次執(zhí)行顯示頻率JZAA;不是則跳轉(zhuǎn)到等待輸入功能鍵LEADX,MESS1;顯示輸入頻率的提示語MOVAH,09HINT21HQUERY1:MOVDX,MY8259_ICW1;初始化實驗系統(tǒng)中8259的ICW1MOVAL,13H;邊沿觸發(fā)、單片8259、需要ICW4OUTDX,ALMOVDX,MY8259_ICW2;初始化實驗系統(tǒng)中8259的ICW2MOVAL,08HOUTDX,ALMOVDX,MY8259_ICW4;初始化實驗系統(tǒng)中8259的ICW4MOVAL,01H;非自動結(jié)束EOIOUTDX,ALMOVDX,MY8259_OCW1;初始化實驗系統(tǒng)中8259的OCW1MOVAL,0FCH;打開IR0和IR1的屏蔽位QUERY:MOVAH,1;判斷是否有按鍵按下INT16HJNZAA;有按鍵則退出MOVDX,MY8259_OCW3;向8259的OCW3發(fā)送查詢命令MOVAL,0CHOUTDX,ALINAL,DX;讀出查詢字TESTAL,80H;判斷中斷是否已響應(yīng)JZQUERY;沒有響應(yīng)則繼續(xù)查詢 ANDAL,03HCMPAL,00HJEIR0ISR;若為IR0請求,跳到IR0處理程序JMPQUERY;若不是則跳回繼續(xù)等待QUIT:MOVAX,4C00H;結(jié)束程序退出INT21HAA:MOVFLAG4,0H;將標(biāo)志位清零以便下次判斷MOVFLAG5,0H;將標(biāo)志位清零以便下次判斷MOVAH,01H;輸入功能鍵INT21HMOVCHOOSE,AL;將功能鍵保存JMPQUERY1;跳轉(zhuǎn)到等待程序DISPLYPROCNEAR;數(shù)碼管顯示程序MOVDX,MY8255_MODE;給8255寫入控制字MOVAX,10000000B;方式0,A口B口輸出 OUTDX,ALAA0: MOVAH,1;判斷是否有按鍵按下INT16HJNZKL;有按鍵則返回MOVSI,OFFSETSHUJU;將保存頻率的內(nèi)存地址給SI MOVAH,0FEH;位選初值 MOVCX,0006H;位選次數(shù)AA1:MOVAL,AH;AL保存位選 MOVDX,MY8255_A;端口地址位操作OUTDX,ALROLAL,01H;下一個位地址MOVAH,AL ;AH保存位選MOVAL,[SI];[地址]取待顯示內(nèi)容 MOVBX,OFFSETLEDTAB;將數(shù)字換成顯示的七段碼 XLAT MOVDX,MY8255_B ;數(shù)碼管輸入的端口地址 OUTDX,ALCALLDELAY;執(zhí)行延時 INCSI;指向下一個內(nèi)存單元 LOOPAA1;循環(huán)點亮下一個LED JMPAA0DISPLYENDP IR0ISR:;中斷服務(wù)程序MOVAL,CHOOSE;將輸入的功能鍵取出至ALCMPAL,'1';若為1輸出方波JZSQUARECMPAL,'2';若為2輸出三角波JZTRIANGLECMPAL,'3';若為3輸出正弦波JZSINECMPAL,'4';若為4則跳到X5JZX5CMPAL,5';若為5則退出JZQUITX5:MOVFLAG5,1;標(biāo)志位置1JMPP1SQUARE:;方波產(chǎn)生程序MOVSI,JISHU;將計數(shù)值放入SIMOVAL,[FANBUF+SI];將輸出的數(shù)值放入ALMOVDX,DA0832;將輸出值寫入0832OUTDX,ALINCSI;指向下個輸出值CMPSI,64;判斷是否已經(jīng)輸出64點JNZLO;若不是則跳轉(zhuǎn)L0MOVSI,0H;否則SI清零LO:MOVJISHU,SI;將計數(shù)值保存JMPEOI;跳轉(zhuǎn)到中斷結(jié)束TRIANGLE:MOVSI,JISHU;將計數(shù)值放入SIMOVAL,[SANBUF+SI];將輸出的數(shù)值放入ALMOVDX,DA0832;將輸出值寫入0832OUTDX,ALINCSI;指向下個輸出值CMPSI,64;判斷是否已經(jīng)輸出64點JNZLO;若不是則跳轉(zhuǎn)L0MOVSI,0H;否則SI清零L1:MOVJISHU,SI;將計數(shù)值保存JMPEOI;跳轉(zhuǎn)到中斷結(jié)束SINE:MOVSI,JISHU;將計數(shù)值放入SIMOVAL,[SINBUF+SI];將輸出的數(shù)值放入ALMOVDX,DA0832;將輸出值寫入0832OUTDX,ALINCSI;指向下個輸出值CMPSI,64;判斷是否已經(jīng)輸出64點JNZLO;若不是則跳轉(zhuǎn)L0MOVSI,0H;否則SI清零L2:MOVJISHU,SI;將計數(shù)值保存JMPEOI;跳轉(zhuǎn)到中斷結(jié)束EOI:MOVDX,MY8259_OCW2;向?qū)嶒炏到y(tǒng)中8259發(fā)送中斷結(jié)束命令MOVAL,20HOUTDX,ALJMPQUERYINPUTPROCNEAR;輸入存儲程序XORDX,DX;DX清零XORCX,CX;CX清零MOVDX,OFFSETMESS2;提示輸入頻率MOVAH,09HINT21HMOVDL,0DH;換行MOVAH,02HINT21HMOVDL,0AHMOVAH,02HINT21HMOVSI,OFFSETSHUJU;SI指向數(shù)據(jù)起始地址

溫馨提示

  • 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

提交評論