欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

請問這串代碼為什么無法實現8個LED的閃爍,麻煩各位指出一下問題

[復制鏈接]
跳轉到指定樓層
樓主
#include <REGX51.H>

int count0=0,num0=0;
int temp=1;
unsigned char a[]={0xff,0x00};

void delay()
{
        int i,j;
        for(i=0;i<20;i++){
                for(j=0;j<120;j++);
        }
}
void inittimer0()
{
        TMOD=0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        TR0=1;
        EA=1;
        ET0=1;
}
void main(){
        inittimer0();
        while(1){                        
            P2=a[num0];
        }
}
void timer0_isr() interrupt 1
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        count0++;
        if(count0==20){
                num0=~num0;
                count0=0;
        }
}

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

使用道具 舉報

沙發
ID:161164 發表于 2022-11-22 14:53 | 只看該作者

回復

使用道具 舉報

板凳
ID:1052650 發表于 2022-11-22 16:28 | 只看該作者

太感謝你了大佬
回復

使用道具 舉報

地板
ID:999824 發表于 2022-11-22 20:30 | 只看該作者
中斷有問題,得改一下
回復

使用道具 舉報

5#
ID:1052650 發表于 2022-11-22 23:50 來自觸屏版 | 只看該作者
XCYYLX 發表于 2022-11-22 20:30
中斷有問題,得改一下

好的感謝你
回復

使用道具 舉報

6#
ID:308903 發表于 2022-11-23 08:29 | 只看該作者
i          num0=~num0;             這句,因為前面定義了這個數組  unsigned char a[]={0xff,0x00};,所以這里也要用數組
回復

使用道具 舉報

7#
ID:77589 發表于 2022-11-23 14:40 | 只看該作者
明顯這句錯了啊num0=~num0;
不應該使用按位取反操作,按位取反操會讓num0由0x00變成0xFF,當num0==0xFF時,執行P2=a[num0];就會導致一個致使錯誤“數組越界”,系統會出現你想不到的現象。
基于你的思路,現有兩種改法:
1、刪除unsigned char a[]={0xff,0x00};    把P2=a[num0]修改成P2=num0
2、其它地方不變,把num0 =~num0;修改成
num0 = num0 > 0 ? 0 : 1;
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表