新型微控制器ADuC812的P1口的应用_第1页
新型微控制器ADuC812的P1口的应用_第2页
新型微控制器ADuC812的P1口的应用_第3页
新型微控制器ADuC812的P1口的应用_第4页
新型微控制器ADuC812的P1口的应用_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、        摘要:ADC812是一种新型的高度集成的12位数据采集系统,它在单个芯片内包含了高性能的自校准多通道ADC、两个12位的DAC以及可编程的8位MCU(与8051兼容)。与MCS51系列单片机相似,它有P0P3四个端口,其中P1口可实现多种功能,例如多通道的ADC、能爱畜输入端口和用于特殊功能的输入控制等。介绍了ADC812的P1口的结构原理和应用。   1 ADC812的通用数据端口ADC812是一种新型的高度集成的高精度12位数据采集系统。在其片内,不仅包含了可重新编程的非易失

2、性闪速/电擦除程序存储器的高性能8位(与8051兼容)MCU,还包含了高性能的自校舍准多通道(8个输入通道)ADC,两个12位DAC。ADC812微控制器内核与8051指令集兼容,具有9个中断源(2个优先级)。片内还集成了8K字节的闪速/电擦除程序存储器、640字节的闪速/电擦除数据存储器以及256字节RAM。ADC812共有52个管脚,使用4个通用数据端口P0P3与外部器件进行数据交换。每一个I/O口都有自己不同的驱动执行电路。除端口1之外都是8位双向端口。端口1的操作是ADC812特有的,表1说明了P1口可复用的管脚功能。表1 P1口管脚说明符  号类  型功 

3、;   能输入端口1仅为8位输入端口。端口1缺省为模拟输入端口,为了把这些端口的任一个脚配置为数字输入,应把0写至端口值。端口1引脚是多功能的ADC0ADC7输入8个单端模拟输入。通过ADCCON2SFR进行通道选择T2输入定时器2数字输入。输入至定时器/计数器2。当被使能时,对应于T2输入的1至0的跳变,计数器2增量T2EX输入数字输入。计数器2 Capture/Reload(捕获/重载)触发关用作计数器2 Up/Down(上/下)控制输入SS输入SPI接口的从属选择输入所有端口均包含位锁存器和输入缓冲器,I/O双向端口还包含了输出驱动器。由于P1口没有输出驱动器,所以P

4、1口只能是输入端口,只能被配置为数字输入或模拟输入,不能用于输出,如图1所示。ADC812的P1口通常用于模拟输入;当不用于模拟输入时,可将0写至端口值,这样就被设置为数字输入方式。2 P1口的各种功能与应用P1口的主要功能是ADC的模拟输入,另外还可用于一些控制输入、定时器2和计数器2的数字输入以及SPI从属选择输入等。2.1 模/数转换输入ADC812中的ADC转换块包含了8通道、12位、单电源A/D转换器。此模块为用户提供了多通道多路转换器、跟踪/保持、片内基准、校准特性。此模块内的所有部件都能方便地通过3个寄存器SFR接口来设置。A/D转换器由基于电容DAC的常规逐次逼近转换器组成。转

5、换器接收的模拟输入范围为0至+VREF。片内提供高精度、低漂移并经工厂校准的2.5V基准电压。内部基准可经外部VREF引脚过驱动。外部基准在2.3V至AVDD的范围内。ADC812装有工厂编程的校准系数,它在上电时自动下载到ADC,以确保最佳的ADC性能。ADC核包括内部失调和增益校准寄存器,所提供的软件校准子程序可允许用户在需要时重写工厂编程的校准系数,以便使用户目标系统中端点误差的影响为最小。来自片内温度传感器的电压输出正比于绝对温度,它也可向前端ADC多路转换器(实际上是第9个ADC通道输入)传送。2.1.1 ADC转移函数ADC的模拟输入范围是0V至VREF。在此范围内,设计的代码跳变

