單片機C語(yǔ)言程序設計:8 只數碼管滾動(dòng)顯示數字、字符
P2=0x00; //關(guān)閉所有數碼管并延時(shí)
DelayMS(1000);
}
}
/* 名稱(chēng):8 只數碼管滾動(dòng)顯示數字串
說(shuō)明:數碼管向左滾動(dòng)顯示 3 個(gè)字符構成的數字串
*/
#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};
//下面數組看作環(huán)形隊列,顯示從某個(gè)數開(kāi)始的 8 個(gè)數(10 表示黑屏)
uchar Num[]={10,10,10,10,10,10,10,10,2,9,8};
//延時(shí)
void DelayMS(uint x)
{
uchar t;
while(x--) for(t=0;t120;t++);
}
//主程序
void main()
{
uchar i,j,k=0,m=0x80;
while(1)
{ //刷新若干次,保持一段時(shí)間的穩定顯示
for(i=0;i15;i++)
{
for(j=0;j8;j++)
{ //發(fā)送段碼,采用環(huán)形取法,從第 k 個(gè)開(kāi)始取第 j 個(gè)
P0=0xff;
P0=DSY_CODE[Num[(k+j)%11]];
m=_crol_(m,1);
P2=m; //發(fā)送位碼
DelayMS(2);
}
}
k=(k+1)%11; //環(huán)形隊列首支針 k 遞增,Num 下標范圍 0~10,故對 11 取余
}
}
c語(yǔ)言相關(guān)文章:c語(yǔ)言教程
評論