《微機原理及接口技術(shù)》課程設(shè)計簡易教學(xué)打鈴器設(shè)計_第1頁
《微機原理及接口技術(shù)》課程設(shè)計簡易教學(xué)打鈴器設(shè)計_第2頁
《微機原理及接口技術(shù)》課程設(shè)計簡易教學(xué)打鈴器設(shè)計_第3頁
《微機原理及接口技術(shù)》課程設(shè)計簡易教學(xué)打鈴器設(shè)計_第4頁
《微機原理及接口技術(shù)》課程設(shè)計簡易教學(xué)打鈴器設(shè)計_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目 錄1 設(shè)計任務(wù)與要求11.1設(shè)計任務(wù)1 1.2設(shè)計要求12 硬件框圖與說明32.1時間顯示模塊22.2計時模塊32.3主模塊43 電路原理圖與說明63.1鬧鈴指示電路63.2時間顯示電路63.3計時電路84 軟件設(shè)計主程序流程圖9 4.1顯示模塊流程圖9 4.2計時模塊流程圖10 4.3主程序流程圖11總結(jié)體會12參考文獻13附錄14簡易教學(xué)打鈴器設(shè)計1、 設(shè)計任務(wù)與要求1.1設(shè)計任務(wù)通過一個學(xué)期對微機原理及接口技術(shù)學(xué)習(xí),掌握的知識還停留在理論的上。但是這是一門實踐性較強的課程,讓學(xué)生在學(xué)完該課程之后,進行一次課程設(shè)計,使學(xué)生將課堂所學(xué)的知識和實踐有機結(jié)合起來,初步掌握計算機應(yīng)用系統(tǒng)設(shè)計的

2、步驟和接口設(shè)計的方法,提高分析和解決實際問題的能力。前期完成的實驗有:8259a中斷控制器實驗,8254定時計數(shù)器實驗,8255并行接口實驗。 因此此次要求同學(xué)做出簡易教學(xué)打鈴器課程設(shè)計,掌握dma工作原理,中斷工作原理,定時計數(shù)原理,并行通信原理,以及掌握8253,8259a,8279等芯片的功能、結(jié)構(gòu)和應(yīng)用。1.2設(shè)計要求(1)提供pc微機一臺,用于對程序的編譯測試等,同時還需要對實驗設(shè)備進行控制,提供整個程序的運行平臺,并且收集和釋放硬件信號,實現(xiàn)程序功能。(2)提供td-pit+一臺,此設(shè)備必須能提供8253、8255、8259和顯示燈等必要芯片。并且能通過接受pc機傳來的信息,顯示出

3、相應(yīng)的功能。以支持電子時鐘的實現(xiàn)。 (3)總體內(nèi)容:設(shè)計以教學(xué)打鈴器,能在數(shù)碼管上顯示時間并計時。 (4)接口設(shè)計:根據(jù)題目和所用的接口電路芯片設(shè)計出完整的接口電路,并在實驗系統(tǒng)上完成電路的連接和調(diào)試通過. (5)程序設(shè)計:要求畫出程序框圖,設(shè)計出全部程序并給出程序設(shè)計說明和程序注釋。2、 硬件框圖與說明 本設(shè)計主要由基本顯示模塊、系統(tǒng)走時模塊和主模塊等組成。2.1時間顯示模塊使用中斷控制器8259a控制,它將中斷源優(yōu)先級 排隊、辨別中斷源以及提供中斷矢量的電路集于一片中,因此無需附加任何電路,只需對8259a 進行編程,就可以管理8 級中斷,并選擇優(yōu)先模式和中斷請求方式,即中斷結(jié)構(gòu)可以由用戶

4、編 程來設(shè)定。同時,在不需增加其他電路的情況下,通過多片8259a 的級連,能構(gòu)成多達64 級的矢量中斷系統(tǒng)。它的管理功能包括:1)記錄各級中斷源請求,2)判別優(yōu)先級,確定是否響應(yīng) 和響應(yīng)哪一級中斷,3)響應(yīng)中斷時,向cpu 傳送中斷類型號。8259a 的內(nèi)部結(jié)構(gòu)和引腳如圖2.1所示:2.1 8259內(nèi)部結(jié)構(gòu)及引腳8259a 的命令共有7 個,一類是初始化命令字,另一類是操作命令。8259a 的編程就是根據(jù) 應(yīng)用需要將初始化命令字icw1-icw4 和操作命令字ocw1- ocw3 分別寫入初始化命令寄存器 組和操作命令寄存器組。ocw1-ocw3 各命令字格式如圖2.2所示,其中ocw1 用

