新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)C語(yǔ)言程序設(shè)計(jì):8 只數(shù)碼管滾動(dòng)顯示數(shù)字、字符

單片機(jī)C語(yǔ)言程序設(shè)計(jì):8 只數(shù)碼管滾動(dòng)顯示數(shù)字、字符

作者: 時(shí)間:2013-06-06 來(lái)源:網(wǎng)絡(luò) 收藏

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ù)開始的 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è)開始取第 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ǔ)言教程



上一頁(yè) 1 2 3 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