2022年新型微控制器ADμC的P口的应用

上传人:s9****2 文档编号:567402549 上传时间:2024-07-20 格式:PDF 页数:6 大小:72.67KB
返回 下载 相关 举报
2022年新型微控制器ADμC的P口的应用_第1页
第1页 / 共6页
2022年新型微控制器ADμC的P口的应用_第2页
第2页 / 共6页
2022年新型微控制器ADμC的P口的应用_第3页
第3页 / 共6页
2022年新型微控制器ADμC的P口的应用_第4页
第4页 / 共6页
2022年新型微控制器ADμC的P口的应用_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《2022年新型微控制器ADμC的P口的应用》由会员分享,可在线阅读,更多相关《2022年新型微控制器ADμC的P口的应用(6页珍藏版)》请在金锄头文库上搜索。

1、新型微控制器AD C812的 P1口的应用摘要: AD C812 是一种新型的高度集成的12 位数据采集系统, 它在单个芯片内包含了高性能的自校准多通道ADC 、两个 12 位的 DAC以及可编程的8 位 MCU( 与 8051 兼容 ) 。与MCS51 系列单片机相似, 它有 P0P3四个端口 , 其中 P1口可实现多种功能, 例如多通道的ADC 、通用输入端口和用于特殊功能的输入控制等。介绍了AD C812的 P1口的结构原理和应用。关键词 : 端口 A/D 转换定时器 SPI 串口1 ADC812 的通用数据端口AD C812是一种新型的高度集成的高精度12 位数据采集系统。 在其片内

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

3、812特有的 , 表 1 说明了 P1口可复用的管脚功能。所有端口均包含位锁存器和输入缓冲器,I/O双向端口还包含了输出驱动器。由于P1 口没有输出驱动器, 所以 P1口只能是输入端口, 只能被配置为数字输入或模拟输入, 不能用于输出, 。AD C812 的 P1 口通常用于模拟输入; 当不用于模拟输入时, 可将 0 写至端口值 , 这样就被设置为数字输入方式。2 P1 口的各种功能与应用P1 口的主要功能是ADC的模拟输入 , 另外还可用于一些控制输入、定时器2 和计数器2的数字输入以及SPI 从属选择输入等。2.1 模/ 数转换输入AD C812中的 ADC转换块包含了8 通道、12 位、

4、单电源 A/D 转换器。 此模块为用户提供了多通道多路转换器、跟踪 / 保持、 片内基准、 校准特性。 此模块内的所有部件都能方便地通过 3 个寄存器SFR接口来设置。A/D 转换器由基于电容DAC的常规逐次逼近转换器组成。转换器接收的模拟输入范围为0至+VREF 。片内提供高精度、低漂移并经工厂校准的2.5V 基准电压。内部基准可经外部VREF引脚过驱动。外部基准在2.3V 至 AVDD的范围内。AD C812装有工厂编程的校准系数, 它在上电时自动下载到ADC,以确保最佳的ADC 性能。ADC核包括内部失调和增益校准寄存器, 所提供的软件校准子程序可允许用户在需要时重写工厂编程的校准系数,

5、 以便使用户目标系统中端点误差的影响为最小。来自片内温度传感器的电压输出正比于绝对温度, 它也可向前端ADC多路转换器 ( 实际上是第 9个 ADC通道输入 )传送。2.1.1 ADC 转移函数ADC的模拟输入范围是0V至 VREF 。在此范围内, 设计的代码跳变发生在连续的整数LSB值的中间。当VREF=2.5V时, 输出码是直接的二进制数,1LSB=FS/4096 或 2.5V/4096=0.61mV 。在 0 至 VREF范围内理想的输入/输出转移特性。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - -

