标题:
数码管如何高位灭0啊?
[打印本页]
作者:
信仰b
时间:
2016-4-3 20:24
标题:
数码管如何高位灭0啊?
最近在啃51里的程序,用中断写了数码管的动态显示程序,但显示1它会显示000001,请问前辈们如何做到高位灭0,大概思路是检查最高位,为0则输出高电平并检查下一个高位以此下去,但程序不会写的(c语言)
作者:
lern01
时间:
2017-10-8 15:32
for(j=5; j>=1; j--)
{
if(buf[j])
break;
else
LedBuff[j] = 0xFF;
}
for(; j>=0; j--)
LedBuff[j] = LedChar[buf[j]];
作者:
lern01
时间:
2017-10-8 15:32
for(j=5; j>=1; j--) { if(buf[j]) break; else LedBuff[j] = 0xFF; } for(; j>=0; j--) LedBuff[j] = LedChar[buf[j]];
作者:
依然是你
时间:
2017-10-8 16:09
LED_Disp_Buf[0]=(long)Weight_Shi%1000000/100000;
if(LED_Disp_Buf[0]==0x00) {LED_Disp_Buf[0]=10;}
LED_Disp_Buf[1]=(long)Weight_Shi%100000/10000;
if((LED_Disp_Buf[0]==10)&&(LED_Disp_Buf[1]==0)) {LED_Disp_Buf[1]=10;}
LED_Disp_Buf[2]=(long)Weight_Shi%10000/1000;
if((LED_Disp_Buf[1]==10)&&(LED_Disp_Buf[2]==0)) {LED_Disp_Buf[2]=10;}
LED_Disp_Buf[3]=(long)Weight_Shi%1000/100;
if((LED_Disp_Buf[2]==10)&&(LED_Disp_Buf[3]==0)) {LED_Disp_Buf[3]=10;}
LED_Disp_Buf[4]=(long)Weight_Shi%100/10;
if((LED_Disp_Buf[3]==10)&&(LED_Disp_Buf[4]==0)) {LED_Disp_Buf[4]=10;}
LED_Disp_Buf[5]=(long)Weight_Shi%10;
作者:
zxv024
时间:
2017-10-8 16:14
不是很明白你的意思,是不是输出0xff时,数码管不显示。
作者:
zl2168
时间:
2017-10-9 15:49
先从最高位开始,检测到0就暗显示。然后,若上一位0暗显示了,本位检测到0就再暗显示,直至末位。若上一位未0暗显示,就不需检测后位0暗显示了。
作者:
个驱蚊扣给
时间:
2017-10-9 16:26
void sc(uchar bai, uchar shi, uchar ge)
{
bai = tmp/100;
shi = tmp%100/10;
ge = tmp%10;
if(tmp ==0)
while(1)
{
P22 = 0;
P23 = 0;
P15 = 0;
if(tmp != 0)
break;
}
Number(ge);
P22 = 0;
P23 = 0;
P15 = 1;
Delay_ms(10);
P22 = 0;
P23 = 0;
P15 = 0;
Number(shi);
P22 = 0;
P23 = 1;
P15 = 0;
Delay_ms(10);
P22 = 0;
P23 = 0;
P15 = 0;
Number(bai);
P23 = 0;
P22 = 1;
P15 = 0;
Delay_ms(10);
P22 = 0;
P23 = 0;
P15 = 0;
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1