51单片机8x8点阵滚动爱心
时间: 2023-10-12 14:12:56 浏览: 226
以下是51单片机8x8点阵滚动爱心的代码,你可以根据自己的需要进行修改:
```c
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
//定义端口
sbit LATCH = P2^6; //锁存器
sbit SCK = P2^5; //时钟
sbit SDA = P2^4; //数据
//定义爱心模型
uchar code xdata heart[8] = {0x18,0x3c,0x7e,0xff,0xff,0x7e,0x3c,0x18};
//延时函数
void Delayms(uint ms)
{
uint i,j;
for(i=ms; i>0; i--)
for(j=110; j>0; j--);
}
//点阵显示函数
void WriteData(uchar dat)
{
uchar i;
for(i=0; i<8; i++)
{
SDA = dat&0x80; //取最高位
dat <<= 1; //左移一位
SCK = 0; //时钟下降沿
SCK = 1; //时钟上升沿
}
}
//点阵锁存函数
void Latch()
{
LATCH = 0; //锁存脉冲下降沿
LATCH = 1; //锁存脉冲上升沿
LATCH = 0;
}
//点阵显示函数
void Disp(uchar *p)
{
uchar i;
for(i=0; i<8; i++)
{
WriteData(*p); //写入数据
p++;
}
Latch(); //锁存数据
}
//滚动函数
void Scroll(uchar *p, uint n)
{
uint i,j;
for(j=0; j<n; j++)
{
for(i=0; i<8; i++)
{
Disp(p+i); //显示点阵
Delayms(1); //延时
}
}
}
//主函数
void main()
{
while(1)
{
Scroll(heart, 20); //滚动爱心
}
}
```
这段代码使用了一个8x8的点阵,将爱心模型存储在一个数组中,然后通过滚动函数来实现滚动效果。你可以根据自己的需要修改滚动速度、显示内容等。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)