單片機(jī)C語(yǔ)言程序設(shè)計(jì):8 只數(shù)碼管滾動(dòng)顯示數(shù)字、字符
P2=0x00; //關(guān)閉所有數(shù)碼管并延時(shí)
DelayMS(1000);
}
}
/* 名稱:8 只數(shù)碼管滾動(dòng)顯示數(shù)字串
說(shuō)明:數(shù)碼管向左滾動(dòng)顯示 3 個(gè)字符構(gòu)成的數(shù)字串
*/
#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};
//下面數(shù)組看作環(huán)形隊(duì)列,顯示從某個(gè)數(shù)開(kāi)始的 8 個(gè)數(shù)(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í)間的穩(wěn)定顯示
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)形隊(duì)列首支針 k 遞增,Num 下標(biāo)范圍 0~10,故對(duì) 11 取余
}
}
c語(yǔ)言相關(guān)文章:c語(yǔ)言教程
評(píng)論