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

下載本文檔

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

文檔簡介

1、<p><b>  微機原理課程設(shè)計</b></p><p>  課設(shè)題目:數(shù)據(jù)采集系統(tǒng)三(中斷法)</p><p>  實驗者姓名: </p><p>  實驗者學(xué)號: </p><p>  學(xué)院: 電子信息工程學(xué)院 </p>

2、<p>  數(shù)據(jù)采集系統(tǒng)三(中斷法)</p><p><b>  一、實驗?zāi)康?lt;/b></p><p>  進一步掌握微機原理知識,了解微機在實時采集過程中的應(yīng)用,學(xué)習(xí)、掌握編程和程序調(diào)試方法。</p><p><b>  二、實驗內(nèi)容</b></p><p>  1、用中斷法,將ADC

3、0809通道0外接0 ~ 5V電壓,轉(zhuǎn)換成數(shù)字量后,在七段LED數(shù)碼管上,以小數(shù)點后兩位(幾十毫伏)的精度,顯示其模擬電壓的十進值;0809通道0的數(shù)字量以線性控制方式送DAC0832輸出,當通道0的電壓為5V時,0832的OUT為0V, 當通道0的電壓為0時,0832的OUT為2.5V;此模擬電壓再送到ADC 0809通道1,轉(zhuǎn)換后的數(shù)字量在CRT上以十六進制顯示。</p><p>  2、ADC 0809 的

4、CLK 脈沖,由定時器8254的OUT0提供;ADC 0809的EOC信號,用作8259中斷請求信號。</p><p>  3、要有較好的人機對話界面;控制程序的運行。</p><p><b>  三、總體設(shè)計</b></p><p>  1 、ADC 0809的IN0采集電位器0 — 5V電壓,IN1采集0832輸出的模擬量。</p&g

5、t;<p>  2 、DAC 0832將ADC 0809的IN0數(shù)字量后重新轉(zhuǎn)換成模擬量輸出。</p><p>  3、8259用于檢測ADC 0809轉(zhuǎn)換是否結(jié)束和向CPU發(fā)送INTR信號</p><p>  4、 8255為七段LED數(shù)碼管顯示提供顯示驅(qū)動信息。</p><p>  5、七段LED數(shù)碼管顯示ADC 0809的IN0的值。</p

6、><p>  6、8254提供ADC 0809的采樣時鐘脈沖。</p><p>  7、有良好的人—機對話界面。系統(tǒng)運行時,顯示主菜單,開始數(shù)據(jù)采集, 在數(shù)據(jù)采集時, 主鍵盤有鍵按下, 退出返回DOD系統(tǒng)。</p><p><b>  四、硬件設(shè)計</b></p><p>  因采用了PC機和微機實驗箱, 硬件電路設(shè)計相對比

7、較簡單, 主要利用微機實驗箱上的8255并行口、ADC 0809、DAC 0832、七段LED數(shù)碼管單元、8254定時/計數(shù)器、74LS574輸出接口、電位器等單元電路, 就構(gòu)成了數(shù)據(jù)采集系統(tǒng), 硬件電原理框圖4-3-1所示。</p><p><b>  五、軟件設(shè)計</b></p><p>  本設(shè)計通過軟件編程,實現(xiàn)模/數(shù)轉(zhuǎn)換器0809分別對IN0 0-5V直流電

8、壓的采樣,和經(jīng)0832線性控制后輸出電壓的IN1采樣,IN0的值轉(zhuǎn)換成十進制后,在七段數(shù)碼管上顯示; IN1的值在顯示器上顯示。CPU 根據(jù)IN0的值,使八位發(fā)光二極管根據(jù)題目的要求,指示相應(yīng)的范圍。</p><p><b>  1、設(shè)計思想</b></p><p>  數(shù)據(jù)采集系統(tǒng)分成四個功能模塊,分別是主程序模塊、量綱轉(zhuǎn)換模塊、數(shù)碼管顯示模塊、中斷服務(wù)子程序模塊。

