#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit SH_CP=P3^6;
sbit DS=P3^4;
sbit ST_CP=P3^5;
uchar num,temp,n,t;
uchar code tab[ ]=
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",0*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",0*/
0x00,0x3E,0x41,0x41,0x41,0x41,0x3E,0x00,/*"0",1*/
0x00,0x00,0x20,0x20,0x7F,0x00,0x00,0x00,/*"1",2*/
0x00,0x21,0x43,0x45,0x45,0x49,0x31,0x00,/*"2",3*/
0x00,0x22,0x41,0x49,0x49,0x49,0x36,0x00,/*"3",4*/
0x00,0x04,0x0C,0x14,0x24,0x7F,0x04,0x00,/*"4",5*/
0x00,0x72,0x51,0x51,0x51,0x53,0x4E,0x00,/*"5",6*/
0x00,0x3E,0x6B,0x49,0x49,0x49,0x26,0x00,/*"6",7*/
0x00,0x40,0x41,0x42,0x4C,0x50,0x60,0x00,/*"7",8*/
0x00,0x36,0x49,0x49,0x49,0x49,0x36,0x00,/*"8",9*/
0x00,0x32,0x49,0x49,0x49,0x4B,0x3E,0x00,/*"9",10*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*" ",11*/
void delay_ms(unsigned int ms)
{
uchar j;
while(ms--)
for(j=0;j<123;j++);
}
void WriteByte(uchar dat)
{
uchar k;
for(k=0;k<8;k++)
{
dat=dat>>1;
DS=CY;
SH_CP=0;
SH_CP=1;
}
}
void main()
{
while(1)
{
for(n=0;n<88;n++)
{
for(t=0;t<16;t++)// 重復顯示 16 次,讓流動稍微緩慢
{ temp=0xfe;
{ for(num=n;num<8+n;num++)
{
WriteByte(tab[num+0]);
P0=temp;
ST_CP=0;
ST_CP=1;
delay_ms(1);
temp=_crol_(temp,1);
}
}
}
}
}
}
|