微控制器AduC812通用数据端口介绍及P1口的应用
1 AduC812的通用数据端口
AduC812是一种新型的高度集成的高精度12位数据采集系统。在其片内,不仅包含了可重新编程的非易失性闪速/电擦除程序存储器的高性能8位(与8051兼容)MCU,还包含了高性能的自校准多通道(8个输入通道)ADC,两个12位DAC。AduC812微控制器内核与8051指令集兼容,具有9个中断源(2个优先级)。片内还集成了8K字节的闪速/电擦除程序存储器、640字节的闪速/电擦除数据存储器以及256字节RAM。
AduC812共有52个管脚,使用4个通用数据端口P0~P3与外部器件进行数据交换。每一个I/O口都有自己不同的驱动执行电路。除端口1之外都是8位双向端口。端口1的操作是AduC812特有的,表1说明了P1口可复用的管脚功能。
表1 P1口管脚说明
![](../img/eep/emb/emb-209660kwtrbxq5gh.jpg)
所有端口均包含位锁存器和输入缓冲器,I/D双向端口还包含了输出驱动器。由于P1口没有输出驱动器,所以P1口只能是输入端口,只能被配置为数字输入或模拟输入,不能用于输出,如图1所示。AduC812的P1口通常用于模拟输入;当不用于模拟输入时,可将0写至端口值,这样就被设置为数字输入方式。
![](../img/eep/emb/emb-20967vcrl1h11zwu.jpg)
2 P1口的各种功能与应用
P1口的主要功能是ADC的模拟输入,另外还可用于一些控制输入、定时器2和计数器2的数字输入以及SPI从属选择输入等。
2.1 模/数转换输入
AduC812中的ADC转换块包含了8通道、12位、单电源A/D转换器。此模块为用户提供了多通道多路转换器、跟踪/保持、片内基准、校准特性。此模块内的所有部件都能方便地通过3个寄存器SFR接口来设置。
A/D转换器由基于电容DAC的常规逐次逼近转换器组成。转换器接收的模拟输入范围为0至+VREF。片内提供高精度、低漂移并经工厂校准的2.5V基准电压。内部基准可经外部VREF引脚过驱动。外部基准在2.3V至AVDD的范围内。
AduC812装有工厂编程的校准系数,它在上电时自动下载到ADC,以确保最佳的ADC性能。ADC核包括内部失调和增益校准寄存器,所提供的软件校准子程序可允许用户在需要时重写工厂编程的校准系数,以便使用户目标系统中端点误差的影响为最小。
来自片内温度传感器的电压输出正比于绝对温度,它也可向前端ADC多路转换器(实际上是第9个ADC通道输入)传送。
2.1.1 ADC转移函数
ADC的模拟输入范围是0V至VREF。在此范围内,设计的代码跳变发生在连续的整数LSB值的中间(即LSB,LSB,LSB,……FS-LSB)。当VREF=2.5V时,输出码是直接的二进制数,1LSB=FS/4096或2.5V/4096=0.61mV。在0至VREF范围内理想的输入/输出转移特性如图2所示。
![](../img/eep/emb/emb-20968cnj0rbmacil.jpg)
2.1.2 SFR至ADC块的接口
AduC812中ADC的工作完全由3个SFR控制,它们分别是ADCCON1、ADCCON2和ADCCON3。
2.1.2.1 ADCCON1--ADC控制SFR#1
ADCCON1寄存器控制转换和采集时间、硬件转换模式以及掉电模式。详述如下:
SFR地址: FFH
SFR上电缺省值: 20H
位可寻址: 无
ADCCON1 SFR位的说明如表2所示。
MD1 MD0 CK1 CK0 AQ1 AQ0 T2C EXC
2.1.2.2 ADCCON2--ADC控制SFR#2
ADCCON2寄存器控制ADC通道选择和转换模式。详述如下:
SFR地址: D8H
SFR上电缺省值: 00H
位可寻址: 是
ADCCON2 SFR位说明如表3所示。
ADCI DMA CCONV SCONV CS3 CS2 CS1 CS0
2.1.2.3 ADCCON3--ADC控制SFR#3
ADCCON3寄存器中只有一位有效,它给出ADC忙状态的指示。详述如下:
SFR地址: F5H
SFR上电缺省值: 00H
位可寻址: 无
ADCCON3 SFR位的说明如表4所示。
BUSY RSVD RSVD RSVD RSVD RSVD RSVD RSVD
2.1.3 ADC工作模式
通过设置ADCCON1和ADCCON2两个寄存器,可使ADC处于三种不同的工作模式:一种是单步转换模式,一种是连续转换模式,还有一种是DMA工作模式。用软件或通过把转换信号加至外部引脚23(CONVST)可以启动单步或连续转换模式,同时还可设置定时器2的溢出位,用作ADC转换起始触发脉冲输入。
DMA工作模式与其他两种工作模式有显著不同,若配置ADC工作在DMA工作模式,则ADC块将进行连续转换并把采样值捕获到外部RAM空间,而不需要来自MCU核的任何干预,这种自动捕获功能可以扩展到16M字节的外部数据存储器空间。值得注意的是,若工作于DMA工作模式,将要求用户在中断服务子程序中用5us的时间完成中断服务、读ADC结果并为进一步的后续处理存储结果,否则下一次ADC采样可能会丢失。这一限制条件是由于AduC812已把片内ADC设计成能运行在每5us采样一次的最高速度(即200kHz采样速率)。因此,在要求其他中断速率的应用中,不能使用ADC DMA工作模式。
现以我们研制的家用心电图机为例,说明ADC的使用方法与功能实现。在该心电图机中,ADC0用于心电信号的模拟输入,将2.5V参考电压接至VREF,由于人体心电信号在0.5mV~4
P1 应用 介绍 数据 AduC812 通用 控制器 相关文章:
- 基于AVR单片机的ISP1362OTG设计(09-06)
- ARM存储器之:协处理器CP15(08-30)
- 红旗Linux 6.0 SP1桌面安装图解(06-06)
- FPGA最小系统之:硬件系统的设计技巧(06-05)
- 基于VHDL语言的超长时间定时器设计及实现(06-05)
- 高速PCI信号采集卡设计与实现综合实例之:设计需求分析与功能定义(06-04)