持续关注阿杰在线更新保姆式蓝桥杯笔记~~坚持日更
问:数码管动态扫描如何实现?(即需要什么步骤)
答:
- 给对应的IO口赋值,位选编码选择哪一位亮
- 消隐,避免上一次IO口确定的段码对本次段码产生影响
- 给选中的数码管段选赋值,让其显示对应的数字或字母
- 适当延时使其稳定(延时不易过长)--》选用定时器实现
数码管的原理图如图3-1,本质就是把8段LED小灯组合在一起。
数码管可以分为共阴极和共阳极,内部结构如下图3-2所示:
共阴极数码管,即把8只LED灯的阴极连接在一起,由阳极来控制单个小灯的亮灭(1亮0灭);
共阳数码管就是阳极连接在一起,通过阴极来控制小灯的亮灭(1灭0亮)。
code关键字:C51单片机中,使用关键字unsigned char或者 unsigned int定义的变量都是放在单片机的RAM中,这些变量的值可以通过程序改变。而在定义时使用code修饰的变量是存储到存储空间FLASH里的,这样可以大大的节省的RAM的空间,但是这些变量的值在程序中不可以修改,所以我们在定义一些程序中不需要修改的变量时,可以使用code关键字,例如上面提到的数码管的真值的定义:unsigned char code LEDchar[]={};
原理分析
动态数码管,即同时有多个数码管显示数字,实际上是轮流点亮各个数码管(同一时刻只有一个数码管被点亮),利用人眼的视觉暂留现象(余晖效应),使我们看到多个数码管同时点亮的效果。就像我们看到的电影也是由一帧一帧的画面组成的,但因为速度足够快,我们看到它就是动态的。刷新时间小于10毫秒时,对于人眼来说就是无闪烁的。