|
发表于 2017-5-31 21:05:50
|
显示全部楼层
1、跨线joe 接vcc
2你可以参考下我的程序。分别显示3种不同 的图案。
#include<reg51.h>
#include<intrins.h>
#define NOP() _nop_()
sbit MOSIO=P3^4;
sbit R_CLK=P3^5;
sbit S_CLK=P3^6;
unsigned char code H[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x20,0x10,0x20,0x40,0x20,0x10,0x08,0x04,0x02};
unsigned char code L[]={0xef,0xdf,0xbf,0x7f,0x7f,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfd,0xfd,0xfb,0xf7};
void delay(unsigned int i)
{
unsigned int j;
for(i;i>0;i--)
for(j=30;j>0;j--);
}
void HC595SendData(unsigned char SendVal)
{
unsigned char i;
for(i=0;i<8;i++)
{
if((SendVal<<i)&0X80) MOSIO=1;
else MOSIO=0;
S_CLK=0;
NOP();
NOP();
S_CLK=1;
R_CLK=0;
NOP();
NOP();
R_CLK=1;
}
}
void D1()
{
HC595SendData(H[0]);
P0=L[0];
delay(20);
}
void D2()
{
HC595SendData(H[0]);
P0=L[0];
delay(20);
HC595SendData(H[1]);
P0=L[1];
delay(20);
}
void D3()
{
HC595SendData(H[0]);
P0=L[0];
delay(20);
HC595SendData(H[1]);
P0=L[1];
delay(20);
HC595SendData(H[2]);
P0=L[2];
delay(20);
}
void main(void)
{
D1();
delay(2000);
D2();
delay(2000);
D3();
delay(2000);
}
|
|