标题: 单片机新人求助!! [打印本页]

作者: 山远水迢    时间: 2017-9-2 09:09
标题: 单片机新人求助!!
   普中科技的开发板,用74H595控制8*8 led 点阵显示爱心,调试总是失败,点阵全部点亮。代码如下,内附原理图。请求大佬们帮助。
#include <reg51.h>
#include <intrins.h>
#define u8 unsigned char
#define u16 unsigned int
sbit SER=P3^4;
sbit RCLK=P3^5;
sbit SRCLK=P3^6;
u8 ledduan[]={0x38,0x44,0x42,0x21,
                   0x42,0x44,0x38,0x00};
u8 ledwei[]={0x7f,0xbf,0xdf,0xef,
                  0xf7,0xfb,0xfd,0xfe};

void delay(u8 i)
{
  while(i--);
}

void sendByte(u8 dat)
{
        u8 i;
        SRCLK=0;
        RCLK=0;
  for(i=0;i<8;i++)
        {
                SRCLK=1;
                SER=dat>>7;
                dat<<=1;
                _nop_();
                _nop_();
                SRCLK=0;
        }
  RCLK=1;
        _nop_();
        _nop_();
        RCLK=0;
}


void main()
{
  u8 i;
  while(1)
        {
                P0=0x7f;
                for(i=0;i<8;i++)
                {
                  P0=ledwei[i];
                        sendByte(ledduan[i]);
                        delay(100);
               
                }
        }
}

IMG_20170902_090558.jpg (7.75 MB, 下载次数: 53)

IMG_20170902_090558.jpg

QQ图片20170902090956.jpg (8.12 MB, 下载次数: 50)

QQ图片20170902090956.jpg

作者: hange_v    时间: 2017-9-2 13:39
哥们,你是不是彪,不管什么图形用两个char都能表示了(一个横坐标一个纵坐标),哪用数组???
作者: 山远水迢    时间: 2017-9-2 19:15
hange_v 发表于 2017-9-2 13:39
哥们,你是不是彪,不管什么图形用两个char都能表示了(一个横坐标一个纵坐标),哪用数组???

我刚开时自学单片机,你说的我不是很懂用74H595怎么能通过两个char就控制点阵?能给我详细解释一下吗,谢谢




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1