5、于設(shè)置中斷屏蔽操作字,ocw2 用于設(shè)置優(yōu)先級循環(huán)方式和 中斷結(jié)束方式的操作命令字,ocw3 用于設(shè)置和撤銷特殊屏蔽方式、設(shè)置中斷查詢方式以及設(shè) 置對8259 內(nèi)部寄存器的讀出命令。2.2 ocw1-ocw3 各命令字格2.2計時模塊 該模塊的主要功能是對時、分、秒的運算,并把運算出的最終結(jié)果存放到事先已經(jīng)開辟的內(nèi)存單元里,以便顯示模塊即時地顯示出來。該模塊可細分為秒定時模塊和運算模塊。秒定時模塊負責(zé)提供中斷信號,由于cpu運算模塊中的指令消耗一定的時間,所以中斷信號最好通過硬件來實現(xiàn),可以選擇實驗箱中的8253定時/計數(shù)器來提供,中斷信號是8253的通道2工作方式3時,產(chǎn)生一個30hz的脈沖

6、信號。運算模塊負責(zé)時、分、秒的計算,該模塊主要通過8259的ir7號中斷來實現(xiàn),但由于每30hz一次中斷請求,所以在中斷服務(wù)程序必須利用已申請內(nèi)存單元count來統(tǒng)計中斷請求的次數(shù),只有當count的值為30時,才能讓秒單元內(nèi)的數(shù)值加1。另外,在中斷服務(wù)程序里,必須對秒、分和時的單元內(nèi)的數(shù)值進行判斷,當秒加到60時,分必須加1,秒清零;當分加到60時,時加1,分清零;當時加到24時,直接清零,然后轉(zhuǎn)到調(diào)用處。8253 具有以下基本功能: 1、 有3 個獨立的16 位計數(shù)器; 2、 每個計數(shù)器可按二進制或十進制(bcd)計數(shù); 每個計數(shù)器可編程工作于6 種不同工作方式;每個計數(shù)器允許的最高計數(shù)頻

7、率為10mhz(8253 為2mhz); 3、計數(shù)脈沖可以是有規(guī)律的時鐘信號,也可以是隨機信號。計數(shù)初值公式為n=fclki fouti,其中fclki是輸入時鐘脈沖的頻率,fouti是輸出波形的頻率。2.3 8253內(nèi)部結(jié)構(gòu)和引腳圖是8253 的內(nèi)部結(jié)構(gòu)框圖和引腳圖,它是由與cpu 的接口、內(nèi)部控制電路和三個計數(shù)器組成。8253 的工作方式如下述: (1) 方式0 :計數(shù)到0 結(jié)束輸出正躍變信號方式。 (2) 方式1:硬件可重觸發(fā)單穩(wěn)方式。 (3) 方式2 :頻率發(fā)生器方式。 (4) 方式3 :方波發(fā)生器。 (5) 方式4 :軟件觸發(fā)選通方式。 (6) 方式5 :硬件觸發(fā)選通方式。8253

8、的控制字有兩個:一個用來設(shè)置計數(shù)器的工作方式,稱為方式控制字;另一個用來設(shè) 置讀回命令,稱為讀回控制字。這兩個控制字共用一個地址,由標識位來區(qū)分??刂谱指袷饺绫?-9-1 所示。讀回控制字格式如表3-9-2 所示。當讀回控制字的d4 位為0 時,由該讀回控制字d1d2 位指定的計數(shù)器的狀態(tài)寄存器內(nèi)容將被鎖存到狀態(tài)寄存器中。狀態(tài)字格式如表2.6所示:圖2.4 8253狀態(tài)字格式2.3主模塊設(shè)計 系統(tǒng)的連線圖主要由五個部分構(gòu)成。8259中斷控制器、8255并口控制器、8253定時計數(shù)器、8279鍵盤及數(shù)碼管顯示單元、開關(guān)及l(fā)ed顯示單元構(gòu)成。如2.5圖所示: .3、 電路原理圖與說明 簡易教學(xué)打鈴

