📄 tlc2543.c
字号:
#include <reg52.h>
//#include <absacc.h>
#include "delay.h"
#include "tlc2543.h"
/////////////////////////////////////////////////
//A/D转换子程序
unsigned int read2543(unsigned char ch_no,unsigned char bit_n)//ch_no---通道选择,bit_n---输出位数
{
data unsigned char i,data_in,adl,adh;
unsigned int ad=0;
data_in = ch_no;
D_OUT = 1; /* DATA OUT */
delay(50); /* while(!P1_0){}; P1_0---EOC ***/
CLOCK = 0; /* I/O CLOCK */
P2 = P2&0x0f|0xa0;
delay(20);
adl = 0;
adh = 0;
for(i=0;i<4;i++)
{
adh = ( adh<<1 );
D_OUT = 1;
if( D_OUT )
adh++; /* out */
if( (data_in&0x08) != 0 )
D_IN = 1;
else D_IN = 0;
data_in = (data_in << 1);
CLOCK = 1; /* I/O CLOCK */
CLOCK = 1; /* I/O CLOCK */
CLOCK = 1; /* I/O CLOCK */
CLOCK = 0; /* I/O CLOCK */
CLOCK = 0; /* I/O CLOCK */
CLOCK = 0; /* I/O CLOCK */
}
D_IN = 0;
for(i=0;i<bit_n-4;i++)
{
adl = ( adl<<1 );
D_OUT = 1;
if( D_OUT )
adl++;
CLOCK = 1; /* I/O CLOCK */
CLOCK = 1; /* I/O CLOCK */
CLOCK = 1; /* I/O CLOCK */
CLOCK = 0; /* I/O CLOCK */
CLOCK = 0; /* I/O CLOCK */
CLOCK = 0; /* I/O CLOCK */
}
P2 = P2&0x0f|0xf0;
ad = 256*adh + adl;
return(ad);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -