微機課程設計數(shù)字秒表_第1頁
微機課程設計數(shù)字秒表_第2頁
微機課程設計數(shù)字秒表_第3頁
微機課程設計數(shù)字秒表_第4頁
微機課程設計數(shù)字秒表_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、目 錄1.中文摘要22.方案論證33.總體設計方案43.1硬件系統(tǒng)設計53.1.1 8086簡介.53.1.2 8255簡介.63.1.3 8083簡介.83.1.4 硬件系統(tǒng)原理圖.93.2軟件系統(tǒng)設計103.2.1 軟件設計要求及介紹.113.2.2 程序設計流程.123.2.3 程序清單.134.實驗結果及分析245.總結體會256.參考文獻26一、中文摘要微機原理與接口技術是一門實踐性很強的電子信息工程專業(yè)的技術基礎課程。因此,微機接口課程設計是一項實踐性很強的實訓環(huán)節(jié),結合運用所學的匯編語言及8086微處理芯片設計一個電子秒表,通過實踐能夠加深對匯編語言的理解以及對8086微處理器、

2、8253可編程定時器、8259A可編程中斷控制器、8255A可編程并行I/O接口芯片等的基本功能的認識。本實驗利用8253可編程定時器等芯片的定時和記數(shù)的原理,結合實驗箱上的集成電路芯片8086、LED數(shù)碼管以及實驗箱上的按鍵來設計秒表。將軟、硬件有機地結合起來,要求實現(xiàn)計時單位為1/100秒,利用功能鍵進行啟/??刂?,上電后計時器清0,當?shù)谝淮伟聪翶EY1啟/停鍵時開始計數(shù),按一下KEY2鍵清零,重新開始計時,在系統(tǒng)能夠正確地進行計時,使5位LED數(shù)碼管能夠正確地顯示時間。關鍵字:電子秒表、百分之一秒、停啟控制。二、方案論證根據(jù)課程設計的要求和我們所要增加的功能寫好程序流程圖,在程序流程圖的

3、基礎上,結合芯片的功能寫出相應的程序。然后再進行程序調試和相應的修改,以達到能夠實現(xiàn)所要求實現(xiàn)的功能的目的。在微機原理定匯編調試軟件上編輯源程序,并進行匯編,在匯編成功無誤后,選擇端口進行調試,然后裝入程序,至此,本次設計的軟件工作準備完畢。再根據(jù)硬件原理設計圖完成各芯片之間的連接,打開實驗箱電源開關總體進行調試。在整個實驗過程中,在8253可編程定時器CLK端輸出管腳處接上一個計數(shù)的頻率為10KHZ的時鐘信號,由8253定時/計數(shù)器產生0.01秒的中斷并進行計數(shù),可編程并行I/O接口芯片8255A將偏移地址寫入內存單元,進中斷更新數(shù)據(jù),然后將內存數(shù)據(jù)送給LED數(shù)碼管顯示。定時器中斷就是定義初

4、值,然后開中斷,剩下的就在中斷里寫了。保存數(shù)據(jù)段后,取中斷程序入口地址,定義可編程中斷控制器8259中斷7中斷矢量,讀8259中斷屏蔽字,開8259中斷7,六位數(shù)碼管用動態(tài)顯示,挨個點亮,六個I/O控制位,十二個I/O控制段碼,將8259的定時器設置在0.01秒進入一次中斷,交替輸出高低電平(形成時鐘頻率),在計數(shù)器輸出使用組合邏輯電路連接LED燈的各個控制輸入端。三、總體設計方案設計一個利用微機原理與接口技術完成秒表的設計方案, 該方案主要是選擇8253A的計數(shù)器2與計數(shù)器1產生一個1Hz的中斷脈沖,其輸出端與不可屏蔽中斷請求信號端相連接。利用1.19318MHz脈沖方波輸入CLK2,設置C

5、LK2的初值為59659,將CLK2的輸出端連接到CLK1,設置CLK1的初值為20,將OUT1連接到8086CPU的NMI端。將NMI端有一個低電平信號輸入時,8086CPU將產生中斷進行秒計數(shù)。8086通過8255A將PA口作為段選信號輸出端,將PB口作為片選信號輸出端。此方案的核心內容是利用微機原理與接口技術完成秒表的設計方案,該方案主要是選擇8253A的計數(shù)器2和計數(shù)器1進行1s的定時,其輸出于OUT1與8086的NMI相連,當定時到1s的時候產生一個中斷信號,在中斷服務程序進行秒的計數(shù),并送入相應的存儲單元;8255的A口接七段數(shù)碼管的段選信號,B口接七段數(shù)碼管的位選信號,秒的數(shù)值通

