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

下載本文檔

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

文檔簡介

1、微機(jī)原理課程設(shè)計波形發(fā)生器基本要求:( 1)通過按鍵選擇波形,波形選擇(方波、三角波) 。8255 A 和 0832( 2)通過按鍵設(shè)定波形的頻率,同時波形頻率在數(shù)碼管上顯示。8255A( 3)頻率設(shè)定后,通過 8253 精確計時來設(shè)置波形寬度大小, 比如方波的占空比。( 4) 8259A 產(chǎn)生中斷,用示波器顯示輸出波形。附加要求 :( 1)通過按鍵可以增大或者降低頻率;( 2)顯示正弦波。目錄一理論部分1.121.221.32(1)2(2)31.441.55二實踐部分2.162.292.39三課程設(shè)計結(jié)果分析3.1103.211四 課程設(shè)計總結(jié)11五 附錄5.112第 1頁波形發(fā)生器一 理論

2、部分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)用方面的實際工作能力,強(qiáng)化本學(xué)科內(nèi)容并擴(kuò)展知識面。( 3)體驗分析問題、提出解決方案、通過編程等手段實現(xiàn)解決方案、不斷調(diào)試最終達(dá)到設(shè)計要求的全過程。( 4)培養(yǎng)學(xué)生的創(chuàng)造力和對專業(yè)的適應(yīng)性。1.2 課程設(shè)計的內(nèi)容和要求1、通過按鍵選擇波形,波形選擇(方波、三角波、正弦波)。8255 A 和 08322、通過按鍵設(shè)定波形的

3、頻率,同時波形頻率在數(shù)碼管上顯示。8255A3、頻率設(shè)定后,通過8253 精確計時來設(shè)置波形寬度大小,比如方波的占空比。4、8259A 產(chǎn)生中斷,用示波器顯示輸出波形。5、通過按鍵可以增大或者降低頻率;6、畫出電路原理圖,說明工作原理,編寫程序及程序流程圖。1.3 總體設(shè)計方案(1)設(shè)計思想及方案論證由于要求達(dá)到模擬信號波形發(fā)生, 因此要由 D/A 轉(zhuǎn)換芯片 0832 來來完成此項任務(wù),由 8253 形成波形的主要做法是:先輸出一個下限電平,將其保持 t 然后輸出一個稍高的電平,在保持t,然后重復(fù)此過程,因此需要延長 0832 輸入數(shù)據(jù)的時間間隔來改變頻率。如圖 1 信號發(fā)生波形圖所示。 08

4、32 輸入的數(shù)據(jù)的延時可以通過軟件完成,也可以通過硬件完成。由于實驗要求輸出的波的頻率可以改變,且精確,所以選用硬件延時+5V0V圖 1 信號發(fā)生波形圖硬件延時主要由計時器 8253 和中斷控制器 8259 來實現(xiàn)。由 8253 輸出的方波的高低電平,來觸發(fā) 8259 的 IR0 端, 8259 給 CPU 中斷信號, CPU 中斷來執(zhí)行相應(yīng)的中斷子程序,中斷子程序為向 0832 輸出數(shù)據(jù)的程序,通過選擇此程序可以產(chǎn)生鋸齒波,方波,正弦波。由于0832產(chǎn)生的方波的頻率可以控制, 所以每次中斷執(zhí)行波形發(fā)生程序的時間間隔可以精確控制。 以此來控制輸出的波形頻率。最后通過 8255 驅(qū)動 LED 數(shù)

5、碼顯示管,實現(xiàn)對輸入的頻率的顯示,由鍵盤直接輸入波形頻率,通過 LED 數(shù)碼顯示管顯示。第 2頁(2)總體設(shè)計方案框圖總體設(shè)計就是先由 8255 驅(qū)動 LED 顯示輸入的頻率,再通過 8253 定時中斷,中斷的子程序來執(zhí)行輸出,輸出的信號經(jīng)過信號發(fā)生器形成波形。CLK(1.8432MHZ)IntelCPUDAC0832Intel82538259A8086LED數(shù)碼顯示管Intel8255A示波器圖 2 硬件簡圖第 3頁1.4 系統(tǒng)硬件設(shè)計硬件設(shè)計電路圖XD7XD6系XD5XD4統(tǒng)XD3XD2總XD1XD0XIOW 線XIORIOY0XA2INTRXD7XD6系XD5XD4統(tǒng)XD3XD2總XD1

