找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4242|回复: 5
收起左侧

求数码管闪烁例程或方法

[复制链接]
ID:186886 发表于 2017-4-6 21:25 | 显示全部楼层 |阅读模式
想做一个六位数码管(段选和位选)能够间隔0.5S闪烁的程序,但是做不出来,求例程,万分感谢。
回复

使用道具 举报

ID:179958 发表于 2017-4-6 22:28 | 显示全部楼层
定时器中断定时50毫秒,静态变量计数,每到20清零,然后判断变量,小于10亮,大于等于10灭,就可以实现了。
我有这程序,只是目前电脑不在身边。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:111634 发表于 2017-4-9 10:11 | 显示全部楼层
你要怎样闪烁,六位一起闪烁还是一位位闪烁?
回复

使用道具 举报

ID:219405 发表于 2017-7-13 16:46 | 显示全部楼层
zl2168 发表于 2017-4-9 10:11
你要怎样闪烁,六位一起闪烁还是一位位闪烁?

如果一位闪烁 并通过按键调节闪烁的位 应该怎么实现
回复

使用道具 举报

ID:213173 发表于 2017-7-13 18:50 | 显示全部楼层
猴子oro 发表于 2017-7-13 16:46
如果一位闪烁 并通过按键调节闪烁的位 应该怎么实现

我在发烧友论坛已回答了你的问题,需等待审核通过。
回复

使用道具 举报

ID:213173 发表于 2017-7-13 20:47 | 显示全部楼层
//给你一个思路,例程片段参考一下
unsigned char a;                           //键值变量0~6,0为初始态,不控制闪烁
unsigned char count;                //数码管轮流显示计数变量
unsigned int Cnt_ms;                //1ms中断计数变量
/******定时器0初始化程序******/
void Timer0Init(void)                //1毫秒@12.000MHz
{
        TMOD = 0x01;                        //设置定时器模式
        TL0 = 0x18;                                //设置定时初值
        TH0 = 0xFC;                                //设置定时初值
        TR0 = 1;                                //定时器0开始计时
        EA=1;                                        //开总中断
        ET0=1;                                        //开定时器0中断       
}
/******定时器0中断服务程序******/
void timer0() interrupt 1       
{
        TL0 = 0x18;                                //设置定重载值
        TH0 = 0xFC;                                //设置定重载值
        Cnt_ms++;                                //1ms变量自+1
        count++;                                //轮流显示计数
        if(Cnt_ms>=1000)                //1秒
                Cnt_ms=0;
        if(count>=5)                        //显示程序,1ms显示一位
        {
                count=0;
                switch(count)
                {
                        case 0:
                        //显示段语句
                        if((a==1)&(count<500))//满足两个条件执行以下语句。
                        {
                        //关闭位语句
                        }
                        else
                        {
                        //显示位语句
                        }
                        break;

                        case 1:                               
                        //显示段语句
                        if((a==2)&(count<500))//满足两个条件执行以下语句,a=键值
                        {
                        //关闭位语句
                        }
                        else
                        {
                        //显示位语句
                        }
                        break;

                        case 2:                               
                        //显示段语句
                        if((a==3)&(count<500))//满足两个条件执行以下语句,a=键值
                        {
                        //关闭位语句
                        }
                        else
                        {
                        //显示位语句
                        }
                        break;

                        case 3:                                       
                        //显示段语句
                        if((a==4)&(count<500))//满足两个条件执行以下语句,a=键值
                        {
                        //关闭位语句
                        }
                        else
                        {
                        //显示位语句
                        }
                        break;

                        case 4:                                       
                        //显示段语句
                        if((a==5)&(count<500))//满足两个条件执行以下语句,a=键值
                        {
                        //关闭位语句
                        }
                        else
                        {
                        //显示位语句
                        }
                        break;

                        case 5:                                       
                        //显示段语句
                        if((a==6)&(count<500))//满足两个条件执行以下语句,a=键值
                        {
                        //关闭位语句
                        }
                        else
                        {
                        //显示位语句
                        }
                        break;
                }
        }
}
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表