6、发生在连续的整数LSB值的中间(即1/2LSB,3/2LSB,5/2LSB,FS-(3/2)LSB)。当VREF=2.5V时,输出码是直接的二进制数,1LSB=FS/4096或2.5V/4096=0.61mV。在0至VREF范围内理想的输入/输出转移特性如图2所示。2.1.2 SFR至ADC块的接口ADC812中ADC的工作完全由3个SFR控制,它们分别是ADCCON1、ADCCON2和ADCCON3。2.1.2.1 ADCCON1ADC控制SFR#1ADCCON1寄存器控制转换和采集时间、硬件转换模式以及掉电模式。详述如下:SFR地址: FFHSFR上电缺省值: 20H位可寻址: 无MD1M

7、D0CK1CK0AQ1AQ0T2CEXCADCCON1 SFR位的说明如表2所示。表2 ADCCON1 SFR位的说明位地址位助记符说  明ADCCON1.7ADCCON1.6MD1MD0模式位(MD1,MD0)选择ADC的有效工作模式如下:MD1   MD0   有效模式 0     0    ADC掉电 0     1    ADC正常工作 1  

8、60;  0    如果不执行转换周期,那么ADC掉电 1     1    如果不执行转换周期,那么ADC待机ADCCON1.5ADCCON1.4CK1CK0ADC时钟分频位(CK1,CK0)选择用于产生ADC时钟的主时钟分频比。一次ADC转换需要16个ADC时钟加述)。分频比选择如下:CK1   CK0   MCLK分频比 0     0    

9、;     1 0     1         2 1     0         4 1     1         8ADCCON1.3ADCCON1.2AQ1AQ0

10、ADC采集选择位(AQ1,AQ0)选择用于输入跟踪/保持放大器采集输入信号的时间,具体选择如下:AQ1   AQ0   #ADC时钟数 0     0         1 0     1         2 1     0  &#

11、160;      4 1     1         8注释:对于小8k的模拟输入源阻抗,缺省的AQ0/AQ1选择为00,即1个采集时钟便满足要求。对于大于8k的源阻抗,建议把采集时钟增加到2、3或4个时钟T2C设置定时器2转换位(T2C)可把定时器2的溢出位用作ADC转换起始触发脉冲输入ADCCON1.0EXC设置外部触发器使能位(EXC)允许把外部引脚23(CONVST)用作低电平有效的转换起始输入。此输入信号

12、应当具有所需采集速率的低电平效的脉冲(脉冲宽度最小100ns)2.1.2.2 ADCCON2ADC控制SFR#2ADCCON2寄存器控制ADC通道选择和转换模式。详述如下:SFR地址: D8HSFR上电缺省值:00H位可寻址: 是ADCIDMACCONVSCONVCS3CS2CS1CS0ADCCON2 SFR位说明如表3所示。表3 ADCCON2 SFR位的说明位地址位助记符说     明ADCIADC中断位。ADCI在单个ADC转换周期结束时或在DMA块转换结束时由硬件设置;ADCI在PC转至ADC中断服务子程序时由硬件清除DMADMA模式使能位。DM

13、A由用户设置以启动预置的ADC DMA模式工作CCONV连续转换位。CCONV由用户设置以使ADC开始进入连续转换模式。在该模式下,ADC根据时序以及已在ADCCON SFR中设置的通道配置开始转换,一旦前一个转换周期结束,ADC自动开始另一次转换SCONV单次转换位。SCONV由用户设置以便开始单个转换周期,当单个转换周期完成时,SCONV自动复位至0ADCCON2.3ADCCON2.2ADCCON2.1ADCCON2.0CS3CS2CS1CS0通道选择位(CS3-0)允许用户在软件控制下对ADC通道选择编程。一旦转换开始,所转换的通道将是些通道选择位所指向的通道。在DMA模式下,通道选择来

14、自写至外部存储器的通道ID具体选择如下:CS3   CS2   CS1   CS0   CH# 0     0     0     0     0 0     0     0     1   

15、;  1 0     0     1     0     2 0     0     1     1     3 0     1     0 

16、0;   0     4 0     1     0     1     5 0     1     1     0     6 0     1

17、60;    1     1     7 1     0     0     0     温度传感器 1     ×         ×   

18、;       ×         其它组合 1     1     1     1     DMA STOP2.1.2.3 ADCCON3ADC控制SFR#3ADCCON3寄存器中只有一位有效,它给出ADC忙状态的指示。详述如下:SFR地址: F5HSFR上电缺省值: 00H位

