proteus点阵8*8led右移箭头相关问题,本人学生不太会-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 583|回复: 0

[未解决] proteus点阵8*8led右移箭头相关问题,本人学生不太会

[复制链接]
发表于 2022-1-14 11:10 | 显示全部楼层 |阅读模式
怎样使移动箭头后无图案的led灯熄灭,也就是图片里箭头移动后后面跟着的红色方块。
#include <reg51.h>
//定义74HC595控制管脚
sbit SCK=P3^6;
sbit RCK=P3^5;
sbit SER=P3^4;
unsigned char matrixLED1[8]={0x00,0x38,0x38,0x38,0xfe,0x7c,0x38,0x10};//LED点阵高电平端口数据
unsigned char temp[8];//存储改动后的图形
unsigned char matrixLED0[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED点阵低电平端口数据
void delay(unsigned int a)
{
   while(a--);
   }
void col_data(unsigned char dat)
{
unsigned char i=0;
for(i=0;i<8;i++)//循环8次即可将一个字节写入寄存器中
{SER=dat>>7;//!优先传输一个字节中的高位
dat<<=1;//将下一位移动到高位
SCK=0;
delay(1);
SCK=1;
delay(1); //上升沿时数据移位
}
RCK=0;
delay(1);
RCK=1;//上升沿时移位寄存器数据并行输出
}
void main()
{
unsigned char i,j,k;
while(1)
   {
for (i=0;i<15;i++)//调整待显示图形数据
   {
      if(i<8)
   {
      for(j=0;j<8;j++)  temp[j]=matrixLED0[j]<<(7-i);
      }
else
   {
      for(j=0;j<8;j++)
         temp[j]=matrixLED0[j]>>(i-7);
         }
for(k=0;k<5;k++)
   {
   for(j=0;j<8;j++)
      {
         P0=temp[j];
         col_data(matrixLED1[j]);//传送高电平端口数据
         delay(100);
         col_data(0x00);
         }
         }}}}

QQ录屏20220114105711.gif
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 15:56 , Processed in 0.094716 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表