3043|5

89

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

为什么我8*8的点阵加了延时后只是闪了一下 [复制链接]

为什么我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);

}

此帖出自51单片机论坛

最新回复

#include<reg52.h>#define uchar unsigned char#define uint unsigned intvoid delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}unsigned char code table[]={0x00,0x20,0x28,0x78,0x28,0x20,0x00,0x00};uchar code colum[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};uchar i;main(){while(1){for(i=0;i<8;i++){P0=table[i];P2=colum[i];delay(5);P2=0xff;}}}复制代码  详情 回复 发表于 2012-6-6 09:41
点赞 关注
 

回复
举报

7219

帖子

192

TA的资源

五彩晶圆(高级)

沙发
 
fangzai 放在while(1)循环里面要 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);
此帖出自51单片机论坛
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

回复 沙发 常见泽1 的帖子

一开始放在的就是亮了一下就直接到下面一个的,不过现在好了中断不是的
#include
#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;
        }
       

   
}
此帖出自51单片机论坛
 
 
 

回复

7219

帖子

192

TA的资源

五彩晶圆(高级)

4
 

回复 板凳 ylf175300 的帖子

中断里m 和你的for(m=0;m<2000;m++) 冲突了把 中断里的m没用了把 给你个简单的8*8点阵的例子把  你这样的话用不着中断
此帖出自51单片机论坛
 
 
 

回复

7219

帖子

192

TA的资源

五彩晶圆(高级)

5
 
  1. #include<reg52.h>
    #define uchar unsigned char
    #define uint unsigned int

    void delay(uint z)
    {
    uint x,y;
    for(x=z;x>0;x--)
    for(y=110;y>0;y--);

    }

    unsigned char code table[]={0x00,0x20,0x28,0x78,0x28,0x20,0x00,0x00};
    uchar code colum[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};

    uchar i;
    main()
    {
    while(1)
    {

    for(i=0;i<8;i++)
    {

    P0=table[i];
    P2=colum[i];

    delay(5);
    P2=0xff;
    }
    }

    }
复制代码
此帖出自51单片机论坛
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(中级)

6
 

回复 5楼 常见泽1 的帖子

嗯,谢谢了,但是现在我想用按键控制这个的,可以不用到中断延时吗
此帖出自51单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表