程序如下:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit wx=P1^2;
sbit dx=P1^3;
char code hang[]={0xff,0x93,0x01,0x01,
0x83,0xc7,0xef,0xff};
char code xuanhang[]={0x01,0x02,0x04,0x08,
0x10,0x20,0x40,0x80};
void delay(uchar xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
uchar i;
while(1)
{
for(i=0;i<8;i++)
{
wx=1;
P0=xuanhang[i];
wx=0;
P0=0;
delay(1);
dx=1;
P0=hang[i];
dx=0;
P0=1;
delay(1);
}
}
}
仿真如下:
若想让心滚动起来(从下往上滚动),程序如下:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit wx=P1^2;
sbit dx=P1^3;
char code hang[]={0xff,0x93,0x01,0x01,0x83,0xc7,0xef,0xff,0xff,0x93,0x01,0x01,
0x83,0xc7,0xef,0xff};
char code xuanhang[]={0x01,0x02,0x04,0x08,
0x10,0x20,0x40,0x80};
void delay(uchar xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
uchar i;
uchar d=0,j=50;
while(1)
{
while(j--)
{
for(i=0;i<8;i++)
{
wx=1;
P0=xuanhang[i];
wx=0;
P0=0xff;
dx=1;
P0=hang[i+d];
dx=0;
P0=0x00;
delay(1);
}
}
d++;
j=50;
if(d==8)
d=0;
}
}