微機(jī)課程設(shè)計(jì)報(bào)告搶答器_第1頁(yè)
已閱讀1頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  目 錄</p><p>  一. 課程設(shè)計(jì)目的與要求……………………………………………………………………1</p><p>  二.方案論證與原理設(shè)計(jì)………………………………………………………………………2</p><p>  三.詳細(xì)(機(jī)理)設(shè)計(jì)………………………………………………………………………3</p>&l

2、t;p>  四.方案實(shí)現(xiàn)與測(cè)試(或調(diào)試)……………………………………………………………4</p><p>  五.分析與總結(jié)………………………………………………………………………………5</p><p>  一. 課程設(shè)計(jì)目的與要求(含設(shè)計(jì)指標(biāo))</p><p><b>  1.課程設(shè)計(jì)目的 </b></p><p&g

3、t;  (1)檢驗(yàn)和提高在微機(jī)原理和接口綜合應(yīng)用方面分析問(wèn)題和解決問(wèn)題的能力; </p><p> ?。?)鍛煉系統(tǒng)級(jí)別匯編語(yǔ)言編程和硬件調(diào)試能力; </p><p>  (3)培養(yǎng)團(tuán)隊(duì)分工合作能力。 </p><p>  2.設(shè)計(jì)要求和指標(biāo) </p><p><b>  設(shè)計(jì)要求: </b></p>&l

4、t;p>  設(shè)計(jì)一個(gè)用于智力競(jìng)賽的搶答器計(jì)時(shí)器,同時(shí)能測(cè)試人的反應(yīng)時(shí)間。按啟動(dòng)鍵,測(cè)試開(kāi)始,2個(gè)八段碼倒計(jì)時(shí)開(kāi)始(如從10秒或20秒倒計(jì)時(shí)),在隨機(jī)時(shí)間內(nèi)點(diǎn)亮搶答允許燈,參賽雙方分別按各自的搶答按鈕參與搶答。一旦其中一方按下按鈕,相應(yīng)的LED顯示燈亮,此時(shí)若其他按鈕按下均無(wú)效。若一直計(jì)數(shù)到零,均無(wú)人按下按鈕,則搶答結(jié)束(以后再按搶答鈕無(wú)效)。按測(cè)試鈕,在PC機(jī)上顯示反應(yīng)時(shí)間XX.XX秒。 </p><p>

5、<b>  指標(biāo)要求: </b></p><p> ?。?)編制一個(gè)隨機(jī)數(shù)產(chǎn)生子程序,又隨機(jī)數(shù)決定從按啟動(dòng)鈕到點(diǎn)亮搶答允許燈的時(shí)間(如在3秒~15秒之間任意變動(dòng)),使被測(cè)試者對(duì)LED亮的時(shí)間無(wú)法預(yù)見(jiàn),以保證測(cè)試結(jié)果的可信性; </p><p>  (2)必須在見(jiàn)到LED點(diǎn)亮后按測(cè)試鈕才有效,即一直按著按鈕或提前按下按鈕無(wú)效; </p><p>

6、 ?。?)反應(yīng)時(shí)間顯示XX.XX秒,準(zhǔn)確到百分之一。 </p><p><b>  3.分工 </b></p><p>  (1)核心代碼編寫(xiě): </p><p> ?。?)代碼編譯、修改: </p><p><b>  (3)搭建、調(diào)試:</b></p><p>  (4)

7、 后期代碼優(yōu)化、修改:</p><p>  二.方案論證與原理設(shè)計(jì)(或基本原理)</p><p>  首先分析系統(tǒng)輸入輸出量,輸入為一系列開(kāi)關(guān)量和時(shí)鐘,輸出為數(shù)碼管的7段碼和LED顯示以及計(jì)算機(jī)屏幕信息。所以使用8255并行輸入輸出功能實(shí)現(xiàn)這些數(shù)字量的輸入輸出,又由于要求倒計(jì)時(shí)和計(jì)算選手反應(yīng)時(shí)間,所以采用8253的計(jì)時(shí)功能。在實(shí)現(xiàn)基本功能下, 本系統(tǒng)的核心硬件為8255和8253.硬件框圖