9、器的電路基本應(yīng)包括秒指示電路、時間顯示電路、按鍵電路、供電電源以及蜂鳴器指示電路等幾部分。電子鬧鐘的系統(tǒng)框架如圖3.1示。按鍵與按鈕電路復(fù)位等輔助電路位數(shù)碼管顯示電路鬧鈴聲光指示電路電源系統(tǒng)圖3.1系統(tǒng)電路原理框圖3.1鬧鈴指示電路本系統(tǒng)采用聲音指示,其電路如右圖所示。其關(guān)鍵元件是蜂鳴器。蜂鳴器有無源和有源兩種,有源的只需外加適當直流電源電壓即可,元件內(nèi)部已封裝了音頻振蕩電路,在得電狀態(tài)下即起振發(fā)聲。給予本電路的特點及實現(xiàn)功能的要求,我們選用有源的蜂鳴器。 3.2時間顯示電路 8279a用來控制顯示器顯示時鐘。按鍵k1+和k2+分別作為ir2和ir6的中斷請求信號。按鍵k1+啟動/關(guān)閉對時功能

10、,它決定是否屏蔽ir7和ir6中斷源。學(xué)校實驗室提供的8279與數(shù)碼管相連如圖3.2所示。3.2 8279與數(shù)碼管電路3.3計時電路在本系統(tǒng)中,用到的8253的功能只是相當于一個定時計,我們給定時器輸入30khz頻率的脈沖,這樣每隔一秒就會在out0端產(chǎn)生0到1的躍變,作為中斷irq的請求信號。當然,時鐘的計數(shù)也有其特定的規(guī)則,那就是秒、分的個位逢十進一,十位逢六進一,所以,我們可以通過中斷處理程序來控制其進位。這樣我們便完成了計時功能。8253運行原理圖如3.3.1圖3.3.18253運行原理圖8253的計時功能如圖3.3.2所示圖3.3.2計時原理圖 4、 軟件設(shè)計主要模塊流程圖4.1顯示

11、模塊該模塊主要是將運算模塊和對時模塊運算出來并存放在內(nèi)存單元里的十八進制時位、分位和秒位數(shù)值轉(zhuǎn)化為十進制,并通過八只數(shù)碼管顯示出來。此模塊實現(xiàn)的硬件是使用實驗箱中的led單元,采用軟件譯碼,即在程序中設(shè)置一個段選碼表。cpu直接往led輸出八段代碼,省去了硬件譯碼器。顯示模塊流程圖如圖4.1所示。4.1顯示模塊流程圖顯示的基本代碼如下:mov ax,sec ;完成秒計時值的顯示 call decshow mov ax,0e0dh ;回車,置光標到行首 int 10h這是對秒的顯示,以此類推可以得到顯示分、時的代碼。4.2計時模塊運算模塊負責(zé)時、分、秒的計算,該模塊主要通過8259的ir7號中斷

12、來實現(xiàn),但由于每30hz一次中斷請求,所以在中斷服務(wù)程序必須利用已申請內(nèi)存單元count來統(tǒng)計中斷請求的次數(shù),只有當count的值為30時,才能讓秒單元內(nèi)的數(shù)值加1。另外,在中斷服務(wù)程序里,必須對秒、分和時的單元內(nèi)的數(shù)值進行判斷,當秒加到60時,分必須加1,秒清零;當分加到60時,時加1,分清零;當時加到24時,直接清零,然后轉(zhuǎn)到調(diào)用處。計時模塊流程圖如下圖所示。設(shè)置初值設(shè)置外部中斷開啟定時器設(shè)置定時/計時工作方式鬧鐘判斷n更新顯示秒指示取反鬧鐘判斷顯示分位寄存器加1bcd碼調(diào)整顯示到60分鬧鈴判斷y小時賦新值#01到60s了嗎?時位寄存器加1時數(shù)據(jù)bcd碼調(diào)整時賦#00ny滿13小時3滿24

