14512|21

10

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

数码管发光暗,是因为扫描频率低吗? [复制链接]

 
数码管发光暗,是因为扫描频率低吗?还有第一位数码管为什么特别亮呢,从硬件原理解释一下,谢谢!

IMG_20141121_102952.jpg (721.58 KB, 下载次数: 0)

IMG_20141121_102952.jpg
此帖出自51单片机论坛

最新回复

18楼正解! 以前写程序也碰到过呢~ 其实,可以在程序每执行一个循环,显示一位,这样,程序执行起来,每一位的时间就比较均等!当然,这样,中断里的程序不要太长!  详情 回复 发表于 2014-11-23 22:59
点赞 关注
 

回复
举报

662

帖子

0

TA的资源

纯净的硅(初级)

推荐
 
最后一位是不是应该显示7 ?但是现在显示8 连小数点都亮了!
此帖出自51单片机论坛
 
 
 

回复

662

帖子

0

TA的资源

纯净的硅(初级)

沙发
 
应该是你程序上的问题,扫瞄时间不均等
此帖出自51单片机论坛

点评

但是我把排线调换一下位置,还是那一位最亮  详情 回复 发表于 2014-11-21 11:20
 
 
 

回复

1488

帖子

2

TA的资源

纯净的硅(中级)

板凳
 
哈 普中的51开发板 大学时代第一块开发板 至今还收藏着
此帖出自51单片机论坛

点评

前辈,有没有什么好的学习经验,指导一下  详情 回复 发表于 2014-11-21 11:20
 
个人签名专业从事于在线监测振动、转速、轴振动、位移等,设备管理及故障检测振动诊断系统在线监测点巡检系统-现场动平衡仪-测振仪、便携式测振仪
 
 

回复

6040

帖子

204

TA的资源

版主

4
 
你把最后一位显示个1看看
此帖出自51单片机论坛
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

5
 
slotg 发表于 2014-11-21 11:05
应该是你程序上的问题,扫瞄时间不均等

但是我把排线调换一下位置,还是那一位最亮
此帖出自51单片机论坛
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

6
 
qq849682862 发表于 2014-11-21 11:13
哈 普中的51开发板 大学时代第一块开发板 至今还收藏着

前辈,有没有什么好的学习经验,指导一下
此帖出自51单片机论坛

点评

我也用这个板子,现在也还收藏着呢,确实是学习单片机的经典玩意儿。。。。你是用它学习51么?还是arm?有什么问题可以找我哦,我们一起讨论。  详情 回复 发表于 2014-11-21 11:31
 
 
 

回复

104

帖子

0

TA的资源

一粒金砂(中级)

8
 
哈哈,我也是这块板子。。。这个问题的因素有很多哦。扫描频率能影响这个玩意的亮度,但是影响不大,像你给的这个东西和驱动电流有关系,当你的单片机驱动这个数码管的时候,驱动电流的大小和那个挂在总线上的上下拉电阻有关系。总之和亮度直接相关的是电流。。。电流越大,越亮。不过也和管子有关系,不同的管子也是不一样的,有高亮的数码管,也有普通的,反正最后一位那个肯定是个高亮的。。。你懂我意思了吧?
此帖出自51单片机论坛

点评

#include #define GPIO_SE P1 void delay(unsigned char z); unsigned int code sevalue[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x3f,0x7f,0x6f,0x40};//数码管显示数组 sbit a=P2^2; sbit b=P2^3; sbit c=P2  详情 回复 发表于 2014-11-21 12:58
 
 
 

回复

104

帖子

0

TA的资源

一粒金砂(中级)

9
 
setupsong 发表于 2014-11-21 11:20
前辈,有没有什么好的学习经验,指导一下

我也用这个板子,现在也还收藏着呢,确实是学习单片机的经典玩意儿。。。。你是用它学习51么?还是arm?有什么问题可以找我哦,我们一起讨论。

此帖出自51单片机论坛
 
 
 

回复

423

帖子

9

TA的资源

纯净的硅(初级)

10
 
应该是程序的问题,我也遇到过、、、、
此帖出自51单片机论坛
 
 
 

回复

117

帖子

1

TA的资源

一粒金砂(中级)

11
 
应该是您扫描的时间不一样吧,最后一位点亮了一定的时间之后,您没有让它灭吧,所以就最后一位最亮
此帖出自51单片机论坛
 
个人签名图腾实验室------总有你想要的东西
https://shop112199014.taobao.com/?spm=a1z10.1-c.0.0.ie7t4K
 
 

回复

145

帖子

0

TA的资源

一粒金砂(中级)

12
 
同学中这板子挺流行的。不过有个BUG,就是USB转串口线是插不上去的。
此帖出自51单片机论坛
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

