帮忙看看我的中断程序哪错了,谢谢了!

2019-07-16 04:41发布

#include<reg52.h>
sbit dula=P2^6;
sbit wela=P2^7;
sbit d1=P1^0;
#define uint unsigned int
#define uchar unsigned char
void delay(uint);
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,};
uchar num;
void main()
{
        EA=1;
        EX0=1;
        wela=1;
        P0=0xc0;
        wela=0;
        while(1)
        {
                num=0;
                for(num=0;num<16;num++)
                        {
                                d1=1;
                                dula=1;
                                P0=table[num];
                                dula=0;
                                delay(1000);
                        }
        }
}

void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
void zhongduan() interrupt 0
{
        d1=0;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
危险城堡
1楼-- · 2019-07-17 00:52
你中断只执行一个命令,所以时间非常短,执行完后就立刻继续执行主程序,这样看来,你会感觉主程序慢了!
jackor88
2楼-- · 2019-07-17 03:59
你在中断中加入50MS延时试试
jackor88
3楼-- · 2019-07-17 09:28
主程序和中断时同时在跑的,不像延时。。延时的时候PC处于等待状态,而中断的时候PC还在工作 。。请加以区分,同学
qq312448494
4楼-- · 2019-07-17 09:56
 精彩回答 2  元偷偷看……
aqqkkee
5楼-- · 2019-07-17 15:04
写程序加点注释呀,虽然程序不复杂
唵伽惺
6楼-- · 2019-07-17 20:35
哦,好像懂了

一周热门 更多>