微機(jī)原理電子秒表參考模板_第1頁
微機(jī)原理電子秒表參考模板_第2頁
微機(jī)原理電子秒表參考模板_第3頁
微機(jī)原理電子秒表參考模板_第4頁
微機(jī)原理電子秒表參考模板_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、目 錄中文摘要2方案論證3總體設(shè)計方案4硬件系統(tǒng)設(shè)計5軟件系統(tǒng)設(shè)計10硬件系統(tǒng)原理圖12程序清單13總結(jié)體會30參考文獻(xiàn)311 / 38中文摘要微機(jī)原理與接口技術(shù)是一門實踐性很強(qiáng)的電子信息工程專業(yè)的技術(shù)基礎(chǔ)課程。因此,微機(jī)接口課程設(shè)計是一項實踐性很強(qiáng)的實訓(xùn)環(huán)節(jié),結(jié)合運(yùn)用所學(xué)的匯編語言及8086微處理芯片設(shè)計一個電子秒表,通過實踐能夠加深對匯編語言的理解以及對8086微處理器、8253可編程定時器、8259A可編程中斷控制器、8255A可編程并行I/O接口芯片等的基本功能的認(rèn)識。本實驗利用8253可編程定時器等芯片的定時和記數(shù)的原理,結(jié)合實驗箱上的集成電路芯片8086、LED數(shù)碼管以及實驗箱上的

2、按鍵來設(shè)計秒表。將軟、硬件有機(jī)地結(jié)合起來,要求實現(xiàn)計時單位為1/100秒,利用功能鍵進(jìn)行啟/停控制,上電后計時器清0,當(dāng)?shù)谝淮伟聪翶EY1啟/停鍵時開始計數(shù),按一下KEY2鍵清零,重新開始計時,在系統(tǒng)能夠正確地進(jìn)行計時,使5位LED數(shù)碼管能夠正確地顯示時間。關(guān)鍵字:電子秒表、百分之一秒、停啟控制。方案論證根據(jù)課程設(shè)計的要求和我們所要增加的功能寫好程序流程圖,在程序流程圖的基礎(chǔ)上,結(jié)合芯片的功能寫出相應(yīng)的程序。然后再進(jìn)行程序調(diào)試和相應(yīng)的修改,以達(dá)到能夠?qū)崿F(xiàn)所要求實現(xiàn)的功能的目的。在微機(jī)原理定匯編調(diào)試軟件上編輯源程序,并進(jìn)行匯編,在匯編成功無誤后,選擇端口進(jìn)行調(diào)試,然后裝入程序,至此,本次設(shè)計的軟

3、件工作準(zhǔn)備完畢。再根據(jù)硬件原理設(shè)計圖完成各芯片之間的連接,打開實驗箱電源開關(guān)總體進(jìn)行調(diào)試。在整個實驗過程中,在8253可編程定時器CLK端輸出管腳處接上一個計數(shù)的頻率為10KHZ的時鐘信號,由8253定時/計數(shù)器產(chǎn)生0.01秒的中斷并進(jìn)行計數(shù),可編程并行I/O接口芯片8255A將偏移地址寫入內(nèi)存單元,進(jìn)中斷更新數(shù)據(jù),然后將內(nèi)存數(shù)據(jù)送給LED數(shù)碼管顯示。定時器中斷就是定義初值,然后開中斷,剩下的就在中斷里寫了。保存數(shù)據(jù)段后,取中斷程序入口地址,定義可編程中斷控制器8259中斷7中斷矢量,讀8259中斷屏蔽字,開8259中斷7,六位數(shù)碼管用動態(tài)顯示,挨個點(diǎn)亮,六個I/O控制位,十二個I/O控制段碼