6、過對8255的編程可以顯示在七段數(shù)碼管上面。該方案是利用微機接口技術的典范案例,就可行性而言,也是行之有效的??傮w設計方框圖3.1硬件系統(tǒng)設計3.1.1 8086簡介Intel 8086擁有四個16位的通用寄存器,也能夠當作八個8位寄存器來存取,以及四個16位索引寄存器(包含了堆棧指標)。資料寄存器通常由指令隱含地使用,針對暫存值需要復雜的寄存器配置。它提供64K,8位元的輸出輸入(或32K,16位元),以及固定的向量中斷。大部分的指令只能夠存取一個內存位址,所以其中一個操作數(shù)必須是一個寄存器。運算結果會儲存在操作數(shù)中的一個。Intel 8086有四個 內存區(qū)段(segment)寄存器,可以從

7、索引寄存器來設定。區(qū)段寄存器可以讓CPU利用特殊的方式存取1MB內存。8086把段地址左移4位然后把它加上偏移地址。而 8086 的尋址方式改變讓內存擴充較有效率。8086處理器的時鐘頻率介于4.77MHz(在原先的IBM PC)和10 MHz之間。8086沒有包含浮點指令部分(FPU),但是可以通過外接數(shù)學輔助處理器來增強浮點計算能力。其I/O分配如下圖所示: 3.1.2 8255簡介Intel 8086/8088 系列的可編程外設接口電路(Programmable Peripheral Interface)簡稱PPI,型號為8255(改進型為8255A及8255A-5),具有24條輸入/輸

8、出引腳、可編程的通用并行輸入/輸出接口電路。它是一片使用單一+5V電源的40腳雙列直插式大規(guī)模集成電路。8255A的通用性強,使用靈活,通過它CPU可直接與外設相連接。8255A在使用前要寫入一個方式控制字,選擇A、B、C三個端口各自的工作方式,共有三種;方式0:基本的輸入輸出方式,即無須聯(lián)絡就可以直接進行的 I/O方式。其中A、B、C口的高四位或低四位可分別設置成輸入或輸出。方式1:選通I/O,此時接口和外圍設備需聯(lián)絡信號進行協(xié)調,只有A口和B口可以工作在方式1,此時C口的某些線被規(guī)定為A口或B口與外圍設備的聯(lián)絡信號,余下的線只有基本的I/O功能,即只工作在方式0。方式2:雙向I/O方式,只

9、有A口可以工作在這種方式,該I/O線即可輸入又可輸出,此時C口有5條線被規(guī)定為A口和外圍設備的雙向聯(lián)絡線,C口剩下的三條線可作為B口方式1的聯(lián)絡線,也可以和B口一起方式0的I/O線。8255A是一個并行輸入、輸出器件,具有24個可編程設置的I/O口,包括3組8位的I/O為PA口、PB口、PC口,又可分為2組12位的I/O口:A組包括A口及C口高4位,B組包括B口及C組的低4位。3.1.3 8253簡介Intel8253是NMOS工藝制成的可編程計數(shù)器/定時器,有幾種芯片型號,外形引腳及功能都是兼容的,只是工作的最高計數(shù)速率有所差異,例如8253(2.6MHz),8253-5(5MHz),825

10、3內部有三個計數(shù)器,分別成為計數(shù)器0、計數(shù)器1和計數(shù)器2,他們的機構完全相同。每個計數(shù)器的輸入和輸出都決定于設置在控制寄存器中的控制字,互相之間工作完全獨立。每個計數(shù)器通過三個引腳和外部聯(lián)系,一個為時鐘輸入端CLK,一個為門控信號輸入端GATE,另一個為輸出端OUT。每個計數(shù)器內部有一個8位的控制寄存器,還有一個16位的計數(shù)初值寄存器CR、一個計數(shù)執(zhí)行部件CE和一個輸出鎖存器OL。執(zhí)行部件實際上是一個16位的減法計數(shù)器,它的起始值就是初值寄存器的值,而初始值寄存器的值是通過程序設置的。輸出鎖存器的值是通過程序設置的。輸出鎖存器OL用來鎖存計數(shù)執(zhí)行部件CE的內容,從而使CPU可以對此進行讀操作。

