求大神解释一下这个595的程序,ser=1和0是什么意思
时间:10-02
整理:3721RD
点击:
#include<reg52.h>
#include<intrins.h>
int i;
sbit ser=P3^4; //(14脚)串行数据输入
sbit rclk=P3^5; //(12脚)并行输出控制
sbit srclk=P3^6; //(11脚)移位时钟控制
void hc595(unsigned char send)
{
unsigned char i;
rclk=0;
ser=0;
for(i=0;i<8;i++)
{
if((send<<i)&0x80)
{
ser=1;
}
else
{
ser=0;
}
srclk=0;
_nop_();
srclk=1;
}
rclk=0;
_nop_();
rclk=1;
}
void main()
{
hc595(0xf0);
for(i=0;i<20000;i++);
hc595(0x0f);
for(i=0;i<20000;i++);
}
#include<intrins.h>
int i;
sbit ser=P3^4; //(14脚)串行数据输入
sbit rclk=P3^5; //(12脚)并行输出控制
sbit srclk=P3^6; //(11脚)移位时钟控制
void hc595(unsigned char send)
{
unsigned char i;
rclk=0;
ser=0;
for(i=0;i<8;i++)
{
if((send<<i)&0x80)
{
ser=1;
}
else
{
ser=0;
}
srclk=0;
_nop_();
srclk=1;
}
rclk=0;
_nop_();
rclk=1;
}
void main()
{
hc595(0xf0);
for(i=0;i<20000;i++);
hc595(0x0f);
for(i=0;i<20000;i++);
}
ser=1是高电位;ser=0是低电位。!
595是串入并出,ser=1就是把1写进移位寄存器里面