4、,將8259的定時器設(shè)置在0.01秒進(jìn)入一次中斷,交替輸出高低電平(形成時鐘頻率),在計數(shù)器輸出使用組合邏輯電路連接LED燈的各個控制輸入端。總體設(shè)計方案設(shè)計一個利用微機(jī)原理與接口技術(shù)完成秒表的設(shè)計方案, 該方案主要是選擇8253A的計數(shù)器2與計數(shù)器1產(chǎn)生一個1Hz的中斷脈沖,其輸出端與不可屏蔽中斷請求信號端相連接。利用1.19318MHz脈沖方波輸入CLK2,設(shè)置CLK2的初值為59659,將CLK2的輸出端連接到CLK1,設(shè)置CLK1的初值為20,將OUT1連接到8086CPU的NMI端。將NMI端有一個低電平信號輸入時,8086CPU將產(chǎn)生中斷進(jìn)行秒計數(shù)。8086通過8255A將PA口作

5、為段選信號輸出端,將PB口作為片選信號輸出端。方案設(shè)計框圖此方案的核心內(nèi)容是利用微機(jī)原理與接口技術(shù)完成秒表的設(shè)計方案,該方案主要是選擇8253A的計數(shù)器2和計數(shù)器1進(jìn)行1s的定時,其輸出于OUT1與8086的NMI相連,當(dāng)定時到1s的時候產(chǎn)生一個中斷信號,在中斷服務(wù)程序進(jìn)行秒的計數(shù),并送入相應(yīng)的存儲單元;8255的A口接七段數(shù)碼管的段選信號,B口接七段數(shù)碼管的位選信號,秒的數(shù)值通過對8255的編程可以顯示在七段數(shù)碼管上面。該方案是利用微機(jī)接口技術(shù)的典范案例,就可行性而言,也是行之有效的。硬件系統(tǒng)設(shè)計8086簡介Intel 8086擁有四個16位的通用寄存器,也能夠當(dāng)作八個8位寄存器來存取,以及

6、四個16位索引寄存器(包含了堆棧指標(biāo))。資料寄存器通常由指令隱含地使用,針對暫存值需要復(fù)雜的寄存器配置。它提供64K,8位元的輸出輸入(或32K,16位元),以及固定的向量中斷。大部分的指令只能夠存取一個內(nèi)存位址,所以其中一個操作數(shù)必須是一個寄存器。運(yùn)算結(jié)果會儲存在操作數(shù)中的一個。Intel 8086有四個 內(nèi)存區(qū)段(segment)寄存器,可以從索引寄存器來設(shè)定。區(qū)段寄存器可以讓CPU利用特殊的方式存取1MB內(nèi)存。8086把段地址左移4位然后把它加上偏移地址。而 8086 的尋址方式改變讓內(nèi)存擴(kuò)充較有效率。8086處理器的時鐘頻率介于4.77MHz(在原先的IBM PC)和10 MHz之間。

7、8086沒有包含浮點(diǎn)指令部分(FPU),但是可以通過外接數(shù)學(xué)輔助處理器來增強(qiáng)浮點(diǎn)計算能力。其I/O分配如下圖所示: CPU8086及I/O接口電路8255簡介Intel 8086/8088 系列的可編程外設(shè)接口電路(Programmable Peripheral Interface)簡稱PPI,型號為8255(改進(jìn)型為8255A及8255A-5),具有24條輸入/輸出引腳、可編程的通用并行輸入/輸出接口電路。它是一片使用單一+5V電源的40腳雙列直插式大規(guī)模集成電路。8255A的通用性強(qiáng),使用靈活,通過它CPU可直接與外設(shè)相連接。8255A在使用前要寫入一個方式控制字,選擇A、B、C三個端口各

8、自的工作方式,共有三種;方式0:基本的輸入輸出方式,即無須聯(lián)絡(luò)就可以直接進(jìn)行的 I/O方式。其中A、B、C口的高四位或低四位可分別設(shè)置成輸入或輸出。方式1:選通I/O,此時接口和外圍設(shè)備需聯(lián)絡(luò)信號進(jìn)行協(xié)調(diào),只有A口和B口可以工作在方式1,此時C口的某些線被規(guī)定為A口或B口與外圍設(shè)備的聯(lián)絡(luò)信號,余下的線只有基本的I/O功能,即只工作在方式0。方式2:雙向I/O方式,只有A口可以工作在這種方式,該I/O線即可輸入又可輸出,此時C口有5條線被規(guī)定為A口和外圍設(shè)備的雙向聯(lián)絡(luò)線,C口剩下的三條線可作為B口方式1的聯(lián)絡(luò)線,也可以和B口一起方式0的I/O線。8255A是一個并行輸入、輸出器件,具有24個可編

