16*16点阵取模出现乱码的问题。

2019-07-15 17:53发布

#include<reg51.h>
#include<intrins.h>

#define uchar unsigned char  
sbit SCK=P3^6;
sbit LCK=P3^5;
sbit SDI=P3^4;

void HC595_Send(uchar dat1,uchar dat0,uchar dat2,uchar dat3);

void main()
{
        while(1)
        {       
                HC595_Send(0xff,0xfe,0x80,0x00);
        }       
}
void HC595_Send(uchar dat1,uchar dat0,uchar dat2,uchar dat3)
{
        uchar i;
        SCK=1;
        LCK=1;
        for(i=0;i<8;i++)
        {
                SDI=dat0&0x01;                //从高位到低位
                dat0>>=1;
                SCK=0;
                _nop_();
                _nop_();
                SCK=1;
                _nop_();
                _nop_();       
        }
        for(i=0;i<8;i++)
        {
                SDI=dat1&0x01;                //从高位到低位
                dat1>>=1;
                SCK=0;
                _nop_();
                _nop_();
                SCK=1;
                _nop_();
                _nop_();       
        }
        for(i=0;i<8;i++)
        {
                SDI=dat2&0x01;                //从高位到低位
                dat2>>=1;
                SCK=0;
                _nop_();
                _nop_();
                SCK=1;
                _nop_();
                _nop_();       
        }
        for(i=0;i<8;i++)
        {
                SDI=dat3&0x01;                //从高位到低位
                dat3>>=1;
                SCK=0;
                _nop_();
                _nop_();
                SCK=1;
                _nop_();
                _nop_();       
        }
        LCK=0;        //下面是输出时钟
        _nop_();
        _nop_();
        LCK=1;
        _nop_();
        _nop_();
}

只改HC595_Send(0xff,0xfe,0x80,0x00);这里的数据可以了么?上面的程序点亮的是左上角的一个点,我想点亮左下角的一个点应该怎么改?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。