6、XD0XIOW 線XIORIOY3XA3XA2XD7XD6系XD5XD4統(tǒng)XD3XD2總XD1XD0線XIOWIOY2D7D6D5D4D3D2D1D0WRRDCSA0INTD7D6D5D4D3D2D1D0WRRDCSA1A0D7D6D5D4D3D2D1D0WRCSD7D6IR0OUT0D5D41.8432MHZCLK0D3D2D1+5VGATE0D0WRRD8259A8254CSA1A0PB0APB1BPB2CLED 顯示器PB3DPB4EPB5FPB6G8255ADPPB7PA0X1PA1X2PA2X3PA3X4PA4X5PA5X6DAC0832OUT示波器圖 3硬件設(shè)計電路圖XD7XD6系

7、 XD5XD4統(tǒng) XD3 XD2總 XD1XD0線 XIOW XIOR IOY1 XA3 XA2第 4頁1.5 系統(tǒng)軟件設(shè)計軟件設(shè)計流圖開始初始化 8259、8255 、8253、0832輸入頻率并將計算所得計數(shù)初值寫入相應(yīng)的8253 控制字主程序(無限循環(huán)程序)N有中斷Y響應(yīng)中斷,保護(hù)斷點(diǎn)進(jìn)入中斷程序,向0832 輸出波結(jié)束中斷關(guān)電源,退出系統(tǒng)圖 4軟件設(shè)計流圖第 5頁二 實踐部分2.1 系統(tǒng)硬件原理簡介(一)可編程并行I/O 接口芯片 8255A8255A 可編程并行 I/O 接口芯片,為 40 個引腳的雙列直插芯片8255A 具有 3 個相互獨(dú)立的輸入 /輸出通道端口,三種工作方式。方式

8、 0 基本輸入輸出方式;方式 1 選通輸入 /出方式;方式 2 雙向選通輸入 /輸出方式;圖 5 8255A 引腳圖引腳功能:RESET:復(fù)位信號,高電平有效,所有內(nèi)部寄存器(包括控制寄存器)均被清除,所有 I/O 口均被置成輸入方式。RD:讀命令信號輸入,低電平有效,用來控制數(shù)據(jù)由8255A 讀WR:寫命令信號輸入,地點(diǎn)平有效,用來控制寫到8255ACS:片選信號輸入,通過譯碼器與地址總線相連D0D7:三態(tài)雙向數(shù)據(jù)總線, 8255 與 CPU 數(shù)據(jù)傳送的通道,實現(xiàn) 8 位數(shù)據(jù)的讀 /寫操作,控制字和狀態(tài)信息也通過數(shù)據(jù)總線傳送。(二)可編程定時 /計數(shù)器 Intel8253Intel8253

9、是一種能夠完成定時和計數(shù)的芯片, 8253 內(nèi)部有 3 個 16 位計數(shù)器通道,通過對他們編程,每個計數(shù)器可以按照 6 種工作方式工作,并且都可以按 2 或 10 進(jìn)制格式進(jìn)行計數(shù),最高頻率為 2HZ 。8253 還可以用于許多其他場合,比如可作編程方波發(fā)生器,分頻器等。第 6頁圖 6 8253 引腳圖引腳功能: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 向某一計時

