#include "reg51.h"
#include<intrins.h>
typedef unsigned int uint;
typedef unsigned char uchar;
sbit SRCLK=P3^6;
sbit RCLK=P3^5;
sbit SER=P3^4;
sbit pause=P3^3;
uint i,j,m=0,w;
char code love[]={
0x00,0x81,0x81,0xFF,0x81,0x81,0x00,0x00,
0x00,0xFF,0x01,0x01,0x01,0x01,0x00,0x00,
0x3C,0x42,0x42,0x42,0x3C,0x00,0x00,0x00,
0x78,0x04,0x02,0x04,0x78,0x00,0x00,0x00,
0x3C,0x52,0x52,0x52,0x52,0x30,0x00,0x00,
0x00,0xF0,0x08,0x07,0x08,0xF0,0x00,0x00,
0x3C,0x42,0x42,0x42,0x3C,0x00,0x00,0x00,
0x7C,0x02,0x01,0x01,0x02,0x7C,0x00,0x00,
0x00,0x00,0x00,0x00
};
void delay(uint i)
{
while(i--);
}
void SendByte(uchar dat)
{
uint a;
SRCLK=0;
RCLK=0;
for(a=0;a<8;a++)
{
SER=dat>>7;
dat<<=1;
SRCLK=1;
_nop_();
_nop_();
SRCLK=0;
}
RCLK=1;
_nop_();
_nop_();
RCLK=0;
}
void roll()
{
for(i=0;i<8;i++)
{
P0=~(w>>i);
SendByte(love[m+i]);
delay(100);
SendByte(0x00);
}
}
void main()
{
while(1)
{
for(j=20;j>0;j--)//??????????
{
w=0x80;
roll();
if(pause==0)
{
delay(200);
if(pause==0)
{
delay(100);
pause=1;
while(1)
{
roll();
if(pause==0)
{
delay(1000);
pause=1;
break;
}
}
}
}
}
m++;
if(m==60)
{
m=0;
}
}
}
2021-1-14 单片机点阵 l love you效果实现代码
最新推荐文章于 2023-07-19 02:41:36 发布