[Zero]C0 计数器

Photobucket

这就是一款简单的计数器,按一下就+1,长按就归零,计数范围0-9999。

既是一个“微项目”,其实也是一个“初號機”。其实微项目都是以“初号机”为起点,而并不是所有的“初号机”都会一定发展成“微项目”或者“宏项目”。
所用的元件很简单,20Pin的STC 1T系列单片机(我用的是STC12C2052AD),8888点阵屏,弹簧开关,USB口。布线如下图,无飞线,配合实物正反面,以供参考。

Photobucket
Photobucket
Photobucket

这个同样是一个很快速的制作。因为有TC8的基础,其实代码基本都是现成的,而且因为不需要读取时钟、显示时钟、校时等程序,所以简单了很多。而增加的东西,在于按键。

其实对于我个人来说,现实中的按键总是不太理想的东西。一方面,并不是说合上就合上,说断开就断开,期间其实有个抖动的过程。也就是说,对于人来说,是按下,而对于高速运转的单片机来说,这个期间已经开关了数次。而且,不但在按下过程中是这样,在弹起过程中也是一样。

而在去抖的传统算法中,如果是用延时函数的话,单线程的单片机就会因为运行延时函数而停止屏幕的扫描显示。C0的简单设计,导致它并没有锁存器帮助其在延时函数里面空转的时候保持数码管显示。所以还需要更多的方法咯。而且因为是计数器,所以按一下是一下,只能+1,不能因为按得久一些,就多加了。当然,目前只有一个按键,所以归零的操作也要集成进来,所以,当按下时间真的“足够久”的话,就会进行一个归零的操作。

但是C0很好地解决了这些问题。不仅实现了功能,而且扫描周期够快,也就是说,当我以我的极限速度快速连击的时候,计数器都能准确判断,而且跟上计数。达到了“机械计数器”的效果。感觉不错~
Photobucket
演示视频:

程序工程文件分享,可用 Keil uVersion 4打开,下载请留言,积累RP,不当伸手党,望配合,:)
053_C0 工程源文件

关于点阵屏驱动部分的原理,可以参考《TC8_Zero 精简桌面大表TC8的初號機
原文链接

关于aGuegu

向着更高的逼格
此条目发表在初號機 | Zero分类目录,贴了, , , , , , , , , , 标签。将固定链接加入收藏夹。
  • 通过这个计数器可以延伸出很多更有趣的制作

  • BadBird

    下来研究研究~~~不做伸手党!!

  • 345bobcat

    自己一个单干很久了,想见识一下真正的牛人的东西

  • 暗黑骑士

    一直想自己做,但知识缺乏的很呐!

  • 谢亚华

    多谢了,多指教

  • 博主太有才了!我学习了

  • jinhua tang

    下来研究研究~多谢了

  • 阿丹

    也做了个,不错多谢了。