定時器及中斷實驗報告

2022-05-18 10:14:08 字數 4553 閱讀 2754

實驗十二定時器及中斷(1秒基時)

一、 實驗內容及實驗電路及步驟

1. 產生1s延時的設計:(11.0592mhz)

方案1:定時器0定時加軟體計數。

1) 採用定時器0,方式1,定時50ms中斷。當1s 時間到後,使p1.0 閃亮。

乙個機器週期為=(1/11.0592mhz)*12us。

定時器0的定時初值=(65536-50000/(1/11.0592mhz*12us))=(65536-46080)=19456=4c00h

軟體計數:計數器採用r2,計數20 次。

實驗電路如圖4-4所示:用導線將a2區的p10與d1區的led1相連。

圖4-4 定時器0實驗接線圖

參考程式:

org 8000h

ajmp main

org 800bh

ajmp t0s

main:mov sp,#60h

mov tmod,#01h

mov th0,#4ch

mov tl0,#00h

mov r2,#00h

mov ie,#10000010b

setb tr0

clr p1.0

sjmp $

t0s: mov th0,#4ch

mov tl0,#00h

inc r2

cjne r2,#20,next

cpl p1.0

mov r2,#00h

next:reti

end定時器0定時,軟體計數:定時50ms,發生溢位,產生中斷;r2控制迴圈次數,r2=#20,即迴圈20次,定時時間間隔為:50×20=1000ms=1s.

2)採用定時器0,方式1,定時50ms,查詢方式,當1s 時間到後,使p1.0 閃亮。

用導線將a2區的p10與d1區的led1相連。

參考程式:

org 8000h ajmp main

main: mov tmod,#01h ;t/c0定時,方式1。

mov th0,#4ch ;t0 定時50ms。

mov tl0,#00h

mov r2,#00h軟體計數器初值setb tr0

loop:jbc tf0,t0s

sjmp loop

t0s: mov th0,#4ch

mov tl0,#00h

inc r2

cjne r2,#20,next ;1s使p1.0取反一次。

cpl p1.0

mov r2,#00h

next:sjmp loop

end查詢方式:若(tf0)=0,順序執行,持續等待、查詢

若(tf0)=1,發生溢位,產生中斷,跳轉t0s,並將tf0置1.

r2控制迴圈次數,r2=#20,即迴圈20次,

定時時間間隔為:50×20=1000ms=1s.

3)採用gate=1時,利用訊號/int0與tr0雙重啟動t/c0,產生1s延時。

用導線將a2區的p10與d1區的led1相連,用導線將a2區的int0 與d1區的sw1相連,執行相面程式前先將sw1置在0位,程式執行後將sw1置在1位,觀察led1的閃亮情況,然後將sw1再置在0位,led1將停止閃亮,再sw1置在1位,重複前述步驟,觀察gata與/int0引腳訊號的作用。

注意:除錯前,sw1 一定處於0的位置。

參考程式:

org 8000h ajmp main org 800bh ajmp t0s

main: mov sp,#60h

mov tmod,#09h ;t/c0定時,方式1,gate=1。

mov th0,#4ch ;t0 定時50ms,中斷一次。

mov tl0,#00h

mov r2,#00h軟體計數器初值mov ie,#10000010b

setb tr0

clr p1.0

sjmp $

t0s: mov th0,#4ch

mov tl0,#00h

inc r2

cjne r2,#20,next ;1s使p1.0取反一次。

cpl p1.0

mov r2,#00h

next:reti

end /int0與tr0雙重啟動t/c0:若sw1=1,定時器啟動工作

若sw1=0,定時器停止工作

定時50ms,發生溢位,產生中斷;r2控制迴圈次數,r2=#20,即迴圈20次,定時時間間隔為:50×20=1000ms=1s.

方案2:採用t/c0與t/c1級聯加軟體計數的方法。

1)電路圖如圖4-5所示

2)接線方法:

⑴ 斷開dp-51proc實驗儀的電源,按圖3-5接線,

使用排線將a2區的j61介面與d1區的j52介面相連,

⑵ 使用導線把a2區的p3.0與a2區t1(p3.5)相連。

