新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機C編程(九、8X8點陣顯示)

51單片機C編程(九、8X8點陣顯示)

作者: 時間:2016-11-27 來源:網(wǎng)絡(luò) 收藏
//-------------------8X8點陣顯示程序----------------------

//-------------------2009年4月23日------------------------

本文引用地址:http://butianyuan.cn/article/201611/322156.htm

顯示‘0’從右向左移動,proteus仿真電路如下:


#include
#define uchar unsigned char
#define HANG P1//P1口為每一列中的位選
#define LIE P0//P0為列選
void delay(uchar);

void main()
{
int i=0;
while(1)
{
//----------------循環(huán)掃描點陣(狀態(tài)1)---------------------------
P0=0x01;//P0初始為第一列
for(i=0;i<8;i++)//循環(huán)掃描8列
{

switch(P0)
{
case 0x01:P1=0xff;break;
case 0x02:P1=0xff;break;
case 0x04:P1=0xff;break;
case 0x08:P1=0xff;break;
case 0x10:P1=0xff;break;
case 0x20:P1=0xff;break;
case 0x40:P1=0xff;break;
case 0x80:P1=0xc3;break;
default:break;
}
P0=P0<<1;//掃描完一列左移一列
delay(2);
}

delay(100);
//----------------循環(huán)掃描點陣(狀態(tài)2)---------------------------
P0=0x01;
for(i=0;i<8;i++)
{

switch(P0)
{
case 0x01:P1=0xff;break;
case 0x02:P1=0xff;break;
case 0x04:P1=0xff;break;
case 0x08:P1=0xff;break;
case 0x10:P1=0xff;break;
case 0x20:P1=0xff;break;
case 0x40:P1=0xc3;break;
case 0x80:P1=0xbd;break;
default:break;
}
P0=P0<<1;
delay(2);
}

delay(100);
//----------------循環(huán)掃描點陣(狀態(tài)3)---------------------------
P0=0x01;
for(i=0;i<8;i++)
{

switch(P0)
{
case 0x01:P1=0xff;break;
case 0x02:P1=0xff;break;
case 0x04:P1=0xff;break;
case 0x08:P1=0xff;break;
case 0x10:P1=0xff;break;
case 0x20:P1=0xc3;break;
case 0x40:P1=0xbd;break;
case 0x80:P1=0xbd;break;
default:break;
}
P0=P0<<1;
delay(2);
}

delay(100);
//----------------循環(huán)掃描點陣(狀態(tài)4)---------------------------
P0=0x01;
for(i=0;i<8;i++)
{

switch(P0)
{
case 0x01:P1=0xff;break;
case 0x02:P1=0xff;break;
case 0x04:P1=0xff;break;
case 0x08:P1=0xff;break;
case 0x10:P1=0xc3;break;
case 0x20:P1=0xbd;break;
case 0x40:P1=0xbd;break;
case 0x80:P1=0xc3;break;
default:break;
}
P0=P0<<1;
delay(2);
}

delay(100);
//----------------循環(huán)掃描點陣(狀態(tài)5)---------------------------

P0=0x01;
for(i=0;i<8;i++)
{

switch(P0)
{
case 0x01:P1=0xff;break;
case 0x02:P1=0xff;break;
case 0x04:P1=0xff;break;
case 0x08:P1=0xc3;break;
case 0x10:P1=0xbd;break;
case 0x20:P1=0xbd;break;
case 0x40:P1=0xc3;break;
case 0x80:P1=0xff;break;
default:break;
}
P0=P0<<1;
delay(2);
}

delay(100);
//----------------循環(huán)掃描點陣(狀態(tài)6)---------------------------
P0=0x01;
for(i=0;i<8;i++)
{

switch(P0)
{
case 0x01:P1=0xff;break;
case 0x02:P1=0xff;break;
case 0x04:P1=0xc3;break;
case 0x08:P1=0xbd;break;
case 0x10:P1=0xbd;break;
case 0x20:P1=0xc3;break;
case 0x40:P1=0xff;break;
case 0x80:P1=0xff;break;
default:break;
}
P0=P0<<1;
delay(2);
}

delay(100);
//----------------循環(huán)掃描點陣(狀態(tài)7)---------------------------
P0=0x01;
for(i=0;i<8;i++)
{

switch(P0)
{
case 0x01:P1=0xff;break;
case 0x02:P1=0xc3;break;
case 0x04:P1=0xbd;break;
case 0x08:P1=0xbd;break;
case 0x10:P1=0xc3;break;
case 0x20:P1=0xff;break;
case 0x40:P1=0xff;break;
case 0x80:P1=0xff;break;
default:break;
}
P0=P0<<1;
delay(2);
}
delay(100);
//----------------循環(huán)掃描點陣(狀態(tài)8)---------------------------
P0=0x01;
for(i=0;i<8;i++)
{

switch(P0)
{
case 0x01:P1=0xc3;break;
case 0x02:P1=0xbd;break;
case 0x04:P1=0xbd;break;
case 0x08:P1=0xc3;break;
case 0x10:P1=0xff;break;
case 0x20:P1=0xff;break;
case 0x40:P1=0xff;break;
case 0x80:P1=0xff;break;
default:break;
}
P0=P0<<1;
delay(2);
}
delay(100);
//----------------循環(huán)掃描點陣(狀態(tài)9)---------------------------
P0=0x01;
for(i=0;i<8;i++)
{

switch(P0)
{
case 0x01:P1=0xbd;break;
case 0x02:P1=0xbd;break;
case 0x04:P1=0xc3;break;
case 0x08:P1=0xff;break;
case 0x10:P1=0xff;break;
case 0x20:P1=0xff;break;
case 0x40:P1=0xff;break;
case 0x80:P1=0xff;break;
default:break;
}
P0=P0<<1;
delay(2);
}
delay(100);
}
}
//------------------延時子函數(shù) ----------------------
void delay(uchar x)
{
int i,j;
for(i=x;i>0;i--)
for(j=500;j>0;j--);
}



關(guān)鍵詞: 51單片機C編程點陣顯

評論


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

關(guān)閉