新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 第7課 數(shù)碼管動態(tài)顯示

第7課 數(shù)碼管動態(tài)顯示

作者: 時間:2016-12-01 來源:網(wǎng)絡(luò) 收藏
調(diào)用程序的方法如下,
P0=table[1];
這里表示將數(shù)組中的第2個元素(注意第一個是table[0])0xf9賦給P1口,
即P0=0xf9;也就是此時位被選通的數(shù)碼管會顯示數(shù)字2.
下面利用編碼的方法讓6個數(shù)碼管以間隔1秒的時間循環(huán)顯示0-f。相應(yīng)程序如例1.
例1:6個數(shù)碼管循環(huán)顯示0-f
#include
#define uint unsigned int
#define uchar unsigned char
sbit duan=P2^6;
sbit wei=P2^7;
uchar num;
unsigned char code table[]={
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e };
void delay(uint);
void main()
{
wei=1;
P0=0xfe;
wei=0;
for(num=0;num<16;num++)
{
duan=1;
P0=table[num];
delay(150);
duan=0;
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=500;y>0;y--);
}
下載到實(shí)驗(yàn)板后實(shí)驗(yàn)現(xiàn)象如圖3所示。
圖3 6個數(shù)碼管依次從0-f變化
2、數(shù)碼管的動態(tài)顯示
明白了數(shù)組編碼后,現(xiàn)在我們正式介紹數(shù)碼管的動態(tài)顯示,為了更利于大家理解,我們先用前面介紹過的靜態(tài)顯示法寫一個程序,功能為:讓6個數(shù)碼管間隔一秒依次顯示1、2、3、4、5、6。程序如例2.
例2數(shù)碼管依次顯示1、2、3、4、5、6
#include
#define uint unsigned int
#define uchar unsigned char
sbit duan=P2^6;
sbit wei=P2^7;
uchar num;
uchar code table[]=
{0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint);
void main()
{
while(1)
{
for(num=1;num<7;num++)
{
if(num==1)
{
wei=1;
P0=0xfe;
wei=0;
duan=1;
P0=table[num];
delay(1000);
duan=0;
}
else if(num==2)
{
wei=1;
P0=0xfd;
wei=0;
duan=1;
P0=table[num];
delay(1000);
duan=0;
}
else if(num==3)
{
wei=1;
P0=0xfb;
wei=0;
duan=1;
P0=table[num];
delay(1000);
duan=0;
}
else if(num==4)
{
wei=1;
P0=0xf7;
wei=0;
duan=1;
P0=table[num];
delay(1000);
duan=0;
}
else if(num==5)
{
wei=1;
P0=0xef;
wei=0;
duan=1;
P0=table[num];
delay(1000);
duan=0;
}
else if(num==6)
{
wei=1;
P0=0xdf;
wei=0;
duan=1;
P0=table[num];
delay(1000);
duan=0;
}

評論


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

關(guān)閉