大神们来看看为什么要关闭所有数码管?P2=0xff这条
时间:10-02
整理:3721RD
点击:
还有下一条P0=0xff是消影吗?
void DisplaySecond(unsigned char s)
{
P25=0;
P26=1;
P27=1; //P2.6引脚输出低电平, DS6点亮
P0=Tab[s/10]; //显示十位
delay();
delay();
delay();
P25=1;
P26=0;
P27=0; //P2.7引脚输出低电平, DS7点亮
P0=Tab[s%10]; //显示个位
delay();
delay();
delay();
P2=0xff; //关闭所有数码管
P0=0xff;
delay();
delay();
delay();
}
/******************************************************************
函数功能:显示分钟的子程序
入口参数:m
********************************************************************/
void DisplayMinute(unsigned char m)
{
P25=0;
P26=0;
P27=1; // P2.3引脚输出低电平, DS3点亮
P0=Tab[m/10]; //显示个位
delay();
delay();
delay();
delay();
P25=0;
P26=1;
P27=0; // P2.4引脚输出低电平, DS4点亮
P0=Tab1[m%10];
delay();
delay();
delay();
P2=0xff; //关闭所有数码管
P0=0xff;
delay();
delay();
delay();
}
void DisplaySecond(unsigned char s)
{
P25=0;
P26=1;
P27=1; //P2.6引脚输出低电平, DS6点亮
P0=Tab[s/10]; //显示十位
delay();
delay();
delay();
P25=1;
P26=0;
P27=0; //P2.7引脚输出低电平, DS7点亮
P0=Tab[s%10]; //显示个位
delay();
delay();
delay();
P2=0xff; //关闭所有数码管
P0=0xff;
delay();
delay();
delay();
}
/******************************************************************
函数功能:显示分钟的子程序
入口参数:m
********************************************************************/
void DisplayMinute(unsigned char m)
{
P25=0;
P26=0;
P27=1; // P2.3引脚输出低电平, DS3点亮
P0=Tab[m/10]; //显示个位
delay();
delay();
delay();
delay();
P25=0;
P26=1;
P27=0; // P2.4引脚输出低电平, DS4点亮
P0=Tab1[m%10];
delay();
delay();
delay();
P2=0xff; //关闭所有数码管
P0=0xff;
delay();
delay();
delay();
}
看样子秒和分切换会灭一下,就是全灭,屏蔽掉也没影响,只是视觉效果不好。
屏蔽掉就不能计时了,是不是每次动态扫描需要置初值啊?
只是人的眼睛视觉问题吧, 分辨不了 微妙级的转换, 并且关闭数码管 变化后还需要故意延时一下, 否则眼睛更是分不清 哪管子在点亮,
屏蔽掉“P2=0xff; //关闭所有数码管 P0=0xff;”,不影响计时
都是消影作用 不影响计时