9、</p><p><b>  (1)主程序模塊</b></p><p>  根據(jù)題目要求,采用中斷方式實現(xiàn)數(shù)據(jù)采集,因此可把讀取IN0的值并保存,和此數(shù)字量經(jīng)線性控制后送給0832輸出, 作為0809 IN1的模擬電壓和IN1的啟動、讀取以及IN0的BCD碼轉(zhuǎn)換, 放在中斷服務(wù)子程序模塊中完成。所以,在主程序模塊上主要實現(xiàn)啟動0809 IN0、顯示模塊的調(diào)用、和中斷結(jié)

10、束部分程序。</p><p><b>  鍵盤掃描模塊</b></p><p>  設(shè)置鍵盤掃描模塊,采用行列反轉(zhuǎn)發(fā),先PC4-PC7輸出低電平,然后讀入PC0-PC3.再讓PC0-PC3輸出低電平,讀入PC4-PC7.合并掃描值,獲得按鍵值。</p><p>  (3) 量綱轉(zhuǎn)換模塊</p><p>  量綱轉(zhuǎn)換模塊在

11、中斷服務(wù)程序內(nèi)完成,只要將IN0的數(shù)字量分別除以51, 商存入顯示IN0的個位存儲單元; 余數(shù)乘以十,再除以51, 商存入十分位存儲單元; 余數(shù)再乘以十,除以51, 若余數(shù)大于25,則商加1, 小于25則舍去, 這樣就達到四舍五入的精度, 再把商存入百分位存儲單元; 以供七段數(shù)碼管顯示時調(diào)用,BCD碼轉(zhuǎn)換模塊可參考圖10所示的流程圖。</p><p>  (4) 數(shù)碼管顯示模塊</p><p&

12、gt;  數(shù)碼管顯示模塊比較簡單,自編程序可參考實驗指導(dǎo)書圖1-6所示的流程圖,也可參考實驗8255并行口中的顯示模塊,應(yīng)注意的是在顯示個位時, 要加上小數(shù)點的顯示,這可以在查表獲取個位段碼后,再加上80H來實現(xiàn),注意每一位顯示后要適當延遲時間。</p><p>  (5) 中斷服務(wù)子程序模塊</p><p>  考慮到0832的輸出是0809 IN1的輸入,因此,為防止在執(zhí)行中斷服務(wù)子

13、程序時,二次進入中斷服務(wù)子程序, 故在進入中斷服務(wù)子程序后,應(yīng)關(guān)閉中斷,而在退出中斷前開中斷,以便下次中斷進入。中斷服務(wù)子程序模塊主要完成對IN0數(shù)據(jù)的讀取和保存,對IN1的啟動和讀取,對IN0數(shù)據(jù)的BCD轉(zhuǎn)換等任務(wù)。</p><p><b>  程序流程圖</b></p><p>  數(shù)據(jù)采集三主程序流程圖如圖4-3-2所示; 中斷服務(wù)子程序如圖4-3-3所示。數(shù)碼

14、管顯示子程序流程圖如圖3-4-7所示,鍵盤掃描流程圖如圖 4-3-4所示。</p><p>  圖4-3-2 數(shù)據(jù)采集三主程序流程圖</p><p>  圖4-3-4 鍵盤掃描程序流程圖</p><p>  六、試驗所遇問題及解決方法</p><p>  問題1:轉(zhuǎn)動電位器時數(shù)碼管電壓變化不靈敏,有很嚴重的遲滯現(xiàn)象,且輸出不穩(wěn)定。</

15、p><p>  分析:每次轉(zhuǎn)動電位器都對應(yīng)一次中斷請求,中斷數(shù)據(jù)采集頻率對應(yīng)8254的OUT0輸出的600KHZ,即對CLK0輸入的1.8432MHZ的三分頻。我想問題應(yīng)該是采樣頻率太低的原因,輸出之所以不穩(wěn)定也是有可能因為頻率不匹配的問題。</p><p>  解決方法:修改8254計數(shù)器0的計數(shù)初值,將原來的3改為了2,即對應(yīng)2分頻,結(jié)果電位器變化與數(shù)碼管電壓變化基本一致。</p&g

