单片机原理及其应用

时间:2022-08-17 08:15:20

单片机原理及其应用

【摘 要】本文介绍了CIRRUS LOGIC公司生产的16位A/D转换芯片CS5523的主要特性以及和STC89C52RC单片机的接口电路,并设计了A/D转换程序,供大家参考。

【关键词】高精度串行A/D;CS5523;单片机

1.引言

在工业控制过程、医疗器械及仪器仪表等许多应用中,对系统的速度、功耗及成本等性能的要求越来越高。为了满足这些要求,迫使设计工程师进一步求助数字电路、尤其是模数转换器ADC。这些集成化的ADC包括了完整的前端系统,保证了低电压、低功耗方式工作,在更大程度上降低系统成本。下面介绍一种高精度、硬件电路简单、计量精确、抗干扰性好、性能稳定可靠、性价比高的A/D转换芯片CS5523。

2.CS5523简介

CS5523是CIRRUS LOGIC公司生产的16位高精度串行A/D芯片。其内部结构框图如图1所示。

CS5523芯片内集成了一个仪表放大器、一个可编程增益放大器、多路开关、数字滤波器、自校正和系统校正电路。通过简单的串行连接,CS5523可方便地由MCU控制,以实现多通道高精度的A/D转换。主要特性如下:

底输入电流(100pA)和用斩波器稳定的一仪器放大器;

可升级的输入跨距(双极/单级);

宽VREF输入范围(+1伏至+5伏);

4阶Delta-Sigma模/数转换器;

3线制串行接口;

系统校准和自校准;

8个可选择的输出率;

单电源+5V供电;

低功耗;5.5mW;

24脚SSOP和PDIP两种封装。

3.CS5523在MCS-51单片机系统中的应用

3.1 硬件接口

CS5523以串行接口方式与单片机接口。CS5523的SDI、SDO、SCLK、CS引脚分别和STC89C52RC单片机的P10~P13口相连。图2是CS5523与STC89C52RC单片机接口的硬件原理图。

单片机通过P10~P13口来控制CS5523,并读取转换结果。图2中采用32.768KHz外部时钟。CS5523的模拟信号有单端输入和差分输入两种,这里采用单端输入方式。AIN1-、AIN2-、AIN3-、AIN4-分别接地。外部模拟信号的调理和放大电路,以及基准电压电路这里不作为重点,并未给出。

3.2 软件设计

如图2所示,单片机STC89C52RC和CS5523的通信采用采用串行通信方式。STC89C52RC的P10~P13口对CS5523进行控制及数据传输。图3为STC89C52RC操作CS5523的总的时序图,对CS5523的操作软件都是以时序图为基础编写的。这里,只给出了几个基本的读写数据和命令的子程序,仅供参考。CS5523总的控制程序是在这几个子程序基础上实现的,这里不做介绍。

uchar SPI_HostReadByte()

{

uchar idata i,rByte;

rByte = 0;

for(i=0;i

{

SPISCK = 0;

SPISCK = 1;

rByte

rByte |= SPISO;

}

return rByte;

}

void

SPI_HostWriteByte(uchar wByte)

{

uchar idata i;

for(i=0;i

{

if(((wByte

{

SPISI = 1;

}

else

{

SPISI = 0;

}

SPISCK = 0;

SPISCK = 1;

}

}

void Cs5523ReadAdData()

{

uchar i;

SPISCK = 0;

NOP;

if (PartSelect == 1)

{

CS1 = 0;

CS2 = 1;

}

else if (PartSelect == 2)

{

CS1 = 1;

CS2 = 0;

}

else

{

CS1 = 1;

CS2 = 1;

}

PerformConver = 0x98;

SPI_HostWriteByte(PerformConver);

SPISO = 1;

while(SPISO == 1);

PerformConver = 0x00;

SPI_HostWriteByte(PerformConver);

for (i = 0;i < 12 ;i++)

{

ReadBuffer[i]=SPI_HostReadByte();

}

}

void Cs5523WriteData(uchar GeShu)

{

uchar i;

for (i = 0;i < GeShu ;i++)

{

SPI_HostWriteByte(ReadBuffer[i]);

}}

void WriteCommand(uchar Commandcs){

SPI_HostWriteByte(Commandcs);}

4.总结

该芯片以成功应用于油田采油现场数据采集系统。运行一年来,系统稳定。

参考文献:

[1]CIRRUS LOGIC公司CS5523芯片数据手册.

[2]马忠梅等,编著.单片机的C语言应用程序设计[M].北京航空航天大学出版社,2005.

[3]戴佳,编著.51单片机C语言应用程序设计实力精讲[M].电子工业出版社,2006.

作者简介:申佳,男,现就读于西安外事学院工学院电子信息工程专业。

上一篇:网络时代高职院校班主任工作新探 下一篇:高校图书馆信息化建设初探