tlc2543 通道_TLC2543的引脚功能与单片机的接口程序设计

67e1498c6892a5ee3dba7b1c43c773d5.gif

TLC2543是11个输入端的12位模数转换器,具有转换快、稳定性好、与微处理器接口简单、价格低等优点,应用前景好。由于它带有串行外设接口(SPI,Seri-al PeripheralInterface),而51系列单片机没有SPI,因此研究它与51单片机的接口就非常有意义。

1、TLC2543的引脚及功能

TLC2543是12位开关电容逐次逼近模数转换器,有多种封装形式,其中DB、DW或N封装的管脚图见图1。引脚的功能简要分类说明如下。

bb99fe69b4f5e801b0adb0ac868097da.png

65d678febc39142aae691594f8a4fe64.png

DATAINPUT:控制字输入端,用于选择转换及输出数据格式。

DATAOUT:A/D转换结果的输出端。

2、TLC2543的使用方法

2.1控制字的格式

控制字为从DA

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是TLC2543ADC模数转换低位先传的程序,使用STM32单片机: ``` c #include "stm32f10x.h" #define TLC2543_CS_LOW() GPIO_ResetBits(GPIOB, GPIO_Pin_12) #define TLC2543_CS_HIGH() GPIO_SetBits(GPIOB, GPIO_Pin_12) #define TLC2543_CLK_LOW() GPIO_ResetBits(GPIOB, GPIO_Pin_13) #define TLC2543_CLK_HIGH() GPIO_SetBits(GPIOB, GPIO_Pin_13) #define TLC2543_DIN_LOW() GPIO_ResetBits(GPIOB, GPIO_Pin_14) #define TLC2543_DIN_HIGH() GPIO_SetBits(GPIOB, GPIO_Pin_14) #define TLC2543_DOUT() GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_15) void TLC2543_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); TLC2543_CS_HIGH(); TLC2543_CLK_LOW(); TLC2543_DIN_LOW(); } uint16_t TLC2543_Read(void) { uint16_t data = 0; TLC2543_CS_LOW(); TLC2543_CLK_LOW(); TLC2543_DIN_HIGH(); for (int i = 0; i < 16; i++) { TLC2543_CLK_HIGH(); data = (data << 1) | (TLC2543_DOUT() & 0x01); TLC2543_CLK_LOW(); } TLC2543_CS_HIGH(); return data; } int main(void) { TLC2543_Init(); while (1) { uint16_t data = TLC2543_Read(); // 处理数据 } } ``` 注释: - TLC2543_CS_LOW():将CS引脚拉低,选中芯片。 - TLC2543_CS_HIGH():将CS引脚拉高,取消选中芯片。 - TLC2543_CLK_LOW():将CLK引脚拉低,准备传输数据。 - TLC2543_CLK_HIGH():将CLK引脚拉高,传输数据。 - TLC2543_DIN_LOW():将DIN引脚拉低,传输低电平。 - TLC2543_DIN_HIGH():将DIN引脚拉高,传输高电平。 - TLC2543_DOUT():读取DOUT引脚的状态,即读取芯片输出的数据。 程序中的TLC2543_Read()函数实现了低位先传的模数转换操作。具体步骤如下: 1. 将CS引脚拉低,选中芯片。 2. 将CLK引脚拉低,准备传输数据。 3. 将DIN引脚拉高,传输起始位。 4. 在每个时钟周期内,将CLK引脚拉高,读取DOUT引脚的状态,并将其保存到数据中。 5. 将CLK引脚拉低,准备下一次传输。 6. 重复第4、第5步,直到传输完成。 7. 将CS引脚拉高,取消选中芯片。 8. 返回数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值