16、t;<p>  問題2:中斷服務(wù)子程序中要實現(xiàn)0809通道0的數(shù)字量以線性控制方式送DAC0832輸出,當通道0的電壓為5V時,0832的OUT為0V, 當通道0的電壓為0時,0832的OUT為2.5V,但是我們的程序中線性變換結(jié)果混亂。</p><p>  分析:設(shè)0809通道0的值為X,DAC0832的輸出端數(shù)據(jù)為Y,根據(jù)實驗所給數(shù)據(jù)推得X與Y的數(shù)值關(guān)系式為Y=(5-X)/2。</p>

17、;<p>  解決方法:將中斷服務(wù)子程序中的0809通道0的數(shù)字量和DAC0832輸出量之間的轉(zhuǎn)換函數(shù)修改為</p><p>  MOV IN0IN, AL ; A1為IN0</p><p>  MOV AH,0 </p><p>  DIV N (N=2) ; IN0

18、AD后線性轉(zhuǎn)換給0832的值</p><p><b>  NEG AL </b></p><p>  ADD AL,80H </p><p>  MOV BL,AL</p><p>  CMP BL,40H</p><p>  JB SS1</p><p

19、>  SUB BL,4 </p><p>  SS1: MOV AL,BL</p><p>  MOV A3,AL </p><p>  MOV DX,DACS</p><p>  OUT DX,AL</p><p>  最后0809通道0的數(shù)

20、據(jù)和0832輸出端的數(shù)據(jù)得到正確的對應(yīng)關(guān)系。</p><p><b>  七、心得體會及建議</b></p><p>  體會: 通過一學(xué)期的學(xué)習(xí),我發(fā)現(xiàn)匯編語言與我之前所學(xué)過的C++完全不同,匯編語言是從計算機內(nèi)部結(jié)構(gòu)出發(fā),立足于CPU存儲結(jié)構(gòu)進行編程,更加基礎(chǔ),深入。</p><p>  為了順利完成課程設(shè)計,在進行編程之前,我把中斷控制器

21、8259、并行控制8255、時鐘發(fā)生器8254以及A/D轉(zhuǎn)換0809和D/A轉(zhuǎn)換0832的工作原理以及工作方式進行了深入的回顧與理解。</p><p>  結(jié)合以前80X86實驗內(nèi)容,我完成了課程設(shè)計的編程。接下來是上機調(diào)試,經(jīng)過匯編鏈接,有幾個小問題,經(jīng)過檢查順利排除。程序已經(jīng)可以生成.EXE文件執(zhí)行了,但是轉(zhuǎn)動電位器,屏幕上現(xiàn)實IN0和IN1的值但是關(guān)系不正確。后來經(jīng)過仔細研究IN0經(jīng)轉(zhuǎn)換后的數(shù)字量應(yīng)該進行的

22、變換,調(diào)整了程序,終于實現(xiàn)了功能。</p><p>  驗收時,老師讓我們修改源程序與試驗箱上的接線。這對我來說也是一次挑戰(zhàn),我根據(jù)自己的理解,修改了源程序與接線,編譯鏈接之后,實現(xiàn)了轉(zhuǎn)動電位器,在不同電壓范圍內(nèi)發(fā)出不同頻率聲音的功能。也順利通過了老師的驗收。</p><p>  通過這次課程設(shè)計,自己對編程解決問題不是那么恐懼了,相反還有了很大的興趣。我發(fā)現(xiàn),當我們把匯編語言當成一種工具

23、,而不是一門考試時,就能更加好的掌握它。</p><p>  建議:1.希望老師們能在上課期間增加必要的試驗箱器件知識,同時在課外增加一些匯編語言在生活中應(yīng)用的相關(guān)知識介紹,幫助學(xué)生提高工程意識,在后期學(xué)習(xí)當中有一種將知識運用于實踐的思想。</p><p>  2.希望老師可以提前布置和安排微機原理課設(shè)的任務(wù),不要等到微機原理課程結(jié)束且考試也已經(jīng)結(jié)束的情況下載布置微機課設(shè),老師們也知道,一

24、方面微機原理已經(jīng)考完大家在微機原理課程上投入的時間肯定不會太多,大家對匯編語言的編寫說實話也就少了幾分熱情;另一方面,隨著期末考試的緊逼,后續(xù)課程的復(fù)習(xí)也是大家要付出很多時間的。</p><p>  以上兩點建議希望老師們能接納,先謝謝老師了。</p><p><b>  八、源程序</b></p><p>  ;*************回車

