C语言两位八段LED数码管的,用单片机实现数码管从左到右1到8,再从8到1依次回来。要求第几位显示时,其前面的数字也必须显示。...

用单片机实现数码管从左到右1到8,再从8到1依次回来。要求第几位显示时,其前面的数字也必须显示。0

用单片机实现数码管从左到右1到8,再从8到1依次回来。要求第几位显示时,其前面的数字也必须显示。我的能显示过去但是回不来。代码如下,请各位大佬帮忙看看错在哪?#include

#include

sbit n0=P2^0;

sbit n1=P2^1;

char number[8]={0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};

char space[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f} ;

int m,count=0,k,flage=0;

void delay(int i)

{

int j;

for(;i>0;i--)

for(j=110;j>0;j--);

}

void interrupt_T0(void) interrupt 1

{

count++;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

if(count==20)

{

count=0;

while(flage)

{m++;}

while(!flage)

{ m--;}

if(m==9){m=0;flage=1;}

if(m==0){flage=0;}

}

}

void printf(void)

{

switch(m)

{

case 1 : for(k=0;k

{

n1=1;

P1=space[k];

n1=0;

n0=1;

P1=number[k];

n0=0;

delay(10);

}

break;

case 2:for(k=0;k

{

n1=1;

P1=space[k];

n1=0;

n0=1;

P1=number[k];

n0=0;

delay(5);

}

break;

case 3:for(k=0;k

{

n1=1;

P1=space[k];

n1=0;

n0=1;

P1=number[k];

n0=0;

delay(5);

}

break;

case 4:for(k=0;k

{

n1=1;

P1=space[k];

n1=0;

n0=1;

P1=number[k];

n0=0;

delay(5);

}

break;

case 5:for(k=0;k

{

n1=1;

P1=space[k];

n1=0;

n0=1;

P1=number[k];

n0=0;

delay(5);

}

break;

case 6:for(k=0;k

{

n1=1;

P1=space[k]; 展开

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值