8、為:</p><p>  方案設(shè)計(jì):8255設(shè)置為A口輸入,BC口輸出工作方式,A口檢測(cè)按鍵狀態(tài)。倒計(jì)時(shí)采用8253三個(gè)計(jì)數(shù)器級(jí)聯(lián)方式,計(jì)數(shù)器0接實(shí)驗(yàn)箱上1MHz脈沖,從計(jì)數(shù)器2的OUT端口輸出1Hz時(shí)鐘,設(shè)其初值為20,則從20開(kāi)始倒計(jì)時(shí),從而用硬件實(shí)現(xiàn)倒計(jì)時(shí)功能。</p><p><b>  程序流程圖:</b></p><p>  三.詳

9、細(xì)(機(jī)理)設(shè)計(jì)</p><p><b>  (1)隨機(jī)數(shù)產(chǎn)生 </b></p><p>  為確保從每次按啟動(dòng)鍵到LED點(diǎn)亮的時(shí)間是不同的(真正隨機(jī)變化的),一開(kāi)始可隨機(jī)讀取某100個(gè)RAM單元值求和作為初始值,這可以通過(guò)設(shè)置一個(gè)random變量,在程序初始化部分調(diào)用隨機(jī)數(shù)產(chǎn)生子程序rand給其賦值實(shí)現(xiàn):</p><p>  rand pro

10、c</p><p><b>  push cx</b></p><p><b>  push si</b></p><p>  mov cx , 100</p><p>  mov si , 34h</p><p><b>  addr: </b><

11、;/p><p><b>  xor al,al</b></p><p>  mov al , [si]</p><p>  add random , al</p><p><b>  inc si</b></p><p><b>  loop addr</b>

12、;</p><p>  and random 07h</p><p><b>  pop si</b></p><p><b>  pop cx</b></p><p><b>  ret</b></p><p><b>  rand e

13、ndp</b></p><p>  (2)8253倒計(jì)時(shí) </p><p>  8253的計(jì)數(shù)器0接實(shí)驗(yàn)箱上1MHz脈沖,設(shè)初值為1000,工作方式為2,OUT0產(chǎn)生頻率1kHz低脈沖;OUT0接計(jì)數(shù)器1時(shí)鐘端,初值設(shè)為1000,工作方式為2,OUT1產(chǎn)生頻率為1Hz的第脈沖,所以計(jì)數(shù)器1表示倒計(jì)時(shí)ms;OUT1接計(jì)數(shù)器2時(shí)鐘端,初值設(shè)為20,工作方式設(shè)為2,實(shí)現(xiàn)20秒倒計(jì)時(shí)功

14、能。</p><p><b>  8253初始化</b></p><p>  mov dx , P8253M</p><p>  mov al , 00111100B ;8253 CNT0=10000 方式2 B</p><p>  out dx , al</p><p>  mov

15、ax , 1000;賦初值</p><p>  mov dx , P8253A</p><p>  out dx , al</p><p>  moval , ah </p><p>  outdx , al </p><p>  mov dx , P8253M</p><p>

16、  mov al , 01011101B ;8253 CNT1=100 方式2 D</p><p>  out dx , al</p><p>  moval , 1000</p><p>  mov dx , P8253B</p><p>  out dx , al</p><p>  mov dx

17、 , P8253M</p><p>  mov al , 10011101B ;8253 CNT2=20 方式2 D</p><p>  out dx , al</p><p>  moval , 20h ;20 如賦初值20,則數(shù)碼管顯示初值為14</p><p>  mov dx , P8253C</p>

18、<p>  out dx , al</p><p> ?。?)計(jì)算選手反應(yīng)時(shí)間</p><p>  在點(diǎn)亮搶答允許燈前提取當(dāng)前時(shí)間。</p><p>  ;按下啟動(dòng)鈕取當(dāng)前時(shí)間</p><p>  movdx , P8253C</p><p><b>  inal ,dx</b&g

19、t;</p><p>  movah , al</p><p>  movc_time , al </p><p>  and al , 0fh </p><p>  movledl , al </p><p>  movcl , 4</p><p>  rorah , cl<

