0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于ADuC834微处理转换器芯片实现二次仪表系统的应用方案

电子设计 来源:国外电子元器件 作者:刘涛,张春业 2021-01-29 09:54 次阅读

ADuC834是一种真正意义上的完整的数据采集系统芯片。这种崭新的微处理转换器和先进的混合信号处理工艺显著提高了数据采集系统的性能,并大幅度减少了应用系统的开发时间和成本。ADuC834是美国模拟器件(AD)公司最新投入市场的一款微处理转换器产品,它集成了双路Σ-Δ型ADC温度传感器、增益可程控放大器(PGA)、8位51MCU、62k的可编程程序EEPROM、4k的数据Flash Memory、2304字节的片内RAM、12位DAC以及定器、I2C兼容的SPI和标准的串行I/O等。由此可见,ADuC834本身就是一个内嵌MCU的高性能数据采集系统,利用它可以极方便地构成各种二次仪表系统。

1 ADuC834芯片介绍

ADuC834内部集成了两路独立的Σ-ΔADC,其中主通道ADC为24位,辅助通道ADC的16位。两个独立的ADC通道由于使用了数字滤波,因而可以实现宽动范围的低频信号测量,非常适用于称重仪、张力应变仪、压力转换器和温度测量等方面的应用。其中主通道的AD输入范围在20mV~2.56V之间分为8档,使用时可任选一档。由于使用了Σ-Δ转换技术,因此可以实现高达24位无丢失码性能,且辅助通道还可以作为温度传感器使用。

ADuC834利用32kHz晶振来驱动片内锁相环(PLL)以产生内部所需要的工作频率,它的微控制器内核与8051兼容。片内外围设备包括一个与SPI和I2C兼容的串行端口、多路数字输入/输出端口、看门狗定时器电源监视器以及时间间隔计数器。同时片内还提供了62kB闪速/电擦除程序存储器以及2304字节的片内RAM。

ADuC834本身能提供程序串行下载,所以可以直接下载调试程序,非常方便于程序的开发和设计。因此,利用ADuC834可以非常简单地制作各种复杂的二次仪表。

2 二次仪表的硬件电路设计

本系统设计主要针对两路传器进行采样,然后进行数据处理和相应的数据显示,同时要求有复杂菜单设计。由于数据处理过程中要用到浮点乘除运算,同时要求有菜单设置,因此,利用ADuC834的62k程序存储空间可以进行各种复杂的运算和处理,而不需要外扩程序存储器。图1是其硬件设计原理图。

基于ADuC834微处理转换器芯片实现二次仪表系统的应用方案

本系统利用ADuC834的P3口构成3×4键盘,并通过P0、P2口和7HC138译码器来构成10个数码管动态显示屏,然后利用ADuC834的P1.0、P1.1和74HC164构成8个发光LED的显示,同时利用ADuC834的串口SPI功能进行软件调试。

2.1 数码管的动态显示

利用ADuC834的P2口的P2.0~P2.4,并通过74HC138译码可以得到8个地址选通信号,而P2.5和P2.6则用于构成剩下的2个选通信号,同时把P0口作为显示的数据接口

用程序可选择ADuC834定时器T2的自装入方式,并可将其定时为2ms,同时可采用动态方式刷新数码管的显示缓冲区,以实现动态显示。

2.2 键盘控制电路

由ADuC834的P3口的P3.0~P3.6可以构成键盘控制电路,其原理图如图2所示。

由图2可以看出,该键盘有3行4列共12个键,使用7个I/O作为控制线,其中采用P3.0、P3.1、P3.2作为行扫描线,采用P3.3~P3.6作为列加复线来构成矩阵键盘。运行中,当有键按下时,程序并不立即进行按键处理程序,只有在按键按下又松开的时刻才进入程序处理,因为这样可防止按键的连击和抖动。

2.3 发光LED设计

由于本系统要求有8种状态显示,故需要使用8个发光LED来表示当前程序运行的不同状态。而这可利用P1.0、P1.1和74HC164控制8个发光数码管来进行显示。

3 二次仪表的软件程序设计

3.1 数据采集程序

进行AD采集时,可选择ADuC834的内部参考电压(注意此时内部参考电压是Vref=1.25V,所以ADC通道输入范围都缩小一半),并通过写寄存器AD0CON的RN2、RN1和RN0来选择不同的输入范围道替换,以实现对两个通道输入电压的AD采样。其初始采集程序如下:

EADC=0; /*禁止ADC中断*/

ADCMODE=0x20; /*启动主ADC*/

tempfloat=flash_read(2); /*读取输入通道选择配置*/

temp=(uchar)(tempfloat-10001); /*采用24位的ADC,使用内部参考电压,选择AIN1、AIN2输入,选择双极性编码,

ANGE=+-TEMP*/

EADC=1; /*允许ADC采样中断*/

ADCMODE=0x23; /*进行连续采样*/

下面是ADC中断服务子程序,其中ADC的中断号为6

void adc_int(void) interrupt 6

{

EADC=0;

RDY0=0;

……

EADC=1;

}

3.2 用户闪速/电擦除数据寄存器的编程

ADuC834的用户闪速/电擦除数据存储器的容量为4kB,利用这些EEPROM可以进行系统配置信息的存储。具体程序如下:

sfr EDARL=“0xe6”;

# define F_READ 0x01 /*读取页*/

# define F_WRITE 0x02 /*写入页*/

# define F_VERIFY 0x04 /*检测页*/

# define F_ERASE 0x05 /*擦除页*/

# define_F_ERASEALL 0x06 /*全部擦除*/

float flash_read(unsigned char f_add) /*从地址f_add读取浮点数据*/