25、宏定義*********</p><p>  CRLF MACRO</p><p>  MOV DL, 0DH</p><p>  MOV AH,02H</p><p>  INT 21H ;宏定義了回車</p><p><b>  ENDM </b></p&

26、gt;<p>  ;*********端口地址定義*********** </p><p>  Y0EQU 3000H ;片選Y0對應(yīng)的端口始地址,0809,0832</p><p>  Y2 EQU 3040H ;片選Y2對應(yīng)的端口始地址</p><p>  IN1

27、 EQU Y0+01H*4</p><p>  ADCSEQU Y0 ;AD0809的端口地址</p><p>  DACSEQU Y2 ;DAC0832的端口地址</p><p>  Y3 EQU 3060H </p><p>  TIMER0

28、EQUY3+00H*4 ;8254計數(shù)器0端口地址,8254</p><p>  TIMER1 EQUY3+01H*4 ;8254計數(shù)器1端口地址</p><p>  TIMER2 EQUY3+02H*4 ;8254計數(shù)器2端口地址</p><p>  TCTL EQU Y3+03H*4

29、 ;8254控制寄存器端口地址</p><p>  Y1 EQU 3020H ;片選Y1對應(yīng)的端口始地址,8255</p><p>  PA55 EQU Y1+00H*4 ;8255的A口地址</p><p>  PB55 EQU Y1+01H*4 ;8255的B口地址&l

30、t;/p><p>  PC55 EQU Y1+02H*4 ;8255的C口地址</p><p>  PCTL EQU Y1+03H*4 ;8255的控制寄存器地址</p><p>  INTR_IVADDEQU 01C8H;INTR對應(yīng)的中斷矢量地址,8259</p><p>  I

31、NTR_OCW1 EQU 0A1H ;INTR對應(yīng)PC機內(nèi)部8259的OCW1地址</p><p>  INTR_OCW2 EQU 0A0H ;INTR對應(yīng)PC機內(nèi)部8259的OCW2地址</p><p>  INTR_IM EQU 0FBH;INTR對應(yīng)的中斷屏蔽字</p><p>  Y

32、7 EQU 30E0H;片選Y7對應(yīng)的端口始地址</p><p>  MY8259_ICW1 EQU Y7+00H;實驗系統(tǒng)中8259的ICW1端口地址</p><p>  MY8259_ICW2 EQU Y7+04H;實驗系統(tǒng)中8259的ICW2端口地址</p><p>  MY8259_ICW3 EQU Y7

33、+04H;實驗系統(tǒng)中8259的ICW3端口地址</p><p>  MY8259_ICW4 EQU Y7+04H;實驗系統(tǒng)中8259的ICW4端口地址</p><p>  MY8259_OCW1 EQU Y7+04H;實驗系統(tǒng)中8259的OCW1端口地址</p><p>  MY8259_OCW2 EQU Y7+00H;實驗系統(tǒng)中8

34、259的OCW2端口地址</p><p>  MY8259_OCW3 EQU Y7+00H;實驗系統(tǒng)中8259的OCW3端口地址</p><p>  ;*********************************堆棧段定義**************************************** </p><p>  STACK1

35、SEGMENT STACK</p><p>  DW 256DUP(?)</p><p>  STACK1 ENDS</p><p>  ;*********堆棧段定義***************************************************************** </p><p>  DATA

36、 SEGMENT</p><p>  DCTBLDB 3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh ;數(shù)碼管的段碼表</p><p>  DB 77h,7Ch,39h,5Eh,79h,71h,00H</p><p>  N DB 2</p><p>  IN0IN

37、 DB ?</p><p>  IN1OUT DB ?</p><p>  A3 DB ?</p><p>  B DB 3 DUP(?)</p><p>  D1 DB 0AH</p><p>  

38、E1 DB 33H</p><p>  FLAG DB ?</p><p>  MES4DB0DH,0AH,'++++++ WELCOME TO WEI JI YUAN LI KE SHE: ++++++',0DH,0AH,'$'</p><p>  MES0DB0DH,0AH,

39、9;******** DATA COLECTION SYSTEM ********',0DH,0AH,'$'</p><p>  MES1DB0DH,0AH,'------------ ZUO ZHE :LIU JING AND WANG ZHI MING',0DH,0AH,'$'</p><p>  MESSDB 0D

