标题: 单片机程序测2k以上频率数码管老是循环闪烁?求分析 [打印本页]

作者: bs160    时间: 2021-4-30 18:03
标题: 单片机程序测2k以上频率数码管老是循环闪烁?求分析
哪位大佬知道怎么解决吗,测2k以上频率数码管老是循环闪烁


单片机代码如下

作者: 人人学会单片机    时间: 2021-5-1 00:48
看这个 https://www.bilibili.com/video/BV1Jx411Z7yC?p=1

作者: bs160    时间: 2021-5-1 22:22
哪位大佬知道该改哪吗
作者: tyrl800    时间: 2021-5-2 08:54
我问下楼主,程序时你自己写的还是参考的?
作者: bs160    时间: 2021-5-2 12:37
tyrl800 发表于 2021-5-2 08:54
我问下楼主,程序时你自己写的还是参考的?

参考的
作者: 沧兴电子    时间: 2021-5-2 20:48
估计多次进入中断造成数码管扫描跟不上。这种情况可以考虑SPI或I2C总线方式驱动数码管,这个不需要经常扫描数码管
作者: tyrl800    时间: 2021-5-2 21:59
bs160 发表于 2021-5-2 12:37
参考的

程序结构不能那样写呀

作者: birdzhyli    时间: 2021-5-2 22:12

101.  do
102.  {
103.    display();
104.  }while(k2);
这个地方,如果K2是0了,程序结束,显示什么就过 了
作者: birdzhyli    时间: 2021-5-2 22:13
82.void main()
83.{
84.
85.  if(!k2)
86.  {
87.    delay(5);
88.        if(!k2)
89.        j=0;
90.        else
91.                j=1;
92.  }
93.  switch(j)
94.  {
95.        case(0):a=2; LED=1; break;
96.        case(1):a=20; LED=0; break;
97.  }
这个地方程序开始,一闪而过,估计只能按键开机才会检测到
作者: as21cxz    时间: 2021-5-2 22:16
仿真是练不出技术的,多做一下实物吧。
作者: birdzhyli    时间: 2021-5-2 22:32
70.  for(i=0;i<8;i++)
71.  {
72.        if(i==7&&j==1)
73.        {
74.                P1=0x80;
75.                delay(1);
76.    }
77.           P0=dispbit;
78.           P1=dispcode[count[ i]];
79.           delay(1);
80.  }

这个里面突然蹦出来的j是怎么个意思?delay里也在用,你在这里用它会是个什么值?
作者: bs160    时间: 2021-5-3 13:12
沧兴电子 发表于 2021-5-2 20:48
估计多次进入中断造成数码管扫描跟不上。这种情况可以考虑SPI或I2C总线方式驱动数码管,这个不需要经常扫描 ...

多多包容,我是纯小白开始自学,应该怎么改代码才能解决闪烁




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1