单片机控制的四位数码管动态显示编程
2019-04-24谭明良
谭明良,王 伟
(沈阳工学院,辽宁 抚顺 113122)
1 软件介绍与动态说明
静态显示就是用单片机I/O口输出固定的数值,每个数码管的驱动电平不会改变,一般用来显示固定的数值。动态显示,也称扫描显示,是将所有数码管的8段即a~dp段都连接在一起,分时使各个数码管的位选端有效,也就是在某一个时刻只能有1个数码管在显示。由于人眼具有“视觉暂留”作用(通常在20ms左右),因此只要使多个数码管显示的时间间隔较短,人眼一般是感绝不到数码管熄灭的,因此可以形成多个数码管在“静态显示”的假象。动态显示优点是占用的I/O接口较少,但需要消耗一定的时间。
2 动态显示编程
由四位数码管用动态显示“2018”,原理是由单片机的一个I/O口输出显示段码,另一个I/O口输出位码。程序如下:
#include
#define uchar unsigned char P2=0x00;
#define uint unsigned int P2=a[2];
uchar code a[4]={0x7f,0x06,0x3f,0x5b};P1=b[2];
uchar code b[4]={0xfe,0xfd,0xfb,0xf7};delay();
uint time; P2=0x00;
void delay(); P2=a[3];
实际上,评书优劣不仅仅取决于表演水平,还取决于选材和创作,甚至还有生活体验。以这一视角度之,评书当是一门“系统化”艺术。近代评书名家无一例外既是表演高手,同时也是创作的大家。
void main() P1=b[3];
{P0=0x00; delay();
while(1) P2=0x00;
{P2=a[0]; }
P1=b[0]; }
delay(); void delay()
P2=0x00; {time=1300;
P2=a[1]; while(time--);}
P1=b[1];
3 仿真效果
4 结语
动态显示可以同时显示多位数码管,通过不停的刷新I/O口的数据来实现多位的持续显示。硬件上,I/O口与所有的段码输入口相连,另外还要I/O口独立连接每一位的数码管的公共端作为该位数码管显示时候的选择端。动态显示较静态显示可以用更少的单片机控制更多的数码管,减少硬件开销。