当前位置:首页 >> 单片机入门 >> SPI串行扩展应用实例

SPI串行扩展应用实例

作者:admin 来源:不详 发布时间:2018-05-08 15:16:04   浏览:2

例 将AT89C51片内RAM30H、31H单元中的16位数据通过SPI总线接口传送到数模转换器TLC 5615。

分析TLC5615是3线串行总线接口10位电压输出数/模转换器,它既可与单片机的 SPI总线接口相连接,又可与单片机的Microware总线(另外一种三线制总线)接口相连接。TLC5615内部结构如图1所示。

TLC5615通过固定增益为2的运放缓冲电阻网络,把10位数字数据转换为模拟电压。在TLC5615芯片上电时,内部电路把D/A寄存器复位为0。其输出具有与基准输入相同的极性,表达式为:Vo=2×REF×CODE/1024

图1 TLC5615内部结构

其中,CODE是通过串行总线接口输入的待转换的数据;REF是基准电压。

TLC5615最大的串行时钟速率不超过14MHz,10位DAC的建立时间为12.5μs,通常更新速率限制至80kHz以内。TLC5615的16位移位寄存器在SCLK的控制下从DIN引脚输入数据,高位在前,低位在后。16位移位寄存器中间的10位数据在上升沿的作用下输入10位的D/A 寄存器供给D/A转换。

AT89C51与TLC5615通过串行总线接口传送8位数据如图2所示。因AT89C51没有SPI接口,可用软件的办法来模拟SPI的总线操作。P1.1模拟SPI的数据输出端(MOSI),P1.2模拟SPI的SCK输出端,P1.3模拟SPI的从机选择端(SS);TLC5615是数/模转换器,不会向AT89C51发送数据,故不需要模拟SPI的数据输入端(MISO)。

AT89C51将片内RAM30H、3lH单元中的16位数据传送到TLC5615的参考程序如下:

编辑:admin  最后修改时间:2018-05-08