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

📄 5615.c

📁 电磁流量计的源程序。将流体流量用电磁转换方式变换成弱电信号
💻 C
字号:

/************************************************************************/
/************************************************************************/
/*                                                                      */
/*			    tlc 5615 d/a		                                    */
/*                                                                      */
/*              Author: zhiqiang huo                                    */
/*                                                                      */
/*                                                                      */
/************************************************************************/
//***********************************************************************/
  
  


#include "math.h"
#include "reg52.h"
#include "typedef.h"
#include "function.h"
#include "define.h"
#include "varible.h"



#define    DA_K (1023.0/32767.0)
//#define  DA_K (1024.0/32767.0)
/**************function declare***************/
void Da_init(void);
void Da_convert(unsigned int da_data);
void Da_data_chang(void);
void Da_prc(void);
sbit DA_CS = P2^0  ;
sbit DA_CLK = P2^1  ;
sbit DA_DATA = P2^2  ;
/********************************************/

void Da_init(void)
{
	DA_CLK = 0 ;
	DA_CS = 1 ;
	da_send_F = 0;
	send_bit_count = 0 ;
	da_offset = (Read1B(0x35,0)+Read1B(0x36,0)*10+Read1B(0x37,0)*100) ;
}

/********************************************/

void Da_convert(unsigned int da_data)
{
  unsigned char i;
  DA_CLK = 0 ;
  DA_CS = 0 ;
  Delay_1us();


	
for (i=0;i<16;i++)
 {
   DA_DATA = (bit)(da_data&0x8000) ;
   da_data <<= 1 ;
   DA_CLK = 0;
   Delay_1us();
   DA_CLK = 1 ;
   Delay_1us();
  }
DA_CLK = 0;
DA_CS = 1;

return;


} 

/*******************************************/
/*******************************************/
void   Da_data_chang(void)
{  
	unsigned int ad_consult ;

+	ad_consult = da_data*DA_K;            // 16bit ad_data is changed to 10 bit da_data 
	if(ad_consult >1023) 
	  { 
	   //ad_consult=1023; 
	   da_send_data = 1023;   //out 4-20mA data convert
      }
	else
	  {
//	  	da_send_data = (unsigned int)(4.0*ad_consult/5.0) + (unsigned int)203; //  205 ;   //out 4-20mA data convert
        da_send_data = (unsigned int)((1.0-da_offset/1023.0)*ad_consult) + da_offset; //  205 ;   //out 4-20mA data convert
	    
        if(da_send_data > 1023)
	       da_send_data = 1023 ;
	  }	
	  	
//	da_send_data= 0x3ff;
	da_send_data <<= 2;               //get 5615 data
    return;
}
extern bit next_F;
/**************************************/
/**************************************/

void   Da_prc(void)
{
	ET1 = 0 ;
	TF1 = 0 ;
	DA_CS = 0 ;
	DA_CLK = 0 ;
	da_send_F = 1 ;
	next_F = 0 ;
	Da_data_chang();
	TR1 = 1 ;
 //   Da_convert(da_send_data);
    ET1 = 1 ;
    return;
}

⌨️ 快捷键说明

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