标题: 数码管显示流水灯速度 [打印本页]

作者: woshibeilili    时间: 2016-1-5 15:33
标题: 数码管显示流水灯速度
首先是流水灯按照设定速度运行,设定值通过按键进行修改。这个是否是使用改变延时的方法设定


其次通过数码管显示流水灯流水速度,这个应该怎么编写程序???

作者: admin    时间: 2016-1-5 21:19
如果是,单一的流水灯,要改变速度的话,是很简单的,只需要修改延时的知识即可

如果要用数码管来显示,流水灯的速度的话,这个会,稍微有一点难度,因为一个单片机要同时进行动态扫描和流水灯,实现起来会稍微麻烦一点
作者: 青山外    时间: 2016-1-6 20:57
本帖最后由 青山外 于 2016-1-6 21:17 编辑

用中断,主程序:

while(1)
{ 点亮第n个灯
   动态扫描数码管  //扫描时有延时
   延时计数加1
   if(延时计数到 num)//num根据流水速度定
   {
      点亮下个灯
    }
}
中断程序:
        改变num
        改变数码管要显示的数
         if(num到某个数)num回到初值


可能有疏漏,结构基本这样
      

作者: ckpcmpkun    时间: 2016-1-7 10:06
简单点就是通过延时
比如:
unsigned int de = 10000;
…………
delay(de){
if(p1^0 == 0)   假设p1^0 是按键减速
  de - = 500;
if(p1^1 == 0)   假设p1^1 是按键加速
  de + = 500;
}

意思就是这样
作者: 青山外    时间: 2016-1-7 14:56
ckpcmpkun 发表于 2016-1-7 10:06
简单点就是通过延时
比如:
unsigned int de = 10000;

要动态扫描数码管,如果点亮一个灯就直接用延时函数延时到点亮下一个灯的话是不行的




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