cpubbs 发表于 2005-10-15 01:55:28

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

<P>转贴自C51BBS</P>

<P>/*————————————————————
〖说明〗TI TLC1543 10位AD驱动程序,51晶振是11.0592MHz的。
〖文件〗TLC1543.c */</P>
<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>

bianbowei 发表于 2006-8-22 21:02:54

<p>好像是龙哥的文章</p>
页: [1]
查看完整版本: [转帖]TI TLC1543 10位AD驱动程序