社区
单片机/工控
帖子详情
求助:带串行控制的10位模数转换器TLC1549的汇编语言程序
baichunyu123
2004-09-15 02:43:42
我采用带串行控制的10位模数转换器TLC1549,汇编程序不会写,有伸出援助之手 的吗?本人刚入行,不要见笑。谢谢!
...全文
200
8
打赏
收藏
求助:带串行控制的10位模数转换器TLC1549的汇编语言程序
我采用带串行控制的10位模数转换器TLC1549,汇编程序不会写,有伸出援助之手 的吗?本人刚入行,不要见笑。谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lijinjie
2004-09-25
打赏
举报
回复
汇编啊..我也就不会写了.
lijinjie
2004-09-25
打赏
举报
回复
上面是带软件滤波的...再发一个不带软件滤波.
/*---------------------------------------------------------------
* GetAD() TLC1549数据采集 *
* sbit ADCLK=P2^0; *
* sbit ADOUT=P2^1; *
* sbit ADCS=P2^2; *
-----------------------------------------------------------------*/
void GetAD()
{
uchar i=1,w,PickCount;
uint vol;
Befor_Once_AD();//预先采集一次AD数据
//---------------
if (ComBuf[1]==0)ComBuf[1]=0x01;
PickCount=ComBuf[1];
for(w=1;w<=PickCount;w++)
{
ADCLK=ADOUT=0;
vol=0;
ADCS=0; //开启控制电路,使能DATA OUT和I/O CLOCK
for(i=1;i<=10;i++)
{
//给一个脉冲
ADCLK=1;
vol<<=1;
if(ADOUT)vol|=0x01;
ADCLK=0;
}
ADCS=1;
delay(21);//两次转换间隔大于21us
//---------------
ComBuf[1]=w;//发送第几次采集的序号
Convert_AD_VOL_ValueToChar(vol);//对float转为2位char型,并发送至串行口
P2=0xff;//p2口置初始状态
}
}
lijinjie
2004-09-25
打赏
举报
回复
给出我程序里的关于TL1549的相关代码.
/*---------------------------------------------------------------
* *
* TLC1549数据软件滤波采集 *
* *
-----------------------------------------------------------------*/
void GetAD_With_VOL_Filter()
{
uchar i,w,j,k,PickCount,AD_Hight=0,AD_Low=0;
uint Vol=0,VolArray[10],temp;
float SumVol=0;
Befor_Once_AD();//预先采集一次AD数据
//---------------
//---------------
PickCount=11;
for(w=0;w<=PickCount;w++)
{
ADCLK=ADOUT=0;
Vol=0;
ADCS=0; //开启控制电路,使能DATA OUT和I/O CLOCK
for(i=1;i<=10;i++)
{
//给一个脉冲
ADCLK=1;
Vol<<=1;
if(ADOUT)Vol|=0x01;
ADCLK=0;
}
ADCS=1;
delay(21);//两次转换间隔大于21us
VolArray[w]=Vol;//保存采集来的数据
//---------------
P2=0xff;//p2口置初始状态
}
//-------按从小到大排序--------
//选择排序法..
for(i=0;i<=PickCount-1;i++)
{
k=i;
for(j=PickCount+1;j<i;j++)
{
if(VolArray[j]>VolArray[k])k=j;
if(k!=i)
{
temp=VolArray[k];
VolArray[k]=VolArray[i];
VolArray[i]=temp;
}
}
}
//----------累加计算平静均值------------
//乎略最小和最大值
for(i=1;i<=PickCount-1;i++)
{
SumVol=SumVol+VolArray[i];//累加结果
}
SumVol=SumVol/(PickCount-1)*0.0048;//电压值=平均值*介数
/*------------------------------
0时为正常采集,1为CD4051循环采集
因为CD4051通道存在电压消耗,
所以和正常的直接采集的校准值不一样
-------------------------------*/
/*电压校准比*/
if(CD4051_Vol_Conver_Flag)
SumVol*=AD_Loop_PickVol_PER;//采用CD4051时的电压校准值
else
SumVol*=AD_VOL_PER;//直接输入时的电压校准值
//----------------
temp=SumVol*100;//保留2位小位
AD_Hight=temp /100;//取个位数
AD_Low=temp-AD_Hight*100;//取2位小数
//ComBuf[1]=w;//发送第几次采集的序号
ComBuf[2]=AD_Hight;
ComBuf[3]=AD_Low;
SendByteArray();//发送数据
}
baichunyu123
2004-09-20
打赏
举报
回复
up
baichunyu123
2004-09-16
打赏
举报
回复
up
lijinjie
2004-09-16
打赏
举报
回复
呵呵..如果是C的话..我倒有...ASM没写过.
HOHO..要不我的C反汇编给你啊.^^
baichunyu123
2004-09-16
打赏
举报
回复
up
menggirl
2004-09-15
打赏
举报
回复
我也不会汇编啊
不好意思,有情顶
带
串行
控制
的
10
位
模数转换器
TLC1549
在8051系统中的应用
带
串行
控制
的
10
位
模数转换器
TLC1549
在8051系统中的应用
8
位
串行
模数转换器
TLC548、TLC549的应用
TLC548,TLC549是美国德州仪器公司生产的8
位
串行
A/D转换器芯片,可与通用微处理器、
控制
器通过CLK、CS、DATA OUT三条口线进行
串行
接口。
电源技术中的
带
串行
控制
的
10
位
模数转换器
TLC1549
在8051系统中的应用
TLC1549
是美国德州仪器公司生产的
10
位
模数转换器
。它采用CMOS工艺,具有内在的采样和保持,采用差分基准电压高阻输入,抗干扰,可按比例量程校准转换范围,总不可调整误差达到±1LSB Max(4.8mV)等特点。 1.2...
带
串行
控制
和11路输入
模数转换器
TLC2543
TLC2543是德州仪器公司生产的12
位
开关电容型逐次逼近
模数转换器
,它具有三个
控制
输入端,采用简单的3线SPI
串行
接口可方便地与微机进行连接,是12
位
数据采集系统的最佳选择器件之一。本文介绍了该芯片的功能、时序,并给...
10
bit 11通道
模数转换器
TLC1543原理图、demo
程序
、TLC1543 数据手册-电路方案
该AD转换芯片采用开关电容逐次逼近式
模数转换器
TLC1543 精度:
10
Bit 模拟输入通道:11通道(AIN0 ~ AIN
10
) 采样率(SPS):38K
串行
通信接口 具有基准电压选择引脚(REF+ 和 REF-),可根据用户的需要输入合适的参考电压 ...
单片机/工控
27,374
社区成员
28,770
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章