久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2199|回復: 7
打印 上一主題 下一主題
收起左側

單片機中斷執行不了,求大神解答

[復制鏈接]
跳轉到指定樓層
樓主
ID:417505 發表于 2018-10-29 20:01 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg52.h>

#define uchar unsigned char
#define uint unsigned int
uint count;
sbit LED1 = P1^0;
void q(uchar a)
{
    uchar x,y;
    for(x = a; x > 0;x--)
    {
        for(y = 114;y > 0;y--);
    }   
}
void init()
{
    TMOD=0x01;
    TH0=0x4b;
    TL0=0xfd;
    TR0=1;
    ET0=1;
    EA = 1;//開總中斷
}
void main()
{   
    init();
    while(1)
    {               
    P1 = 0;
    }
}
void timer() interrupt 1
{
    LED1 = ~LED1;
    TH0=0x4b;
    TL0=0xfd;
    count++;
    if(count == 8)
    {
        P1 = 0xff;
        q(10);
        count = 0;
    }
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:41713 發表于 2018-10-30 08:52 | 只看該作者
你的While循環,把P1限制為低電平了,中斷剛生效,While就馬上把電平拉低,你的燈應該一直亮。While循環里,放點別的語句,只要不是對P1的改動就行。
回復

使用道具 舉報

板凳
ID:164602 發表于 2018-10-30 08:57 | 只看該作者
誰說中斷沒有執行?燈在閃啊
程序有點小問題,我已經修改了,在我的板子了運行通過
#include<reg52.h>

#define uchar unsigned char
#define uint unsigned int
uint count;
sbit LED1 = P1^0;
void q(uchar a)
{
    uchar x,y;
    for(x = a; x > 0;x--)
    {
        for(y = 114;y > 0;y--);
    }   
}
void init()
{
    TMOD=0x01;
    TH0=0x4b;
    TL0=0xfd;
    TR0=1;
    ET0=1;
    EA = 1;//開總中斷
}
void main()
{   
    init();
    while(1)
    {               
    }
}
void timer() interrupt 1
{
    LED1 = ~LED1;
    TH0=0x4b;
    TL0=0xfd;
    count++;
    if(count == 8)
    {
        q(10);
        count = 0;
    }
}
不知道你為什么要將P1置0或ff,我把它們去掉,就可以看到燈閃了。如果不去掉,燈就以PWM方式亮,亮度很暗。
回復

使用道具 舉報

地板
ID:153397 發表于 2018-10-30 10:48 | 只看該作者
膜拜樓上大神
回復

使用道具 舉報

5#
ID:417934 發表于 2018-10-30 14:56 | 只看該作者
誰說中斷沒有執行?燈在閃啊
程序有點小問題,我已經修改了,在我的板子了運行通過
#include<reg52.h>

#define uchar unsigned char
#define uint unsigned int
uint count;
sbit LED1 = P1^0;
void q(uchar a)
{
    uchar x,y;
    for(x = a; x > 0;x--)
    {
        for(y = 114;y > 0;y--);
    }   
}
void init()
{
    TMOD=0x01;
    TH0=0x4b;
    TL0=0xfd;
    TR0=1;
    ET0=1;
    EA = 1;//開總中斷
}
void main()
{   
    init();
    while(1)
    {               
    }
}
void timer() interrupt 1
{
    LED1 = ~LED1;
    TH0=0x4b;
    TL0=0xfd;
    count++;
    if(count == 8)
    {
        q(10);
        count = 0;
    }
}
回復

使用道具 舉報

6#
ID:44335 發表于 2018-10-30 15:43 | 只看該作者
你的While循環,把P1限制為低電平了,中斷剛生效,While就馬上把電平拉低,你的燈應該一直亮。While循環里,放點別的語句,只要不是對P1的改動就行。
回復

使用道具 舉報

7#
ID:410942 發表于 2018-10-30 17:11 | 只看該作者
不要while 里面的P1=0;如果要它的初值是0的話可以直接放在while上面。你這樣寫的確跟定時器中斷有沖突。
回復

使用道具 舉報

8#
ID:418093 發表于 2018-10-30 18:56 | 只看該作者
修改一下循環語句
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美亚洲激情 | 日韩中文字幕第一页 | 免费av播放 | 久久久久国产精品免费免费搜索 | 日韩欧美久久精品 | 免费国产精品久久久久久 | 欧美一区二 | 久久青青| 日韩中文字幕在线观看 | 免费一区二区三区 | 男女网站在线观看 | 精品国产一区二区在线 | 日韩欧美在线视频 | 黄色毛片免费看 | 日日操操操| 香蕉久久网 | 亚洲成人一区二区三区 | 综合久久综合久久 | 日韩欧美中文字幕在线观看 | 国产一区二区免费 | 欧美亚洲一级 | 中文字幕在线观看 | 成人免费视频播放 | 成年人在线观看 | 久久久久久成人 | 中文字幕在线免费视频 | 国产午夜精品一区二区三区嫩草 | 欧美一区二区大片 | 日本一区二区三区免费观看 | av一区二区三区四区 | 国产99久久精品一区二区永久免费 | 午夜网| 激情 婷婷| 美女爽到呻吟久久久久 | 国产一区二区三区在线 | 成人午夜电影在线观看 | 国产永久免费 | 欧美黄色一区 | 亚洲精品66 | 性欧美hd | 亚洲美女一区二区三区 |