#include <STC12C5A60S2.H>
#define uchar unsigned char
#define uint unsigned int
sbit DU = P2^0; //数码管段选
sbit WE = P2^1; //数码管位选
sbit CS88 = P2^2; //8X8点阵使能
sbit LCDEN=P2^5;
unsigned char code seg[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//列选通控制
unsigned char code segm[2][8]=
{0x00,0x6C,0x92,0x82,0x44,0x28,0x10,0x00,
0x7c,0x48,0x48,0xff,0x48,0x48,0x7c,0x00};
void delay(uint z) //毫秒级延时
{
uint x,y;
for(x=z;x>0;x--)
for(y=114;y>0;y--);
}
void main()
{
uchar tab,j;
uint i;
LCDEN=0;//关掉LCD1602
WE=1;
P0=0Xff;
WE=0; //关掉数码管显示
while(1)
{
for(i=0;i<50;i++)
{
for(tab=0;tab<8;tab++)
{
DU=1;
P0=segm[j][tab];//取显示数据
DU=0;
CS88=1;
P0=seg[tab]; //取段码
CS88=0;
delay(15); //扫描间隙延时
}
}
j++;
if(j==2)
{
j=0;
}
}
}
|