3)參考程式:

org 8000h

ljmp main

org 800bh

ljmp tc0sv

org 801bh

ljmp tc1sv

org 8100h

main: mov sp,#70h

mov tmod,#61h

mov th1,#0fbh

mov tl1,#0fbh

mov th0,#4ch ;t0 定時50ms,中斷一次。

mov tl0,#00h

setb et1

setb et0

setb ea

setb tr1

setb tr0

mov r2,#0

setb p3.0

mov a,#0fh

mov p1,a

sjmp $

tc1sv:

inc r2

cjne r2,#2,next

mov r2,#0

cpl a

mov p1,a

next:

reti

tc0sv:

mov th0,#4ch

mov tl0,#00h

cpl p3.0

reti

end結果分析:c1計數,方式2(自裝入),計數5次(即5個週期)後發生溢位,產生中斷;t0定時,方式1,定時50ms後溢位,產生中斷,即每個週期定時50×2=100ms;r2控制迴圈次數,r2=02h,即迴圈兩次。所以延時時間間隔為:

100×5×2=1000ms=1s.

2、計數器實驗

採用t/c0 每計1個數,使8個led 全部點亮。

設計方案:採用t/c0 方式2,計數,每計1個數中斷一次,在中斷服務程式中,點亮/熄滅8個led。使用排線將a2區的j61介面與d1區的j52介面相連,用導線將a2區的t0與d1區的sw1相連,請自行畫出電路。

注意:除錯前,sw1 一定處於1的位置。

89c52x2 r×8 led×8 +5v

sw1 參考程式:

org 8000h

ajmp main

org 800bh

ajmp t0s

main: mov sp,#60h

mov tmod,#06h ;t/c0定時,方式2。

mov th0,#0ffh ;計1個數,中斷一次.

mov tl0,#0ffh

setb et0

setb ea

setb tr0

mov p1,#0ffh

setb 00h

sjmp $

t0s: jnb 00h,miep1

mov p1,#00h

clr 00h

reti

miep1: mov p1,#0ffh

setb 00h

reti

end結果分析:sw1由1置0時,外部中斷一次,計數一次,led的狀態改變。

開關位置:

下上下上下上下上下上下上

下上下上下上下上下上

三、思考題

1、將實驗十一思考題2的軟體延時修改為採用t/c0的硬體延時。採用t/c0中斷與/int0中斷方式實現8個led 迴圈點亮(左或右)。

89c52x2 r×8 led×8 +5v

k1按鈕開關

org 8000h

ljmp main

org 8003h

ljmp int0sv

org 800bh

ajmp t0s

main:mov a,#0feh

mov sp,#5fh

setb ea

setb it0

setb ex0

setb et0

setb pt0

sjmp $

int0sv:

loop:mov p1,a

mov tmod,#01h

mov th0,#4ch

mov tl0,#00h

DSP定時器及硬體中斷實驗報告

dsp原理及應用 課程實驗報告 記分及評價 一 實驗名稱 實驗6 定時器及硬體中斷實驗 二 任務及要求 了解c55x dsp定時器結構。學習c5509定時器初始化。了解c55x dsp中斷。學習中斷處理。三 實驗程式 原理圖 1.定時器彙編源程式 mmregs def c int00 ref sdr...

硬體實習報告定時器

淮陰工學院 選題名稱定時器 系 院計算機工程學院 專業通訊專業 班級姓名學號 指導教師 學年學期 2010 2011 學年第 2 學期 2011 年 6 月 10 日 摘要 隨著時代的進步,電子行業的發展,定時器的應用也越來越廣泛。傳統的定時器絕大多數都是發條驅動式 電機傳動式或電鐘式等機械定時器。...

30秒定時器課程設計報告

數位電路課程設計報告 設計課程題目 30秒定時器 專業 班級 學號 姓名 指導老師 設計時間 2010年12月1日 題目 30秒定時器 摘要 隨著時代的進步,電子行業的發展,定時器的應用也越來越廣泛。但傳統的定時器都是使用發條驅動式 電機傳動式或電鐘式等機械定時器。電子定時器相對產痛定時器來說,體積...