51单片机、数码管全亮全灭(若干次)代码
时间: 2023-06-25 22:07:23 浏览: 299
以下是51单片机控制数码管全亮全灭(循环若干次)的代码:
```c
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,
0x77,0x7c,0x39,0x5e,0x79,0x71
};
void delay(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
uchar i,j;
while(1)
{
for(j=0;j<10;j++) //循环若干次
{
for(i=0;i<16;i++)
{
LSA=table[i]&0x01;
LSB=(table[i]>>1)&0x01;
LSC=(table[i]>>2)&0x01;
P0=~table[i];
delay(500); //delay一段时间,数码管显示一段时间
}
}
P0=0xff; //数码管全灭
delay(1000); //delay一段时间,数码管全灭一段时间
}
}
```
其中,`table`数组中存储了每个数码管所需要显示的值,`delay`函数是延时函数,`main`函数中的`for`循环控制循环次数和每个数码管显示的值。