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

📄 tlc2543.c

📁 12位多通道AD TLC2543的接口程序,包括其中寄存器的读写等
💻 C
字号:
#include <reg52.h>
//#include <absacc.h> 
#include "delay.h"
#include "tlc2543.h"
 
/////////////////////////////////////////////////
//A/D转换子程序
unsigned int read2543(unsigned char ch_no,unsigned char bit_n)//ch_no---通道选择,bit_n---输出位数
{
	data unsigned char i,data_in,adl,adh;
	unsigned int ad=0;
	data_in = ch_no;
	D_OUT = 1;  /* DATA OUT  */
	delay(50); /* while(!P1_0){};   P1_0---EOC  ***/
	CLOCK = 0;  /*  I/O CLOCK */
	P2 = P2&0x0f|0xa0;
	delay(20);
	adl = 0;
	adh = 0;
	for(i=0;i<4;i++)
	   {
	    adh = ( adh<<1 );
	    D_OUT = 1;
	    if( D_OUT ) 
        adh++;           /* out */
	    if( (data_in&0x08) != 0 )
         D_IN = 1; 
        else D_IN = 0; 
	    data_in = (data_in << 1);
	    CLOCK = 1;   /* I/O CLOCK */
	    CLOCK = 1;   /* I/O CLOCK */
	    CLOCK = 1;   /* I/O CLOCK */
	    CLOCK = 0;   /* I/O CLOCK */
	    CLOCK = 0;   /* I/O CLOCK */
	    CLOCK = 0;   /* I/O CLOCK */
	     
	    }
	D_IN = 0;
	for(i=0;i<bit_n-4;i++)
	   {
	    adl = ( adl<<1 );
	    D_OUT = 1;
	    if( D_OUT )
        adl++; 
	    CLOCK = 1;   /* I/O CLOCK */
	    CLOCK = 1;   /* I/O CLOCK */
	    CLOCK = 1;   /* I/O CLOCK */
	    CLOCK = 0;   /* I/O CLOCK */
	    CLOCK = 0;   /* I/O CLOCK */
	    CLOCK = 0;   /* I/O CLOCK */
	    }
    P2 = P2&0x0f|0xf0;
	ad = 256*adh + adl;
	return(ad);
} 

⌨️ 快捷键说明

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