6、- - - - - 第 1 页,共 6 页 - - - - - - - - - 2.1.2 SFR至 ADC块的接口AD C812中 ADC 的工作完全由3个 SFR控制 , 它们分别是ADCCON1、 ADCCON2 和 ADCCON3。2.1.2.1 ADCCON1 ADC控制 SFR#1 ADCCON1 寄存器控制转换和采集时间、硬件转换模式以及掉电模式。详述如下: ADCCON1 SFR 位的说明如表2 所示。2.1.2.2 ADCCON2 ADC控制 SFR#2 ADCCON2 寄存器控制ADC通道选择和转换模式。详述如下: ADCCON2 SFR 位说明如表3 所示。2.1.2.3

7、 ADCCON3 ADC控制 SFR#3 ADCCON3 寄存器中只有一位有效, 它给出 ADC忙状态的指示。详述如下: ADCCON3 SFR 位的说明如表4 所示。2.1.3 ADC 工作模式通过设置ADCCON1 和 ADCCON2 两个寄存器 , 可使 ADC处于三种不同的工作模式: 一种是单步转换模式 , 一种是连续转换模式, 还有一种是DMA 工作模式。用软件或通过把转换信号加至外部引脚23(CONVST) 可以启动单步或连续转换模式, 同时还可设置定时器2 的溢出位 , 用作ADC转换起始触发脉冲输入。DMA 工作模式与其他两种工作模式有显著不同, 若配置 ADC工作在 DMA工

8、作模式 , 则 ADC块将进行连续转换并把采样值捕获到外部RAM 空间 , 而不需要来自MCU 核的任何干预 , 这种自动捕获功能可以扩展到16M字节的外部数据存储器空间。值得注意的是 , 若工作于DMA 工作模式, 将要求用户在中断服务子程序中用5s 的时间完成中断服务、读ADC结果并为进一步的后续处理存储结果, 否则下一次ADC采样可能会丢失。这一限制条件是由于AD C812已把片内 ADC设计成能运行在每5s 采样一次的最高速度( 即 200kHz 采样速率 ) 。 因此 , 在要求其他中断速率的应用中, 不能使用ADC DMA 工作模式。现以我们研制的家用心电图机为例, 说明ADC的使

9、用方法与功能实现。在该心电图机中,ADC0用于心电信号的模拟输入,将 2.5V 参考电压接至VREF, 由于人体心电信号在0.5mV4mV,典型值在1mV左右 ,需经过500 倍的放大 , 落在 ADC输入电压02.5V 范围之内。因此,心电信号经过LM324放大、滤波后输入ADC0,进行 A/D 转换 ,得到数字量以进行显示、存储、发送、打印等功能。在这里,A/D 转换后的12 位数字量 , 最小可分辨的信号是0.6mV。对于最小的心电信号0.5mV, 经放大后为0.25V, 对于最大的心电信号4mV,经放大后为2V,均在 ADC的输入范围之内。心电图机使用电池作为电源, 当电池电压不足时需

10、要提醒用户更新电池。电源电压为 +5V,所以不能直接接至ADC的输入端。电源电压要经过分压电路进行分压, 使分压的电压在ADC的输入范围之内。 ADC1用于电源电压分压后的模拟输入, 进而监测电源电压的变化, 当电源电压低于一定值时蜂鸣器报警, 同时液晶显示提醒用户更换电池。若电源电压低于4.5V 时报警 ,则分压后为1.5V, 当 ADC1的输入低于1.5V(0999H) 时则启动报警系统。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - -

11、- - - 下面是利用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

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

13、作为采样结束标志位。MOD812 CSEG ORG 00H LJMP MAIN ; ORG 000BH DT0:MOV TL0,#3CH ; 定时器送初值MOV TH0,#0F6H PUSH PSW ; 现场保护PUSH ACC SETB SCONV ;ADC 开始单个转换周期MOV R0,#10H ; 转换延时DJNZ R0,MOV R1,ADCDATAL ;采样值低8 位送内部RAM:R1 MOV R2,ADCDATAH ; 采样值高4 位送内部RAM:R2 POP ACC ; 弹出保护现场信息POP PSW SETB 00H ; 置标志位00H, 代表采样结束RETI ; 中断返回; M

