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

📄 tlc1549.c

📁 tlc1549芯片应用程序
💻 C
字号:
/****************************************************************************/
/*                                                                          */
/*                Copyright (c) 2005, 老树工作室                            */
/*                     All rights reserved.                                 */
/*                                                                          */
/*      Email:laoshu0902@163.com                                            */
/*      www.laoshu0902.bokee.com                                            */
/*                                                                          */
/****************************************************************************/
/****************************************************************************/
/* 文件名:tlc1549.c                                                        */
/* 版  本:Version 1.0                                                      */
/* 描  述:10bit串行AD,TLC1549驱动代码                                      */
/* 作  者:spot                                                             */
/* 函  数:                                                                 */
/*         convert_adc                                                      */
/*         delay                                                            */
/*                                                                          */
/* 历史记录:                                                               */
/*  spot          2005-06-25     Creat Inital version. (Version 1.0)        */
/****************************************************************************/

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

typedef unsigned char u_char;
typedef unsigned int  u_int;

sbit CLK  = P3^7;             /* AD时钟信号 */
sbit CS   = P1^0;             /* AD片选信号 */
sbit DOUT = P3^5;             /* 数据输出   */

u_int adc_1549(void);  /* 读取ADC输出的10bit数据 */
void delay(u_char us);

u_int adc_result = 0;           /* AD计算结果 */

void delay(u_char us)
{
    while(us--);
}

/* 读取AD输出的10bit数据 */
u_int adc_1549(void)
{
    u_int  data_out=0;
    u_char i;
    
    CS = 1;
    _nop_();
    CS = 0;
    
    for (i=0; i<10; i++)  /* 读取10位数据 */
    {            
        CLK = 0;
        data_out = (data_out<<1)|DOUT;
        CLK = 1;
        _nop_();             
    }                  
    CLK = 0;         
    CS = 1;  
    delay(3);             /* 延时21us以上 */        
    
    return(data_out);
}


main()
{
    
    while(1)
    {
        float temp=0;
        temp = adc_1549();  
       
        adc_result = ( (temp * 500) / 1024 );
        _nop_();
    }
}

⌨️ 快捷键说明

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