/******************************************************************************************************
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(); } }