9、程設(shè)置的I/O口,包括3組8位的I/O為PA口、PB口、PC口,又可分為2組12位的I/O口:A組包括A口及C口高4位,B組包括B口及C組的低4位。 8086與8255連接圖8253簡介Intel8253是NMOS工藝制成的可編程計數(shù)器/定時器,有幾種芯片型號,外形引腳及功能都是兼容的,只是工作的最高計數(shù)速率有所差異,例如8253(2.6MHz),8253-5(5MHz),8253內(nèi)部有三個計數(shù)器,分別成為計數(shù)器0、計數(shù)器1和計數(shù)器2,他們的機(jī)構(gòu)完全相同。每個計數(shù)器的輸入和輸出都決定于設(shè)置在控制寄存器中的控制字,互相之間工作完全獨(dú)立。每個計數(shù)器通過三個引腳和外部聯(lián)系,一個為時鐘輸入端CLK,一

10、個為門控信號輸入端GATE,另一個為輸出端OUT。每個計數(shù)器內(nèi)部有一個8位的控制寄存器,還有一個16位的計數(shù)初值寄存器CR、一個計數(shù)執(zhí)行部件CE和一個輸出鎖存器OL。執(zhí)行部件實際上是一個16位的減法計數(shù)器,它的起始值就是初值寄存器的值,而初始值寄存器的值是通過程序設(shè)置的。輸出鎖存器的值是通過程序設(shè)置的。輸出鎖存器OL用來鎖存計數(shù)執(zhí)行部件CE的內(nèi)容,從而使CPU可以對此進(jìn)行讀操作。順便提一下,CR、CE和OL都是16位寄存器,但是也可以作8位寄存器來用:一段程序?qū)懲瓿珊蟛荒芗庇谏蠙C(jī)調(diào)試,而是先進(jìn)行邏輯分析、可行性分析。用EMU8086軟件進(jìn)行調(diào)試,不能出現(xiàn)錯誤,警告可以有,只要不影響生成HEX文

11、件即可。理解其實現(xiàn)的功能,預(yù)想程序應(yīng)該出現(xiàn)的結(jié)果。先進(jìn)行軟件仿真,出現(xiàn)錯誤馬上修改,不斷進(jìn)行。先一個模塊一個模塊的仿真,準(zhǔn)確后再連線總體仿真。仿真完后出現(xiàn)預(yù)期的效果后再下載程序到硬件進(jìn)行驗證,往往還有問題,還得反復(fù)修改,編譯,調(diào)試,下載,驗證。可以一個模塊一個模塊的下載調(diào)試這樣就可以知道問題的所在。采用Proteus和EMU8086結(jié)合仿真的可以大大簡化軟、硬件電路的設(shè)計過程。Proteus是英國Labeenter electronics公司研發(fā)的EDA工具軟件。Proteus不僅是模擬電路、數(shù)字電路、模/數(shù)混合電路的設(shè)計與仿真平臺,更是目前世界最先進(jìn)、最完整的多種型號微控制器系統(tǒng)的設(shè)計與仿真

12、平臺。它真正實現(xiàn)了在計算機(jī)上完成從原理圖設(shè)計、電路分析與仿真、單片機(jī)代碼級調(diào)試與仿真、系統(tǒng)測試與功能驗證到形成PCB的完整電子設(shè)計與研發(fā)過程。Proteus產(chǎn)品系列也包含了革命性的VSM技術(shù),可以對基于微控制器的設(shè)計連同所有的外圍電子器件一起仿真。由于我們的設(shè)計外圍電路比較簡單實現(xiàn)的功能葉不是很復(fù)雜,所以在Proteus仿真時我們是將主程序直接下載到芯片中仿真,主要是驗證是否采集到溫度還有溫度是否顯示正確。仿真可以在實物沒有出來前進(jìn)行先期的驗證。最后加上我們的擴(kuò)展功能一起仿真調(diào)試。由于沒有做硬件,我們采用Proteus仿真調(diào)試,通過將軟件編譯通過的程序下載到畫好的仿真圖中,這樣便于檢查軟、硬件

