#include <reg52.h>
typedef unsigned char uchar;
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
code uchar image[5][8] = {
{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, //动画帧0
{0xFF,0xC3,0xE7,0xE7,0xE7,0xE7,0xE7,0xC3}, //动画帧8
{0xFF,0x99,0x00,0x00,0x00,0x81,0xC3,0xE7}, //动画帧16
{0xFF,0x99,0x99,0x99,0x99,0x99,0x81,0xC3}, //动画帧24
{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF} //动画帧32
};
void main() {
EA = 1;
ENLED = 0;
ADDR3 = 0;
TMOD = 0x01;
TH0 = 0xFC;
TL0 = 0x67;
ET0 = 1;
TR0 = 1;
while (1);
}
void interruptTimer0() interrupt 1 {
static uchar i = 0, tmr = 0, index = 0;
uchar p = index / 8, q = index % 8;
TH0 = 0xFC;
TL0 = 0x67;
P0 = 0xFF;
P1 = (P1 & 0xF8) | i;
if (q == 0) P0 =
51单片机 8*8LED点阵横向流水 使用位运算生成中间帧
最新推荐文章于 2024-06-29 20:56:46 发布
这篇博客介绍了如何使用51单片机通过位运算来生成8*8LED点阵的横向流水效果,详细阐述了实现过程中反向移动的技巧和步骤。
摘要由CSDN通过智能技术生成