微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > MSP430读取74hc165的一个例子

MSP430读取74hc165的一个例子

时间:11-13 来源:互联网 点击:
/******************************************************************************************************

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();

}

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top