13、設(shè)計的不足。但是Proteus仿真也存在不足的情況,仿真模擬的是理想的環(huán)境,不會差生誤差但是實際的測試會出現(xiàn)一定的誤差。由于程序設(shè)計的是,當(dāng)系統(tǒng)運(yùn)行后,數(shù)碼管開始顯示計數(shù)時間,根據(jù)仿真結(jié)果。說明此設(shè)計工作正常。軟件系統(tǒng)設(shè)計軟件設(shè)計要求及介紹這是一個利用微機(jī)原理與接口技術(shù)完成秒表的設(shè)計方案,該方案主要是選擇8253A的計數(shù)器2與計數(shù)器1進(jìn)行1s的定時,其輸出于OU1與8086的NMI相連,當(dāng)定時到1s的時候產(chǎn)生一個中斷信號,在中斷服務(wù)程序進(jìn)行秒的計數(shù),并送入相應(yīng)的存儲單元;8255的A口接七段數(shù)碼管的段選信號,B口接七段數(shù)碼管的位選信號。我的數(shù)值通過對8255的編程可以顯示在七段數(shù)碼管上面。因此

14、可以利用8086等器件的功能來完成設(shè)計。EMU8086是學(xué)習(xí)匯編必不可少的工具,它結(jié)合了一個先進(jìn)的原始編輯器、組譯器、反組譯器、具除錯功能的軟件模擬工具(虛擬PC),還有一個循序漸進(jìn)的指導(dǎo)工具。該軟件包含了學(xué)習(xí)匯編語言的全部內(nèi)容。Emu8086集源代碼編輯器,匯編反匯編工具以及可以運(yùn)行debug的模擬器(虛擬機(jī)器)于一身,此外,還有循序漸進(jìn)的教程。這里是軟件設(shè)計的流程,首先對所要用到的邏輯元器件的控制端口,I/O口進(jìn)行初始化,接著通過按下按鍵“1”來調(diào)用賦值子程序,這中間必須要應(yīng)用一個延時程序來防抖,完成后就開始中斷,接著判斷按鍵“2”按下去的次數(shù),如果是奇數(shù)次的話就繼續(xù)進(jìn)行秒表計時,如果按下

15、去的是偶數(shù)次的話,那么暫停,顯示當(dāng)前秒表的計數(shù)值。程序設(shè)計流程圖 硬件系統(tǒng)原理圖程序清單DIS MACRO LOCAT,CODE ;設(shè)置圖形顯示宏定義 PUSH DX PUSH BX PUSH AX MOV DX,LOCAT ;設(shè)置光標(biāo)位置 MOV BH,00 MOV AH,02H INT 10H MOV DL,CODE ;輸出字符串 MOV AH,02H INT 21H POP AX POP BX POP DX ENDM DAT SEGMENT ;設(shè)置數(shù)據(jù)段BUF DB 'INPUT START RESET END CONTINUE $' ;設(shè)置功能說明BUFFER DB 1

16、0 DUP(?) ;定義緩存區(qū)TIP DB 'M E M O R Y$' ;定義記憶提示NUM DB 1 LOD EQU 0929HDAT ENDSCOD SEGMENT ;定義代碼段START PROC FARASSUME CS:COD,DS:DAT MOV AX,DATMOV DS,AXMOV DX,OFFSET BUF ;輸出功能說明MOV AH,09HINT 21HCALL DISMER ;記憶區(qū)提示符置光標(biāo)MOV DX,OFFSET TIP ;輸出記憶提示字符MOV AH,09HINT 21HCALL CLR ;圖形區(qū)清屏并設(shè)置顏色CALL CLRDAT ;秒表數(shù)字區(qū)

17、清屏并設(shè)置顏色CALL CLRMER ; 記憶區(qū)清屏并設(shè)置顏色DIS 0419H,'<' ;通過宏調(diào)用顯示圖形DIS 0517H,'<'DIS 0715H,'<'DIS 0914H,'<'DIS 0B14H,'<'DIS 060EH,'_'DIS 0710H,'_'DIS 0812H,'_'DIS 0913H,'_'DIS 0A14H,'_'DIS 0915H,'_'DIS 0816H,&#

