我要用TLC0834做A/D转换....<br />TLC0834是4通道的,如果我只用到他的1个通道就够了,其他3通道应该怎么处理啊?是不是架空在那里就好了?<br /><br />下面是我自己改的程序,在使用的时候,result的值好象没出来,程序编译通过的,不知道那里出的问题,大家帮忙研究下啊<br /><br />#include <reg52.h><br />#include <intrins.h><br />#define uchar unsigned char<br />#define uint unsigned int<br />#define ulong unsigned long int<br />#define FLASE 0<br />#define TRUE 1<br />//=========引脚定义==============<br />sbit CS_AD =P0^2;<br />sbit CLK_AD =P0^4;<br />sbit DAT_AD =P0^3;<br />/********************************************************************<br />* 名称: uchar ADConver();<br />* 功能: 获取模数转换值<br />* 调用:<br />* 输入: n,表示通道值,n=(1-4)<br />* 说明:<br />* 返回值: adresult<br />***********************************************************************/<br />//=======AD数据开始转换=========<br />uchar ADConver()<br />{<br /> uchar i,adresult;//adresult2;<br /> adresult=0;<br /> CS_AD=1;<br /> CLK_AD=0;<br /> CS_AD=0;<br /> //send start bit 1<br /> DAT_AD=1;<br /> CLK_AD=1;<br /> CLK_AD=0;<br /> //send SGL bit<br /> DAT_AD=1;<br /> CLK_AD=1;<br /> CLK_AD=0;<br /> //send ODD bit<br /> DAT_AD=0;<br /> CLK_AD=1;<br /> CLK_AD=0;<br /> //send SELECT bit<br /> DAT_AD=0;<br /> CLK_AD=1;<br /> CLK_AD=0;<br /> <br /> <br /> for(i=0;i<8;i++)<br /> {<br /> adresult=_crol_(adresult,1);//高位向左移<br /> CLK_AD=1;<br /> CLK_AD=0;<br /> DAT_AD=1;<br /> if(DAT_AD==1)<br /> adresult|=0x01;<br /> }<br /> for(i=0;i<8;i++)<br /> {<br /> //adresult2=_cror_(adresult2,1);//高位向右移<br /> //if(DAT_AD==1)<br /> //adresult2|=0x80;<br /> CLK_AD=1;<br /> CLK_AD=0;<br /> //DAT_AD=1;<br /> }<br /> CS_AD=1;<br /> return adresult;<br />} |
|