13、小時顯示nyyn判斷ny計時的基本代碼inc count cmp count,30 jnz over mov count,0 inc sec cmp sec,10 ;計時值自增,到10即歸0 jne dis mov sec,0mov ax,hour mov dx,0 ;完成時計時值的顯示 mov bx,10 div bx4.3主程序流程圖 圖4.3系統(tǒng)實現(xiàn)流程圖 主程序的流程圖是對整個程序的邏輯的圖象表示。首先是設(shè)置8253、8255、8259的各個端口地址。接著初始化各個芯片,開始計時,并通過8259中斷控制時間的正確顯示。在整個過程中都在檢測是否有銨鍵響應(yīng)。有則停止,沒有則返回繼續(xù)執(zhí)行。(

14、源程序見附錄)5、 小結(jié)通過近一周的課程設(shè)計時間,課程設(shè)計的基本目的達到了。另外還有很多其它有益的地方。本系統(tǒng)完成了教學(xué)打鈴的基本功能。利用8253定時器從0開始進行計時,將計時的結(jié)果顯示在數(shù)碼管上。每隔1秒,秒鐘計時一次,到60秒,分鐘加1,到60分小時加1,數(shù)字變動信息通過8279送數(shù)碼管顯示。期間通過8259中斷控制器實現(xiàn)秒到分,分到時的轉(zhuǎn)變,準確實現(xiàn)了計時。隨著科技的進步電子時鐘的實現(xiàn)方法已經(jīng)很多,由傳統(tǒng)的物理實現(xiàn)轉(zhuǎn)變到軟件實現(xiàn),而且起精確程度也大大的提高,且實現(xiàn)方法也越來越簡單。在這里是在學(xué)完了微機原理及接口技術(shù)進行的課程設(shè)計,所以這里是基于微機原理的基礎(chǔ)知識來實現(xiàn)電子時鐘的,首先應(yīng)

15、該畫出硬件設(shè)計圖,這個過程是基礎(chǔ),然后是流程圖,這個是重點,流程圖的完成在很大程度上等于程序的完成,然后是程序的編寫。通過輔導(dǎo)老師的指導(dǎo),同學(xué)們的相互幫助,我收獲了很多,也通過設(shè)計增強了自己動手的能力,同時也對自己所學(xué)到的知識作一個肯定。學(xué)好這門課程在自己今后的學(xué)習(xí)和工作中都有很大的作用,對自己以后的幫助也很大.這次課程設(shè)計給我的最大的印象就是如果自己有了興趣,就動手去做,困難在你的勇氣和毅力下是抬不了頭的。而在這次課程設(shè)計中,也是對匯編語言的復(fù)習(xí)。同時在設(shè)計中使我的編程水平提高了一大步,使我認識到合作的可貴。這次設(shè)計涉及到很多芯片的應(yīng)用,最大特點是軟,硬件的結(jié)合,對動手能里的要求很大。也使我

16、更加的體會到,在一定程度和科技水平上,硬件和軟件是可以實現(xiàn)對等轉(zhuǎn)化的。6、 參考文獻1 陳忠強.現(xiàn)代微機原理與接口技術(shù).冶金工業(yè)出版社.2006年2 郭蘭英. 微機原理與接口技術(shù). 清華大學(xué)出版社. 2006年3 西安唐都科教儀器公司.32位微機原理與接口技術(shù)實驗教程.2005年4 西安唐都科教儀器公司.32位微機原理與接口技術(shù)用戶手冊.2005年5 胡漢才. 微機原理與接口技術(shù)課程設(shè)計m. 北京:清華大學(xué)出版,19966 付家才. 微型計算機及其接口技術(shù)學(xué)習(xí)指導(dǎo)與題典m. 北京:化學(xué)工業(yè)出版社,2004.57 潘新民.微型計算機控制技術(shù)m.北京:人民郵電出版社,1999.98 余錫存 .曹國

17、華. 匯編語言、微機原理及接口技術(shù)m.陜西:西安電子科技大學(xué)出版社,2000.79 雷麗文.微機原理與接口技術(shù)m.北京:電子工業(yè)出版社,1997.210 李銀華.電子線路技術(shù)指導(dǎo).北京航空航天大學(xué)出版社,2005附 錄;*根據(jù)check配置信息修改下列符號值*intr_ivadd equ 01cch ;intr對應(yīng)的中斷矢量地址intr_ocw1 equ 0a1h ;intr對應(yīng)pc機內(nèi)部8259的ocw1地址intr_ocw2 equ 0a0h ;intr對應(yīng)pc機內(nèi)部8259的ocw2地址intr_im equ 0f7h ;intr對應(yīng)的中斷屏蔽字pci_intcsr equ 0df38h

