功能:常用于拓展IO口,简单地说是一个串行输入并行输出的芯片,即数据从输入端每次串行输入(数据一位一位地从一个端口输出),等到8位时并行输出(数据从8个引脚同时输出)。
引脚功能:
/* *--------------------------------------------------------------------------* *st_cp(12号引脚),上升沿时将数据移位 *sh_cp(11号引脚),上升沿时将数据输出 *OE(13号引脚),高电平时禁止输出,用一个引脚控制它可达到闪烁效果 *ds(14号引脚),数据串行输入口 *--------------------------------------------------------------------------* */ uchar send_byte(uchar n,uchar ds, bit st_cp, bit sh_cp) { uchar i=0; ds=n;//串行数据输入 st_cp=0;//输入存储器锁存时钟 sh_cp=0;//数据输入时钟 for(i=0;i<8;i++) { if(ds&0x01) ds=1; else ds=0; ds = ds >>1; st_cp=1;//上升沿,数据移位 st_cp=0;//拉低,等待下次上升沿使用 } sh_cp=1;//上升沿8位数据并行输出 return ds; }