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

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p>  概述 ………………………………………………………… 1</p><p>  一 設(shè)計內(nèi)容與要求 ……………………………………… 1 </p><p>  二 設(shè)計思想 ……………………………………………… 1 </p><p>  三 

2、設(shè)計所用芯片及工作原理 …………………………… 1 </p><p>  四 系統(tǒng)連線圖 …………………………………………… 3 </p><p>  五 連線圖說明 …………………………………………… </p><p>  六 程序流程圖 …………………………………………… 5 </p><p>  七 程序源代碼

3、…………………………………………… 7 </p><p>  八 設(shè)計過程中遇到的問題及解決方法…………………… </p><p>  九 設(shè)計心得 ……………………………………………… 9</p><p><b>  電子秒表</b></p><p><b>  概述</b></p&g

4、t;<p>  《匯編語言程序設(shè)計》是計算機(jī)各專業(yè)一門重要的基礎(chǔ)課,是必修的核心課程之一,是"操作系統(tǒng)"和"微機(jī)原理和接口技術(shù)"等其它核心課程必要的先修課,而且對于訓(xùn)練學(xué)生掌握程序設(shè)計技術(shù),熟悉上機(jī)操作和程序調(diào)試技術(shù)都有重要作用。因此該課程在整個教學(xué)計劃中占有重要地位。</p><p>  本課程的目的和要求是:</p><p>  1

5、、 應(yīng)使學(xué)生掌握8086/8088宏匯編語言程序設(shè)計的基本方法和技巧,能夠運(yùn)用8086/8088宏匯編語言編寫應(yīng)用程序。提高學(xué)生分析問題、解決問題的能力以及實(shí)際動手能力。</p><p>  2、應(yīng)使學(xué)生基本掌握匯編語言程序設(shè)計的基本理論,方法和技巧,正確地使用結(jié)構(gòu)化、模塊程序設(shè)計技術(shù)。注意培養(yǎng)學(xué)生良好的程序設(shè)計風(fēng)格。</p><p>  3、應(yīng)使學(xué)生比較熟練地使用調(diào)試工具DEBUG調(diào)試8

6、086/8088匯編語言程序。注意提高學(xué)生的調(diào)試能力。</p><p>  4、注意與前后相關(guān)課程的關(guān)系。使學(xué)生對前導(dǎo)課程有進(jìn)一步的理解,同時為學(xué)習(xí)后繼課程打好基礎(chǔ)。</p><p><b>  設(shè)計內(nèi)容與要求</b></p><p>  設(shè)計一個簡單的電子秒表(按一下鈕啟動,再按一個停止,再按一下清零,周而復(fù)始。)最小計時單位0.01S,即可

7、顯示XX.XX(秒、百分之一秒)。設(shè)計要求如下:</p><p>  (1)由鍵盤和8255作為輸入部分</p><p> ?。?)用七段數(shù)碼管或液晶顯示屏來顯示時間</p><p>  (3)由8253和8259構(gòu)成計時信號,通過中斷完成啟動計時、停止計時和動態(tài)刷新顯示。</p><p><b>  設(shè)計思想</b>&

8、lt;/p><p>  電子秒表要實(shí)現(xiàn)的功能:用鍵盤中斷來控制整個程序,按一下回車鍵啟動電子秒表,再按一下暫停,按一下ESC鍵清零,用七段數(shù)碼管顯示時間。整個程序涉及到8255、8253與8259三個芯片。8253的OUT2,CLK2分別連接8259的IRQ7與PCLK,8253的GATE2連接正5伏電壓,采用計數(shù)器2每隔0.01秒產(chǎn)生一次中斷并且計數(shù),寫入以偏移地址4000H開始的4個內(nèi)存單元,然后利用8255將內(nèi)

9、存單元的數(shù)據(jù)輸出到七段數(shù)碼管。由于鍵盤中斷優(yōu)先于8259的7號中斷,所以程序只有在按一下回車鍵才啟動電子秒表,再按一下暫停,按一下ESC鍵清零,如果超出了60秒,整個程序自動重新開始。</p><p><b>  所用芯片工作原理</b></p><p>  8255:接口電路在CPU和I/O設(shè)備之間起著信號的變換和傳輸?shù)淖饔谩?任何接口電路與CPU之間的信息傳輸方式

