📄 tlc1549.c.bak
字号:
/****************************************************************************/
/* */
/* Copyright (c) 2005, 老树工作室 */
/* All rights reserved. */
/* */
/* http://www.saintone.net Email:hxm0902@163.com */
/* QQ:112431149 Tel:010-62966630 */
/* */
/****************************************************************************/
/****************************************************************************/
/* 文件名: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<stdio.h>
#include<intrins.h>
sbit CLK = P1^3; /* AD时钟信号 */
sbit CS = P1^5; /* AD片选信号 */
sbit DOUT = P1^4; /* 数据输出 */
unsigned int adc_1549(void); /* 读取ADC输出的10bit数据 */
void delay(unsigned char us);
float adc_result=0; /* AD计算结果 */
void delay(unsigned char us)
{
while(us--);
}
/* 读取AD输出的10bit数据 */
unsigned int adc_1549(void)
{
unsigned int data_out=0;
unsigned 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_();
}
delay(3); /* 延时21us以上 */
CS = 1;
return(data_out);
}
main()
{
unsigned int temp=0;
while(1)
{
temp = adc_1549();
adc_result = (temp / 1024) * 500;
_nop_();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -