您的位置:首页技术文栏单片机C51
内容搜索:
阅读内容
背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  

单片机IO驱动74LS165 C51程序

[日期:2008-08-21 ] [来源:东哥单片机学习网 www.picavr.com 作者:佚名] [字体: (投递新闻)

单片机IO驱动74LS165 C51程序

//-------------------------------------库函数声明,管脚定义--------------
#include <reg52.h>
sbit a7=ACC^7;
sbit simuseri_CLK=P1^6;            //用P1^6模拟串口时钟
sbit simuseri_DATA=P1^5;          //用P1^5模拟串口数据
//----------------------------------------------------------------------
//  函数名称: in_simuseri
//  输入参数:无
//  输出参数:data_buf
//  功能说明:8位同步移位寄存器,将simuseri_DATA串行输入的数据按从低位到高位
//            保存到data_buf 
//-----------------------------------------------------------------------
char in_simuseri(void)
 {    
    char i;
    char data_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);    
}
//-------------------------------------库函数声明,管脚定义----------------------------------------
sbit drive74165_LD=P1^7;           
 //用P1^7控制SH/LD管脚

//-----------------------------------------------------------------------
//  函数名称:PAs
//  输入参数:无
//  输出参数:PAs_buf,返回并行输入74LS165的数据
//  功能说明:直接调用,即可读取并行输入74LS165的数据,不需要考虑74LS165的
//  工作原理 
//-----------------------------------------------------------------------
char PAs(void)
 {
char  PAs_buf;
drive74165_LD =0;     并行置入数据
drive74165_LD =1;     开始串行移位
PAs_buf= in_simuseri();
Return(PAs_buf);
}

阅读:
录入:petta

推荐 】 【 打印
本文评论
      全部评论
发表评论


点评: 字数
姓名:
站长推荐