40、H, 'PRESS ANY KEY TO END THE SYSTEM!',0DH,0AH,0DH, 0AH,'$'</p><p>  MES2DB 0DH, 'IN1OUT DATA : $',0DH,'$' </p><p>  CS_BAK DW ? ;保存INTR原中斷處理程序

41、入口段地址的變量</p><p>  IP_BAK DW ? ;保存INTR原中斷處理程序入口偏移地址的變量</p><p>  IM_BAK DB ? ;保存INTR原中斷屏蔽字的變量</p><p>  DATA ENDS</p><p>  ;*********代碼段定義*********** <

42、;/p><p>  CODESEGMENT</p><p>  ASSUME CS:CODE,SS:STACK1,DS:DATA</p><p>  START: MOVAX,DATA</p><p>  MOVDS,AX</p><p>  MOV AL, 10000000B ;8255初始&

43、lt;/p><p>  MOV DX, PCTL</p><p>  OUT DX, AL </p><p>  MOVDX,OFFSET MES4</p><p>  MOVAH,9 ;顯示MES4</p><p>  INT 21H <

44、;/p><p>  MOVDX,OFFSET MES0</p><p>  MOVAH,9 ;顯示MES0</p><p>  INT 21H </p><p>  MOVDX,OFFSET MES1</p><p>  MOVAH,9

45、 ;顯示MES1</p><p>  INT 21H </p><p>  MOVDX,OFFSET MESS</p><p>  MOVAH,9 ;顯示MESS</p><p>  INT 21H

46、</p><p>  CLI ; 8259初始</p><p>  MOV AX,0000H</p><p>  MOV ES,AX ;替換INTR的中斷矢量</p><p>  MOV DI,INTR_IVADD ;保存INTR原中斷處理程序入口偏移地址&

47、lt;/p><p>  MOV AX,ES:[DI]</p><p>  MOV IP_BAK,AX</p><p>  MOV AX,OFFSET MYISR ;設(shè)置當前中斷處理程序入口偏移地址</p><p>  MOV ES:[DI],AX</p><p>  ADD DI,2<

48、/p><p>  MOV AX,ES:[DI] ;保存INTR原中斷處理程序入口段地址</p><p>  MOV CS_BAK,AX</p><p>  MOV AX,SEG MYISR ;設(shè)置當前中斷處理程序入口段地址</p><p>  MOV ES:[DI],AX <

49、;/p><p>  MOV DX,INTR_OCW1 ;設(shè)置中斷屏蔽寄存器,打開INTR的屏蔽位</p><p>  IN AL,DX ;保存INTR原中斷屏蔽字 </p><p>  MOV IM_BAK,AL</p><p>  AND AL,IN

50、TR_IM ;允許PC機內(nèi)部8259的IR2中斷</p><p>  OUT DX,AL</p><p>  MOV DX,MY8259_ICW1; 初始化實驗系統(tǒng)中8259的ICW1</p><p>  MOV AL,13H ;邊沿觸發(fā)、單片8259、需要ICW4</p>

51、<p>  OUT DX,AL</p><p>  MOV DX,MY8259_ICW2 </p><p>  MOV AL,08H ;初始化實驗系統(tǒng)中8259的ICW2</p><p>  OUT DX,AL</p><p>  MOV DX,MY8259_IC

52、W4 ;初始化實驗系統(tǒng)中8259的ICW4</p><p>  MOV AL,01H ;非自動結(jié)束EOI</p><p>  OUT DX,AL</p><p>  MOV DX,MY8259_OCW3</p><p>  MOV AL, 0AH<

53、/p><p>  OUT DX, AL</p><p>  MOV DX,MY8259_OCW1 ;初始化實驗系統(tǒng)中8259的OCW1</p><p>  MOV AL,0FCH ;打開IR0的屏蔽位</p><p>  OUTDX,AL </p>&

54、lt;p>  MOV DX, TCTL ;8254初始</p><p>  MOV AL, 17H</p><p>  OUT DX, AL</p><p>  MOV DX, TIMER0;</p><p>  MOV

