16498|23

65

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

为什么数码管最后一们显示太亮 [复制链接]

四位数码管显示,不知道为什么最后一位比前面三位显示的要亮很多.
显红色的地方是不是我用错
了.
void display(uchar num,uchar dat) //数据显示程序
{
uchar i;     //num是第几个数码管,dat是要显示的数字。
dula=0;           
P0=table[dat];      //段显
dula=1;
dula=0;


wela=0;
i=0xff;
i=i&(~((0x01)<<(num))); //用i来存储位选数据,只有一位为0

P0=i;     //位选
wela=1;
wela=0;
delay(2);
}

void dis_temp(uint t)
{
uchar i;
i=t/1000;
display(0,i);
i=t%1000/100;
display(1,i+10);
i=t%1000%100/10;
display(2,i);
i=t%10;
display(3,i);

}
此帖出自单片机论坛

最新回复

楼主请问你的问题解决了吗?我也有这个问题。  详情 回复 发表于 2016-7-17 14:38
点赞 关注
 

回复
举报

3404

帖子

6

TA的资源

裸片初长成(初级)

沙发
 
有可能是最后一个数码管亮的时间比较长
此帖出自单片机论坛
 
 

回复

547

帖子

0

TA的资源

纯净的硅(初级)

板凳
 
我觉得不是那里错了吧。。
此帖出自单片机论坛
 
个人签名嵌入式培训www.51great.org
 
 

回复

62

帖子

0

TA的资源

一粒金砂(高级)

4
 
不知道你的主流程怎么控制的,是动态扫描还是静态的,看到dis_temp函数里面的语句,感觉是静态的方式,但静态不会出现亮度不均匀的问题,除非硬件参数不对。如果动态显示的话,你这样的语句是有问题的,肯定会导致最后一位显示时间过长而远比其他位亮,而其它位点亮时间不够,特别暗。
此帖出自单片机论坛
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(中级)

5
 

最后一位数码管显示太亮,另外二个显示太暗

能不能帮忙改改.
此帖出自单片机论坛
 
 
 

回复

329

帖子

27

TA的资源

纯净的硅(初级)

6
 
你用P0同时提供段码和位码?
此帖出自单片机论坛
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(中级)

7
 

第三位数码管太亮

是的,我用了两个锁存器
此帖出自单片机论坛
 
 
 

回复

1万

帖子

16

TA的资源

版主

8
 
i=i&(~((0x01)<<(num))); //用i来存储位选数据,只有一位为0


这句一定有问题,我记得移位是补零的,也就是说第一个应是亮的
此帖出自单片机论坛
 
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 
 

回复

65

帖子

0

TA的资源

一粒金砂(中级)

9
 

第三位数码管太亮

i=0xff;
i=i&(~((0x01)<<(num))); //用i来存储位选数据,只有一位为0
要是这个有问题的话,那要如何改呢?来实现位选
此帖出自单片机论坛
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(中级)

10
 

第三位数码管显示太亮

板子上的第三位数码管一直很亮,前面二位有点暗,还有点闪.
此帖出自单片机论坛
 
 
 

回复

329

帖子

27

TA的资源

纯净的硅(初级)

11
 
lz是不是在main中或其他函数中调用void dis_temp(uint t)这个函数以后,还跟了一段长代码或延迟函数?如果是这样的话,在前面三个数码管显示时,只间隔了一个i赋值和调用一次display函数,但在第四个数码管显示返回到第一个数码管显示的过程中要处理一些其他代码或延迟函数,导致最后一位显示时间特别长。
此帖出自单片机论坛
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(中级)

12
 

第三位显示太亮,前面两位显示暗

第三位显示太亮,前两位显示暗.如何改才能显示正常.帮帮忙.

////////////////////显示程序//////////////////////////
void display(uchar num,uchar dat)
{
  uchar i;
  dula=0;
  P0=table[dat];
  dula=1;
  dula=0;
  wela=0;
  i=0XFF;
  i=i&(~((0X01)<<(num)));
  P0=i;
  wela=1;
  wela=0;   
  delay(1);
}
void dis_temp(uint t)
{
  uchar i;
  i=t/100;
  display(0,i);
  i=t%100/10;
  display(1,i+10);
  i=t%100%10;
  display(2,i);
}
void main()
{
  uchar i;
  dula=0;
  wela=0;
  while(1)
  {   
      tempchange();
      for(i=10;i>0;i--)
      {
        dis_temp(get_temp());
   }
      
}
}
此帖出自单片机论坛
 
 
 

回复

329

帖子

27

TA的资源

纯净的硅(初级)

13
 
试试增大for语句中的i初值
此帖出自单片机论坛
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(中级)

14
 

第三位数码管太亮

增加for循环还是不行.
此帖出自单片机论坛
 
 
 

回复

329

帖子

27

TA的资源

纯净的硅(初级)

15
 
还有个可能是void dis_temp(uint t)中两个数码管切换之间没有足够的延迟,也就是扫描速度太快了,这样会导致亮度不够甚至看不清,可以试试在两个数码管切换时加几毫秒的延迟。
此帖出自单片机论坛

点评

时间加长了之后,前二位看起来会有点闪,第三们还是很亮  详情 回复 发表于 2012-9-27 20:56
还是不行.  详情 回复 发表于 2012-9-27 20:54
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(中级)

16
 

回复 15楼 小an 的帖子

还是不行.
此帖出自单片机论坛
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(中级)

17
 

回复 15楼 小an 的帖子

时间加长了之后,前二位看起来会有点闪,第三们还是很亮
此帖出自单片机论坛
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(中级)

18
 

第三位数码管显示太亮

谁能有调试好的DS18B20的四位数码管显示程序,给小弟发一份,
小弟现在实在是没办法了.显示还是调试不好/,要不哪位帮忙改改.
此帖出自单片机论坛
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

19
 
你要把num加到8时把它清0,不然它会加到255才回到0时间上就有问题了
void display(uchar num,uchar dat) //数据显示程序
{
uchar i;     //num是第几个数码管,dat是要显示的数字。
dula=0;           
P0=table[dat];      //段显
dula=1;
dula=0;


wela=0;
i=0xff;
i=i&(~((0x01)<<(num))); //用i来存储位选数据,只有一位为0
P0=i;     //位选
wela=1;
wela=0;
/******************************************/
if( num == 8 )
       num = 0;
/*****************************************/
delay(2);
}
此帖出自单片机论坛
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(中级)

20
 
还是不行啊,最后一位还是很亮
此帖出自单片机论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表