打印

如何控制数码管定时闪烁??

[复制链接]
4665|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dubuchu|  楼主 | 2010-10-17 11:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 dubuchu 于 2010-10-17 12:27 编辑

1.芯片AT89C52,1个轻触开关,2个数码管。
2.当按下按键,数码管定时闪烁(两个数码段码共用8个IO口,数码显示不同数字,如38),再按下按键,数码管不闪。
3.求程序编写的思路?如有源码更好?我(菜鸟)写了两天了,老实现不了,求求各位?

相关帖子

沙发
denarock| | 2010-10-17 12:19 | 只看该作者
要有原理图呢
两个数码管可用静态扫描
程序简单多了

使用特权

评论回复
板凳
dubuchu|  楼主 | 2010-10-17 12:24 | 只看该作者
楼上,你好,要是两个数码管显示相同数字就好办些,现在要求是显示不同数字,不知怎么啊?

使用特权

评论回复
地板
gx_huang| | 2010-10-17 13:59 | 只看该作者
8个GPIO驱动2个数码管,可以用2个4-7译码器驱动。
也可以用2个GPIO驱动164,再用2个作位选。这样只要4个GPIO。
如果你连硬件都不懂,还是先学习硬件,再学习单片机。

使用特权

评论回复
5
wangyazhou8910| | 2010-10-17 14:27 | 只看该作者
简单
把图给我
我给你写

使用特权

评论回复
6
zhangshaoyan| | 2010-10-17 16:31 | 只看该作者
先用Proteus仿真一下,如果可以的话,直接上电路吧。

使用特权

评论回复
7
eyuge2| | 2010-10-17 16:38 | 只看该作者
数码管的驱动是定时调用的吧,你显示38是将不同的码送到数码管中。在驱动程序做个小的修改,你真正显示的码放在一个缓冲区中,不显示的码(如0xff或0x00)放在一个缓冲区中。1秒钟读真正的缓冲区,1秒钟读不显示的缓冲区。这样就实现了闪烁。

使用特权

评论回复
8
liyang6105| | 2010-10-17 22:58 | 只看该作者
void display()
{   static unsigned char i;
        uchar k;
        for(k=1;k<7;k++)
        {
               
                P2=weisao[k];
                if((s1num==k)&&i<70)
                        P0=0xff;
                else
                        P0=dis_7[timedata[k-1]];
                if(++i>140)
                        {
                                i=0;
                                                                                }
      
                delayms(5);
        }
}

使用特权

评论回复
9
liyang6105| | 2010-10-17 23:05 | 只看该作者
你看看

6.rar

14.69 KB

时钟.rar

29.97 KB

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

112

帖子

0

粉丝