📄 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 + -