20、;/p><p>  andah , 0fh</p><p>  movledh , ah</p><p>  四. 方案實(shí)現(xiàn)與測(cè)試(或調(diào)試)</p><p>  方案的實(shí)現(xiàn),系統(tǒng)的硬件電路圖如下:</p><p><b>  調(diào)試:</b></p><p>  按照電路圖連

21、接電路,8253主要是用于定時(shí)器的作用,給兩位數(shù)碼管輸出20秒的倒計(jì)時(shí),8255的PA口為輸入,PA7和PA6是作為搶答器的輸入端,搶答器的輸入采取脈沖發(fā)生器產(chǎn)生的脈沖作為搶答信號(hào)。PA1是屏幕顯示反應(yīng)時(shí)間的按鍵輸入,PA0是開(kāi)始鍵的輸入。PC7是PlayerA搶答燈按鍵輸入,PC6是PlayerB搶答燈按鍵輸入,PC4為搶答燈的輸出,PC3 為開(kāi)始燈輸出,PC2連接8253的GATE0-GATE2,PC1為數(shù)碼管S0,PC0為數(shù)碼管S

22、1。PB7-PB0接a-h。</p><p>  在調(diào)試中,主要的調(diào)試還是代碼的調(diào)試,通過(guò)TD和DEBUG兩種調(diào)試方式,通過(guò)逐步調(diào)試,發(fā)現(xiàn)和找到錯(cuò)誤之處,進(jìn)行更改,最終得到正確的調(diào)試結(jié)果。</p><p><b>  五.分析與總結(jié)</b></p><p>  通過(guò)此次的微機(jī)實(shí)驗(yàn),通過(guò)編程了解到了匯編語(yǔ)言的編程,并且在編寫(xiě)程序的過(guò)程,進(jìn)一步地熟

23、悉了一個(gè)系統(tǒng)程序的編寫(xiě)和調(diào)試工作。</p><p>  編程中,最重要的是通過(guò)TD或者DEBUG兩種調(diào)試手段來(lái)進(jìn)行程序的調(diào)試,從而找到程序的運(yùn)行中出錯(cuò)的地方,進(jìn)行調(diào)試,最終能夠運(yùn)行出正確的代碼。</p><p>  代碼調(diào)試正確后,通過(guò)在實(shí)驗(yàn)板上連線,進(jìn)行驗(yàn)證,最終得到正確的實(shí)驗(yàn)結(jié)果。</p><p>  在此次的微機(jī)實(shí)驗(yàn)過(guò)程中,由于時(shí)間的倉(cāng)促,我們只完成了基礎(chǔ)部分

24、的功能,提高部分的功能基本沒(méi)有來(lái)得及做。相信在基礎(chǔ)部分的前提下,在以后的時(shí)間里,可以進(jìn)一步地提高,將功能再進(jìn)一步的完善。</p><p>  參考書(shū)目:(五號(hào),宋體加粗)</p><p>  東南大學(xué)《微機(jī)系統(tǒng)與接口》課程組,《微機(jī)實(shí)驗(yàn)及課程設(shè)計(jì)教程(試用版3.0)》,2010年</p><p>  楊素行等,《微型計(jì)算機(jī)原理與應(yīng)用(第3版)》,北京,清華大學(xué)出版社

25、,2009年</p><p><b>  源代碼:</b></p><p>  ;--------搶答反應(yīng)測(cè)試儀-----------</p><p>  DATA SEGMENT</p><p>  MESS1 db '******** made by administrator********

26、',0dh,0ah,'$'</p><p><b>  ;288接8255</b></p><p>  P8255A equ 0b808H;開(kāi)關(guān)輸入</p><p>  P8255B equ0b809H</p><p>  P8255Cequ 0b80AH</p>

27、<p>  P8255M equ0b80BH</p><p><b>  ;c0-cs0</b></p><p><b>  ;c1-cs1</b></p><p>  ;c2-gate0,1,2</p><p>  ;c3-L0主持人燈</p><p>

28、  ;c4-L2搶答提示燈</p><p><b>  ;c5-</b></p><p>  ;c6-L6playerA燈</p><p>  ;c7-L7playerB燈</p><p>  ;280H接8253</p><p>  P8253Aequ0b800H</p>

