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

📄 max5541.c

📁 串行DA转换器MAX5541的驱动程序!单片机为AT89C51!
💻 C
字号:

/***************AD5541/MAX5541 C51*****************/
// 最后修改日期:2006年01月11日;调试通过
//
/**************************************************/
#include    <reg52.h>
#include    <intrins.h>

#define    uchar  unsigned char
#define    uint   unsigned int

sbit SCLK= P1^3; //定义串行时钟线所在口 使用时根据自己的需要来定义
sbit DIN= P1^4; //定义串行数据线所在口 使用时根据自己的需要来定义
sbit DA_CS= P1^5;

//extern  void delayus(uchar us);
/*void delayms(uchar x)
{
     uchar i; 
     for(i=0;i<x;i++); 
}
*/
void  ad5541_ck(void){
      SCLK=0;_nop_();_nop_();       
      SCLK=1;_nop_();_nop_();       
}

void  ad5541(uint da1){
 
      uchar r=16;
      uint ch;
      ch=da1;

      DA_CS=1;
      //dacs2=1;
      ad5541_ck();  
      DA_CS=0;
      while (r--){
          DIN=ch&0x8000;
          ad5541_ck();
          ch<<=1;
      }
      DA_CS=1;
      _nop_();_nop_();_nop_();
}

main()              //发锯齿波
{
  uint DA_i=0;
  while(1)
   { 
   //ad5541(DA_i++);
   ad5541(0xffff);   //输出最大值对应10V
   //ad5541(0x7fff);
   //ad5541(0x0);
   //delayms(100);
   }

}

⌨️ 快捷键说明

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