谁能给我说说TLC1543怎么用啊,具体电路和单片机该怎么连?

谁能给我说说TLC1543怎么用啊,具体电路和单片机该怎么连?,第1张

这个芯片的功能就不用我介绍了吧,AD芯片都一样。

主要是程序的初始化,和AD采样时序的程序编写,看的懂时序就会用这个芯片了。

//TLC1543 A/D用转换用#define CLOCK P1_3#define D_IN P1_4#define D_OUT P1_5#define _CS P1_6uint read1543(uchar port) //从TLC1543读取采样值,形参port是采样的通道号{uint data aduint data iuchar data al=0,ah=0CLOCK=0_CS=0port<<=4for (i=0i<4i++) //把通道号打入1543{D_IN=(bit)(port&0x80)CLOCK=1CLOCK=0port<<=1}for (i=0i<6i++) //填充6个CLOCK{CLOCK=1CLOCK=0}_CS=1_nop_()_nop_()_CS=0 //等待AD转换for (i=0i<2i++) //取D9,D8{D_OUT=1CLOCK=1ah<<=1if (D_OUT) ah|=0x01CLOCK=0} for (i=0i<8i++) //取D7--D0{D_OUT=1CLOCK=1al<<=1if (D_OUT) al|=0x01CLOCK=0} _CS=1ad=(uint)ahad<<=8ad|=al //得到AD值return (ad)}

因为每次读出来只读出1个字节,

分别为高地址的ah,低地址的al

现在要把这两个值放到一个2个字节的变量中去。

ad=(uint)ah // ad高8位清0,低8位为ah的值。

ad<<=8// ad向左移8位,这时ad高8位的值和ah一样,低8位的值为0

ad|=al// 按位或,因为al不够16位,所以ad高8位的值不会变,ad低8位为0,所以按位或上al,以后低8位的值为al的值。

经过上面三条语句,将ah,al,合并到ad中。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11173544.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存