找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3165|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

請問為什么沒有進(jìn)入定時(shí)器中斷呢?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:281638 發(fā)表于 2018-2-2 10:11 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
程序如下:
ORG    0000H
LJMP    SET1
ORG    000BH
LJMP    START0
ORG    0013H
LJMP    START1

ORG    1000H
SET1:                    
        SETB    ET0
        SETB    ET1
        MOV    TMOD,#11H
        MOV    TH0,#3CH
        MOV    TL0,#0B0H
        MOV    TH1,#0FCH
        MOV    TL1,#18H
        SETB    EA
        SETB    TR0
        SETB    TR1
LOOP:    SJMP    $

START0:   
        CLR    TR0
        CLR    TR1
        CLR    ET1
        CLR    ET0
        RETI

START1:                    
        CLR    TR1
        CLR    TR0
        CLR    ET0
        CLR    ET1
        RETI
END


在keil里運(yùn)行后卻發(fā)現(xiàn)無論TR0、TR1、ET1、ET0都不為0,是沒有進(jìn)入中斷還是RETI返回錯(cuò)誤?如果沒有進(jìn)入中斷為什么沒有進(jìn)入中斷?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:7485 發(fā)表于 2018-2-2 17:19 | 只看該作者
你進(jìn)入中斷以后,把定時(shí)器關(guān)閉了(TR0、TR1),中斷也關(guān)閉了,當(dāng)然不會(huì)再次進(jìn)入中斷了。
這是你的程序語句:
        CLR    TR1      停止運(yùn)行T1
        CLR    TR0     
        CLR    ET0      關(guān)閉中斷
        CLR    ET1

你的初始化程序也有問題,“ORG    0013H”是外部中斷1的入口,估計(jì)應(yīng)該是“ORG    001BH”,否則T1產(chǎn)生中斷后就死掉了。
另外你的程序的入口放到1000H是為什么?單對常見的有設(shè)置在30H、100H、300H的,放到1000H的沒見過,看不出你是什么單片機(jī),如果是at89s51剛剛好是最末一個(gè)字節(jié)。程序沒發(fā)燒寫。
回復(fù)

使用道具 舉報(bào)

板凳
ID:7485 發(fā)表于 2018-2-2 17:22 | 只看該作者
另外你的中斷程序里面沒有其他任何操作,即便能正確產(chǎn)生中斷,你也什么都看不出來。即便是個(gè)實(shí)驗(yàn)程序,也要有聲或光的變化,以便觀察是否達(dá)到預(yù)期。
回復(fù)

使用道具 舉報(bào)

地板
ID:282046 發(fā)表于 2018-2-4 13:06 來自觸屏版 | 只看該作者
有沒有進(jìn)入定時(shí)器試一下就知道了
回復(fù)

使用道具 舉報(bào)

5#
ID:281638 發(fā)表于 2018-2-4 18:42 | 只看該作者
ahshmj 發(fā)表于 2018-2-2 17:22
另外你的中斷程序里面沒有其他任何操作,即便能正確產(chǎn)生中斷,你也什么都看不出來。即便是個(gè)實(shí)驗(yàn)程序,也要 ...

因?yàn)樵谀M器中運(yùn)行的,所以可以看到TR1和TR0的狀態(tài),我看了一下結(jié)果不為0
回復(fù)

使用道具 舉報(bào)

6#
ID:281638 發(fā)表于 2018-2-4 18:48 | 只看該作者
ahshmj 發(fā)表于 2018-2-2 17:19
你進(jìn)入中斷以后,把定時(shí)器關(guān)閉了(TR0、TR1),中斷也關(guān)閉了,當(dāng)然不會(huì)再次進(jìn)入中斷了。
這是你的程序語句 ...

以前在學(xué)校用的是intel51,現(xiàn)在用了c8051f340,然后熟悉過程中發(fā)現(xiàn)這個(gè)問題,在模擬器中可以看到TR1和TR0的狀態(tài),運(yùn)行后看到TR1,TR0還是1,沒有變?yōu)?,0013是復(fù)制錯(cuò)了,復(fù)制的這段是剛開始打的
回復(fù)

使用道具 舉報(bào)

7#
ID:281638 發(fā)表于 2018-2-5 12:12 | 只看該作者
ahshmj 發(fā)表于 2018-2-2 17:22
另外你的中斷程序里面沒有其他任何操作,即便能正確產(chǎn)生中斷,你也什么都看不出來。即便是個(gè)實(shí)驗(yàn)程序,也要 ...

我換了一下初始化的順序就可以了,先設(shè)定了TH和TL,然后依次是tmod、et、tcon,請問這是為什么?
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表