10、都是并行的,即CPU與接口電路之間以數(shù)據(jù)字節(jié)/字為單位傳送信息。接口電路與I/O設(shè)備之間的信息傳送方式,有并行和串行兩種,相應(yīng)的接口電路稱為并行接口和串行接口。 </p><p>  并行接口是在多根數(shù)據(jù)線上,以數(shù)據(jù)字節(jié)/字與I/O設(shè)備交換信息。在輸入過程中,輸入設(shè)備把數(shù)據(jù)送給接口,并且使?fàn)顟B(tài)線“輸入準(zhǔn)備好”有效。接口把數(shù)據(jù)存放在“輸入緩沖寄存器”中,同時使“輸入回答”線有效,作為對外設(shè)的響應(yīng)。外設(shè)在收到這個回答

11、信號后,就撤消數(shù)據(jù)和“輸入準(zhǔn)備好”信號。數(shù)據(jù)到達(dá)接口中后,接口會在“狀態(tài)寄存器”中設(shè)置輸入準(zhǔn)備好標(biāo)志,或者向CPU發(fā)一個中斷請求。CPU可用查詢方式或中斷方式從接口中讀取數(shù)據(jù)。接口中的數(shù)據(jù)被讀取后,接口會自動清除狀態(tài)寄存器中的標(biāo)志,且撤消對CPU的中斷請求。</p><p>  在輸出過程中,每當(dāng)輸出寄存器可以接收數(shù)據(jù),接口就會將狀態(tài)寄存器中“輸出準(zhǔn)備好”狀態(tài)置1或向CPU發(fā)一個中斷請求,CPU可用查詢或中斷方式

12、向接口輸出數(shù)據(jù)。當(dāng)CPU輸出的數(shù)據(jù)到達(dá)接口后,接口會清除“輸出準(zhǔn)備好”狀態(tài),把數(shù)據(jù)送往外設(shè),并向外設(shè)發(fā)一個“數(shù)據(jù)輸出準(zhǔn)備好”信號。外設(shè)受到驅(qū)動后,便接收數(shù)據(jù),并向接口電路發(fā)一個“輸出回答”信號,接口收到該回答信號后,又將狀態(tài)寄存器中“輸出準(zhǔn)備好”置位,以便CPU輸出下一個數(shù)據(jù)。</p><p>  8253:對CLK信號進(jìn)行“減1計數(shù)”。首先CPU把“控制字”,寫入“控制寄存器”,把“計數(shù)初始值”寫入“初值寄存器

13、”,然后, 定時/計數(shù)器按控制字要求計數(shù)。計數(shù)從“計數(shù)初始值 開始,每當(dāng)CLK信號出現(xiàn)一次,計數(shù)值減1,當(dāng)計數(shù)值減為0時,從OUT端輸出規(guī)定的信號(具體形式與工作模式有關(guān))。當(dāng)CLK信號出現(xiàn)時,計數(shù)值是否減1(即是否計數(shù)),受到“門控信號”GATE的影響,一般,僅當(dāng)GATE有效時,才減1.門控信號GATE如何影響計數(shù)操作,以及輸出端OUT在各種情況下輸出的信號形式與定時/計數(shù)器的工作模式有關(guān)。</p><p> 

14、 8259:1. IR線上提出了中斷請求的中斷源,即出現(xiàn)請求,IRR中斷請求寄存器(共有8位D7~D0)對應(yīng)于連接在IR0~I(xiàn)R7線上的外設(shè)的中斷請求,哪一根輸入線有請求,哪一根輸入線就置1。</p><p>  2. 若OCW1(IMR中斷屏蔽寄存器)未使該中斷請求屏蔽(對應(yīng)位為0時不屏蔽),該請求被送入PR(優(yōu)先權(quán)分析器)比較。否則,不送入PR比較。</p><p>  3. PR把新

15、進(jìn)入的請求與ISR(服務(wù)中寄存器)中正在被處理的中斷進(jìn)行比較。如果新進(jìn)入的請求優(yōu)先級較低,則8259不向CPU提出請求。如果新進(jìn)入的請求優(yōu)先級較高,則8259使INT引腳輸出高電平,向CPU提出請求。</p><p>  4. 如果CPU內(nèi)部的標(biāo)志寄存器中的IF(中斷允許標(biāo)志)為0,CPU不響應(yīng)該請求。若IF=1,CPU在執(zhí)行完當(dāng)前指令后,從CPU的INTA引腳上向8259發(fā)出兩個負(fù)脈沖。</p>