14、AIN:MOV SP,#60H ;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - 设置堆栈INIAL:MOV TL0,#3CH ;第一次定时器0 的定时值 MOV TH0,#0F6H SETB EA ; 开中断使能SETB ET0 ; 开定时器0 中断允许SETB TR0 ; 开定时器0 MOV ADCCON1,#50H ;送 ADCCON1 2.2 按键控制当不需要使用AD C812的 ADC的全部 8 个通道时 , 剩余的

15、ADC输入可用作数字输入端。例如 , 我们将 P1口中的几位用于按键控制的输入端口, 此时要先将0 写至端口值。 需要注意的是,ADC812 的 P1 口用作按键时是高电平有效, 在没有按键输入时,P1 口应保持低电平, 因此在用作按键的P1口应加下拉电阻( 即 P1.3 P1.7 在没有输入时为低电平), 阻值一般为几千欧。在前面的例子中, 按键分别连接到P1.3 P1.7, 它们通过2k 的下拉电阻接至地; 插座的第6脚接高电平VCC,用于触发按键。 当有键按下时,P1.3 P1.7 中的相应位接至高电平VCC,这样就给出了按键信息。 通过上面的程序就可以进行判断并执行相应的按键功能, 并

16、且采用防抖方法来提高可靠性, 具体程序如下: KEY :ANL P1, #07H ;将所有的端口置0 MOV A,P1 ;读 P1口值到 A ANL A,#0F8H ;判断 P1.3P1.7 哪一位为1 JZ KEY ;如果没有按键返回继续判断 PUSH ACC ;如果有按键保存按键信息放入累加器中KEY 5: LCALL T100M ;调 100ms延时 ( 防抖 ) ANL P1,#07H ;再次读取按键信息 MOV A,P1 ANL A,#0F8H JNZ KEY5 ;不为 0 说明按键结束 POP ACC ;弹出按键信息;下面是判断按键的程序: TKEY:JB ACC.3, #FUN1

17、 ;若 ACC.3为 1, 执行 FUN1 JB ACC.4,#FUN2 ;若 ACC.4为 1, 执行 FUN2 JB ACC,5,#FUN3 ;若 ACC.5为 1, 执行 FUN3 JB ACC,6,#FUN4 ;若 ACC.6为 1, 执行 FUN4 LJMP #FUN5 ;若 ACC.7为 1, 执行 FUN5 RET 2.3 定时器和计数器的数字输入AD C812具有 3 个 16 位的定时器 / 计数器 , 即定时器0、定时器1 和定时器2。定时器 /名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 -

18、 - - - - - - 第 4 页,共 6 页 - - - - - - - - - 计数器硬件已包含在片内, 用以减轻用软件实现定时器/ 计数器功能时, 处理期内核固有的负担。每一个定时器/ 计数器包含两个8 位寄存器THx和 TLx(x=0 、1、2) 。所有 3 个定时器 / 计数器均可配置成定时器或事件计数器。在定时器功能中, 每个机器周期TLx 寄存器增量。 因此可以把它看作对机器周期计数。在计数器功能中,TLx 寄存器根据其对应的外部输入引脚T0、T1 或 T0 上的 1 至 0 的跳变增量。在 P1口中 ,T2 是定时器 2 数字输入 , 输入至定时器 / 计数器 2。当被使能时

19、 , 对应于 T2 输入的 1至 0 的跳变 , 计数器 2 增量。 T2EX是数字输入 , 计数器 2 Capture/Reload(捕获 / 重载 )触发并用作计数器2 Up/Down( 上/ 下) 控制输入。在ADCCON1.1 中,T2C 设置定时器2 转换位 ,可把定时器2 的溢出位用作ADC转换起始触发脉冲输入。由于 AD C812与 8051 有兼容的内核 , 因而 AD C812 定时器 2 的原理与功能可简单地概括如下 : AD C812中的定时器 / 计数器 2 是一个具有16 位自动重装载或捕获能力的定时器/ 计数器,T2CON是它的专用控制寄存器, 。在定时器和计数器工