29、<p>  P8253B equ0b801H</p><p>  P8253C equ0b802H</p><p>  P8253M equ0b803H</p><p>  led7equ0b809H ;接數(shù)碼管七段輸入</p><p>  LED DB 3fh,06h,5bh,4fh,66h,6dh,7

30、dh,07h,7fh,6fh ;共陰七段碼</p><p>  start_s db ?</p><p>  start_ms db ?</p><p>  end_sdb?</p><p>  end_msdb?</p><p>  react_s db 0</p><p>  r

31、eact_ms db ?</p><p><b>  ledhdb?</b></p><p><b>  ledldb?</b></p><p>  randomdb0 </p><p>  c_timedb?</p><p>  enableAdb?&l

32、t;/p><p>  enableBdb?</p><p>  DATA ENDS</p><p>  ;---------------------------------------</p><p>  STACKSSEGMENT</p><p>  DB100 DUP(?)</p><p&

33、gt;  STACKSENDS</p><p>  ;--------------------------------------</p><p>  CODE SEGMENT</p><p>  ASSUME CS:CODE , DS:DATA</p><p><b>  START: </b></p&g

34、t;<p>  MOV AX,DATA</p><p>  MOV DS,AX</p><p>  MOV ES,AX</p><p>  MOV AH,09H</p><p>  MOV DX,OFFSET MESS1 ;顯示提示信息</p><p>  I

35、NT 21H</p><p>  MOV AX , DATA</p><p>  MOV DS , AX</p><p>  movax , stacks</p><p>  movss , ax</p><p><b>  ;8255初始化</b></p><

36、p>  MOV DX , P8255M</p><p>  MOV AL , 90H ;初始化8255控制字 A口輸入,B、C輸出</p><p>  OUT DX , AL</p><p><b>  ;8253初始化</b></p><p>  mov dx , P8253M</p>

37、;<p>  mov al , 00111100B ;8253 CNT0=10000 方式2 B</p><p>  out dx , al</p><p>  movax , 10000;賦初值</p><p>  mov dx , P8253A</p><p>  out dx , al</p&g

38、t;<p>  moval , ah </p><p>  outdx , al </p><p>  mov dx , P8253M</p><p>  mov al , 01011101B ;8253 CNT1=100 方式2 D</p><p>  out dx , al</p><p&

39、gt;  moval , 100</p><p>  mov dx , P8253B</p><p>  out dx , al</p><p>  mov dx , P8253M</p><p>  mov al , 10011101B ;8253 CNT2=20 方式2 D</p><p>  ou

40、t dx , al</p><p>  moval , 20h ;20 如賦初值20,則數(shù)碼管顯示初值為14</p><p>  mov dx , P8253C</p><p>  out dx , al</p><p>  call prorand ;產(chǎn)生初始隨機(jī)數(shù)</p><p>  wait_f

41、or_start : </p><p><b>  ;游戲的初始化</b></p><p>  ;8255B接led</p><p>  ;c3-L0關(guān)主持人燈</p><p>  moval , 00000110b </p><p>  movdx , P8255M </p>

42、<p>  outdx , al</p><p>  ;c4-L2關(guān)搶答提示燈</p><p>  moval , 00001000b </p><p>  movdx , P8255M </p><p>  outdx , al</p><p><b>  ;c5-</b>

43、</p><p>  ;c6-L6關(guān)playerA燈</p><p>  moval , 00001100b </p><p>  movdx , P8255M </p><p>  outdx , al</p><p>  ;c7-L5關(guān)playerB燈</p><p>  mov

44、al , 00001010b </p><p>  movdx , P8255M </p><p>  outdx , al</p><p>  moval , 0;7段led滅</p><p>  movdx , led7</p><p>  outdx , al</p><p>

45、;  ;c0接cs0 , c1接cs1</p><p>  ;c2接gate0,1,2</p><p><b>  ;關(guān)計(jì)數(shù)</b></p><p>  moval , 00000100b </p><p>  movdx , P8255M </p><p>  outdx , al<