16、<p>  5.第一個 INTA負(fù)脈沖到達(dá)8259時,8259完成以下三項工作:</p><p>  a.使IRR(中斷請求寄存器)的鎖存功能失效。這樣一來,在IR7~I(xiàn)R0上的請求信號就不會被8259接收。直到第二個INTA負(fù)脈沖到達(dá)8259時,才又使IRR的鎖存功能有效。</p><p>  b.使ISR(服務(wù)中寄存器)中的相應(yīng)位置1。</p><p>

17、;  c.使IRR中的相應(yīng)位清0。</p><p>  6.第二個INTA負(fù)脈沖到達(dá)8259時,8259完成以下工作:</p><p>  a.將中斷類型碼(ICW2中的值)送到數(shù)據(jù)總線上,CPU將其保存在“內(nèi)部暫存器”中。</p><p>  b.如果ICW4(它設(shè)定級中斷聯(lián)方式之特定完全嵌套方式,將在8259的工作方式中詳述ICW4)中設(shè)置了中斷自動結(jié)束方式,則

18、將ISR的相應(yīng)位清0。</p><p><b>  系統(tǒng)連線圖</b></p><p><b>  A </b></p><p>  +5V DP 7407</p><p><b>  X4</b></p&

19、gt;<p><b>  X1</b></p><p><b>  GATE2</b></p><p><b>  OUT2</b></p><p><b>  CLK2</b></p><p><b>  8253</b&g

20、t;</p><p>  PB7----------PB0</p><p><b>  8255</b></p><p><b>  PA3—PA0</b></p><p><b>  8259</b></p><p>  PCLK

21、 IRQ7</p><p>  8253與8259的接線圖</p><p><b>  8255接線圖</b></p><p><b>  連線圖說明</b></p><p><b>  程序流程圖</b></p><p><b>

22、  Y</b></p><p><b>  N</b></p><p><b>  N</b></p><p><b>  Y</b></p><p><b>  N</b></p><p><b>  Y&l

23、t;/b></p><p><b>  IRQ7</b></p><p><b>  Y </b></p><p><b>  N</b></p><p><b>  Disp</b></p><p><b>

24、  N  Y</b></p><p><b>  程序源代碼</b></p><p><b>  主程序:</b></p><p>  push ds     ;保存數(shù)據(jù)段     </p><p>  mov ax,0000        &

25、lt;/p><p>  mov ds,ax ;數(shù)據(jù)段清零  </p><p>  mov ax,offset irq7   ;取中斷程序入口地址 </p><p>  add ax,2000  ?。患友b時IP=2000地址    </p><p>  mov si,003c  ?。惶?259中斷7中斷矢量

26、 </p><p>  mov w[si],ax    ;填偏移量矢量   </p><p>  mov ax,0000  ?。欢蔚刂稢S=0000H </p><p>  mov si,003e         </p><p>  mov w[si],ax    ;填段地址矢量 &l

27、t;/p><p>  pop ds  ??;彈?!      ?lt;/p><p>  in al,21  ??;讀8259中斷屏蔽字</p><p>  and al,7f   ;開8259中斷7       </p><p>  out 21,al             </p><p&g

28、t;  mov al,b4;8253的計數(shù)器2為方式2,采用二進(jìn)制計數(shù),先低后高寫入計數(shù)值  10110100   </p><p>  out 43,al?。粚懭敕绞娇刂谱帧          ?lt;/p><p>  mov ax,2e9c 0010 1110 1001 1100B  11932D         </p><p>  out 42

29、,al ;寫入低字節(jié)計數(shù)值1001 1100           </p><p>  mov al,ah </p><p>  out 42,al??;寫入高字節(jié)計數(shù)值 0010 1110</p><p>  mov al,81?。?255的A口為方式0輸出,B口為方式0輸出,C口下部輸入 1000 0001</p>

30、<p>  out 63,al    ?。粚懛绞娇刂谱?lt;/p><p>  call first ;調(diào)用first子程序,賦計數(shù)初值</p><p>  begi:hlt 延時等待</p><p>  sti;開中斷</p><p><b>  mov ah,01</b></p

31、><p>  int 16 ;檢測是否按了鍵盤</p><p><b>  jz begi</b></p><p>  mov ah,00 ;讀鍵值</p><p><b>  int 16</b></p><p>  cmp al,0d?。皇欠癜戳嘶剀?lt;/

