亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)外部中斷結(jié)束后,程序運(yùn)行錯誤

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:325524 發(fā)表于 2018-5-8 21:56 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
#include<reg52.h>
unsigned char a;
void main()
{
    a=0xf0;
    EA=1;
    EX0=1;
    IT0=0;
    while(1)
    {
        P1=a;
    }
}
void int0() interrupt 0
{
    a=0x0f;
}
外部中斷的低電平撤銷后,P1的值變不回來,請問這是怎么回事,需要怎么改?

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:229959 發(fā)表于 2018-5-8 23:01 | 只看該作者
單片機(jī)保持最后的狀態(tài),所以a還是等于0x0f,
while(1)
{if(IT0!=0)
   {a=0xf0;}
   P1=a;
}
你試試,我也是剛學(xué)的

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

板凳
ID:325524 發(fā)表于 2018-5-9 08:17 來自觸屏版 | 只看該作者
zhongbo1991 發(fā)表于 2018-5-8 23:01
單片機(jī)保持最后的狀態(tài),所以a還是等于0x0f,
while(1)
{if(IT0!=0)

很感謝,但還是回不來
回復(fù)

使用道具 舉報

地板
ID:213173 發(fā)表于 2018-5-9 09:04 | 只看該作者
void int0() interrupt 0
{
    a=~a;
}
回復(fù)

使用道具 舉報

5#
ID:164602 發(fā)表于 2018-5-9 09:12 | 只看該作者
你的程序沒有問題:外部中斷0發(fā)生后,P1口的值變化了的。
我已經(jīng)在我的板子上試驗(yàn)通過了。說明中斷沒有問題。

變不回來,因?yàn)槟愕某绦驔]有讓它變回來啊。
要變原來的值,你的主循環(huán)中,就要有設(shè)置語句才行。
可能你理解中斷的執(zhí)行有誤解:中斷發(fā)生后,回到原來程序發(fā)生中斷時的位置,不是讓程序從頭再來一次!
按你的程序,只能是回到主循環(huán)內(nèi),你的a就是初值是之前定義的,當(dāng)然就執(zhí)行不到了。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

6#
無效樓層,該帖已經(jīng)被刪除
7#
ID:297166 發(fā)表于 2018-5-11 01:39 | 只看該作者
IT0=0,你的意思是按下按鍵P1=0x0f,松開按鍵P1=0xf0?
這回試試行不行······
#include<reg52.h>
unsigned char a;
void main()
{
    EA=1;
    EX0=1;
    IT0=0;
    while(1)
    {
        a=0xf0;
        P1=a;
    }
}
void int0() interrupt 0
{
    a=0x0f;
    P1=a;
}
有一個疑問,這里IT0=0,不是低電平一直中斷嗎,P1的值怎么會改變(當(dāng)一直中斷的時候)?是在給高電平后中斷結(jié)束,P1才被重新賦值的吧
所以你的P1一直是中斷語句中賦予的值,其實(shí)中斷中重復(fù)了那么多次賦值,僅僅是賦值給a而已,和P1沒有關(guān)系的

評分

參與人數(shù) 1黑幣 +90 收起 理由
admin + 90 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

8#
ID:325524 發(fā)表于 2018-5-11 18:22 | 只看該作者
wulin 發(fā)表于 2018-5-9 09:04
void int0() interrupt 0
{
    a=~a;

十分感謝,謝謝
回復(fù)

使用道具 舉報

9#
ID:325524 發(fā)表于 2018-5-11 18:23 | 只看該作者
HC6800-ES-V2.0 發(fā)表于 2018-5-9 09:12
你的程序沒有問題:外部中斷0發(fā)生后,P1口的值變化了的。
我已經(jīng)在我的板子上試驗(yàn)通過了。說明中斷沒有問 ...

謝謝大佬解答
回復(fù)

使用道具 舉報

10#
ID:325524 發(fā)表于 2018-5-11 18:25 | 只看該作者
blossom99 發(fā)表于 2018-5-11 01:39
IT0=0,你的意思是按下按鍵P1=0x0f,松開按鍵P1=0xf0?
這回試試行不行······
#include

我是用一根線將3.2接到gnd了,然后把線拔掉,理論上要退出中斷啊,這個程序是a的賦值把我搞暈了
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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