本章博客写的内容主要围绕动态数码管显示,动态数码管显示与静态数码管显示比较稍有变化,主要在添加延时函数这点上
1.首先将上一章节使用子函数方法的代码复制过来
将Nixie( , )移到下方while循环中(因为要实现效果为动态的)
void main()
{
while(1)
{
Nixie(1,1);
Nixie(2,2);
Nixie(3,3);
}
}
编译下载后效果为:
对于这种效果要进行消影的处理
因为单片机编译处理顺序是按照:位选 段选 (清零),位选 段选 ,位选 段选
由上一段的段选到下一部分的位选需要进行清零处理
接下来主要进行:增添延时函数和清零处理
2.在STC-ISP中生成相应的延时函数,函数时间为1ms,并对其进行灵活修改,如下
void Delay(unsigned int xms)
{
unsigned char i, j;
while(xms--)
{
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
}
}
先延时再清零
编译下载后效果如下:
3.还可以了解一下数码管的驱动方式
1)单片机直接扫描:硬件设备简单,但会耗费大量的单片机CPU时间
2)专用驱动芯片:内部自带显存、扫描电路,单片机只需告诉它显示什么即可