74LS165 C51程序(并入传出芯片)
扫描二维码
随时随地手机看文章
单片机
//-------------------------------------库函数声明,管脚定义--------------
#include
sbita7=ACC^7;
sbitsimuseri_CLK=P1^6;//用P1^6模拟串口时钟
sbitsimuseri_DATA=P1^5;//用P1^5模拟串口数据
//----------------------------------------------------------------------
//函数名称:in_simuseri
//输入参数:无
//输出参数:data_buf
//功能说明:8位同步移位寄存器,将simuseri_DATA串行输入的数据按从低位到高位
//保存到data_buf
//-----------------------------------------------------------------------
charin_simuseri(void)
{
chari;
chardata_buf;
i=8;
do
{
ACC=ACC>>1;
for(;simuseri_CLK==0;);
a7=simuseri_DATA;
for(;simuseri_CLK==1;);
}
while(--i!=0);
simuseri_CLK=0;
data_buf=ACC;
return(data_buf);
}
//-------------------------------------库函数声明,管脚定义----------------------------------------
sbitdrive74165_LD=P1^7;
//用P1^7控制SH/LD管脚
//-----------------------------------------------------------------------
//函数名称:PAs
//输入参数:无
//输出参数:PAs_buf,返回并行输入74LS165的数据
//功能说明:直接调用,即可读取并行输入74LS165的数据,不需要考虑74LS165的
//工作原理
//-----------------------------------------------------------------------
charPAs(void)
{
charPAs_buf;
drive74165_LD=0;并行置入数据
drive74165_LD=1;开始串行移位
PAs_buf=in_simuseri();
Return(PAs_buf);
}