为什么我8*8的点阵加了延时后只是闪了一下

2019-03-24 19:08发布

为什么我8*8的点阵加了延时后只是闪了一下,而不是亮一会儿了呢#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar code table1[]={0x00,0x00,0x02,0x03,0x02,0x00,0x00,0x00};
uchar code table2[]={0x00,0x00,0x04,0x06,0x04,0x00,0x00,0x00};
void delay(uint z)
{
 while(z--);
}void main()
{
        uint i; for(i=0;i<8;i++)
 {
  P2=table;
  P0=table1;
  delay(50);
  
 }    delay(50000);
 for(i=0;i<8;i++)
 {
  P2=table;
  P0=table2;
  delay(50);
 } delay(50000);
 
 while(1);} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
ylf175300
2019-03-25 00:57
一开始放在的就是亮了一下就直接到下面一个的,不过现在好了中断不是的
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar code table1[]={0x00,0x00,0x02,0x03,0x02,0x00,0x00,0x00};
uchar code table2[]={0x00,0x00,0x04,0x06,0x04,0x00,0x00,0x00};

uint t,m;

void delay(uint z)
{
        while(z--);
}
void t0() interrupt 1
{
        TH0=(65536-50000)/256;
        TH0=(65536-50000)%256;
        m++;

}         
void display1()
{
        uchar i;
        for(i=0;i<8;i++)
        {
                P2=table;
                P0=table1;
                delay(2);
               
         }

}
void display2()
{
        uchar i;
        for(i=0;i<8;i++)
        {
                P2=table;
                P0=table2;
                delay(2);
               
         }
}

void main()
{
        uint i;         
        TMOD=0x01;
        TH0=(65536-50000)/256;
        TH0=(65536-50000)%256;
        EA=1;
        TR0=1;
        ET0=1;

        while(1)
        {
                for(m=0;m<2000;m++)
                {
                        display1();
                }
                m=0;
                for(m=0;m<2000;m++)
                {
                        display2();
                }
                        m=0;
        }
       

   
}

一周热门 更多>