19、可寻址: 无BUSYRSVDRSVDRSVDRSVDRSVDRSVDRSVDADCCON3 SFR位的说明如表4所示。表4 ADCCON3 SFR位的说明位地址位助记符说    明BUSYADC忙状态位。BUSY是只读状态位,它在有效的ADC转换或校准周期内设置。在转换或校准结束时,内核自动把忙状态位(BUSY)清除RSVDRSVDRSVDRSVDRSVDRSVDRSVDADCCON3.03.6被保留,RSVD供内部潮湿。这些位将读出零,用户软件应当只对它们写入零2.1.3 ADC工作模式通过设置ADCCON1和ADCCON2两个寄存器,可使ADC处于三种不同的工

20、作模式:一种是单步转换模式,一种是连续转换模式,还有一种是DMA工作模式。用软件或通过把转换信号加至外部引脚23(CONVST)可以启动单步或连续转换模式,同时还可设置定时器2的溢出位,用作ADC转换起始触发脉冲输入。DMA工作模式与其他两种工作模式有显著不同,若配置ADC工作在DMA工作模式,则ADC块将进行连续转换并把采样值捕获到外部RAM空间,而不需要来自MCU核的任何干预,这种自动捕获功能可以扩展到16M字节的外部数据存储器空间。值得注意的是,若工和于DMA工作模式,将要求用户在中断服务子程序中用5s的时间完成中断服务、读ADC结果并为进一步的后续处理存储结果,否则下一次ADC采样可能

21、会丢失。这一限制条件是由于ADC812已把片内ADC设计成能运行在每5s采样一次的最高速度(即200kHz采样速率)。因此,在要求其他中断速率的应用中,不能使用ADCDMA工作模式。现以我们研制的家用心电图机为例,说明ADC的使用方法与功能实现。在该心电图机中,ADC0用于心电信号的模拟输入,将2.5V参考电压接至VREF,由于人体心电信号在0.5mV4mV,典型值在1mV左右,需消费品500倍的放大,落在ADC输入电压02.5V范围之内。因此,心电信号经过LM324放大、滤波后输入ADC0,进行A/D转换,得到数字量以进行显示、存储、发送、打印等功能。在这里,A/D转换后的12位数字量,最小

22、可分辨的信号是0.6mV,对于最小的心电信号0.5mV,经放大后为0.25V,对于最大的心电信号4mV,经放大后为2V,均在ADC的输入范围之内。心电图机使用电池作为电源,当电池电压不足时需要提醒用户更新电池。电源电压为+5V,所以不能直接接至ADC的输入端。电源电压要经过分压电路进行分压,使分压的电压在ADC的输入范围之内。ADC1用于电源电压分压后的模拟输入,进而监测电源电压的变化,当电源电压低于一定值时蜂鸣器报警,同时液晶显示提醒用户更换电源。若电源电压低于4.5V时报警,则分压后为1.5V,当ADC1的输入低于1.5V(0999H)时则启动报警系统。下面是利用ADC0采集心电信号的部分

23、程序,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中断后执行采样程

24、序,选取采样频率为200Hz,因而定时器0的定时值为TL0=3Ch,TH0=F6H。由于启动单个转换周期完成一次A/D转换需要16×2+1=33个ADC812主时钟,程序中一次延时循环为2个主时钟,因而在采样程序中利用R0=16作为单个转换周期,延时36个主时钟,以完成一次采样后的A/D转换。ADCDATAL为A/D转换低8位,ADCDATAH为A/D转换高4位;R1、R2用于存放12位A/D转换结果,设置00H位作为采样结束标志位。$MOD812CSEGORG 00HLJMP MAIN; ORG 000BHDT0:MOV TL0,#3CH ;定时器送初值MOV TH0,#0F6HP

25、USH PSW ;现场保护PUSH ACCSETB SCONV ;ADC开始单个转换周期MOV R0,#10H ;转换延时DJNZ R0,$MOV R1,ADCDATAL ;采样值代低8位送内部RAM:R1MOV R2,ADCDATAH ;采样值高4位送内部RAM:R2POP ACC ;弹出保护现场信息POP PSWSETB 00H ;置标志位00H,代表采样结束RETI ;中断返回; MAIN:MOV SP,#60H ;设置堆栈INIAL:MOV TL0,#3CH ;第一次定时器0的定时值MOV TH0,#0F6HSETB EA ;开中断使能SETB ET0 ;开定时器0中断允许SETB T

