📄 数码管动态显示.txt
字号:
/*数码管动态显示
p0口是字形控制
p1.0~3控制 低电平有效
效果:动态显示累加效果
*/
#include <reg51.h>
sfr p1=0x90;
sfr p0=0x80;
sbit p10=p1^0;//第4位显示
sbit p11=p1^1;
sbit p12=p1^2;
sbit p13=p1^3;//第一位显示
unsigned char code date[17]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};//0~16,及不显示
int dat2[]={0,0,0,0};
void del1(void);
void disp(void);
main()
{
int i;
long k;
while(1)
{
for(i=0;i<10;i++)
{
dat2[3]=i;
for (k=0;k<30;k++)disp();//延时显示
}
dat2[2]+=1;
if(dat2[2]>9)
{dat2[1]+=1;dat2[2]=0;}
if(dat2[1]>9)
{dat2[0]+=1;dat2[1]=0;}
if(dat2[0]>9)dat2[0]=0;
}
}
void disp(void)
{
p13=0; //第一位像当于个位
p0=date[dat2[3]]&0x7f;
del1();
p0=0xff;
p13=1;
p12=0; //第2位
p0=date[dat2[2]];
if((!dat2[0])&&(!dat2[1])&&(!dat2[2]))p0=0xff;
del1();
p0=0xff;
p12=1;
p11=0;//第3位
p0=date[dat2[1]];
if((!dat2[0])&&(!dat2[1]))p0=0xff;
del1();
p0=0xff;
p11=1;
p10=0;//第4位
p0=date[dat2[0]];
if(!dat2[0])p0=0xff;
del1();
p0=0xff;
p10=1;
}
void del1(void)//显示消震
{
int j;
for (j=0;j<90;j++);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -