
单数码管循环显示0到9
2个回答
展开全部
我的是共阳数码管,是8位的,我选通的是第一位,你可以自己改一个地方
#include<reg52.h>
unsigned char code s8[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay(int i)
{
int j;
for(;i>=0;i--)
{
for(j=0;j<115;j++)
{;}
}
}
void main()
{
int i;
while(1)
{
P2=0x7f;/*这是选通位,你可以根据自己的数码管来写*/
for(i=0;i<10;i++)
{
P0=s8[i];
delay(400);
P0=0xff;
delay(100);
}
i=0;
}
}
#include<reg52.h>
unsigned char code s8[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay(int i)
{
int j;
for(;i>=0;i--)
{
for(j=0;j<115;j++)
{;}
}
}
void main()
{
int i;
while(1)
{
P2=0x7f;/*这是选通位,你可以根据自己的数码管来写*/
for(i=0;i<10;i++)
{
P0=s8[i];
delay(400);
P0=0xff;
delay(100);
}
i=0;
}
}

2023-11-22 广告
第五代双倍数据速率DDR5双列直插式内存模块是一种高速、高性能的内存模块,适用于需要高带宽和低延迟的应用场景。与前几代内存模块相比,DDR5双列直插式内存模块具有更高的数据传输速率和更低的功耗,同时提供了更大的内存容量和更高的可靠性。在数据...
点击进入详情页
本回答由东莞市友贸实业有限公司_提供
展开全部
主函数中的P2 = LED_CODE[led];led++;可以删去,没有任何的意义
,因为定时和循环显示都在中断函数里面完成了,主函数只是起了一个初始化的作用,led++影响LED_CODE[led]的值,它使LED_CODE[10] = { 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 }数组中的10个值依次赋给P2,依次显示0——9的数字,即当led = 0时,P2接受0xC0,对应数码显示0,当led = 1时,P2接受LED_CODE[1]=0xF9,对应显示1,依次类推,从而显示0——9。
,因为定时和循环显示都在中断函数里面完成了,主函数只是起了一个初始化的作用,led++影响LED_CODE[led]的值,它使LED_CODE[10] = { 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 }数组中的10个值依次赋给P2,依次显示0——9的数字,即当led = 0时,P2接受0xC0,对应数码显示0,当led = 1时,P2接受LED_CODE[1]=0xF9,对应显示1,依次类推,从而显示0——9。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询