在轮流显示0~7程序的基础上, 将delay()函数提供的时延大幅缩小, 以达到视觉短暂的停留效果. 在该种情况下的数码管亮度和对比度较轮流显示时有一定幅度的降低. 另外, 如果想感知到动态扫描的存在, 可从拍摄视频中观察(到像波浪一样的光浪).
#include <STC89C5xRC.H>
void delay()//提供时延
{
int i, j;
for(i = 0; i < 15 ; i++)
for(j = 0; j < 15; j++) ;
}
void f1_3_4_3()//在8个数码管上轮流显示0~7
{
unsigned char code DIG_CODE[8] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07};
int i;
while(1)
{
for(i = 0; i < 8; i++)
{
P2 = i << 2;
// i = 1 -> P2 = 0000 0001 ->(左移2位后) P2 = 0000 0100 -> (P24, P23, P22) = (0, 0, 1) -> 右数第二片亮
// i = 2 -> P2 = 0000 0010 ->(左移2位后) P2 = 0000 1000 -> (P24, P23, P22) = (0, 1, 0) -> 右数第三片亮
// i = 3 -> P2 = 0000 0011 ->(左移2位后) P2 = 0000 1100 -> (P24, P23, P22) = (0, 1, 1) -> 右数第四片亮
// ......
// i = 7 -> P2 = 0000 0111 ->(左移2位后) P2 = 0001 1100 -> (P24, P23, P22) = (1, 1, 1) -> 右数第八片亮
P0 = DIG_CODE[i];
delay();
}
}
}
int main()
{
f1_3_4_3();
return 0;
}
上一篇:8051单片机(STC89C52)以定时器中断模式实现两倒计时器异步计时
下一篇:8051单片机(STC89C52)八段数码管静态点亮
推荐阅读最新更新时间:2024-11-12 15:48
设计资源 培训 开发板 精华推荐
- 用于应变计的 15V 仪表放大器
- 使用 Panasonic 的 AN30888A 的参考设计
- IS31FL3199 9通道光效LED驱动器典型应用电路(级联模式)
- 具有 I2C 接口的 LTC2606IDD-1 16 位轨至轨 DAC 的典型应用
- LTM4643EV 4V 至 20V 输入、四路 0.9V、1V、1.2V 和 1.5V 输出 DC/DC 降压稳压器的典型应用
- 超迷你FOC驱动器-Control-Part
- AM2G-4818SH30Z 18V 2 瓦 DC-DC 转换器的典型应用,用于开/关控制应用
- LTC2600CGN 演示板,八路 16 位 DAC
- TCR2EN15、200mA、1.5V 输出电压 CMOS 低压降稳压器的典型应用
- #第五届立创电子设计大赛#测温消毒喷雾香薰机