cpubbs论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 1890|回复: 1

[转帖]TI TLC1543 10位AD驱动程序

[复制链接]
发表于 2005-10-15 01:55:28 | 显示全部楼层 |阅读模式
<>转贴自C51BBS</P>

<>/*————————————————————
〖说明〗TI TLC1543 10位AD驱动程序,51晶振是11.0592MHz的。
〖文件〗TLC1543.c */</P>
<>/*------------------------------------------------------------------------------
--
调用方式:uint read1543(uchar port)
函数说明:read1543()返回10位AD芯片TLC1543的port通道采样值。
--------------------------------------------------------------------------------
-*/
#define CLOCK P1_3
#define D_IN P1_4
#define D_OUT P1_5
#define _CS P1_7

uint read1543(uchar port) //从TLC1543读取采样值,形参port是采样的通道号
{
uint data ad;uint data i;
uchar data al=0,ah=0;

CLOCK=0;
_CS=0;
port&lt;&lt;=4;
for (i=0;i&lt;4;i++) //把通道号打入1543
{
D_IN=(bit)(port&amp;0x80);CLOCK=1;CLOCK=0;
port&lt;&lt;=1;
}

for (i=0;i&lt;6;i++) //填充6个CLOCK
{
CLOCK=1;CLOCK=0;
}

_CS=1;
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();
_CS=0; //等待AD转换

_nop_();_nop_();_nop_();

for (i=0;i&lt;2;i++) //取D9,D8
{
D_OUT=1;
CLOCK=1;
ah&lt;&lt;=1;
if (D_OUT) ah|=0x01;
CLOCK=0;
}

for (i=0;i&lt;8;i++) //取D7--D0
{
D_OUT=1;
CLOCK=1;
al&lt;&lt;=1;
if (D_OUT) al|=0x01;
CLOCK=0;
}

_CS=1;
ad=(uint)ah;ad&lt;&lt;=8;ad|=(uint)al; //得到AD值
return (ad);
} </P>
发表于 2006-8-22 21:02:54 | 显示全部楼层
<p>好像是龙哥的文章</p>
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2025-5-4 23:51 , Processed in 1.128227 second(s), 9 queries , Gzip On, File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表