MSP430讀取74hc165的一個(gè)例子
msp430f14974hc165
本文引用地址:http://m.butianyuan.cn/article/201611/316432.htmP30----------165CLK
P31----------S/L
P32----------165OUT
******************************************************************************************************/
#include
typedef unsigned char uchar;
typedef unsigned int uint;
typedef unsigned long int ulong;
#define NUM_165 4 //級(jí)聯(lián)165個(gè)數(shù)
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;
}
/*************************************************************
將并行口的數(shù)據(jù)鎖存
**************************************************************/
void ShLd165(void)
{
SL165_DOWN;
SL165_UP;
}
/*************************************************************
讀一片165數(shù)據(jù)
*************************************************************/
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(); } }
評(píng)論