專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

DAC7611驅(qū)動程序

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2012年03月08日   【字體:

#include<reg52.h> //單片機(jī)控制PWM輸出工程芯片測試20120301
#include<intrins.h>
#define uint unsigned int

sbit  CS =P4^3;     //輸出片選信號
sbit  CLK=P1^6;     //輸出時鐘
sbit  SDI=P1^7;  //輸出數(shù)據(jù)
sbit   LD=P1^5;     //輸出數(shù)/模轉(zhuǎn)換過程啟動信號

/******初始化DAC7611******************/
void init_da(void)
{
  LD=0;       // 裝載引腳置低
  CS=1;    //片選置高
  CLK=1;     //時鐘置高
  SDI=0;
}

/*****時鐘脈沖子函數(shù)***********/
void clock(void)
{
  CLK=0;
  _nop_();
  CLK=1;   //產(chǎn)生一個時鐘脈沖
  _nop_(); 
}
/******DAC7611轉(zhuǎn)換***************/

void DAC_7611(uint vol)
{
  uint i,j; 
  vol<<=4;
  LD=1;                   //裝載引腳置高
  _nop_();
  CS=0;             //片選拉低,準(zhǔn)備轉(zhuǎn)換        
  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置低以啟動數(shù)模轉(zhuǎn)換
  _nop_();
  _nop_();
  _nop_();
  _nop_();

  LD=1;    //LD置高  
}

/**********主程序*****************/
void main()
{  
  init_da();  
  DAC_7611(1111);

}

關(guān)閉窗口

相關(guān)文章