20、作方式下, 都可以通过T2CON 中的控制位 CP/来选择捕获能力或重载能力。TH2和 TL2 内容的捕获或自动重载是通过一对捕获/ 重载寄存器RCAP2H 和 RCAP2L 实现的。当 CP/=0 时, 选择自动重装载功能, 即把 RCAP2H 和 RCAP2L的数据自动转入TH2和 TL2;当 C/=1 时, 选择捕获功能 , 数据传送方向恰与上述方向相反。捕获或重载发生于下面两种情况: (1) 定时器 2 的寄存器TH2和 TL2 溢出时 , 若CP/RL2=0,则打开重装载的三态缓冲器, 把 RCAP2H 和 RCAP2L 的数据自动转入TH2和 TL2中, 同时溢出标志位置1, 申请

21、中断。(2) 当 EXEN2=1 且 T2EX端的信号有负跳变时,CP/ 是 0还是 1, 将发生捕获操作或重载操作,同时标志位EXF2置 1, 申请中断。例如, 利用定时器2 测量周期。通过下面程序的运行,定时器 2 的 TL2、TH2定时值就是周期T 的值。 MOV TL2,#0 MOV TH2,#0 JNB P1.0 , SETB TR2 JB P1.0 , JNB P1.0 , CLR TR2 2.4 SPI串口选择输入AD C812 提供了三种串行I/O端口 :UART 接口、 I2C 兼容的串行接口和串行外设接口(SPI) 。其中 ,SPI接口是工业标准的同步串行接口, 是一种全双

22、工、三线通讯的接口, 它允许MCU 与各种外围设备以串行方式(8 位数据同时同步地被发送和接收) 进行通信。主时钟可以编程为不同的状态, 既可编程为四种不同主波特率中的任一种, 又可对时钟的极性和相位进行编程。SPI 也可用于那些需要比微控制器上的并行I/O 端口更多输入端或输出端的场合, 因而提供了一种只需使用最少的微控制器引脚的扩展I/O 功能的最简单办法。SPI 系统通过使用4条线与多种标准外围器件直接接口: 串行时钟线SCLOCK 、主机输入 /从机输出数据线MISO 、主机输出 / 从机输入数据线MOSI和低电平有效的从机选择线SS(其中SS在 P1口中 )。由于AD C812 中的

23、SPI 串口有主模式和从模式两种工作模式, 因此系统可配置为主(Master)操作或从 (Slave) 操作。在用户系统中,ADC812 既可作为主MCU, 也可作为从MCU 。在主模式下 , 伴随每一位数据的发送/ 接收发送一次时钟, 此时 AD C812作为主机控制数据向从外围器件传送。 而在从模式下, 每一位数据都是在接收到时钟信号之后才发送/ 接收 ,SPI 总名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 6 页 - - - - - - - - - 线可在软件的

24、控制下构成各种简单或复杂的系统。例如 :1 个主 MCU 和几个从MCU; 几个从 MCU相互连接构成多主机系统( 分布式系统 );1 个主 MCU 和 1 个或几个从I/O 设备。在大多数应用场合中 , 使用 1个 MCU 作为主机 ,控制数据向1 个或多个从外围器件传送。从器件只能在主机发命令下才能接收或向主机传送数据。其数据的传输格式是高位(MSB)在前 , 低位 (LSB) 在后。SS作为从单片机的SPI 输入端 , 是 AD C812特有的功能 , 通过 SS将主单片机中的数据传送到从单片机,从而实现主单片机对从单片机的信息传送。AD C812的 P1口兼容了MCS51 系列单片机的功能, 而且又有着自己独特的多种其它可实现的功能。这样, 在一片单片机上利用P1口可以实现尽可能多的功能。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号