微機原理倒計時器課程設(shè)計_第1頁
微機原理倒計時器課程設(shè)計_第2頁
微機原理倒計時器課程設(shè)計_第3頁
微機原理倒計時器課程設(shè)計_第4頁
微機原理倒計時器課程設(shè)計_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、倒計時器設(shè)計摘要本次設(shè)計采用的是8255A、數(shù)碼管、按鍵開關(guān)以及撥位開關(guān)組成的一個簡單的倒計時器。電路具有時間顯示功能,能在一位數(shù)碼管上從9開始遞減,每隔1秒鐘,計時器減1。有外部開關(guān)能控制其暫停、復(fù)位,在倒計時為零0時發(fā)出聲光警報。 目錄前言4第一章 倒計時器的設(shè)計要求與設(shè)計方案.倒計時器的設(shè)計的要求 5.設(shè)計方案的論證與比較 5.設(shè)計方案的確定 5第二章 倒計時器的硬件設(shè)計.倒計時的硬件框圖 6.8255A的基本資料 6.顯示電路的連接 9.控制電路的連接9.報警電路的連接10第三章 倒計時器的軟件設(shè)計. 主程序框圖11. 源程序的設(shè)計11第四章 安裝與調(diào)試. 硬件的調(diào)試13. 軟件調(diào)試1

2、3. 調(diào)試過程13第五章 設(shè)計體會與總結(jié)附錄附一 系統(tǒng)硬件原理圖15附二 源程序與參考文獻(xiàn)15前言微機原理和接口技術(shù)是一門實踐性強的學(xué)科,其中很多的原理、規(guī)則、現(xiàn)象等僅僅靠學(xué)習(xí)教科書是無法完全掌握的,必須通過實踐才能比較直觀和深刻的理解。在進(jìn)行課程設(shè)計的過程中,可以讓學(xué)生體驗分析問題、提出解決方案、通過編程等手段實現(xiàn)解決方案、不斷調(diào)試最終達(dá)到設(shè)計要求的全過程,從而幫助學(xué)生系統(tǒng)地掌握微機原理的接口技術(shù)的相關(guān)知識,達(dá)到將知識融會貫通的目的。本次設(shè)計的基于單片的倒計時器相較傳統(tǒng)機械式倒計時器具有可以靈活可調(diào)、性價比高等優(yōu)點,有在現(xiàn)實生活中得到廣泛應(yīng)用的發(fā)展?jié)摿Α5谝徽?倒計時器的設(shè)計要求與設(shè)計方案1

3、.1 倒計時器的設(shè)計的要求 電路具有時間顯示功能,要求用1位七段數(shù)碼管; 要求電路為9秒遞減計時,每隔1秒鐘,計時器減1; 要有外部開關(guān),控制計數(shù)器的直接清零、啟動和暫停/連續(xù)計時功能; 當(dāng)計時器倒計時為零時,即定時時間到,顯示為零,同時發(fā)出聲光報警信號。1.2 方案的論證與比較 使用8253作為秒脈沖輸出,用8255A作為輸入/輸出接口分別接控制端、輸出顯示端、報警器,使用8259作為中斷控制倒計時的復(fù)位/暫停。這種方案具有走時精準(zhǔn)、可擴展性好的有點,但是制作成本最高。 使用軟件延時,在程序中使用延時語句來輸出秒脈沖。用8255A作為輸入/輸出接口分別接控制端、輸出顯示端、報警器,使用825

4、9作為中斷控制倒計時的復(fù)位/暫停。此方案具有控制響應(yīng)速度快,制作成本因為舍棄8253成本適中,但是由于使用了軟件延時,因為芯片損耗以及芯片在工作時間過長后走時會不夠準(zhǔn)確。 芯片只選擇8255A,使用軟件延時,在程序中使用延時語句來輸出秒脈沖,使用8255A作為輸入/輸出接口。采用在軟件中控制循環(huán)程序的方式來控制倒計時的復(fù)位/暫停。此方案性價比最高,但是相應(yīng)的由于使用了軟件延時,因為芯片損耗以及芯片在工作時間過長后走時會不夠準(zhǔn)確。由于8259的棄用在系統(tǒng)擴展方面會不如以上兩種。1.3設(shè)計方案的確定 考慮各方因素,因為本次課程設(shè)計所提供的實驗箱上8253只提供了一個工作通道,實驗箱上所給的標(biāo)準(zhǔn)脈沖