18、 ;pci卡中斷控制寄存器地址ioy0 equ 0da00hioy1 equ 0da40h;*my8254_count0 equ ioy0+00h*4 ;8254計數(shù)器0端口地址my8254_count1 equ ioy0+01h*4 ;8254計數(shù)器1端口地址my8254_count2 equ ioy0+02h*4 ;8254計數(shù)器2端口地址my8254_mode equ ioy0+03h*4 ;8254控制寄存器端口地址my8255_a equ ioy1+00h*4 ;8255的a口地址my8255_b equ ioy1+01h*4 ;8255的b口地址my8255_c equ ioy1+

19、02h*4 ;8255的c口地址my8255_mode equ ioy1+03h*4 ;8255的控制寄存器地址stack1 segment stack dw 256 dup(?)stack1 endsdata segment cs_bak dw ? ;保存intr原中斷處理程序入口段地址的變量ip_bak dw ? ;保存intr原中斷處理程序入口偏移地址的變量im_bak db ? ;保存intr原中斷屏蔽字的變量sec dw 0 ;秒計時變量min dw 9hour dw 0count db 0data endsdata1 segment value db 3fh, 06h, 5bh,

20、4fh, 66h, 6dh, 7dh, 07h, 7fh, 6fh,77hdata1 endscode segment assume cs:code,ds:data,es:data1start: mov ax,data mov ds,ax cli mov dx,pci_intcsr sub dx,19h in al,dx mov dx,pci_intcsr ;初始化pci卡中斷控制寄存器 mov ax,1f00h ;向pci_intcsr中寫入003f1f00h out dx,ax add dx,2 mov ax,003fh out dx,ax mov ax,0000h ;替換intr的中斷矢

21、量 mov es,ax mov di,intr_ivadd mov ax,es:di mov ip_bak,ax ;保存intr原中斷處理程序入口偏移地址 mov ax,offset myisr mov es:di,ax ;設(shè)置當前中斷處理程序入口偏移地址 add di,2 mov ax,es:di mov cs_bak,ax ;保存intr原中斷處理程序入口段地址 mov ax,seg myisr mov es:di,ax ;設(shè)置當前中斷處理程序入口段地址 mov dx,intr_ocw1 ;設(shè)置中斷屏蔽寄存器,打開intr的屏蔽位 in al,dx mov im_bak,al ;保存int

22、r原中斷屏蔽字 and al,intr_im out dx,al mov dx,my8255_mode ;初始化8255工作方式 mov al,80h ;工作方式0,a口輸出 out dx,al mov dx,my8255_a ;寫a口發(fā)出的起始數(shù)據(jù) mov al,3fh out dx,al sti mov sec,0 mov ax,sec call decshow mov ax,0e0dh ;回車,置光標到行首 int 10h mov dx,my8254_mode ;初始化8254工作方式 mov al,34h ;計數(shù)器0,方式2 out dx,al mov dx,my8254_count0

23、 ;裝入計數(shù)初值 mov al,0a2h out dx,al mov al,87h out dx,alwait1: mov ah,1 ;判斷是否有按鍵按下 int 16h jz wait1 ;無按鍵則跳回繼續(xù)等待,有則退出quit: cli mov dx,pci_intcsr ;恢復(fù)pci卡中斷控制寄存器 mov ax,0000h out dx,ax mov ax,0000h ;恢復(fù)intr原中斷矢量 mov es,ax mov di,intr_ivadd mov ax,ip_bak ;恢復(fù)intr原中斷處理程序入口偏移地址 mov es:di,ax add di,2 mov ax,cs_ba

24、k ;恢復(fù)intr原中斷處理程序入口段地址 mov es:di,ax mov dx,intr_ocw1 ;恢復(fù)intr原中斷屏蔽寄存器的屏蔽字 mov al,im_bak out dx,al sti mov ax,4c00h ;返回到dos int 21hmyisr proc near ;中斷處理程序myisr mov ax,data mov ds,ax inc count cmp count,30 jnz over mov count,0 inc sec cmp sec,10 ;計時值自增,到10即歸0 jne dis mov sec,0 add min,1 cmp min,10 jne dis mov min,0 add hour,1dis: mov ax,sec ;完成秒計時值的顯示 call decshow mov ax,0e0dh ;回車,置光標到行首 int 10hover: mov dx,pci_intcsr sub dx,19h in al,dx mov dx,

溫馨提示

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

評論

0/150

提交評論