您的位置 首页 报告

51单片机C编程(九、8X8点阵显现)

——————-8X8点阵显示程序—————————————–2009年4月23日———————

//——————-8X8点阵显现程序———————-

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

显现‘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)
{
//—————-循环扫描点阵(状况1)—————————
P0=0x01;//P0初始为榜首列
for(i=0;i<8;i++)//循环扫描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);
//—————-循环扫描点阵(状况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);
//—————-循环扫描点阵(状况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);
//—————-循环扫描点阵(状况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);
//—————-循环扫描点阵(状况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);
//—————-循环扫描点阵(状况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);
//—————-循环扫描点阵(状况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);
//—————-循环扫描点阵(状况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);
//—————-循环扫描点阵(状况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);
}
}
//——————延时子函数 ———————-
void delay(uchar x)
{
int i,j;
for(i=x;i>0;i–)
for(j=500;j>0;j–);
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/baogao/256902.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部