46、/p><p><b>  ;關(guān)斷7段</b></p><p>  moval , 00000000b; 數(shù)字低位</p><p>  movdx , P8255M </p><p>  outdx , al</p><p>  moval , 00000010b ;數(shù)字高位</p>

47、;<p>  movdx , P8255M </p><p>  outdx , al</p><p>  mov dx , P8255A</p><p>  in al , dx</p><p>  test AL , 01H ;判斷主持人開(kāi)關(guān)是復(fù)位還是啟動(dòng)</p><p>

48、  ;K0是開(kāi)始開(kāi)關(guān),高電平開(kāi)始</p><p>  JZ wait_for_start</p><p>  ;按下啟動(dòng)鈕 開(kāi)始游戲</p><p>  ;c3-L0主持人燈</p><p><b>  ;開(kāi)啟主持人燈L0</b></p><p>  moval , 00000111b

49、</p><p>  movdx , P8255M </p><p>  outdx , al</p><p><b>  ;開(kāi)始計(jì)數(shù)</b></p><p>  ;c2-gate0,1,2</p><p>  moval , 00000101b </p><p> 

50、 movdx , P8255M </p><p>  outdx , al</p><p>  start_game :</p><p>  mov dx , P8255A</p><p>  in al , dx</p><p>  test AL , 01H ;判斷主持人開(kāi)關(guān)是復(fù)位還是

51、啟動(dòng)</p><p>  JZ wait_for_start</p><p>  ;按下啟動(dòng)鈕取當(dāng)前時(shí)間</p><p>  movdx , P8253C</p><p><b>  inal ,dx</b></p><p>  movah , al</p><p&g

52、t;  movc_time , al </p><p>  and al , 0fh </p><p>  movledl , al </p><p>  movcl , 4</p><p>  rorah , cl</p><p>  andah , 0fh</p><p>  

53、movledh , ah </p><p><b>  ;動(dòng)態(tài)顯示7段</b></p><p>  mov bl , ledh</p><p>  mov bh , 0</p><p>  lea si , LED</p><p>  add si , bx</p><p&g

54、t;  mov al , byte ptr [si];---mov al,led[bl]???????????????????</p><p>  mov dx , led7</p><p>  out dx , al</p><p><b>  ;開(kāi)啟cs0</b></p><p>  moval , 0000001

55、b </p><p>  movdx , P8255M </p><p>  outdx , al</p><p>  calldelay;延時(shí)一點(diǎn)</p><p><b>  ;關(guān)閉cs0</b></p><p>  moval , 00000000b </p><

56、;p>  movdx , P8255M </p><p>  outdx , al</p><p>  mov bl , ledl</p><p>  mov bh , 0</p><p>  lea si , LED</p><p>  add si , bx</p><p>  m

57、ov al , byte ptr [si];---mov al,led[bl]???????????????????</p><p>  mov dx , led7</p><p>  out dx , al </p><p><b>  ;開(kāi)啟cs1</b></p><p>  moval , 00000011b &

58、lt;/p><p>  movdx , P8255M </p><p>  outdx , al</p><p>  calldelay;延時(shí)一點(diǎn)</p><p><b>  ;關(guān)閉cs1</b></p><p>  moval , 00000010b </p><p&

59、gt;  movdx , P8255M </p><p>  outdx , al</p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  movenableA , 0 ;屏蔽先搶答行為</p><p>  movenableB , 0 </p>&

60、lt;p>  movbl , c_time </p><p>  sub bl , 20</p><p>  neg bl ;求 20-bl</p><p>  movdl , random </p><p>  cmpbl , dl ;是否到了點(diǎn)亮搶答燈的時(shí)間</p><p><b>  j

61、glight1</b></p><p>  jmpstart_game </p><p><b>  light1:</b></p><p>  push cx ;DOS功能調(diào)用取點(diǎn)亮搶答燈時(shí)的精確時(shí)間 用于計(jì)算反應(yīng)時(shí)間</p><p>  push dx </p>

62、<p>  movah , 2ch </p><p><b>  int21h </b></p><p>  movstart_s , dh</p><p>  movstart_ms , dl</p><p><b>  popdx </b></p><p

63、><b>  popcx</b></p><p><b>  light:</b></p><p>  ;c4-L2搶答提示燈</p><p><b>  ;打開(kāi)搶答提示燈</b></p><p>  moval , 00001001b </p>&l

