16*16点阵滚动显示,段码由8255输出,采用74HC595移位作为位码,位码为什么会出现乱码呢??

来源:百度知道 编辑:UC知道 时间:2024/06/22 05:01:10
关键程序如下:
uint arr[]={ 0x7fff,0xffff,0xffff,0xffff},*p=arr ;

void delay (void)
{
TMOD=0X01;
TR0=1;
TH0=0X63;
TL0=0X18;
while(!TF0);
TF0=0;
TR0=0;
}

void ST595(void)
{
ST=0;
_nop_();
_nop_();
ST=1;
_nop_();
_nop_();
ST=0;
}

void tiaoduan (void)
{
uchar i;

}

void main (void)
{

uint x1,i, x3=0x0001;
PK8255=0x80;
while(1)
{
for(b=0;b<64;b++)
{
for(c=0;c<5;c++)
for(a=0;a<16;a++)
{

for(i=0;i<4;i++)
{
for(x1=0;x1<16;x1++)
{
SH=0;
DS=p[i]&x3;
_nop_();
_nop_();
SH=1;
x3=x3<<1|x3>>15;
SH=0;
}
arr[i]=arr[i]<<15

8255我没有用过!你可到http://u.youku.com/user_show/uid_%e7%94%b5%e4%bf%a10731上看一下,如果可以的话我可以吧程序电路发给你!