7512-2.c

来自「程序能够实现将十二位的二进制数5V对应fffH变换成一路0~5V的电压。 精度」· C语言 代码 · 共 58 行

C
58
字号
/////////////////////////////////
//作者:付宝军
//名称:DAC7512驱动程序
//未用串行口版 2006.8.3
//06.9.3日重新调试通过
//注意板子上三根控制线和485的连根线连上了,要切断!
///////////////////////////////////
#include<reg52.h>

#define uchar unsigned char
#define uint  unsigned int

sbit  DAC_sync  = P3^7;
sbit  DAC_clk   = P3^6;
sbit  DAC_din   = P3^5;

void delay_us(uchar i);
//////////////////////////////////////
/*-----------DAC7512驱动------------*/
/*入口参数:待转换数据及工作模式选择*/
//////////////////////////////////////
void  dac7512(uint data_da)
{  uchar i;
   DAC_sync = 1;
   delay_us(3);          //启动DAC7512(保持高电平30ns)
   DAC_sync = 0;
   for(i=0;i<16;i++)
    {
       if (data_da&0x8000)      //数据及通道选择字节
           {
             DAC_din=1;
           }
       else
           {
             DAC_din=0;
           }
         data_da<<=1;
         DAC_clk=1;             //产生同步时钟下降沿
         DAC_clk=0;

    }
   DAC_sync = 1;       //省掉这步能省电,故不要
}
/*--------2N微秒延时(keil)-----------*/
void delay_us(uchar i)         //
  {
    while(--i);
   }
/*----------------------*/
void  main()
{  uint  voltage=0xcff;

   while(1)
   {
     dac7512(voltage);
   }
}

⌨️ 快捷键说明

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