为啥用msp430驱动不了呢?用51就可以呢?msp430用的是默认的时钟!各位帮帮忙啊!
/**************宏定义***************/
#define DataDir0 P4DIR //LCD1602
#define DataPort0 P4OUT
#define CtrlDir0 P3DIR
#define DataDir1 P7DIR //DS12C887
#define DataPort1 P7OUT
#define Data_IN P7IN
#define CtrlDir1 P3DIR
#define Busy 0x80
#define CLR_RS P3OUT&=~BIT0; //RS = P3.0
#define SET_RS P3OUT|=BIT0;
#define CLR_RW P3OUT&=~BIT1; //RW = P3.1
#define SET_RW P3OUT|=BIT1;
#define CLR_EN P3OUT&=~BIT2; //EN = P3.2
#define SET_EN P3OUT|=BIT2;
#define CLR_DSCS P3OUT|=BIT3; //DSCS=P3.3
#define SET_DSCS P3OUT&=~BIT3;
#define CLR_DSAS P3OUT|=BIT4; //DSAS=P3.4
#define SET_DSAS P3OUT&=~BIT4;
#define CLR_DSDS P3OUT|=BIT5; //DSDS=P3.5
#define SET_DSDS P3OUT&=~BIT5;
#define CLR_DSRW P3OUT|=BIT6; //DSRW=P3.6
#define SET_DSRW P3OUT&=~BIT6;
/***********************************************
/******************************************
函数名称:DSReset
功 能:对DS12C887模块进行初始化操作
参 数:无
返回值 :无
*****************************************/
void DSReset(void)
{
Write_ds(0x0a,0x20);
Write_ds(0x0B,0x06);
}
/******************************************
函数名称:Write_ds
功 能:对DS12C887模块进行写操作
参 数:有
返回值 :无
*****************************************/
void Write_ds(uchar add,uchar date)
{
DataDir1=0xff;
CtrlDir1|=0x78;
CLR_DSCS;
SET_DSAS;
SET_DSDS;
SET_DSRW;
// CLR_DSCS;
DataPort1=add;
CLR_DSAS;
CLR_DSRW;
// DataDir1=0xff;
DataPort1=date;
SET_DSRW;
SET_DSAS;
SET_DSCS;
}
/******************************************
函数名称:Read_ds
功 能:对DS12C887模块进行读操作
参 数:有
返回值 :有
*****************************************/
uchar Read_ds(uchar add)
{
DataDir1=0xff;
CtrlDir1|=0x78;
uchar ds_date;
// CLR_DSCS;
// CLR_DSAS;
SET_DSAS;
SET_DSDS;
SET_DSRW;
CLR_DSCS;
DataPort1=add;
DataDir1=0;
// CLR_DSCS;
CLR_DSAS;
CLR_DSDS;
// DataPort1=0;
// ds_date=Data_IN;
ds_date=DataPort1;
SET_DSDS;
// ds_date=Data_IN;
SET_DSAS;
SET_DSCS;
return(ds_date);
}
/******************************************
此帖出自
小平头技术问答
一周热门 更多>