55、 AL,2</p><p>  OUT DX,AL</p><p><b>  STI </b></p><p><b>  S33: </b></p><p>  MOV AL, 0</p><p>  MOV

56、DX,ADCS;啟動0809 IN0</p><p>  OUT DX,AL </p><p>  MOV FLAG,0FFH </p><p>  CALL DISPINT0 </p><p>  MOV DX,OFFSET MES2<

57、;/p><p>  MOV AH,9 ;顯示MES2</p><p>  INT 21H </p><p>  MOV AL,IN1OUT </p><p>  CALL DISPINT1 </p><p>  MOV

58、 DL,0FFH</p><p>  MOV AH,6</p><p>  INT 21H </p><p>  JZ S33 </p><p>  QUIT: CLI</p><p>  MOV AX,0000H ;恢復(fù)INTR原中斷矢量

59、</p><p>  MOV ES,AX</p><p>  MOVDI,INTR_IVADD ;恢復(fù)INTR原中斷處理程序入口偏移地址</p><p>  MOV AX,IP_BAK</p><p>  MOV ES:[DI],AX</p><p>  ADD DI,2</p&

60、gt;<p>  MOV AX,CS_BAK;恢復(fù)INTR原中斷處理程序入口段地址</p><p>  MOV ES:[DI],AX</p><p>  MOV DX,INTR_OCW1</p><p>  MOV AL,IM_BAK ;恢復(fù)INTR原中斷屏蔽寄存器的屏蔽字</p><p

61、>  OUT DX,AL</p><p>  STI </p><p>  EXIT: MOV AH,4CH ;返回到DOS</p><p>  INT 21H</p><p>  ;***********************數(shù)碼管顯示INT1********************

62、********</p><p>  DISPINT1 PROC </p><p>  PUSH AX </p><p>  MOV BL,AL ; 屏幕顯示</p><p>  AND AL,0F0H</p><p>  MOVCL,4

63、 ; 顯示高位</p><p>  ROR AL,CL</p><p><b>  CALLCRT1</b></p><p>  MOVAL,BL</p><p>  ANDAL,0FH ;顯示低位</p><p><b>  CALLCRT

64、1</b></p><p><b>  CRLF</b></p><p><b>  POP AX</b></p><p><b>  RET</b></p><p>  DISPINT1 ENDP </p><p><b>

65、  CRT1PROC</b></p><p>  ADDAL,30H</p><p>  CMPAL,39H</p><p><b>  JBE D0</b></p><p>  ADD AL,7 ;在屏幕上顯示一位16進制字符</p>&l

66、t;p>  D0: MOVDL,AL</p><p><b>  MOVAH,2</b></p><p><b>  INT 21H</b></p><p>  RET </p><p><b>  CRT1ENDP</b></p>

67、;<p>  ;***********************數(shù)碼管顯示INT0****************************</p><p>  DISPINT0 PROC</p><p><b>  PUSHDS</b></p><p>  PUSHAX </p><

68、p>  MOV AL,IN0IN ;轉(zhuǎn)換IN0個位 十分位 百分位</p><p>  MOV AH,0</p><p>  DIV E1</p><p>  MOV SI,OFFSET B</p><p>  MOV [SI],AL</p><

69、p>  MOV AL,AH</p><p>  MOV AH,0</p><p>  MUL D1</p><p>  DIV E1</p><p>  INC SI</p><p>  MOV [SI],AL</p><p&g

70、t;  MOV AL,AH</p><p>  MOV AH,0</p><p>  MUL D1</p><p>  DIV E1</p><p><b>  INC SI</b></p><p>  CMP AH,19H</p>&l

71、t;p>  JNBE S11</p><p>  MOV AL,0 </p><p><b>  JMP S2</b></p><p>  S11: INC AL</p><p>  S2: MOV [SI],AL </p>&

72、lt;p>  MOVCL,8 ;從最左邊開始顯示</p><p>  MOVSI,OFFSET B</p><p>  MOVAL,[SI]</p><p>  LEABX,DCTBL</p><p>  XLAT

73、;輸出段碼</p><p>  ADD AL,80H</p><p>  MOVDX,PB55</p><p>  OUTDX,AL</p><p>  MOVDX,PA55</p><p>  MOVAL,CL ;輸出位碼</p><

