微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > MAX531问题

MAX531问题

时间:10-02 整理:3721RD 点击:
程序如下:

#include  <msp430x16x.h>
#define uchar unsigned char
#define uint unsigned int
#define MAX531_IO P3DIR |= 0xF0
#define CS_H     P3OUT|=BIT7      
#define CS_L      P3OUT&=~BIT7  
#define SCLK_H      P3OUT|=BIT6      
#define SCLK_L      P3OUT&=~BIT6   
#define DIN_H         P3OUT|=BIT5
#define DIN_L         P3OUT&=~BIT5
//**************************************************************************
void InitSys()
{
    uchar i;
    BCSCTL1 &= ~XT2OFF;                 //打开XT2高频晶体振荡器
    do                                    
    {
        IFG1 &= ~OFIFG;                 //清除晶振失败标志
        for (i = 0xFF; i > 0; i--);     //等待8MHz晶体起振
    }
    while ((IFG1 & OFIFG));             //晶振失效标志仍然存在?
    BCSCTL2 |= SELM_2 + SELS;           //MCLK和SMCLK选择高频晶振
}
/*******************************************************************/
void DelayNus(uint n)
{
  uint i;
    for(i=0;i<n;i++)
    {
      _NOP();
      _NOP();
      _NOP();
      _NOP();
    }
}
/**************************************************************************/
void DA_sendbyte(uint dat)
{   
    MAX531_IO;
    uint ch;
    uchar n=16;
    ch=dat;
    CS_H ;
    DelayNus(20);
    CS_L;
    SCLK_L;
    while(n--)     //发送16位,可改变了N
    {
        if((ch&0x8000)==0x8000) DIN_H; //若发送的数据最高位为1,则发送1
        else DIN_L;      //否则发送0
        DelayNus(20);     
        SCLK_L;
        DelayNus(20);
        SCLK_H;
        ch=ch<<1;//数据左移一位
    }
    DelayNus(20);
    CS_H;
}
/*******************************************************/
void da_init()
{
  CS_H ;
  SCLK_H;
}
/************************************************************************/
void main(void)
{
  WDTCTL = WDTPW+WDTHOLD;                   // Stop watchdog timer
  InitSys();
  da_init();
  DA_sendbyte(0x07ff);
  while(1);
}   

经调试后得不到输出电压 求解释 谢谢各位了


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

网站地图

Top