實驗十二定時器及中斷(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秒定時器 摘要 隨著時代的進步,電子行業的發展,定時器的應用也越來越廣泛。但傳統的定時器都是使用發條驅動式 電機傳動式或電鐘式等機械定時器。電子定時器相對產痛定時器來說,體積...