dac7611-01.c

来自「msp430实验DAC7611,对于初学者很有帮助」· C语言 代码 · 共 69 行

C
69
字号
#include <msp430x44x.h>
#include<intrinsics.h>
#define uint unsigned int 
sbit  CS =P1^0;     //输出片选信号
sbit  CLK="P1"^1;     //输出时钟
sbit  SDI="P1"^2;  //输出数据
sbit   LD="P1"^3;     //输出数/模转换过程启动信号 
/******初始化DAC7611******************/
void init_da(void)
{
  LD="0";       // 装载引脚置低
  CS="1";    //片选置高
  CLK="1";     //时钟置高
  SDI="0";
}
/*****时钟脉冲子函数***********/
void clock(void)
{
  CLK="0"; 
  _nop_();
  CLK="1";   //产生一个时钟脉冲
  _nop_();  
}
/******DAC7611转换***************/
void DAC_7611(uint vol)
{
  uint i,j;  
  vol<<=4;
  LD="1";                   //装载引脚置高
  _nop_();
  CS="0";             //片选拉低,准备转换         
  for(i=0;i<12;i++)
   {  
     j=vol;
     SDI=j&0x8000;   
     clock();
     vol<<=1;
   }
  CLK="1";                 // 输出时钟置高
  _nop_();
  CS="1";                    //DAC7611片选引脚CS置高  
  _nop_();  
  LD="0";                    //装载引脚LD置低以启动数模转换
  _nop_(); 
  _nop_(); 
  _nop_();
  _nop_(); 
  _nop_(); 
  _nop_(); 
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  _nop_();   //延时一会,使输出模拟电压达到稳定
  LD="1";    //LD置高   
}
/**********主程序*****************/
void main()
{   
  init_da();   
  DAC_7611();  
}
 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?