74、;p>  OUTDX,AL </p><p>  CALLDELAY </p><p>  INCSI ;段碼地址+1</p><p>  ROLCL,1 ;位碼向左移1位</p><p>  MOVAL,[SI]</p&g

75、t;<p>  LEABX,DCTBL</p><p><b>  XLAT</b></p><p>  MOVDX,PB55</p><p>  OUTDX,AL</p><p>  MOVDX,PA55</p><p>  MOVAL,CL

76、 ;輸出位碼</p><p>  OUTDX,AL</p><p>  CALLDELAY</p><p>  INCSI ;段碼地址+1</p><p>  ROLCL,1 ;位碼向左移1位</p><p>  MOV

77、AL,[SI] </p><p>  LEABX,DCTBL</p><p><b>  XLAT</b></p><p>  MOVDX,PB55</p><p>  OUTDX,AL</p><p>  MOVDX,PA55</p><p>  MO

78、VAL,CL ;輸出位碼</p><p>  OUTDX,AL</p><p>  CALLDELAY ;輸出三位碼</p><p>  MOVSI,OFFSET B </p><p>  MOV AL,[SI]</p><p><b&

79、gt;  CMP AL,2</b></p><p><b>  JB A2</b></p><p>  MOVDX,PC55</p><p>  MOVAL,0FFH </p><p>  OUTDX,AL</p><p><b>

80、  JMP G3</b></p><p>  A2:MOVDX,PC55</p><p>  MOVAL,00H </p><p>  OUTDX,AL</p><p>  MOV DX, TCTL ;8254計數(shù)器1控制蜂鳴器</p><p&g

81、t;  MOV AL, 77H</p><p>  OUT DX, AL</p><p>  MOV DX, TIMER1;</p><p>  MOV AL,00</p><p>  OUT DX,AL</p><

82、;p>  MOV AL,01</p><p>  OUT DX,AL</p><p>  G3: POPAX</p><p>  POPDS </p><p><b>  RET</b></p><p>  DISPINT0

83、 ENDP</p><p>  MYISR PROC NEAR ;中斷處理程序MYISR </p><p>  PUSH AX </p><p>  PUSH DX </p><p>  CLI ;關(guān)中斷</p><

84、;p>  MOV DX,MY8259_OCW3</p><p>  IN AL,DX</p><p>  AND AL,03H</p><p>  CMP AL,01H</p><p>  JE IROISR</p><p>  JMP OVER</p><p>

85、;  IROISR: </p><p>  CMP FLAG,0FFH</p><p><b>  JE S</b></p><p>  MOV DX,IN1</p><p>  IN AL,DX</p><p>  MOV IN

86、1OUT,AL ; A2為IN1 AD后的值</p><p>  JMP OVER</p><p>  S: MOV DX,ADCS</p><p>  IN AL, DX</p><p>  MOV IN0IN, AL ; A1為IN0</p

87、><p>  MOV AH,0 </p><p>  DIV N ; IN0 AD后線性轉(zhuǎn)換給0832的值</p><p><b>  NEG AL </b></p><p>  ADD AL,80H </p><p>  MOV

88、BL,AL</p><p>  CMP BL,40H</p><p>  JB SS1</p><p>  SUB BL,4 </p><p>  SS1: MOV AL,BL</p><p>  MOV A3,AL </p><

89、p>  MOV DX,DACS</p><p>  OUT DX,AL</p><p>  MOV DX,IN1 ; 啟動IN1</p><p>  OUT DX,AL</p><p>  MOV AL,0</p><p>  MOV FLAG,AL&

90、lt;/p><p>  OVER: MOVDX,INTR_OCW2 ; 向PC機內(nèi)部8259發(fā)送中斷結(jié)束命令</p><p>  MOVAL,20H</p><p>  OUTDX,AL </p><p>  MOVAL,20H</p><p>  OUT

91、20H,AL </p><p><b>  STI</b></p><p>  POP DX</p><p>  POPAX </p><p><b>  IRET</b></p><p>  MYISR ENDP</p><p

92、>  DELAY PROCNEAR ;延時</p><p><b>  PUSHCX</b></p><p>  MOVCX,0FFFFH</p><p>  LOOP $ </p><p><b>  POP CX</b></

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論