急 求破解!困惑了几个星期了!

2019-03-24 12:40发布

为啥用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);


}
/****************************************** 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
1条回答
mzk1021
2019-03-24 16:15
看不懂,说详细点

一周热门 更多>

相关问题

    相关文章