5、為1.8M。這樣在通過8253分頻后最小只能提供F=1.8M/65535=27HZ,這樣就只能在軟件中在通過延時程序來達(dá)到1HZ的脈沖,這種情況下8253的使用就沒有走時準(zhǔn)確的優(yōu)勢,故舍棄方案。本次課程設(shè)計要求并未要求設(shè)計成品需要擴展功能,故舍棄方案。方案達(dá)到課程設(shè)計要求并且成本最低,所以確定以方案來設(shè)計。第二章 倒計時器的硬件設(shè)計2.1 倒計時的硬件框圖框圖如下:2.2 8255A的基本資料 一8255A內(nèi)部結(jié)構(gòu)如圖3-4所示。8255A內(nèi)部結(jié)構(gòu) 8255A3個8位數(shù)據(jù)接口,即接口A、接口B和接口C。使用者可以用軟件使它們分別作為輸入端口或輸出端口。(1) 端口A:一個8位數(shù)據(jù)輸入鎖存器和一

6、個8位數(shù)據(jù)輸出鎖存器/緩沖器,用來傳送數(shù)據(jù)。數(shù)據(jù)輸入均被鎖存。(2) 端口B:一個8位數(shù)據(jù)輸入緩沖器和一個8位數(shù)據(jù)輸出鎖存器/緩沖器,用來傳送數(shù)據(jù)。數(shù)據(jù)輸入時不被鎖存,數(shù)據(jù)輸出時被鎖存。(3) 端口C:一個8位數(shù)據(jù)輸入緩沖器和一個8位數(shù)據(jù)輸出鎖存器/緩沖器。用作輸入端口時,數(shù)據(jù)不被鎖存;而作為輸出端口是,數(shù)據(jù)被鎖存。 A組控制和B組控制 這兩組控制電路一方面接收芯片內(nèi)部總線上的控制字,一方面接收來自讀/寫控制邏輯電路的讀/寫命令,從而解決端口的工作方式和讀/寫操作。其中,A組控制電路控制端口A和端口C高4位(PC7-PC4)的工作方式和讀/寫操作:而B組控制電路控制端口B和端口C低4位(PC3

7、-PC0)工作方式和讀寫操作。 讀/寫控制邏輯電路 讀/寫控制邏輯電路負(fù)責(zé)管理8255A的數(shù)據(jù)傳輸過程。它接收來自系統(tǒng)總線的信號A1,A0和控制總線信號RESET、WR、RD,將這些信號組合后,得到A組控制部件和B組控制部件的控制命令,并將命令發(fā)給這兩個部件,完成對數(shù)據(jù)、狀態(tài)信息的傳輸。 數(shù)據(jù)總線緩沖器 這是個雙向三態(tài)8位數(shù)據(jù)緩沖器,9255A通過它與系統(tǒng)數(shù)據(jù)總線相連。輸入數(shù)據(jù)、輸出數(shù)據(jù)、CPU發(fā)給8255A的控制字都是通過這個緩沖器傳遞的。二8255的引腳信號 8255的引腳信號如圖所示 與外部設(shè)備端相連的引腳(1) PA7-PA0:A端口的輸入/輸出引腳。(2) PB7-PB0:B端口的輸

8、入/輸出引腳。(3) PC7-PC0:C端口的輸入/輸出引腳。 與CPU相連的引腳(1) RESET:復(fù)位信號,低電平有效。當(dāng)RESET信號來到時,所有內(nèi)部寄 存器都被清0,同時3個端口被自動設(shè)為輸入端口。(2) D7-D0:8255A的數(shù)據(jù)線,和系統(tǒng)數(shù)據(jù)總線相連。(3) CS:芯片選擇信號。只有當(dāng)CS有效時,讀出信號RD和寫入信號WR才對8255A有效。(4) RD:讀出信號。CPU通過IN指令使RD有效,將數(shù)據(jù)或狀態(tài)信息從8255A中讀到CPU。(5) WR:寫入信號。CPU通過OUT指令使WR有效,將數(shù)據(jù)或狀態(tài)信息從CPU中寫道8255A.(6) A1,A0:端口選擇信號。8255A內(nèi)部