11、順便提一下,CR、CE和OL都是16位寄存器,但是也可以作8位寄存器來用:.硬件系統(tǒng)原理圖3.2軟件系統(tǒng)設計軟件設計要求及介紹這是一個利用微機原理與接口技術完成秒表的設計方案,該方案主要是選擇8253A的計數(shù)器2與計數(shù)器1進行1s的定時,其輸出于OU1與8086的NMI相連,當定時到1s的時候產生一個中斷信號,在中斷服務程序進行秒的計數(shù),并送入相應的存儲單元;8255的A口接七段數(shù)碼管的段選信號,B口接七段數(shù)碼管的位選信號。我的數(shù)值通過對8255的編程可以顯示在七段數(shù)碼管上面。因此可以利用8086等器件的功能來完成設計。EMU8086是學習匯編必不可少的工具,它結合了一個先進的原始編輯器、組譯

12、器、反組譯器、具除錯功能的軟件模擬工具(虛擬PC),還有一個循序漸進的指導工具。該軟件包含了學習匯編語言的全部內容。Emu8086集源代碼編輯器,匯編反匯編工具以及可以運行debug的模擬器(虛擬機器)于一身,此外,還有循序漸進的教程。這里是軟件設計的流程,首先對所要用到的邏輯元器件的控制端口,I/O口進行初始化,接著通過按下按鍵“1”來調用賦值子程序,這中間必須要應用一個延時程序來防抖,完成后就開始中斷,接著判斷按鍵“2”按下去的次數(shù),如果是奇數(shù)次的話就繼續(xù)進行秒表計時,如果按下去的是偶數(shù)次的話,那么暫停,顯示當前秒表的計數(shù)值。程序設計流程程序清單DIS MACRO LOCAT,CODE ;

13、設置圖形顯示宏定義 PUSH DX PUSH BX PUSH AX MOV DX,LOCAT ;設置光標位置 MOV BH,00 MOV AH,02H INT 10H MOV DL,CODE ;輸出字符串 MOV AH,02H INT 21H POP AX POP BX POP DX ENDMDAT SEGMENT ;設置數(shù)據(jù)段BUF DB 'INPUT START RESET END CONTINUE $' ;設置功能說明BUFFER DB 10 DUP(?) ;定義緩存區(qū)TIP DB 'M E M O R Y$' ;定義記憶提示NUM DB 1 LOD EQ

14、U 0929HDAT ENDSCOD SEGMENT ;定義代碼段START PROC FARASSUME CS:COD,DS:DAT MOV AX,DATMOV DS,AXMOV DX,OFFSET BUF ;輸出功能說明MOV AH,09HINT 21HCALL DISMER ;記憶區(qū)提示符置光標MOV DX,OFFSET TIP ;輸出記憶提示字符MOV AH,09HINT 21HCALL CLR ;圖形區(qū)清屏并設置顏色CALL CLRDAT ;秒表數(shù)字區(qū)清屏并設置顏色CALL CLRMER ; 記憶區(qū)清屏并設置顏色DIS 0419H,'<' ;通過宏調用顯示圖形D

15、IS 0517H,'<'DIS 0715H,'<'DIS 0914H,'<'DIS 0B14H,'<'DIS 060EH,'_'DIS 0710H,'_'DIS 0812H,'_'DIS 0913H,'_'DIS 0A14H,'_'DIS 0915H,'_'DIS 0816H,'_'DIS 0718H,'_'DIS 061AH,'_'DIS 071CH,'*

16、'DIS 081EH,'*'DIS 091FH,'*'DIS 0B20H,'*'DIS 0D21H,'*'DIS 0F21H,'*'DIS 1120H,'*'DIS 131FH,'*'DIS 141EH,'*'DIS 151DH,'*'DIS 161BH,'*'DIS 1719H,'*'DIS 1717H,'_'DIS 1616H,'_'DIS 1514H,'_'D

17、IS 1612H,'_'DIS 1711H,'_'DIS 170EH,'*'DIS 160CH,'*'DIS 150BH,'*'DIS 140AH,'*' DIS 1309H,'*'DIS 1108H,'*'DIS 0F07H,'*'DIS 0D07H,'*'DIS 0B08H,'*'DIS 0909H,'*'DIS 080AH,'*'DIS 070CH,'*'DIS 0C

18、12H,'_'DIS 0C13H,'_'DIS 0C14H,'_'DIS 0C15H,'_'DIS 0C16H,'_'CALL GO ;設置初植LOAD: CALL IOSET ;光標定位CALL HALT ;等待輸入MOV DX,0MOV CH,0AGAIN: CALL TIME ;調用延時程序 MOV AL,DL ;百分之一秒加一ADD AL,1DAAJC NEXT1 ;滿一百進位MOV DL,ALJMP DISPY ;不滿一百顯示NEXT1: MOV DL,0MOV AL,DH ;秒位加一ADD AL,1DA

