你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
lugf 发表于 2019-8-8 15:00 按照你的方式试了和我上面的一样,能在详细点吗?多谢了
查看全部评分
maxtch 发表于 2019-8-8 01:45 你的 595 是怎么接的?595 可以作为 SPI 从设备用,也可以直接操纵 GPIO。如果接成 SPI 从设备的话,直接向 ...
zcl201207 发表于 2019-8-7 21:58 这个网上很多的呀,建议先看595数据手册。。。
TLLED 发表于 2019-8-8 11:44 给你一个参考程序
TLLED 发表于 2019-8-8 17:42 延时的时间要稍长些,
void LED_HC595(void)
{
//volatile unsigned char LED_data=0x0f;
volatile unsigned char LED_data[8]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};
//数据传输//
unsigned char c,b,num;
num= LED_data[8];
for(b=0;b<8;b++)
delay_ms(100);
{
CLR_HC595_RCK;
delay_us(500);
for(c=0;c<8;c++)
{
CLR_HC595_SCK;
delay_us(500);
if((num&0x80)==0x80)
SET_HC595_DS;
else
CLR_HC595_DS;
delay_us(500);
num<<=1;
SET_HC595_SCK;
delay_us(500);
}
SET_HC595_RCK;
delay_us(500);
}
}
void main()
{
unsigned char a;
unsigned char LED_data[8]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};
disableInterrupts();
CLK_Configuration();
GPIO_Configuration();
TIME2_Init();
enableInterrupts();
while(1)
{
//KEY_Demo();
//KEY_Demo2();
//KEY_Demo1();
for(a=0;a<8;a++)
{
//LED_HC595( );
SendByte(LED_data[a]);
OutCtrl595();
delay_ms(1000);
}
// delay_ms(100);
}
}
大概流程就是这样的
{
unsigned char a;
disableInterrupts();
CLK_Configuration();
GPIO_Configuration();
TIME2_Init();
enableInterrupts();
while(1)
{
//KEY_Demo();
//KEY_Demo2();
//KEY_Demo1();
for(a=0;a<8;a++)
{
LED_HC595( );
}
delay_ms(100);
}
}
评分
查看全部评分
我发了一个程序上来,麻烦大哥有时间帮忙看一下哪里出问题
我发了一个程序上来,麻烦大哥有时间帮忙看一下哪里出问题
#define nop _nop_
sbit RCLK1=P1^2; //控制位信号
sbit DAT=P1^5; //数据输出
sbit SRCLK=P1^4; //左移时钟
sbit ENC=P1^3; //芯片使能
//发送字节
void SendByte(uchar num)
{
uchar i;
for(i=0;i<8;i++)
{
SRCLK=0;
DAT=num&0x80;
num=num<<1;
SRCLK=1;
}
}
//输出控制信号
void OutCtrl595(void)
{
RCLK1=0;
nop();
RCLK1=1;
}
评分
查看全部评分
按照你的方式试了和我上面的一样,能在详细点吗?多谢了
延时的时间要稍长些,
感谢兄弟的热情帮助,我多试几次应该可以了
按照你的思路已经可以了,谢谢