9、有3個數(shù)據(jù)端口和1個控制端口,共4個端口。規(guī)定A1,A0為00、01、10和11時,分別選中端口A、端口B、端口C和控制端口。三 8255的控制字 方式選擇控制字(1) 方式選擇控制字把A、B、C三個端口分為A、B兩組來設(shè)定工作方式。A組包括端口A和端口C的上半部,B組包括端口B和端口C的下半部。(2) 端口A可工作于3種方式中的任何一種:端口B只能工作于方式0和方式1;而端口C除用作輸入、輸出口(方式0)外,通常用來配合端口A和端口B提供聯(lián)絡(luò)控制信號和狀態(tài)信號。(3) 歸在同一組的兩個端口可分別作為輸入端口或輸出端口,不要求同為輸入或輸出。 端口C按位置位/復(fù)位控制字 (1) 端口C按位置位

10、/復(fù)位控制字盡管是對端口C進(jìn)行操作的,但此控制字必須寫入控制口,而不寫入端口C。 (2) 一個控制字只能完成端口C中某一位置的置1或置0,要對多位置1或置0,必須使用多個控制字。2.3 顯示電路的連接 顯示電路的連接如下圖: 實驗箱上有四個數(shù)碼管,故需要把其中一個數(shù)碼管的片選端口接地予以選通。在程序內(nèi)設(shè)置8255的控制字D2-D1位分別為00,使B端口工作在方式0作為輸出端,PB0-PB7分別對應(yīng)連接數(shù)碼管的A-DP。七段發(fā)光二極管為陽極LED器件。要讓A段點亮,要求PB0輸出高電平“1”;要使B段熄滅,要求從PB1輸出低電平“0”。其余各段以此類推。要使LED上顯示0-9十個數(shù)字,需要按照如

11、下段碼表來驅(qū)動數(shù)碼管的七段LED。顯示字符0123456789七段代碼3FH06H5BH4FH66H6DH7DH07H7FH6FH2.4 控制電路的連接 控制電路的連接如下圖: 設(shè)置8255A的控制字D3 D0位分別為“1”,讓C端口作為輸入端,考慮到實驗箱所給的連接線沒有單口連接線,為了便于連線,每兩位設(shè)置一個開關(guān)。其中暫停鍵使用的是撥位開關(guān),這樣能保持一個持續(xù)的電平,便于控制。而開始和復(fù)位則使用了按鍵開關(guān)。當(dāng)按下“開始”后倒時開始計數(shù),把“暫停”撥到接地后計數(shù)會停止,按下“復(fù)位”計數(shù)器會重新復(fù)位到9直至按下“開始”倒計時重新開始倒計時。2.5 報警電路的連接 報警電路的連接如下圖所示: 設(shè)

12、置A端口工作在方式0下,作為輸出端,則控制字的D6D5D4位為“000”。電路連接如上圖,在倒計時器顯示為“0”的時候蜂鳴器和LED燈會被接通開始報警。第三章 倒計時的軟件設(shè)計3.1 主程序設(shè)計框圖3.2 程序的設(shè)計 8255A控制字的設(shè)計由硬件電路的設(shè)計可知,要使A、B端口工作在方式0,作為輸出,D6D5D4為000,D2 D1為0 0。C端口作為輸入端,其控制字D3 D0為1 1。則8255A的控制字為10001001。 顯示程序的設(shè)計根據(jù)如下段碼表來設(shè)計 。顯示字符0123456789七段代碼3FH06H5BH4FH66H6DH7DH07H7FH6FH 延時程序的設(shè)計控制一個循環(huán)程序循環(huán)

