⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dac7611.c

📁 DAC7611
💻 C
字号:
#include <reg51.h>
#include<intrins.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(1024);  
}
 

⌨️ 快捷键说明

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