64、t;p>  movdx , P8255M </p><p>  outdx , al</p><p>  movdx , P8255A ;檢測(cè)開(kāi)關(guān)狀態(tài)</p><p>  inal , dx </p><p>  ;A6接A player ,A5接B player</p><p>  testal

65、, 01000000b;如果燈亮的時(shí)候是沒(méi)有按下就開(kāi)啟搶答使能</p><p><b>  jnznext1</b></p><p>  movenableA , 1</p><p><b>  next1:</b></p><p>  testal , 00100000b</p&g

66、t;<p><b>  jnznext2</b></p><p>  movenableB , 1</p><p><b>  next2:</b></p><p>  cmpenableA , 1;如果搶答使能而且按下了搶答鍵</p><p><b>  jne

67、nextB</b></p><p><b>  ;否則A搶答有效</b></p><p>  test al , 01000000b</p><p><b>  jznextB</b></p><p>  moval , 00001101b ;點(diǎn)亮A搶答燈</p>&

68、lt;p>  movdx , P8255M </p><p>  outdx , al</p><p><b>  jmpquit</b></p><p><b>  nextB:</b></p><p>  cmpenableB , 1</p><p><

69、;b>  jnenext</b></p><p><b>  ;B搶到了,亮L7</b></p><p>  test al , 00100000b</p><p><b>  jznext</b></p><p>  moval , 00001111b ;點(diǎn)亮B搶答燈<

70、;/p><p>  movdx , P8255M </p><p>  outdx , al</p><p><b>  jmpquit</b></p><p>  skip1: jmp wait_for_start;跳板</p><p>  next:;A、B都搶答無(wú)效或A、B都沒(méi)搶答&l

71、t;/p><p>  mov dx , P8255A</p><p>  in al , dx</p><p>  test AL , 01H ;判斷主持人開(kāi)關(guān)是復(fù)位還是啟動(dòng)</p><p><b>  JZ skip1</b></p><p><b>  ;取當(dāng)前

72、時(shí)間</b></p><p>  movdx , P8253C</p><p><b>  inal ,dx</b></p><p>  movah , al</p><p>  movc_time , al </p><p>  and al , 0fh </p&g

73、t;<p>  movledl , al </p><p>  movcl , 4</p><p>  rorah , cl</p><p>  andah , 0fh</p><p>  movledh , ah </p><p>  ;7段燈掃描不能停止</p><p&g

74、t;  mov bl , ledh</p><p>  mov bh , 0</p><p>  lea si , LED</p><p>  add si , bx</p><p>  mov al , byte ptr [si];---mov al,led[bl]???????????????????</p><p&g

75、t;  mov dx , led7</p><p>  out dx , al</p><p><b>  ;開(kāi)啟cs0</b></p><p>  moval , 0000001b </p><p>  movdx , P8255M </p><p>  outdx , al</p&

76、gt;<p>  calldelay;延時(shí)一點(diǎn)</p><p><b>  ;關(guān)閉cs0</b></p><p>  moval , 00000000b </p><p>  movdx , P8255M </p><p>  outdx , al</p><p>  m

77、ov bl , ledl</p><p>  mov bh , 0</p><p>  lea si , LED</p><p>  add si , bx</p><p>  mov al , byte ptr [si];---mov al,led[bl]???????????????????</p><p>  m

78、ov dx , led7</p><p>  out dx , al </p><p><b>  ;開(kāi)啟cs1</b></p><p>  moval , 00000011b </p><p>  movdx , P8255M </p><p>  outdx , al</p>

79、<p>  calldelay;延時(shí)一點(diǎn)</p><p><b>  ;關(guān)閉cs1</b></p><p>  moval , 00000010b </p><p>  movdx , P8255M </p><p>  outdx , al</p><p>  jmp

80、light;繼續(xù)檢測(cè)按鍵,是否有人搶答</p><p><b>  quit:</b></p><p><b>  ;收尾</b></p><p><b>  ;取當(dāng)前精確時(shí)間</b></p><p><b>  push cx </b></p&g

