怎样让8个数码管这样亮:像在墙上钉订一样,从这边到那边一排,不同的数字。 以下哪个程序该怎么改啊,我实在弄不出来现在,求指教。
#include<at89x51.h>
#define uchar unsigned char
#define uint unsigned int
sbit duan=P2^6;
sbit wei=P2^7;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(uint);
void main()
{
while(1)
{
wei=1;
P0=0x7f;
wei=0;
duan=1;
P0=table[7];
duan=0;
delay(300);
P0=0x00;
wei=1;
P0=0xbf;
wei=0;
duan=1;
P0=table[6];
duan=0;
delay(300);
P0=0x00;
wei=1;
P0=0xdf;
wei=0;
duan=1;
P0=table[5];
duan=0;
delay(300);
P0=0x00;
wei=1;
P0=0xef;
wei=0;
duan=1;
P0=table[4];
duan=0;
delay(300);
P0=0x00;
wei=1;
P0=0xf7;
wei=0;
duan=1;
P0=table[3];
duan=0;
delay(300);
P0=0x00;
wei=1;
P0=0xfb;
wei=0;
duan=1;
P0=table[2];
duan=0;
delay(300);
P0=0x00;
wei=1;
P0=0xfd;
wei=0;
duan=1;
P0=table[1];
duan=0;
delay(300);
P0=0x00;
wei=1;
P0=0xfe;
wei=0;
duan=1;
P0=table[0];
duan=0;
delay(300);
P0=0x00;
}
}
void delay(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
#include<reg51.h> // 包含51单片机寄存器定义的头文件
void delay(void) //延时函数,延时一段时间
{
unsigned char i,j;
for(i=0;i<250;i++)
for(j=0;j<250;j++)
;
}
void main(void)
{
while(1) //无限循环
{
P2=0xfe; //P2.0引脚输出低电平,DS0点亮
P0=0xf9; //数字1的段码
delay();
P2=0xfd ; //P2.1引脚输出低电平,DS1点亮
P0=0xa4; //数字2的段码
delay();
P2=0xfb; //P2.2引脚输出低电平,DS2点亮
P0=0xb0; //数字3的段码
delay();
P2=0xf7; //P2.3引脚输出低电平,DS3点亮
P0=0x99; //数字4的段码
delay();
P2=0xff;
}
}
开发板上的位和段都是p0控制的啊,没法改啊。能改程序不
一周热门 更多>