|
发表于 2018-1-24 11:17:32
|
显示全部楼层
根据下面这个程序:
#include<reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;
u8 smgduan[16]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07,
0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71};// ¶ÎÑ¡
u8 smgwei[8]={0x00,0x04,0x08,0x0c,0x10,0x14,0x18,0x1c}; //λѡ
void delay(u16 i)
{
while(i--);
}
void display()
{
u8 i;
for(i=0;i<8;i++)
{
P0=smgduan[i];
P2=smgwei[i];
delay(200); //í¨1y¸Ä±äÑóê±ê±¼ä¼′¿éêμÏÖ¶ˉì¬é¨Ãè
}
}
void main()
{
P0=0x00;
while(1)
{
display();
}
}得出的8个数码管分别显示是0~7,修改程序
#include<reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;
u8 smgduan[]={ 0x7D,0x7F};// ¶ÎÑ¡
u8 smgwei[]={0x00,0x04}; //λѡ
void delay(u16 i)
{
while(i--);
}
void display()
{
u8 i;
for(i=0;i<2;i++)
{
P0=smgduan[i];
P2=smgwei[i];
delay(200); //í¨1y¸Ä±äÑóê±ê±¼ä¼′¿éêμÏÖ¶ˉì¬é¨Ãè
}
}
void main()
{
P0=0x00;
while(1)
{
display();
}
}即可实现你所说的要求,照此程序编译则会出现3,4,5,6位数字。 |
|