13
 
无奇不有 发表于 2014-11-21 11:29
哈哈,我也是这块板子。。。这个问题的因素有很多哦。扫描频率能影响这个玩意的亮度,但是影响不大,像你给 ...

#include
#define GPIO_SE P1
void delay(unsigned char z);
unsigned int code sevalue[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x3f,0x7f,0x6f,0x40};//数码管显示数组
sbit a=P2^2;
sbit b=P2^3;
sbit c=P2^4;
unsigned char j;
unsigned char i;
void main()
{
        while(1)
        {       
                           
                for(i=0;i<8;i++)
                {
                               
                        switch(i) //位选138译码器
                        {       
                                case(0):  a=0;b=0;c=0; break;
                                case(1):  a=1;b=0;c=0; break;
                                case(2):  a=0;b=1;c=0; break;
                                case(3):  a=1;b=1;c=0; break;
                                case(4):  a=0;b=0;c=1; break;
                                case(5):  a=1;b=0;c=1; break;
                                case(6):  a=0;b=1;c=1; break;
                                case(7):  a=1;b=1;c=1; break;
                        }
                         GPIO_SE=sevalue; //段选
                        j=20;                          //延时
                        while(j--);
                        GPIO_SE=0x00;//消隐
                    }
         
        }
       


}
这是我的源程序,显示没有问题

此帖出自51单片机论坛
 
 
 

回复

377

帖子

0

TA的资源

一粒金砂(高级)

14
 
#include
#define GPIO_SE P1
unsigned int code sevalue[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x3f,0x7f,0x6f,0x40};//数码管显示数组
unsigned char j;
unsigned char i;
void main()
{
        while(1)
        {                    
                for(i=0;i<8;i++)
                {      
                           P2=(i<<2)&0x1c;
                         GPIO_SE=sevalue; //段选
                        j=20;                          //延时
                        while(j--);
                        GPIO_SE=0x00;//消隐
                    }
        }
}貌似可以这样写
有好几年没碰过51了
另外,养成好习惯,在switch语句最后加上default: break;
此帖出自51单片机论坛

点评

嗯嗯,谢谢前辈指点  详情 回复 发表于 2014-11-21 19:59
 
 
 

回复

3404

帖子

6

TA的资源

裸片初长成(初级)

15
 
动态扫描的对时间要求比较严格,时间上出现了问题首先表现就是亮度问题,不均或者某一个不亮。尤其是再加上别的功能,在主循环里做处理起来比较麻烦。动态扫描的扫描频率对亮度影响不大,关键是每一次点亮和熄灭的比例,还有保证每一个数码管的这个比例要一直。一般在定时器里做起来比较简单
此帖出自51单片机论坛

点评

嗯嗯,懂了,谢谢前辈指点  详情 回复 发表于 2014-11-21 20:01
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

16
 
LeoMe 发表于 2014-11-21 17:26
#include
#define GPIO_SE P1
unsigned int code sevalue[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x3f,0 ...

嗯嗯,谢谢前辈指点
此帖出自51单片机论坛
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

17
 
jishuaihu 发表于 2014-11-21 18:07
动态扫描的对时间要求比较严格,时间上出现了问题首先表现就是亮度问题,不均或者某一个不亮。尤其是再加上 ...

嗯嗯,懂了,谢谢前辈指点
此帖出自51单片机论坛
 
 
 

回复

173

帖子

0

TA的资源

纯净的硅(初级)

18
 
本帖最后由 ahshmj 于 2014-11-21 21:19 编辑

你的程序需要改一改。
如果嫌所有的数码管亮度不够,可以在每显示一位数后,适当加点延时。
至于最后一位过亮的原因:前面的几位显示时间是每一语句执行的时间(因为没有延时),而执行下一语句时,前面一个数码管就会关闭。而最后一位点亮以后,要等到下一次循环时并点亮第一个数码管时才被熄灭,比起他的数码管供电的时间长得多,所以就亮的多。解决的办法就是每点亮一个数码管后加适当延时,最后一位在同样的延时以后关闭。
此帖出自51单片机论坛

点评

嗯嗯,懂了,谢谢!  详情 回复 发表于 2014-11-22 19:54
 
 
 

回复

6

帖子

0

TA的资源

一粒金砂(初级)

19
 
数码管发光暗,是因为扫描频率低吗?还有第一位数码管为什么特别亮呢,从硬件原理解释一下,谢谢!
此帖出自51单片机论坛
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

20
 
ahshmj 发表于 2014-11-21 21:18
你的程序需要改一改。
如果嫌所有的数码管亮度不够,可以在每显示一位数后,适当加点延时。
至于最后一位 ...

嗯嗯,懂了,谢谢!
此帖出自51单片机论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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