81、t;<p><b>  pushdx </b></p><p>  movah , 2ch </p><p><b>  int21h </b></p><p>  movend_s , dh</p><p>  movend_ms , dl</p><

82、p><b>  popdx </b></p><p><b>  popcx</b></p><p>  mov al,end_s ;計(jì)算反應(yīng)時(shí)間</p><p>  mov react_s , al</p><p>  mov al , start_s</p><p

83、>  sub react_s , al</p><p>  mov al,end_ms</p><p>  mov react_ms , al</p><p>  add react_ms , 100</p><p>  dec react_s</p><p>  mov al , start_ms</p&

84、gt;<p>  sub react_ms , al</p><p>  cmp react_ms , 100</p><p><b>  JL Ndeal</b></p><p>  sub react_ms , 100</p><p>  inc react_s</p><p>

85、<b>  Ndeal:</b></p><p>  movdx , P8255A</p><p>  inal , dx ;檢測(cè)test鍵</p><p>  testal , 00000010b;有無(wú)按下檢測(cè)鍵</p><p>  jzntest ;未按下</p><p&

86、gt;  ;按下,顯示反應(yīng)時(shí)間</p><p><b>  keyt:</b></p><p>  movdl , react_s</p><p>  mov random , al</p><p>  add random , 3 ;用上次的反應(yīng)時(shí)間做下次的隨機(jī)數(shù)初值</p><p>  

87、movcl , 4</p><p>  rordl , cl </p><p>  anddl , 0fh</p><p>  adddl , 30h</p><p>  movah , 02h</p><p><b>  int21h</b></p><p>

88、  movdl , react_s</p><p>  anddl , 0fh</p><p>  adddl , 30h</p><p><b>  int21h</b></p><p>  movdl , 2eh</p><p><b>  int21h</b>

89、;</p><p>  movdl , react_ms</p><p>  movcl , 4</p><p>  rordl , cl </p><p>  anddl , 0fh</p><p>  adddl , 30h</p><p><b>  int21h&l

90、t;/b></p><p>  movdl , end_ms</p><p>  anddl , 0fh</p><p>  adddl , 30h</p><p><b>  int21h</b></p><p><b>  ntest:</b></

91、p><p><b>  ;停止計(jì)數(shù)</b></p><p>  ;c2-gate0,1,2</p><p>  moval , 00000100b </p><p>  movdx , P8255M </p><p>  outdx , al</p><p>  ;c3-

92、L0主持人燈</p><p><b>  ;關(guān)主持人燈</b></p><p>  moval , 00000110b </p><p>  ;movdx , P8255M </p><p>  outdx , al</p><p>  ;c4-L2搶答提示燈</p>&l

93、t;p><b>  ;關(guān)搶答提示燈</b></p><p>  moval , 00001000b </p><p>  ;movdx , P8255M </p><p>  outdx , al</p><p>  jmp w_f_reset</p><p>  skip2: jm

94、p start;**************************</p><p>  w_f_reset:</p><p>  movdx , P8255A</p><p>  inal , dx ;檢測(cè)test鍵</p><p>  testal , 00000010b;有無(wú)按下檢測(cè)鍵</p><p>

95、  jnzkeyt ;按下,顯示反應(yīng)時(shí)間</p><p>  mov dx , P8255A</p><p>  in al , dx</p><p>  test AL , 01H ;判斷主持人開(kāi)關(guān)是復(fù)位還是啟動(dòng)</p><p><b>  JZ skip2</b></p

96、><p>  jmp w_f_reset</p><p>  delay proc</p><p><b>  pushcx </b></p><p>  movcx ,100</p><p>  zzz:loopzzz</p><p><b>  po

97、pcx</b></p><p><b>  ret</b></p><p>  delayendp</p><p>  prorand proc</p><p><b>  push cx</b></p><p><b>  push si<

98、/b></p><p>  mov cx , 100</p><p>  mov si , 34h</p><p><b>  addr:</b></p><p>  xor al , al</p><p>  mov al , [si]</p><p>  add

99、random , al</p><p><b>  inc si</b></p><p><b>  loop addr</b></p><p>  and random , 07h</p><p><b>  pop si</b></p><p>&l

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論