{

float idATA f_data=0;

float idata *ph;

uchar idata *puc;

pf=&f_data;

puc=(uchar idata *)pf;

EDARL=f_add;

ECON=0x01;

*puc=EDATA1;

++puc;

*puc=EDATA2;

++puc;

*puc=EDATA3;

++puc;

*puc=EDATA4;

return f_data;

}

unsigned char flash_write(unsigned char f_add,float f_data)

/*写浮点数据f_data到地址f_add*/

{

float idata *pf;

uchar idata *puc;

uchar idata temp;

pf=&f_data;

puc=(uchar idata *)pf;

EDARL=f-add;

ECON=0x05; /*首先擦除*/

EDARL=f_add;

EDATA1=*(puc++);

EDATA2=*(puc++);

EDATA3=*(puc++);

EDATA4=*(puc);

ECON=0x02; /*写数据*/

ECON=0x04; /*检测数据

temp=ECON;

if(temp= =0)return TRUE;

else return FLASE;

}

4 结论

本文所描述的二次仪表的软硬件设计具有采集速度快、精度高、系统体积小的特点,特别适用于需要进行复杂运算且要求采集精度较高、体积较小的系统中。在实际的设计开发中,使用ADuC834可在很大程序上缩短开发时间并降低成本。另外,笔者设计的这款二次仪表在实际应用中也取得了很好的使用效果。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    446

    文章

    47655

    浏览量

    408561
  • 放大器
    +关注

    关注

    142

    文章

    12398

    浏览量

    209844
  • 转换器
    +关注

    关注

    27

    文章

    8162

    浏览量

    141511
收藏 人收藏

    评论

    相关推荐

    ADuc834在Keil软件里面将仿真方式配置成“Keil Monitor-51”,一直无法与处理器建立连接的原因是什么?

    请问,ADuc834这款处理器,资料上说明是可以利用UART进行硬件调试的。 但是我在Keil软件里面将仿真方式配置成“Keil Monitor-51”,一直无法与处理器建立连接。 用贵公司自带的烧写软件可以烧写成功,证明串口是
    发表于 01-11 08:31

    aduc834可以下载程序,但是程序都无法运行是什么原因造成的,如何解决?

    我最近在用aduc834进行设计,通过串口进行串行下载程序时遇到了问题。 晶体为32,768khz,EA上拉,不论psen状态如何(下拉或者悬空),power on 或者reset之后,pc都会
    发表于 01-12 07:21

    求 怎样用电脑直接给ADUC834在线写程序

    怎样用电脑直接给ADUC834在线写程序,有知道的高手给我发一个到我QQ邮箱谢谢 QQ424037132
    发表于 07-29 10:24

    aduc834下载程序io port没有动作无法运行

    我最近在用aduc834进行设计,通过串口进行串行下载程序时遇到了问题。晶体为32,768khz,EA上拉,不论psen状态如何(下拉或者悬空),power on 或者reset之后,pc都会
    发表于 08-30 11:10

    请问为ADUC834提供的C library是否有文档说明?

    我从贵公司网站上下载了aduc834的C library,其中包含了.lib文件和.h文件,但是并不足以提供具体的函数参数信息,示例程序也不足以完全解释函数的参数分别是什么。希望确认一下为ADUC834提供的C library是否有文档说明,来解释每一个程序的参数分别是什
    发表于 11-08 09:23

    ADuC834的AD转换问题

    最近在弄ADuC834这款芯片的AD转换,但感觉ADC一直没有工作,有没有用过834的大佬交流一下
    发表于 04-24 21:01

    用于ADuC834转换器MCU的ADuC8xx评估套件EVAL-ADuC834QSZ

    EVAL-ADuC834QSZ,用于ADuC834转换器MCU的ADuC8xx评估套件。 ADuC
    发表于 06-11 09:43

    如何利用ADuC834设计二次仪表系统

      ADuC834是一种真正意义上的完整的数据采集系统芯片。这种崭新的处理转换器和先进的混合信
    发表于 09-24 07:48

    利用ADUC834构成二次仪表系统

    ADuC834是一种真正意义上的完整的数据采集系统芯片这种崭新的微处理转换器和先进的混合信号处理
    发表于 04-25 17:52 35次下载

    ADUC834,pdf datasheet (ADCs wi

    The ADuC834 is a complete smart transducer front end,integrating two high resolution - ADCs
    发表于 09-04 10:05 25次下载

    基于ADuC834单片机的瓦斯气体检测仪的设计

    基于ADuC834单片机的瓦斯气体检测仪的设计
    发表于 12-17 11:16 13次下载

    ADuC834单片机®双16/24位ADC硅勘误表

    The ADuC834 offers an extended (11-bit) stack pointer that allows the stack to extend
    发表于 10-20 12:58 2次下载
    <b class='flag-5'>ADuC834</b>单片机®双16/24位ADC硅勘误表

    ADUC834 精密模拟微控制器:1MIPS 8052 MCU + 62kB闪存 + 16/24位ADC + 12位DAC

    电子发烧友网为你提供ADI(ADI)ADUC834相关产品参数、数据手册,更有ADUC834的引脚图、接线图、封装手册、中文资料、英文资料,ADUC834真值表,ADUC834管脚等资
    发表于 02-22 12:04
    <b class='flag-5'>ADUC834</b> 精密模拟微控制器:1MIPS 8052 MCU + 62kB闪存 + 16/24位ADC + 12位DAC

    ADuC834:硅勘误表

    ADuC834:硅勘误表
    发表于 04-14 18:30 13次下载
    <b class='flag-5'>ADuC834</b>:硅勘误表

    UC-008:使用ADuC834 C库

    UC-008:使用ADuC834 C库
    发表于 04-29 09:49 8次下载
    UC-008:使用<b class='flag-5'>ADuC834</b> C库