TLC1549是美国德州仪器公司生产的10位模数转换器。它采用CMOS工艺,具有内在的采样和保持,采用差分基准电压高阻输入,抗干扰,可按比例量程校准转换范围,总不可调整误差达到±1LSB Max(4.8mV)等特点。 1.2 TLC1549的工作温度范围内(自然通风)极限参数如下: 电源电压范围: -0.5~6.5V 输入电压范围: -0.3~VCC+0.3V 输出电压范围: -0.3~VCC+0.3V 正基准电压: VCC+0.1V 负基准电压: -0.1V 峰值输入电流(任何输入端): ±20mA 峰值总输入电流(所有输入端): ±30mA 工作温度范围(自然通风): TLC1549C 0~70℃ TLC1549I -40~80℃ TLC1549M -65~125℃ 二、工作原理 在芯片选择(CS)无效情况下,I/O CLOCK 最初被禁止且DATA OUT 处于高阻状态。当串行接口把CS拉至有效时,转换时序开始允许I/O CLOCK 工作并使DATA OUT 脱离高阻状态。串行接口然后把I/O CLOCK 序列提供给I/O CLOCK 并从DATA OUT 接收前次转换结果。I/O CLOCK 从主机串行接口接收长度在10和16个时钟之间的输入序列。开始10个I/O 时钟提供采样模拟输入的控制时序。 在CS的下降沿,前次转换的MSB出现在DATA OUT端。10位数据通过DATA OUT 被发送到主机串行接口。为了开始转换,最少需要10个时钟脉冲。如果I/O CLOCK 传送大于10个时钟长度,那么在的10个时钟的下降沿,内部逻辑把DATA OUT 拉至低电平以确保其余位的值为零。在正常进行的转换周期内,规定时间内CS端高电平至低电平的跳变可终止该周期,器件返回初始状态(输出数据寄存器的内容保持为前次转换结果)。由于可能破坏输出数据,所以在接近转换完成时要小心防止CS被拉至低电平。
在网上查了一下关于1549的程序,居然没有,只好自己编一个。
#include"reg52.h"
#include"1602.c"
#include " intrins.h "
sbit AD_CS = P1^0;
sbit AD_DAT = P1^1;
sbit AD_CLK = P1^2;
void DelayMS(unsigned int Num);
main()
{ unsigned char i,j,q,p,k;
bdata unsigned int AD_Temp,Temp,TempA;
LCD_init();
CLEARSCREEN;
//CLEARSCREEN;
for(;;)//111111
{
TempA="0";
Temp="0";
AD_CS = 1;
AD_CLK = 0;
AD_DAT = 1;
AD_CS = 0;
DelayMS(500);
for(i=0;i<2;i++)
{
AD_CLK =0;
_nop_();
Temp =Temp<<1;
if(AD_DAT)
{ Temp+=0x01;}
AD_CLK=1;
_nop_();
}
for(i=0;i<8;i++)
{
AD_CLK =0;
_nop_();
TempA =TempA<<1;
if(AD_DAT)
{ TempA+=0x01; }
AD_CLK =1;
_nop_();
}
AD_CLK =0;
AD_CS =0;
AD_Temp= Temp*256+TempA;
j="AD"_Temp/1000;
q=(AD_Temp%1000)/100;
p="AD"_Temp%1000%100/10;
k="AD"_Temp%1000%100%10;
LCD_write_string(0x00,LINE1," TCL1549 ");
LCD_write_char(0x01,LINE2,j|0x30);
LCD_write_char(0x02,LINE2,q|0x30);
LCD_write_char(0x03,LINE2,p|0x30);
LCD_write_char(0x04,LINE2,k|0x30);
DelayMS(50000);
}//111111
}
void DelayMS(unsigned int T)
{
for(;T>0;T--);
}
文章评论(0条评论)
登录后参与讨论