10、器寫入計數(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

11、內(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 個通道的操作是完全獨(dú)立的。每個通道都包含 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 引

12、腳輸出一個脈沖信號。GATE 引腳上的門控制信號,決定他是否允許計數(shù)。第 7頁(三)可編程中斷控制器8259A8259A 是 8086/8088 系列的可編程中斷控制器,8259A 為 28 個引腳的雙列直插芯片。圖 7 8259A 引腳圖主要功能:( 1)據(jù) 8 級優(yōu)先級控制,通過聯(lián)級可以擴(kuò)展到64 級優(yōu)先控制。( 2)每一級中斷可由程序單獨(dú)屏蔽或允許。( 3)可提供中斷類型號傳送給 CPU。( 4)可以通過編程選擇多種不同工作方式。引腳功能:D7-D0:雙向數(shù)據(jù)線,三態(tài),與數(shù)據(jù)總線相連。IR7-IR0:外設(shè)的中斷請求信號輸入端, 輸入,中斷請求 :可以是電平觸發(fā), 或者邊緣觸發(fā)。RD:讀命

13、令信號,輸入,低電平有效,用來控制數(shù)據(jù)由8259A 讀WR:寫命令信號,輸入,地點(diǎn)平有效,用來控制寫到8259CS:片選信號,輸入,通過譯碼器與地址總線相連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 : 參

14、考電壓輸入端。根據(jù)需要一定大小的電壓, 由于它是轉(zhuǎn)換的基準(zhǔn), 要求數(shù)值正確,穩(wěn)定性好。VCC:工作電壓輸入端。AGAN 為模擬地,DGAN 為數(shù)字地。在模擬電路中,所有的模擬地要連在一起然后將模擬地,數(shù)字地連接到一個公共接地點(diǎn)。DI7-DI0 :數(shù)據(jù)輸入??芍苯舆B接到數(shù)據(jù)總線。第 8頁IOUT1 IOUT2:互補(bǔ)的電流輸出端。為了輸出模擬電壓,需加轉(zhuǎn)換電路。圖 8DAC0832 引腳圖2.2 程序調(diào)試由于此次課程設(shè)計涉及內(nèi)容較多程序較長, 所以不適合采用整體調(diào)試的方式。 因此,采用先逐次調(diào)試獨(dú)立功能模塊,再調(diào)試組合模塊,最后調(diào)試整體程序的方法。具體過程如下所示:1、調(diào)試 0832 產(chǎn)生三種波形

15、程序2、調(diào)試輸入頻率計算計數(shù)初值程序3、調(diào)試 8253 輸出方波程序4、調(diào)試 8259 產(chǎn)生中斷響應(yīng)程序5、調(diào)試 8255 通過 LED 顯示數(shù)據(jù)程序6、調(diào)試輸入頻率計算計數(shù)初值并通過LED 顯示數(shù)據(jù)程序7、調(diào)試 8253 使 8259 產(chǎn)生中斷的程序8、調(diào)試整體程序2.3 軟件系統(tǒng)的使用說明通過鍵盤輸入要輸出的波形的頻率,然后選擇輸出的波形, LED 數(shù)碼顯示管上可以顯示輸入的頻率,模擬示波器顯示 DAC0832 AUTO 端口輸出的波形。第 9頁三 課程設(shè)計結(jié)果分析3.1實驗結(jié)果圖 9程序運(yùn)行截圖圖 10矩形波圖 11三角波第10頁圖 12正弦波3.2結(jié)果分析運(yùn)行程序時,分別產(chǎn)生 100H

16、Z、 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é)的知識, 了解了各種芯片的的用法, 各個接口的名稱

17、和功能。進(jìn)一步鍛煉了在微型計算機(jī)應(yīng)用方面的實際工作能力, 強(qiáng)化了對微機(jī)原理學(xué)科內(nèi)容的認(rèn)識并擴(kuò)展了知識面。通過設(shè)計實驗,使我掌握了模擬量輸入 /輸出通道的設(shè)計,常用控制程序的設(shè)計方法,數(shù)據(jù)處理及非線性補(bǔ)償技術(shù),以及數(shù)字控制器的設(shè)計方法。本設(shè)計從幾個基礎(chǔ)的部分著手總結(jié)綜合運(yùn)用各種資料最后完成一個數(shù)字信號發(fā)生器系統(tǒng)。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合的重要性,只有把所學(xué)的理論知識與實踐相結(jié) 合起來,從理論中得出結(jié)論,才是真正的知識,才能提高自己的實際動手能力和獨(dú)立思考的能力。而且在做課程設(shè)計的過程中, 不僅是考驗自己所學(xué)的 微機(jī)原理與接口技術(shù) 知識,更是要鍛煉自己的分析問題的能力和解決實際問

18、題的能力, 而在在此次課程設(shè)計過程中得到了充分的體現(xiàn)。在此次設(shè)計中體也會到了交流知識的重要性, 在千篇一律的設(shè)計中, 顯示自己的特色, 在實用 性和執(zhí)行效率間取得平衡,是設(shè)計的關(guān)鍵所在。通過這次課程設(shè)計,使我得到了一次用專業(yè)知識、專業(yè)技能分析和解決問題全面系統(tǒng)的鍛煉。 使我更加深刻的了解微機(jī)原理與接口技術(shù),以及在常用 編程設(shè)計思路技巧(特別是匯編語言)的掌握方面都能向前邁了一大步,為日后成為合格的應(yīng)用型 人才打下良好的基礎(chǔ)。第11頁五附錄5.1源程序及說明;*根據(jù)查看端口資源修改下列符號值 *IOY0EQU3000H;片選 IOY0 對應(yīng)的端口始地址MY8259_ICW1EQUIOY0+00H

19、; 實驗系統(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 端口地址;*IOY1EQ

20、U3040H; 片選 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_CEQUI

21、OY2+02H*4;8255 的 C 口地址MY8255_MODEEQUIOY2+03H*4;8255 的控制寄存器地址;*IOY3EQU30C0H;片選 IOY3 對應(yīng)的端口始地址DA0832EQUIOY3+00H*4;DA0832 的端口地址;*STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDATA1SEGMENTSINBUF DB 80H,8CH,98H,0A5H,0B0H,0BCH,0C7H,0D1H;SINBUF 正弦波 64 點(diǎn)采樣值DB 0DAH,0E2H,0EAH,0F0H,0F6H,0FAH,0FDH,0FFHDB 0FFH,0FDH

22、,0FAH,0F6H,0F0H,0EAH,0E2H,0DAHDB 0D1H,0C7H,0BCH,0B0H,0A5H,98H,8CH,80HDB 7FH,73H,67H,5AH,4FH,43H,38H,2EHDB 25H,1DH,15H,0FH,09H,05H,02H,00HDB 00H,02H,05H,09H,0FH,15H,1DH,25HDB 2EH,38H,43H,4FH,5AH,67H,73H,7FHSANBUF DB 00H,08H,10H,18H,20H,28H,30H,38H;SANBUF 三角波 64 點(diǎn)采樣值第12頁DB 40H,48H,50H,58H,60H,68H,70H,

23、78HDB 80H,88H,90H,98H,0A0H,0A8H,0B0H,0B8HDB 0C0H,0C8H,0D0H,0D8H,0E0H,0E8H,0F0H,0F8HDB 0F8H,0F0H,0E8H,0E0H,0D8H,0D0H,0C8H,0C0HDB 0B8H,0B0H,0A8H,0A0H,98H,90H,88H,80HDB 78H,70H,68H,60H,58H,50H,48H,40HDB 38H,30H,28H,20H,18H,10H,08H,00HFANBUF DB 32 DUP(0),32 DUP(0FFH);FANBUF 方波 64 點(diǎn)采樣值LEDTAB DB 3FH,06H,5

24、BH,4FH,66H,6DH,7DH,07H;共陰極數(shù)碼管 0-F 對應(yīng)輸入碼值DB 7FH,6FH,77H,7CH,39H,5EH,79H,71HMESDB 'Press any key to exit!',0AH,0DH,0AH,0DH,'$'提示語任意按鍵退出DOS 系統(tǒng)MESS1 DB 0DH,0AH,'SQUARE-1',0DH,0AH;功能鍵提示語DB 'TRIANGLE-2',0DH,0AHDB 'SINE-3',0DH,0AHDB 'CHANGETHE FREQZ-4',0DH,0A

25、HDB 'EXIT-5',0DH,0AH,'$'MESS2DB 0DH,0AH,'INPUT THE FREQZ:',0Ah,0DH,'$' 提示輸入六位頻率FLAG4DB 0H; 判斷是否初次執(zhí)行顯示頻率FLAG5DB 0H; 判斷是否初次執(zhí)行輸入頻率CHOOSE DB 0H;保存輸入的功能鍵JISHUDW 0H; 保存波形已經(jīng)輸出的頻率FREQZDW ?; 保存輸入的頻率COUNTDW ?;保存根據(jù)輸入頻率所計算得的計數(shù)初值COUNT1 DB ?;計數(shù)初值低八位COUNT2 DB ?; 計數(shù)初值高八位SHUJUDB 10 DU

26、P(0);保存輸入頻率每位的真實值DATA1ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA1START: MOVAX,DATA1;將 DATA1 放入數(shù)據(jù)段MOVDS,AXP1:CALL INPUTMOV DX,MY8254_MODE;初始化 8254 工作方式MOV AL,34H;計數(shù)器 0,方式 2OUT DX,ALMOV DX,MY8254_COUNT0;裝入計數(shù)初值MOV AL,COUNT1;裝入計數(shù)初值低字節(jié)OUT DX,ALMOV AL,COUNT2;裝入計數(shù)初值高字節(jié)OUT DX,ALCMP FLAG5,1;判斷是否初次執(zhí)行輸入頻率JZ AA;不是則

27、跳轉(zhuǎn)到等待輸入功能鍵第13頁CALL DISPLY;調(diào)用數(shù)碼管顯示輸入頻率程序KL:CMP FLAG4,1;判斷是否初次執(zhí)行顯示頻率JZ AA;不是則跳轉(zhuǎn)到等待輸入功能鍵LEA DX,MESS1;顯示輸入頻率的提示語MOV AH,09HINT 21HQUERY1:MOV DX,MY8259_ICW1;初始化實驗系統(tǒng)中8259 的 ICW1MOVAL,13H;邊沿觸發(fā)、單片 8259、需要 ICW4OUTDX,ALMOVDX,MY8259_ICW2;初始化實驗系統(tǒng)中8259 的 ICW2MOVAL,08HOUTDX,ALMOVDX,MY8259_ICW4;初始化實驗系統(tǒng)中8259 的 ICW4M

28、OVAL,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;讀出查詢字TEST AL,80H;判斷中斷是否已響應(yīng)JZQUERY;沒有響應(yīng)則繼續(xù)查詢ANDAL,03HCMPAL,00HJEIR0ISR;若為 IR0 請求,跳到 IR0 處理程序JMPQUERY;若不是則

29、跳回繼續(xù)等待QUIT:MOVAX,4C00H;結(jié)束程序退出INT21HAA:MOV FLAG4,0H;將標(biāo)志位清零以便下次判斷MOV FLAG5,0H;將標(biāo)志位清零以便下次判斷MOV AH,01H;輸入功能鍵INT 21HMOV CHOOSE,AL;將功能鍵保存JMP QUERY1;跳轉(zhuǎn)到等待程序DISPLY PROC NEAR;數(shù)碼管顯示程序MOV DX,MY8255_MODE;給 8255 寫入控制字MOV AX,10000000B;方式 0,A 口 B 口輸出第14頁OUT DX,ALAA0:MOV AH,1;判斷是否有按鍵按下INT 16HJNZ KL; 有按鍵則返回MOV SI,OF

30、FSET SHUJU;將保存頻率的內(nèi)存地址給SIMOV AH,0FEH;位選初值MOV CX,0006H;位選次數(shù)AA1:MOV AL,AH;AL 保存位選MOV DX , MY8255_A;端口地址位操作OUT DX,ALROL AL,01H;下一個位地址MOV AH,AL;AH 保存位選MOV AL, SI; 地址 取待顯示內(nèi)容MOV BX ,OFFSET LEDTAB;將數(shù)字換成顯示的七段碼XLATMOV DX , MY8255_B;數(shù)碼管輸入的端口地址OUT DX,ALCALL DELAY;執(zhí)行延時INC SI;指向下一個內(nèi)存單元LOOP AA1;循環(huán)點(diǎn)亮下一個LEDJMPAA0DIS

31、PLYENDPIR0ISR:;中斷服務(wù)程序MOV AL,CHOOSE;將輸入的功能鍵取出至ALCMP AL,'1'若為 1 輸出方波JZSQUARECMP AL,'2'若為 2 輸出三角波JZTRIANGLECMP AL,'3'若為 3 輸出正弦波JZSINECMP AL,'4'若為 4 則跳到 X5JZX5CMP AL,5'若為 5 則退出JZQUITX5:MOV FLAG5,1;標(biāo)志位置 1JMP P1SQUARE:; 方波產(chǎn)生程序MOVSI,JISHU; 將計數(shù)值放入 SIMOVAL,FANBUF+SI;將輸出的數(shù)值

32、放入ALMOVDX,DA0832;將輸出值寫入 0832OUTDX,AL第15頁INCSI; 指向下個輸出值CMPSI,64; 判斷是否已經(jīng)輸出 64 點(diǎn)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 點(diǎn)JNZLO;若不是則跳轉(zhuǎn) L0MOVSI,0H;否則 SI 清零L1:MOVJISHU,SI;將計數(shù)值保存SINE:JMPEOI; 跳轉(zhuǎn)到中斷結(jié)束MOVS

溫馨提示

  • 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

提交評論