数码管显示闪烁

2019-03-24 19:35发布

#include <reg52.h>

unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};

void delay(unsigned int n)
{
  unsigned int i,j;
  for(i=n;i>0;i--)
   for(j=30;j>0;j--);
        }
void main()
{
   while(1)
        {
         delay(1);
         P3=0xfe;
    P1=dispcode[1];
    delay(1);
    P3=0xfd;
    P1=dispcode[2];
    delay(1);
    P3=0xfb;
    P1=dispcode[3];
}
}
反正是很奇怪为什么不是静态显示?延时在小仿真就不显示了! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
小小白
1楼-- · 2019-03-26 02:19
数码管所谓的动态显示就是利用人的视觉残留,某一时刻数码管只显示一位,然后让他们一个接一个亮,控制好扫描频率就可以让他们看起来是一起亮的了!
孤獨の快樂
2楼-- · 2019-03-26 08:13

根据LZ的代码进行仿真,显示确实不闪烁啊

zmsxhy
3楼-- · 2019-03-26 09:56
我弄错了,我在电路上面有一个500K的脉冲,所以会一直闪。
我很奇怪就算我脉冲什么都不接直接送到地都会产生影响是为什么。
孤獨の快樂
4楼-- · 2019-03-26 12:23
 精彩回答 2  元偷偷看……
zmsxhy
5楼-- · 2019-03-26 16:19
应当没有关系,我并没有接电路。估计是仿真软件的问题。
jjkwz
6楼-- · 2019-03-26 16:26
延时的时间不够,如果在计数上多计一些试一试,看看会不会好一些?

一周热门 更多>