您的位置 首页 电路

MSP430读取74hc165的一个比如

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

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

msp430f14974hc165

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_UPP3OUT|=BIT0

#define CLK165_DOWNP3OUT&=~BIT0

#define SL165_UPP3OUT|=BIT1

#define SL165_DOWNP3OUT&=~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<<(7-i);

}

CLK165_DOWN; CLK165_UP;

return(temp);

}

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

读取BCD码

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

void GetBCD(void)

{

uchar i;

Init165();

ShLd165();

for(i=0;i

{

ucBuf165[i]=~Read165();

}

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/dianlu/273043.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部