打印

关于tlc1549测电压的求助,读数错误,芯片发热

[复制链接]
1912|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
21an|  楼主 | 2012-4-3 16:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
tlc1549测电压,程序如下
#include<reg52.h>
#define uchar unsigned char
#define uint  unsigned int
sbit adclk=P0^1; //时钟线
sbit adcs=P0^3; //CS
sbit addata=P0^2; //数据线
sbit lcdrs =P0^7;
sbit lcdrw =P0^6;
sbit lcden =P0^5;
sbit lcdpsb=P0^4;
uchar table[]="0123456789";
void delay (uint z)   //延时函数
{
uint x,y;
for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}
write_com(uchar com)
{
uchar temp=0;
lcdrs=0;
lcdrw=1;
/*do//读是否忙碌
{
  lcden=1;
  delay(5);
  temp=P2;
  lcden=0;
}
while(temp&0x80);*/
lcdrw=0;
P2=com;
lcden=1;
delay(5);
lcden=0;
}
void lcdinit()
{
lcdrs=1;
write_com(0x30);
delay(5);
write_com(0x02);
delay(5);
write_com(0x0c);
delay(5);
write_com(0x01);
delay(5);
write_com(0x06);
}
write_date(uchar date)
{
uchar temp=0;
lcdrs=0;
lcdrw=1;
do
{
  lcden=1;
  delay(5);
  temp=P2;
  lcden=0;
}
while(temp&0x80);
lcdrs=1;
lcdrw=0;
P2=date;
lcden=1;
delay(5);
lcden=0;
}
uint ad_read(void)
{
uchar i;
uint adtemp;
adcs=1; //禁止I/O CLOCK
adcs=0; //开启控制电路,使能DATA OUT和I/O CLOCK
adtemp=0; //清转换变量
for(i=0;i<10;i++) //采集10次 ,即10bit
{
  adclk=0;
  adtemp*=2;
  
  if(addata)
  adtemp++;
  
  adclk=1;
}
adcs=1;
return(adtemp);
}
  void display_1549()
{
long int temp;
temp=ad_read();
    temp=(temp*5000)/1023;
write_com(0x80);
write_date(table[temp/1000]);
write_date('.');
write_date(table[temp%1000/100]);
write_date(table[temp%100/10]);
write_date(table[temp%10]);
write_date('V');

delay (500);  
}
void main()
{  
  int i=0;

  lcdpsb=1;
  lcdinit();
  while(1)
  {
    display_1549();
   
  }

  
}
当被测电压1v左右误差很小,大于1.5v时就有明显误差,2v时读数误差极大,3v以上时全部显示为4,8~5v之间。同时发现芯片发热,换过芯片后依旧发热。电路焊接中,只是按上底座焊接,没有加任何电容稳定取样电压。经测量引脚间未短路,断路。纠结好几天了,求高手指点

相关帖子

沙发
tyw| | 2012-4-3 16:41 | 只看该作者
本帖最后由 tyw 于 2012-4-3 16:50 编辑

http://ishare.iask.sina.com.cn/search.php?key=tlc1549&from=index&format

10位串行A/D转换器TLC1549及其应用.pdf (103.63 KB)
TLC1549中文资料.pdf (840.55 KB)

使用特权

评论回复
板凳
21an|  楼主 | 2012-4-3 17:15 | 只看该作者
这个我看过了,可是,问题开始没解决,我现在只能怀疑我的两个芯片是全烧了。不然我是真找不到答案了

使用特权

评论回复
地板
tyw| | 2012-4-3 18:13 | 只看该作者
输入不要超过芯片供电电压,不会发热烧掉的.

使用特权

评论回复
5
chunyang| | 2012-4-3 20:59 | 只看该作者
芯片发热说明电路不过或应用条件错误,楼上所言输入电压高于电源电压就是一种应用条件错误。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

55

帖子

1

粉丝