32、p><p>  jnz A1 </p><p>  mov si,4000 </p><p>  not [si+04] ;偏移地址為4004的內(nèi)存單元內(nèi)容取反</p><p><b>  jmp begi</b></p><p>  A1:cmp al,1b??;是否按了ESC鍵&l

33、t;/p><p><b>  jnz A2</b></p><p>  call first??;重新賦初值,相當(dāng)于清零</p><p>  A2:jmp begi</p><p><b>  中斷程序:</b></p><p>  irq7:call disp ;調(diào)

34、用disp子程序,用來在數(shù)碼管顯示數(shù)據(jù)</p><p>  mov si,4000</p><p>  cmp [si+04],00 ??;判斷是否按了第2次回車鍵</p><p><b>  je A4</b></p><p>  call addn ;調(diào)用addn子程序,用來計數(shù)</p>

35、<p>  A4:mov al,20</p><p>  out 20,al</p><p>  cli??;關(guān)中斷</p><p>  iret??;返回</p><p><b>  addn程序:</b></p><p>  addn:mov si,4000<

36、;/p><p>  add [si+03],01 ;百分之一秒加1</p><p>  cmp [si+03],0a ;判斷是否大于10</p><p><b>  jz  A5</b></p><p><b>  jmp A9</b></p><p>  A5:mo

37、v [si+03],00</p><p>  Add [si+02],01 ?。皇种幻爰?</p><p>  cmp [si+02],0a ??;判斷是否大于10</p><p><b>  jz  A6</b></p><p><b>  jmp A9</b></p>&

38、lt;p>  A6:mov [si+02],00</p><p>  add [si+01],01 ??;秒位加1</p><p>  cmp [si+01],0a;判斷是否大于10 </p><p><b>  jz A7</b></p><p><b>  jmp A9</b>

39、</p><p>  A7:mov [si+01],00</p><p>  add [si],01  ??;十秒位加1</p><p>  cmp [si],06??;判斷是否大于6</p><p><b>  jz   A8</b></p><p><b>  jmp A9&l

40、t;/b></p><p>  A8:mov [si],00 ;大于60:00重新開始</p><p><b>  A9: ret</b></p><p><b>  賦初值程序:</b></p><p>  first:mov si,4000</p><p>&

41、lt;b>  mov al,00</b></p><p>  mov [si],al</p><p>  mov [si+01],al</p><p>  mov [si+02],al</p><p>  mov [si+03],al</p><p>  mov [si+04],al</p>

42、;<p><b>  ret</b></p><p><b>  顯示程序:</b></p><p>  disp:push ax ??;保存AX</p><p>  mov si,4000;指向數(shù)據(jù)緩沖區(qū)</p><p>  mov dl,f7;1111 011

43、1 指向數(shù)碼管</p><p>  mov al,dl ;al=1111 0111</p><p>  again:out 60,al??;寫端口A</p><p>  mov al,[si]</p><p>  mov bx,4100 ;指向數(shù)碼緩沖區(qū) bx=0100 0001 0000 00

44、00</p><p>  and ax,00ff ; ax=0000 0000 al</p><p>  add bx,ax;得到顯示代碼 bx=0100 0001 al</p><p>  mov al,[bx]</p><p>  out 61,al;寫端口B

45、</p><p>  call dally:調(diào)用延時程序dally</p><p><b>  inc si</b></p><p>  mov al,dl</p><p>  test al,01</p><p><b>  jz out </b></

46、p><p>  ror al,1;指向下一個數(shù)碼管</p><p>  mov dl,al</p><p>  jmp again</p><p>  out: pop ax;彈出AX</p><p><b>  ret</b></p><p>  da

47、lly:push cx;延時程序</p><p><b>  push ax</b></p><p>  mov cx,0010</p><p>  t1 :mov ax,0010</p><p>  t2 dec ax</p><p><b>  jnz t2<

48、/b></p><p><b>  loop t1</b></p><p><b>  pop ax</b></p><p><b>  pop cx</b></p><p><b>  ret</b></p><p>

49、<b>  數(shù)碼緩沖區(qū):</b></p><p>  0000:40003f,06,5b4f,66,6d,7d,07,7f,6f</p><p>  設(shè)計過程中遇到的問題及解決方法</p><p><b>  設(shè)計心得</b></p><p>  通過本次課程設(shè)計,對微機(jī)接口的認(rèn)識有了更一步的提高

溫馨提示

  • 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

提交評論