da7512.c

来自「AD7512程序的头文件」· C语言 代码 · 共 48 行

C
48
字号


#include "reg52.h"
#include <intrins.h>

sbit NSYNC=P1^0;        //DA的使能端
sbit SCLK=P1^1;         //DA的时钟
sbit DIN=P1^2;          //DA的数据输端
 void DA7512_change(unsigned int det)
 {
  unsigned char DA,DAH,DAL,i,j;
  if(det>4095)
      det=0;                 //DIN范围是从0到4095之间
  else 
     {
	    DAL=det%256;   // DIN的高位
	    DAH=det/256;          // DIN的低位
	   NSYNC=0;              //开启DA
	   i=0;
	   SCLK=0;
	   while(i<2)
   	      {
		   if(i<1)
		      DA=DAH;         //选送高位的数
		   else
		      DA=DAL;         //再送低位
		   for(j=8;j>0;j--)
		      {
			    DIN=(DA & 0x80);
				DA<<=1;
				SCLK=1;           //一个上升沿送一位数
                _nop_();
				SCLK=0;
			  }
		   i++;
		  } 
 	   NSYNC=1;
	 }
 }
void main(void)
{
 
while(1)
{
 DA7512_change(4090);
 }
}

⌨️ 快捷键说明

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