26、R0 ;开定时器0MOV ADCCON1,#50H ;送ADCCON1···2.2 按键控制当不需要使用ADC812的ADC的全部8个通道时,剩余的ADC输入可用数字输入端。例如,我们将P1口中的几位用于按键控制的输入端口,此时要先将0写至端口值。需要注意的是,ADC812的P1口用作按键时是高电平有效,在没有按键输入时,P1口应保持低电平,因此在用作按键的P1口应加下拉电阻(即P1.3P1.7在没有输入时为低电平),阻值一般为几千欧。在前面的例子中,按键分别连接到P1.3P1.7,它们通过2k的下拉电阻接至地;插座的第6脚接高电平VCC,用于触发按键。当有键按下

27、时,P1.3P1.7中的相应位接至高电平VCC,这样就给出了按键信息。通过上面的程序就可以进行判断并执行相应的按键功能,并且采用防抖方法来提高可靠性,具体程序如下:KEY:ANL P1,#07H ;将所有的端口置0MOV A,P1 ;读P1口值到AJZ KEY ;如果没有按键返回继续判断PUSH ACC 如果有按键保存按键信息放入累加器中KEY 5:LCALL T100M ;调100ms延时(防抖)ANL P1,#07H ;再次读取按键信息MOV A,P1ANL A,#0F8HJNZ KEY5 ;不为0说明按键结束POP ACC ;弹出按键信息;下面是判断按键的程序:TKEY:JB ACC.3

28、,#FUN1 ;若ACC.3为1,执行FUN1JB ACC.4,#FUN2 ;若ACC.4为1,执行FUN2JB ACC,5,#FUN3 ;若ACC.5为1,执行FUN3JB ACC,6,#FUN4 ;若ACC.6为1,执行FUN4LJMP #FUN5 ;若ACC.7为1,执行FUN5RET2.3 定时器和计数器的数字输入ADC812具有3个16位的定时器/计数器,即定时器0、定时器1和定时器2。定时器/计数器硬件已包含在片内,用以减轻用软件实现定时器/计数器功能时,处理期内核固有的负担。每一个定时器/计数器包含两个8位寄存器THx和TLx(x=0、1、2).。所有3个定时器/计数器均可配置成

29、定时器或事件计数器。在定时器功能中,每个机器周期TLx寄存器增量。因此可以把作为机器周期计数。 在计数器功能中,TLx寄存器根据其对应的外部输入引脚T0、T1或T0上的1至0的跳变增量。在P1口中,T2是定时器2数字输入,输入至定时器/计数器2。当被使能时,对应于T2输入的1至0的跳变,计数器2增量。T2EX是数字输入,计数器2 Capture/Reload(捕获/重载)触发并用作计数器2Up/Down(上/下)控制输入。在ADCCON1.1中,T2C设置定时器2转换位,可把定时器2的溢出位用作ADC转换起始触发脉冲输入。由于ADC812与8051有兼容的内核,因而ADC812定时器2的原理与

30、功能可简单地概括如下:ADC812中的定时器/计数器2是一个具有16位自动重装载或捕获能力的定时器/计数器,T2CON是它的专用控制寄存器,如图3所示。在定时器和计数器工作方式下,都可以通过T2CON中的控制位CP/RL2来选择捕获能力或重载能力。TH2和TL2内容的捕获或自动重载是通过一对捕获/重载寄存器RCAP2H和RCAP2L实现的。当CP/RL2=0时,选择自动重装载功能,即把RCAP2H和RCAP2L的数据自动转入TH2和TL2;当C/RL2=1时,选择捕获功能,数据传送方向恰与上述方向相反。捕获或重载发生于下面两种情况:(1)定时器2的寄存器TH2和TL2溢出时,若CP/RL2=0,则打开重装载的三态缓冲器,把RCAP2H和RCAP2L的数据自动转入TH2和TL2中,同时溢出标志位置1,申请中断。(2)当EXEN2=1且T2EX端的信号有负跳变时,CP/RL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论