18、39;_'DIS 0718H,'_'DIS 061AH,'_'DIS 071CH,'*'DIS 081EH,'*'DIS 091FH,'*'DIS 0B20H,'*'DIS 0D21H,'*'DIS 0F21H,'*'DIS 1120H,'*'DIS 131FH,'*'DIS 141EH,'*'DIS 151DH,'*'DIS 161BH,'*'DIS 1719H,'*&#

19、39;DIS 1717H,'_'DIS 1616H,'_'DIS 1514H,'_'DIS 1612H,'_'DIS 1711H,'_'DIS 170EH,'*'DIS 160CH,'*'DIS 150BH,'*'DIS 140AH,'*' DIS 1309H,'*'DIS 1108H,'*'DIS 0F07H,'*'DIS 0D07H,'*'DIS 0B08H,'*'DI

20、S 0909H,'*'DIS 080AH,'*'DIS 070CH,'*'DIS 0C12H,'_'DIS 0C13H,'_'DIS 0C14H,'_'DIS 0C15H,'_'DIS 0C16H,'_'CALL GO ;設(shè)置初植LOAD: CALL IOSET ;光標(biāo)定位CALL HALT ;等待輸入MOV DX,0MOV CH,0AGAIN: CALL TIME ;調(diào)用延時程序 MOV AL,DL ;百分之一秒加一ADD AL,1DAAJC NEXT1 ;滿一百進(jìn)

21、位MOV DL,ALJMP DISPY ;不滿一百顯示NEXT1: MOV DL,0MOV AL,DH ;秒位加一ADD AL,1DAAMOV DH,ALCMP AL,60H JNE DISPYCALL BELL ;滿60提示鈴聲并進(jìn)位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 ;將分位轉(zhuǎn)變?yōu)锳SCII碼并送緩沖區(qū)INC BXINC BXMOV AL,DH ;將秒

22、位轉(zhuǎn)變?yōu)锳SCII碼并送緩沖區(qū)CALL TRANINC BXINC BXMOV AL,DL ;將百分之一秒位轉(zhuǎn)變?yōu)锳SCII碼并送緩沖區(qū)CALL TRANPUSH BXPUSH CXPUSH DXCALL IOSET ;光標(biāo)置位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 ;若

23、是則調(diào)用記憶功能保存當(dāng)前值MOV CH,0 ;初值清零重新計數(shù)MOV DL,0MOV DH,0JMP AGAINNEXT2:CMP AL,'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 ;若是則調(diào)用記憶功能CALL GO ;重新設(shè)置初值等待重新啟動CALL IOSETMOV DX,OFFSET BU

24、FFERMOV AH,09HINT 21HJMP LOADRETSTART ENDPGO PROC ;設(shè)置初值子程序MOV BX,OFFSET 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

25、,ALINC BXMOV AL,'0'MOV BX,ALINC BXMOV AL,'$'MOV BX,ALRETGO ENDPIOSET PROCMOV DX,0F10HMOV BH,00MOV AH,02HINT 10HRETIOSET ENDPHALT PROCMOV AH,08HINT 21HCMP AL,'S'JNE HALTRETHALT ENDPTRAN PROC ;十六進(jìn)制轉(zhuǎn)ASCII碼子程序MOV CL,ALSHR AL,1SHR AL,1SHR AL,1SHR AL,1OR AL,30HMOV BX,ALINC BXMOV AL

26、,CLAND AL,0FHOR AL,30HMOV BX,ALRETTRAN ENDPTIME PROC ;延時子程序PUSH CXPUSH 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 X1MEMORY ENDPCLR PROC ;圖形區(qū)清屏并設(shè)置顏色子程序MOV AH,06HMOV AL,14HMOV CX,0401HMOV DX,1721HMOV BH,0CHINT 10HRETCLR ENDPCLRDAT PROC ;數(shù)據(jù)區(qū)清屏并設(shè)置顏色子程序MOV AH,6MOV AL,1MOV CX,0F10HMOV DX,0F18HMOV BH,0BHINT 1

溫馨提示

  • 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

提交評論