原创 基于TLC549的ADC转换的简单电压表设计

2010-9-28 15:35 3402 11 12 分类: EDA/ IP/ 设计与制造

TLC549是TI公司的一款串行8位串行ADC模数转换芯片,该芯片有一个模拟输入端口,3态的数据串行输出接口可以方便的和微处理器或外围设备连接。 TLC549仅仅使用输入/输出时钟(I/O CLOCK)和芯片选择(/CS)信号控制数据。最大的输入输出时钟(I/O CLOCK)为1.1MHz。


产品特点:



CMOS技术低功耗数据采集系统
8位转换结果电池供电系统
与微处理器或外围设备接口工业控制
差分基准电压输入工厂自动化系统等
转换时间:最大17us
每秒访问和转换次数:达到40000
片上软件控制采样和保持功能
全部非校准误差:±0.5LSB
宽电压供电:3~6V 封装及引脚
低功耗:最大15mW
5V供电时输入范围:0~5V
输入输出完全兼容TTL和CMOS电路
全部非校准误差:±1LSB
工作温度范围:0℃~70℃(TLC549); -40℃~85℃(TLC549I)

以下是TLC549的引脚图:



各引脚功能如下:





 


以下是TLC549的51单片机程序,仅供参考!!!


/********************************************************
程序:TLC549 AD转换演示程序(基于TLC549的数字电压表设计)
制作:威智普电子
日期:2010年9月11日
功能:通过TLC549 AD转换芯片进行电压采集,将采集到的信号
      以电压的形式通过数码显示出来。
备注:STC89C52RC 11.0592M晶振
说明:学习TLC549 AD转换芯片的和51内部定时器的使用
********************************************************/


/*   头文件和必要声明及数码管的值   */
#include<reg52.h>
#include<intrins.h>


#define led   P0
#define uchar unsigned char
#define uint unsigned int


uint Volt;             //电压换算并扩大1000倍
uchar num;


uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
/**               0    1    2   3     4    5    6    7    8    9 */
uchar code table1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
/**                0.   1.   2. 3.    4.   5.   6.   7.   8.   9. */


/*   TLC549和数码管为选声明   */
sbit CLK = P2^6;    //时钟
sbit DO = P2^5;     //数据输出
sbit CS = P2^4;      //片选
sbit w1 = P2^0;
sbit w2 = P2^1;
sbit w3 = P2^2;
sbit w4 = P2^3;


/*   延时1ms函数   */
void delay(uint z) // 延时函数
{
uint x,y;
for(x = z; x > 0; x--)
for(y = 110; y > 0; y--);
}


/*   串口初始化函数   */
void init()
{
TMOD=0x01;      //设置定时器0为工作方式1(0000 0001)
TH0=(65536-45872)/256;   //装初值50ms一次中断
TL0=(65536-45872)%256;
EA=1;        //开总中断
ET0=1;        //开定时器0中断
TR0=1;       //启动定时器0
}


/*   TLC549芯片AD转换模块   */
uchar TLC549_ADC(void)   //TLC549转换函数


{
uchar i, tmp;
CS = 1;                     //CS置高,片选无效
CLK = 0;
CS = 0;                     //CS置低,片选有效 ,同时DO输出最高位
_nop_();
_nop_();                     //适当延迟时间1.4us 等待启动(大概需要内部系统时钟的两个上升沿和其后的下降沿)
for(i = 0; i < 8; i++) //串行数据移位输入
{
    tmp <<= 1;
    tmp |= DO;
    CLK = 1;        //在CLK的下降沿读取数据
    _nop_();          //CLK保持低电平一段时间等待数据读出
    CLK = 0;
   }
CS = 1;            //CS置高,DO处于高阻状态,且CLK禁止 (转换完成系统必须马上把CS置高
for(i = 17; i != 0; i--) _nop_(); //转换周期最大17us
return (tmp);


}


/*   AD 读数转十进制函数   */
void Data_Conversion(void)
{
uchar AD_Data;
AD_Data = TLC549_ADC();
Volt = 5.0 / 256 * AD_Data * 1000;   //扩大1000倍以输出小数
}


/*   数码管显示函数   */
void display()
{
uchar i,j,k;
i = Volt / 1000 ;      //个位加小数点
j = Volt / 100 % 10;           //十分位
k = Volt / 10 % 10;             //百分位
//l = Volt % 10;                    //个位
w1=0;
led=table1;
delay(1);
w1=1;
w2=0;
led=table[j];
delay(1);
w2=1;
w3=0;
led=table[k];
delay(1);
w3=1;
w4=0;
led=0xc1;     //V符号,电压单位
delay(1);
w4=1;
}


/*   主函数   */
void main()
{
init();
while(1)
{
   display();
}
}


/*   定时器0服务函数   */
void T0_time() interrupt 1
{
TH0=(65536-45872)/256;   //重装初值
TL0=(65536-45872)%256;
num++;
if(num==10)      //0.5进行一次采样
{
   num=0;      //然后把num清0重新计时
   Data_Conversion();   
}  
}


 


深圳市威智普电子有限公司


销售热线: 0755-83675696 / 83566110-818


传    真: 0755-83675696


QQ:      41540050


地    址: 深圳市福田区滨河大道9003号湖北大厦北座24楼A2


更多产品信息请登录http://www.wellchips.com

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户1720479 2013-11-10 19:46

看不到图,想找个元件呢。
相关推荐阅读
用户592173 2010-10-13 17:03
TL431中文资料
1 TL431的简介 德州仪器公司(TI)生产的TL431是一是一个有良好的热稳定性能的三端可调分流基准源。它的输出电压用两个电阻就可以任意地设置到从Vref(2.5V)到36V范围内的任何值(如图2...
用户592173 2010-10-13 16:56
PTC热敏电阻介绍
PTC热敏电阻: 有下面几个性能! 灯丝预热用PTC热敏电阻器1.应用范围:  用于各种荧光灯电子镇流器、电子节能灯中,不必改动线路,将适当的热敏电阻器直接中跨接在灯管的谐振电容器两端,可以变电子镇流...
用户592173 2010-10-13 16:53
FAN5701/5702:LED驱动器
Fairchild最新发布为手机、游戏设备、MP3播放机和其它采用led背光的小型显示器应用的设计人员带来峰值效率达92%,并能够延长电池寿命的LED驱动器FAN5701和FAN5702。这两款器件为...
用户592173 2010-10-13 16:48
ADP1650:1.5A LED闪光驱动方案
ADI公司的ADP1650是一个小型、高效率的白光闪光驱动器,用于高像素拍照手机,可在光线较暗环境中改进图片和视频的质量。该器件集成了1个可编程的1.5MHz或3.0MHz的同步电感式升压转换器、1个...
用户592173 2010-10-13 16:44
基于AP3706的隔离式AC/DC LED驱动电路
近年来,大功率高亮度LED发展迅速,在发光效率不断提高的同时,其价格不断下降。这使得led照明成为未来绿色照明的希望。但LED驱动电路的设计仍然面临许多困难。由于LED需要低压直流电源驱动,在交流电网...
用户592173 2010-10-13 16:30
基于TLC549的ADC转换的简单电压表设计
TLC549是TI公司的一款串行8位串行ADC模数转换芯片,该芯片有一个模拟输入端口,3态的数据串行输出接口可以方便的和微处理器或外围设备连接。 TLC549仅仅使用输入/输出时钟(I/O CLOCK...
EE直播间
更多
我要评论
1
11
关闭 站长推荐上一条 /3 下一条