19、AMOV DH,ALCMP AL,60H JNE DISPYCALL BELL ;滿60提示鈴聲并進位MOV DH,0MOV AL,CH ;分位加一ADD AL,1DAAMOV CH,ALCMP AL,60HJNE DISPY ;滿60清零MOV CH,0DISPY: ;顯示電子秒表MOV BX,OFFSET BUFFER ;取緩沖區(qū)地址 MOV AL,CHCALL TRAN ;將分位轉變?yōu)锳SCII碼并送緩沖區(qū)INC BXINC BXMOV AL,DH ;將秒位轉變?yōu)锳SCII碼并送緩沖區(qū)CALL TRANINC BXINC BXMOV AL,DL ;將百分之一秒位轉變?yōu)锳SCII碼并送緩沖

20、區(qū)CALL TRANPUSH BXPUSH CXPUSH DXCALL IOSET ;光標置位MOV DX,OFFSET BUFFER ;輸出緩沖區(qū)字符串MOV AH,09HINT 21HPOP DXPOP CXPOP BXMOV AH,0BH ;等待鍵盤輸入INT 21HAND AL,ALJZ AGAINMOV AH,08HINT 21HCMP AL,'R' ;判斷輸入是否為RJNE NEXT2 ;不是則判斷是否為ECALL MEMORY ;若是則調用記憶功能保存當前值MOV CH,0 ;初值清零重新計數(shù)MOV DL,0MOV DH,0JMP AGAINNEXT2:CMP A

21、L,'E' ;判斷是否為E JNE AGAIN ;不是則繼續(xù)計數(shù)NEXT3: ;若是則暫停計數(shù)MOV AH,08HINT 21HCMP AL,'C' ;判斷是否輸入CJE AGAIN ;若是則繼續(xù)計數(shù)CMP AL,'R' ;判斷是否輸入RJNE NEXT3 ;若不是則繼續(xù)等待輸入CALL MEMORY ;若是則調用記憶功能CALL GO ;重新設置初值等待重新啟動CALL IOSETMOV DX,OFFSET BUFFERMOV AH,09HINT 21HJMP LOADRETSTART ENDPGO PROC ;設置初值子程序MOV BX,OF

22、FSET BUFFERMOV AL,'0'MOV BX,ALINC BXMOV AL,'0'MOV BX,ALINC BXMOV AL,':'MOV BX,ALINC BXMOV AL,'0'MOV BX,ALINC BXMOV AL,'0'MOV BX,ALINC BXMOV AL,':'MOV BX,ALINC BXMOV AL,'0'MOV BX,ALINC BXMOV AL,'0'MOV BX,ALINC BXMOV AL,'$'MOV BX,

23、ALRETGO ENDPIOSET PROCMOV DX,0F10HMOV BH,00MOV AH,02HINT 10HRETIOSET ENDPHALT PROCMOV AH,08HINT 21HCMP AL,'S'JNE HALTRETHALT ENDPTRAN PROC ;十六進制轉ASCII碼子程序MOV CL,ALSHR AL,1SHR AL,1SHR AL,1SHR AL,1OR AL,30HMOV BX,ALINC BXMOV AL,CLAND AL,0FHOR AL,30HMOV BX,ALRETTRAN ENDPTIME PROC ;延時子程序PUSH CXP

24、USH AXMOV AX,0EFHMOV CX,0FFFFHA1:DEC AXJNZ A2JMP A3A2:DEC CXJNZ A2JMP A1A3:POP AXPOP CXRETTIME ENDPMEMORY PROC ;記憶功能子程序PUSH DXPUSH BXPUSH AXCMP NUM,10JE X2ADD NUM,1X1:MOV DX,LODADD DH,NUMMOV BH,00MOV AH,02HINT 10HMOV DX,OFFSET BUFFERMOV AH,09HINT 21HPOP AXPOP BXPOP DXRETX2: CALL CLRMERMOV NUM,1JMP X

25、1MEMORY ENDPCLR PROC ;圖形區(qū)清屏并設置顏色子程序MOV AH,06HMOV AL,14HMOV CX,0401HMOV DX,1721HMOV BH,0CHINT 10HRETCLR ENDPCLRDAT PROC ;數(shù)據(jù)區(qū)清屏并設置顏色子程序MOV AH,6MOV AL,1MOV CX,0F10HMOV DX,0F18HMOV BH,0BHINT 10HRETCLRDAT ENDPCLRMER PROC ;記憶區(qū)清屏并設置顏色子程序PUSH AXPUSH BXPUSH CXPUSH DXMOV AH,6MOV AL,11MOV CX,0929HMOV DX,0F32HMOV BH,0DHINT 10HPOP DXPOP CXPOP

溫馨提示

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

評論

0/150

提交評論