×
嵌入式 > 技术百科 > 详情

MSP430读取74hc165的一个例子

发布时间:2020-06-02 发布时间:
|
/******************************************************************************************************

   msp430f149          74hc165

      P30  ----------   165CLK

      P31  ----------    S/L

      P32  ----------   165OUT

******************************************************************************************************/

#include

typedef unsigned char uchar;

typedef unsigned int uint;

typedef unsigned long int ulong;

#define NUM_165 4 //级联165个数

uchar ucBuf165[NUM_165];

#define CLK165_UP    P3OUT|=BIT0

#define CLK165_DOWN  P3OUT&=~BIT0

#define SL165_UP     P3OUT|=BIT1

#define SL165_DOWN   P3OUT&=~BIT1

#define OUT165       (P3IN&BIT2)>>2

/**************************************************************

初始化

***************************************************************/

void Init165(void)

{

    P3DIR|=BIT0;

    P3DIR|=BIT1;

    P3DIR&=~BIT2;

    CLK165_DOWN;

    SL165_UP;   

}

/*************************************************************

将并行口的数据锁存

**************************************************************/

void ShLd165(void)

{

    SL165_DOWN;

    SL165_UP;   

}

/*************************************************************

读一片165数据

*************************************************************/

uchar Read165(void)

{

    uchar temp,i;

    temp=OUT165<<7;

    for(i=1;i<8;i++)

    {

        CLK165_DOWN; CLK165_UP; temp+=OUT165<

    }

    CLK165_DOWN; CLK165_UP;

    return(temp);

}

/*****************************************************************

读取BCD码

*****************************************************************/

void GetBCD(void)

{

    uchar i;

    Init165();

    ShLd165();

    for(i=0;i

    {

        ucBuf165[i]=~Read165();   

    }   

}

 


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
iPhone将是质的飞跃:苹果A14处理器+高通X55基带