怎样用51单片机(限用C语言)控制数码管的闪烁,并且还要通过按键控制闪烁的位置,不用中断或者计时器

2025-01-01 19:24:23
推荐回答(3个)
回答1:

把P0接到数码管的数据段(段选),位选随意接个P口,具体要看你是要用几位数码管。按键也接p口,写程序就是判断按键是否按下,如果就显示一个数,那你就执行位选=0或=1.希望帮到你!

回答2:

#include
#define uchar unsigned char
sbit weima=P1^0;
uchar code led_seg_code[10]={0x3f,0x06,0x05b,0x04f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(uchar x)
{
uchar i;
for(i=0;i for(j=0;j<120;j++);
}
main()
{
uchar num;
while(1)
{
weima=0;
P0=led_seg_code[num];
delay(100);
P0=0x00;
delay(50);
num++;
num%=10;
}
}

回答3:

用简单的延时就行了。按键可以用普通的io口来读取就可以了。有问题可以发邮件到857656772@QQ.com邮箱。