熟女俱乐部五十路二区av,又爽又黄禁片视频1000免费,国产卡一卡二卡三无线乱码新区,中文无码一区二区不卡αv,中文在线中文a

新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MCS51系列單片機(jī)軟件復(fù)位的方法

MCS51系列單片機(jī)軟件復(fù)位的方法

作者: 時(shí)間:2012-04-27 來源:網(wǎng)絡(luò) 收藏

4. 在所有指令中,只有RETI指令能清除中斷激活標(biāo)志。出錯(cuò)處理程序ERR主要是完成這一功能,其它的善后工作交由后的系統(tǒng)去完成。為此,我們重新設(shè)計(jì)T1中斷子程序如下所示:

PT1:?。茫校獭。校保病?;高級(jí)中斷程序發(fā)光二極管閃爍

INC 30H??;WATCHDOG計(jì)數(shù)器增值

MOV?。?,30H

ADD A,#0FD

JC ERR?。贿_(dá)到3次否?

RETI

ERR:?。茫蹋摇。牛痢?;關(guān)中斷

CLR A?。粶?zhǔn)備地址(0000H)

PUSH?。粒茫?p>PUSH?。粒茫?p>RETI??;清除中斷激活標(biāo)志并

這段程序先關(guān)中斷,以便后續(xù)處理能順利進(jìn)行,然后用RETI指令替代LJMP指令,從而既清除了中斷激活標(biāo)志又完成了轉(zhuǎn)向0000H的任務(wù)。按這樣改好后程序再運(yùn)行,結(jié)果仍不理想:按下按鈕后,有時(shí)只有主程序和高級(jí)中斷子程序能迅速恢復(fù)正常,而低級(jí)中斷仍有被關(guān)閉的可能。如果按如下把干擾轉(zhuǎn)移到低級(jí)中斷中,則按下按鈕后低級(jí)中斷必然被關(guān)閉:

LOOP:?。茫校獭。校保?p>MOV?。遥?,#80H

MOV?。遥?,#0H

TT1:?。模剩危凇。遥?,TT1

DJNZ?。遥叮裕裕?p>SJMP LOOP

PT0:?。茫校獭。校保?p>JB?。埃埃?,STOP

RETI

STOP: LJMP?。樱裕希小。坏羧胨姥h(huán)。

仔細(xì)分析后可能得出結(jié)論:當(dāng)WATCHDOG是嵌套在低級(jí)中斷中起作用時(shí),復(fù)位后只清除了高級(jí)中斷激活標(biāo)志,低級(jí)中斷標(biāo)志仍然被置位,從而使低級(jí)中斷一直被關(guān)閉。

5. 修改出錯(cuò)處理如下:

ERR:?。茫蹋摇。牛痢?;正確的復(fù)位入口

MOV?。叮叮?,#0AAH?。恢亟ㄉ想姌?biāo)志

MOV?。叮罚龋#担担?p>MOV?。模校裕遥#牛遥遥薄?;準(zhǔn)備第一次返回地址

PUSH?。模校?p>PUSH?。模校?p>RETI??;清除高級(jí)中斷激活標(biāo)志

ERR1: CLR?。?p>PUSH ACC

PUSH?。粒茫?p>RETI ;清除低級(jí)中斷激活標(biāo)志



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