tlc0832.c

来自「通过adc0809采集电压」· C语言 代码 · 共 53 行

C
53
字号
#include <reg52.H>
#include "Typedef.H"
#include "UserDef.H"
#include "TLC0832.H"

/*  端口定义 */
sbit adccs = P3^6 ;
sbit adcclk = P1^5 ;
sbit adcdi = P1^6 ;
sbit adcdo = P1^7 ;

/***************************************
		 延时函数
****************************************/
static void delay1(INT8U x)   
 	{   
    INT8U i; 
    for(i=0;i<x;i++); 
 	}

/***************************************
	 时钟信号函数
****************************************/
static void adcck(void)	
 	{ 
    adcclk=1; delay1(2); 
    adcclk=0; delay1(2); 
 	}

/***************************************
	AD转换函数
****************************************/
INT8U TLC0832(void)
	{
	INT8U i;
    INT8U ch = 0;

	adccs=0;           /* 片选信号为0                       */
	adcck(); adcdi=1;  /* 启动A/D信号                       */
	adcck(); adcdi=1;  /* SGL=1                             */
	adcck(); adcdi=0;  /* ODD=0,单极性,选中通道0           */
	adcck();           /* 延时一个时钟期,产生一个时钟信号  */
	for (;adcdo==1;) adcck();
	for (i=0; i<8; i++) 
		{
		adcck();  /*产生时钟信号*/
        ch=(ch<<1)|adcdo;  /*接收TLC0832输出的转换结果*/
        }
	adccs=1;           /*片选信号置1*/
	return(ch);
	}

⌨️ 快捷键说明

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