微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 新型微控制器AduC812的P1口的应用

新型微控制器AduC812的P1口的应用

时间:09-28 来源:嵌入式公社 点击:

压接至VREF,由于人体心电信号在0.5mV~4mV,典型值在1mV左右,需经过500倍的放大,落在ADC输入电压0~2.5V范围之内。因此,心电信号经过LM324放大、滤波后输入ADC0,进行A/D转换,得到数字量以进行显示、存储、发送、打印等功能。在这里,A/D转换后的12位数字量,最小可分辨的信号是0.6mV。对于最小的心电信号0.5mV,经放大后为0.25V,对于最大的心电信号4mV,经放大后为2V,均在ADC的输入范围之内。

  心电图机使用电池作为电源,当电池电压不足时需要提醒用户更新电池。电源电压为+5V,所以不能直接接至ADC的输入端。电源电压要经过分压电路进行分压,使分压的电压在ADC的输入范围之内。ADC1用于电源电压分压后的模拟输入,进而监测电源电压的变化,当电源电压低于一定值时蜂鸣器报警,同时液晶显示提醒用户更换电池。若电源电压低于4.5V时报警,则分压后为1.5V,当ADC1的输入低于1.5V(0999H)时则启动报警系统。

  下面是利用ADC0采集心电信号的部分程序,ADC首先要初始化,即送适当的控制字,根据前面介绍的ADC的SFR,选择适当的SFR值。

  由于ADC0作为心电信号的模拟输入,选择ADCCON1可使ADC正常工作,ADC时钟分频比为2。由于LM324输出阻抗远远小于8kΩ,所以选择ADC采集时钟1,得到ADCCON1=50H。选择通道0,可利用ADCCON2的默认值00H。

  由于ADC1作为电源监测的模拟输入,选择ADCCON1可使ADC正常工作,ADC时钟分频比为2。由于电源阻抗远远小于8kΩ,所以选择ADC采集时钟1,得到ADCCON1=50H。选择通道1,ADCCON2=01H。

  在下面程序中,堆栈设置在60H,利用定时器0中断后执行采样程序,选取采样频率为200Hz,因而定时器0的定时值为TL0=3CH,TH0=F6H。由于启动单个转换周期完成一次A/D转换需要16×2+1=33个AduC812主时钟,程序中一次延时循环为2个主时钟,因而在采样程序中利用R0=16作为单个转换周期,延时36个主时钟,以完成一次采样后的A/D转换。ADCDATAL为A/D转换低8位,ADCDATAH为A/D转换高4位;R1、R2用于存放12位A/D转换结果,设置00H位作为采样结束标志位。

  2.2按键控制

  当不需要使用AduC812的ADC的全部8个通道时,剩余的ADC输入可用作数字输入端。例如,我们将P1口中的几位用于按键控制的输入端口,此时要先将0写至端口值。需要注意的是,AduC812的P1口用作按键时是高电平有效,在没有按键输入时,P1口应保持低电平,因此在用作按键的P1口应加下拉电阻(即P1.3~P1.7在没有输入时为低电平),阻值一般为几千欧。在前面的例子中,按键分别连接到P1.3~P1.7,它们通过2kΩ的下拉电阻接至地;插座的第6脚接高电平VCC,用于触发按键。当有键按下时,P1.3~P1.7中的相应位接至高电平VCC,这样就给出了按键信息。通过上面的程序就可以进行判断并执行相应的按键功能,并且采用防抖方法来提高可靠性,具体程序如下:

  2.3 定时器和计数器的数字输入

  AduC812具有3个16位的定时器/计数器,即定时器0、定时器1和定时器2。定时器/计数器硬件已包含在片内,用以减轻用软件实现定时器/计数器功能时,处理期内核固有的负担。每一个定时器/计数器包含两个8位寄存器THx和TLx(x=0、1、2)。所有3个定时器/计数器均可配置成定时器或事件计数器。

  在定时器功能中,每个机器周期TLx寄存器增量。因此可以把它看作对机器周期计数。在计数器功能中,TLx寄存器根据其对应的外部输入引脚T0、T1或T0上的1至0的跳变增量。

  在P1口中,T2是定时器2数字输入,输入至定时器/计数器2。当被使能时,对应于T2输入的1至0的跳变,计数器2增量。T2EX是数字输入,计数器2 Capture/reload捕获/重载(触发并用作计数器2 Up/Down上/下)控制输入。在ADCCON1.1中,T2C设置定时器2转换位,可把定时器2的溢出位用作ADC转换起始触发脉冲输入。

  由于AduC812与8051有兼容的内核,因而AduC812定时器2的原理与功能可简单地概括如下:

  AduC812中的定时器/计数器2是一个具有16位自动重装载或捕获能力的定时器/计数器,T2CON是它的专用控制寄存器,如图3所示。

  在定时器和计数器工作方式下,都可以通过T2CON中的控制位CP/2来选择捕获能力或重载能力。TH2和TL2内容的捕获或自动重载是通过一对捕获/重载寄存器RCAP2H和RCAP2L实现的。当CP/RL2=0时,选择自动重装载功能,即把RCAP2H和RCAP2L的数据自动转入TH2和TL2;当C/RL2=1时,选择捕获功能,数据传送方向恰与上述方向相反。

  捕获或重载发生于下面两种情况:

  (1)定时器2的寄存器TH2和TL2溢出时,若

CP/RL2=0,则打开重装载的三态缓冲器,把RCAP2H和RCAP2L的数

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top