13、N次以到達(dá)延時的目的。具體語句如下:proc near;秒延時 push cx mov cx,0ffffhYS: XXXX Loop ys pop cx ret endp 控制程序的設(shè)計 為了保證控制按鈕的響應(yīng)速度,控制程序設(shè)置延時程序內(nèi)。其中暫停可以用一個循環(huán)程序來實現(xiàn),當(dāng)暫停鍵撥下時,循環(huán)程序會進(jìn)入死循環(huán)狀態(tài),直至?xí)和fI撥回。復(fù)位則只需按條件跳轉(zhuǎn)至顯示“9”的程序語句即可。 報警程序的設(shè)計當(dāng)程序運行至顯示“0”的語句時給予報警電路高電平,其中報警語句還需加入復(fù)位語句,以停止報警。第四章 安裝與調(diào)試4.1硬件的調(diào)試 斷電調(diào)試為了安全,首先進(jìn)行斷電調(diào)試,用萬用表檢測系統(tǒng)是否有短路現(xiàn)象,再檢查嚴(yán)

14、原理是否正確。經(jīng)檢測,原理正確也沒有短路現(xiàn)象。 通電調(diào)試檢查彩燈,蜂鳴器是否能正常工作,檢查數(shù)碼顯示是否亂碼。4.2 軟件的調(diào)試將已編好的程序下載到已連接好電路的實驗箱上,逐句調(diào)試語句,再根據(jù)實驗現(xiàn)象調(diào)試此程序并改正,最終得到符合實驗要求的程序。4.3 調(diào)試過程 秒脈沖輸出的測定,拿示波器測量以確定延時程序的循環(huán)次數(shù)。 在運行程序的時候出現(xiàn)了程序開始運行,報警器就工作的現(xiàn)象。在程序中加入了初始化報警電路的語句后運行正常。 在最初設(shè)計的程序中出現(xiàn)按下復(fù)位和暫停鍵后有明顯延遲的情況,在把復(fù)位和暫停程序?qū)懭胙訒r程序后,延遲明顯降低。 第五章 設(shè)計體會與總結(jié)此次課程設(shè)計,大大深了我對微機原理的理解。在

15、這次設(shè)計中,我學(xué)到了很多課本上沒有的,以及平時被我們所忽視的東西。平時在上完課后認(rèn)為對老師所講的東西都很理解,但是在真正自己設(shè)計程序時卻無從下手。不能清晰的理解理論知識,就不能在實際實踐中熟練的應(yīng)用。不僅是理論知識的理解,在此次課程設(shè)計后,我對很多電子器件有了更深入的理解,比如數(shù)碼管在微機中的應(yīng)用,8255A的實際應(yīng)用及功能。本次設(shè)計雖然是8255A非常簡單的應(yīng)用,但讓我掌握了學(xué)習(xí)可編程接口芯片和可編程接口芯片的方法,為以后的學(xué)習(xí)實踐打下了基礎(chǔ)。在設(shè)計過程當(dāng)中也發(fā)現(xiàn)了自己經(jīng)驗的不足,尤其是在編程序方面還需要大量的練習(xí),為以后的學(xué)習(xí)打下基礎(chǔ)。萬事開頭難,在這次課程設(shè)計后我對自己的動手能力更加有信

16、心。由于時間和個人能力的不足,我沒能做出多位數(shù)碼管計時的設(shè)計,但是在以后的時間里我繼續(xù)學(xué)習(xí)以補充自己知識的短板來完善自身。附錄附一 系統(tǒng)硬件原理圖附二 部分源程序與參考文獻(xiàn)源程序stt segment stack db 64 dup (0)stt endsdata segmentdata endscode segment assume cs:code,ds:data,ss:sttstart: mov ax,data mov ds,ax mov al,89h ;控制字的寫入 out 63h,al mov al,0ffh out 62h,ala1: mov al,30h ;管腳清零 out 60h

17、,al mov al,6fh out 61h,ala2: in al,62h ;開始 test al,04h jnz a2 call delay1 mov al,7fh out 61h,al call delay1 mov al,07h out 61h,al call delay1 mov al,7dh out 61h,al call delay1 mov al,6dh out 61h,al call delay1 mov al,66h out 61h,al call delay1 mov al,4fh out 61h,al call delay1 mov al,5bh out 61h,al call delay1 mov al,06h out 61h,al call delay1 a3: mov al,3fh ;顯示“0”同時報警 out 61h,al mov al,0c0h out 60h,al in al,62h;復(fù)位停止報警 test al,01h jz a1 jmp a3delay1 proc near;秒延時 pu

溫馨提示

  • 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

提交評論