完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
ADuC834是一种真正意义上的完整的数据采集系统芯片。这种崭新的微处理转换器和先进的混合信号处理工艺显著提高了数据采集系统的性能,并大幅 度减少了应用系统的开发时间和成本。
|
|
相关推荐
2个回答
|
|
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的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可在很大程序上缩短开发时间并降低成本。另外,笔者设计的这款二次仪表在实际应用中也取得了很好的使用效果。 |
|
|
|
只有小组成员才能发言,加入小组>>
935 浏览 0 评论
1237 浏览 1 评论
2600 浏览 5 评论
2937 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2803 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1344浏览 3评论
247浏览 2评论
521浏览 2评论
429浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
505浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-24 08:47 , Processed in 0.874339 second(s), Total 47, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191