16*16点阵取模出现乱码的问题。
时间:10-02
整理:3721RD
点击:
#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);这里的数据可以了么?上面的程序点亮的是左上角的一个点,我想点亮左下角的一个点应该怎么改?
#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);这里的数据可以了么?上面的程序点亮的是左上角的一个点,我想点亮左下角的一个点应该怎么改?
你看看去摸方式对不对,反向,横向,等等