数码管显示1 8,单片机C语言程序设计:8 只数码管滚动显示数字、字符..."/>
C语言八个数码管显示1 8,单片机C语言程序设计:8 只数码管滚动显示数字、字符...
P2=0x00; //关闭所有数码管并延时
DelayMS(1000);
}
}
/* 名称:8 只数码管滚动显示数字串
说明:数码管向左滚动显示 3 个字符构成的数字串
*/
#includereg51.h>
#includeintrins.h>
#define uchar unsigned char
#define uint unsigned int
//段码表
uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
//下面数组看作环形队列,显示从某个数开始的 8 个数(10 表示黑屏)
uchar Num[]={10,10,10,10,10,10,10,10,2,9,8};
//延时
void DelayMS(uint x)
{
uchar t;
while(x--) for(t=0;t120;t++);
}
//主程序
void main()
{
uchar i,j,k=0,m=0x80;
while(1)
{ //刷新若干次,保持一段时间的稳定显示
for(i=0;i15;i++)
{
for(j=0;j8;j++)
{ //发送段码,采用环形取法,从第 k 个开始取第 j 个
P0=0xff;
P0=DSY_CODE[Num[(k+j)%11]];
m=_crol_(m,1);
P2=m; //发送位码
DelayMS(2);
}
}
k=(k+1)%11; //环形队列首支针 k 递增,Num 下标范围 0~10,故对 11 取余
}
}
更多推荐
C语言八个数码管显示1 8,单片机C语言程序设计:8 只数码管滚动显示数字、字符...
发布评论