12.STC15W408AS单片机比较器
一、比较器内部结构
STC15W408AS单片机内置比较器功能。的比较器内部规划如下图所示:
比较器正极输入端CMP+电平可以与比较器负极输入端CMP-的电平进行比较,也可以与内部BandGap参考电压(1.27V附近)进行比较。
二、STC15W系列与比较器相关的特殊功能寄存器
2.1 比较器控制寄存器1:CMPCR1
CMPCR1 : 比较器控制寄存器1
CMPEN:比较器模块使能位
CMPEN=1,使能比较器模块;
CMPEN=0,禁用比较器模块, 比较器的电源关闭。
在 CMPEN为1的情况下:
当比较器的比较结果由LOW变成HIGH时, 若是PIE被设置成1, 那么内建的某一个
叫做CMPIF_p的寄存器会被设置成1;
当比较器的比较结果由HIGH变成LOW时, 若是NIE被设置成1, 那么内建的某一个
叫做CMPIF_n的寄存器会被设置成1;
当CPU 去读取 CMPIF 的数值时, 会读到 (CMPIF_p || CMPIF_n);
当CPU对CMPIF写0后, CMPIF_p 以及 CMPIF_n 都会被清除为0 .
而中断产生的条件是 [ (EA==1) && (((PIE==1)&&(CMPIF_p==1)) || ((NIE==1)&&(CM
PIF_n==1))) ]CPU接受中断后, 并不会自动清除此CMPIF标志, 用户必须用软件写”0”去清除它。
PIE: 比较器上升沿中断使能位( Pos-edge Interrupt Enabling)
PIE = 1, 使能比较器由LOW变HIGH的事件 设定CMPIF_p/产生中断;
PIE = 0, 禁用比较器由LOW变HIGH的事件 设定CMPIF_p/产生中断。
NIE: 比较器下降沿中断使能位 ( Neg-edge Interrupt Enabling)
NIE = 1, 使能比较器由HIGH变LOW的事件 设定CMPIF_n/产生中断;
NIE = 0, 禁用比较器由HIGH变LOW的事件 设定CMPIF_n/产生中断。
PIS: 比较器正极选择位
PIS = 1, 选择ADCIS[2:0] 所选择到的 ADCIN 做为比较器的正极输入源
PIS = 0,选择外部P5.5为比较器的正极输入源
NIS: 比较器负极选择位
NIS = 1,选择外部管脚P5.4为比较器的负极输入源
NIS = 0,选择内部BandGap电压BGV为比较器的负极输入源
CMPOE:比较结果输出控制位
CMPOE = 1,使能比较器的比较结果输出到P1.2;
CMPOE = 0, 禁止比较器的比较结果输出
CMPRES:比较器比较结果 (Comparator Result)标志位
CMPRES = 1,CMP+的电平高于CMP-的电平(或内部BandGap参考电压的电平);
CMPRES = 0,CMP+的电平低于CMP-的电平(或内部BandGap参考电压的电平)
此 bit 是一个”只读(read-only)”的bit ; 软件对它做写入的动作没有任何意义。软件所读到的结果
是“经过ENLCCTL控制后的结果”, 而非Analog比较器的直接输出结果。
2.2 比较器控制寄存器2:CMPCR2
比较器控制寄存器2
INVCMPO:比较器输出取反控制位 (Inverse Comparator Output)
INVCMPO = 1,比较器取反后再输出到P1.2;
INVCMPO = 0,比较器正常输出。
比较器的输出, 采用“经过ENLCCTL控制后的结果”, 而非Analog比较器的直接输出结果。
DISFLT:去除比较器输出的 0.1uS Filter
DISFLT = 1, 关掉比较器的输出0.1uS Filter (可以让比较器速度有少许提升);
DISFLT = 0, 比较器的输出有0.1uS 的 Filter。
LCDTY[5:0]:比较器输出端 Level-Change control的 filter 长度(Duty)选择
bbbbbb:=
当比较器由LOW变HIGH, 必须侦测到该后来的HIGH持续至少bbbbbb个时钟, 此芯片线
路才认定比较器的输出是由LOW转成HIGH; 如果在bbbbbb个时钟内, Analog比较器的输
出又回复到LOW, 此芯片线路认为什么都没发生, 视同比较器的输出一直维持在LOW;
当比较器由HIGH变LOW, 必须侦测到该后来的LOW持续至少bbbbbb个时钟, 此芯片线
路才认定比较器的输出是由HIGH转成LOW; 如果在bbbbbb个时钟内, Analog比较器的输
出又回复到HIGH, 此芯片线路认为什么都没发生, 视同比较器的输出一直维持在HIGH.
若是设定成 000000, 代表没有 Level-Change Control。
三、比较器测试程序
#include "stc15.h"
void CmpInit();void main()
{CmpInit();EA = 1; // CPU开放中断while (1);
}
// 初始化比较器模块
void CmpInit()
{
// P5.5为比较器正极
// P5.4为比较器的负极
// P1.2为比较器的结果输出口CMPCR1 = 0; // 初始化比较器CMPCR1 |= 0x80; // 使能比较器模块CMPCR1 |= 0x02; // 使能比较器的比较结果输出到P1.2CMPCR1 |= 0x20; // 使能比较器的上升沿中断
}
// 比较器中断服务函数
void cmp_isr() interrupt 21 //比较器中断向量入口
{CMPCR1 &= ~0x40; // 清除完成标志P12 = CMPCR1 & 0x01; // 将比较器结果CMPRES输出到测试口显示
}
12.STC15W408AS单片机比较器相关推荐
- 11.STC15W408AS单片机CCP/PCA/PWM应用
STC15W408AS单片机集成了3路可编程计数器阵列(CCP/PCA)模块可用于软件定时器.外部脉冲的捕捉.高速脉冲输出以及脉宽调制(PWM)输出. 一.与CCP/PWM/PCA应用有关的特殊功能寄 ...
- 10.STC15W408AS单片机A/D转换器
10.STC15W408AS单片机A/D转换器 STC15系列单片机内部集成了8路10位高速A/D转换器.STC15系列单片机的A/D转换口在P1口(P1.7-P1.0),有8路10位高速A/D转换器 ...
- STC15W408AS单片机通过ADC端口采集模拟量并从串口打印数值
STC15W408AS单片机通过ADC端口采集模拟量并从串口打印数值 0-1023数据采集 STC15W408AS引脚功能图 STC15系列单片机的A/D转换器 A/D转换器的结构 STC15系列单片 ...
- 基于STC15W408AS单片机的陀螺仪显示器设计
提示:本文属于技术的交流,如有抄袭请联系删除. 文章目录 前言 一.STC15W408AS单片机 二.总体设计 1.硬件设计 (1)原理图设计 a.MCU设计 b.传感器接口设计 c.液晶显示 d.电 ...
- 6.STC15W408AS单片机外部中断
一.外部中断简介 STC15W408AS单片机有4个外部中断,它们分别是:外部中断0(INT0).外部中断1(INT1).外部中断2(INT2).外部中断3(INT3). 外部中断0(INT0)和外部 ...
- 2.STC15W408AS单片机时钟
STC15W408AS单片机有两个时钟源:内部高精度R/C时钟和外部时钟(外部输入时钟或外部晶体振荡器产生的时钟).内部高精度R/C时钟(±0.3%),±1%温漂,常温下温漂±0.6%(-20℃~+6 ...
- STC15W408AS单片机串口切换与下载问题
STC15W408AS单片机串口切换与下载问题 STC15W408AS这款单片机支持串口的引脚切换功能.但是在配置过程中,发现从默认引脚P3.0和P3.1切换到P3.6和P3.7切换不成功. 官方推荐 ...
- STC15W408AS单片机IIC驱动0.96寸OLED显示
STC15W408AS单片机IIC驱动0.96寸OLED显示 不同页的滚动效果() 全页的滚动效果 STC15W408AS最新系统板 注意图片上的0欧姆电阻贴错了位置,应该是与GND相连的,图片上是P ...
- 4.STC15W408AS单片机点亮第一个LED
STC15W408AS单片机有14个I/O口.其所有I/O口均可由软件配置成4种类型.4种类型分别为:准双向口/弱上拉(标准8051输出模式).推挽输出/强上拉.高阻输入(电流既不能流入也不能流出)或 ...
- 应广PFS122单片机比较器测供电电源VDD电压
应广PFS122单片机比较器测供电电源VDD电压,VDD电源调至3V的时候LED灯亮起,偶尔会有点抖动现象,可以在VDD电压3V的时候做判断,消抖处理,本例程实现功能,不清楚的请联系博主,上代码: # ...
最新文章
- Mac下使用crontab来实现定时任务
- python 将counter 的结果转换为字典
- Bigtable 论文翻译
- 将k8s制作成3D射击游戏,好玩到停不下来,附源码
- 双离合档把上按钮作用_英特尔展示双屏幕概念笔记本:带有双铰链
- openstack ice版文档horizon整理(页面resize)
- 8 | Spatial-based GNN/convolution模型之GAT(受欢迎)
- java 3dm_3dm游戏运行库合集安装包-游戏运行库合集安装包下载v3.0DM整理-西西软件下载...
- 3D视觉点云数据处理十大方法
- Javaweb面试题(一)———更新中
- 汇川AM系列Modbus通信设置
- 一只蒟蒻的树形DP学习笔记
- Torah RVP Claiming Tutorial
- 计算机考证忘记密码了怎么办,计算机忘记开机密码怎么办?
- Keras实现小数量集图片分类——6类别Birds数据集分类
- Quorum 机制(分布式系统)
- 一起来找茬:记一起 clang 开启 -Oz 选项引发的血案
- 机器人中的yaw/pitch/roll
- MySQL数据库实验(四):E-R图实例讲解
- wincc做皮带动画_WINCC中制作管道流体流动动画的一种方法
热门文章
- 新手使用PHPCUSTOM打开php文件变下载的原因分析
- matlab画三维图如何更改颜色,MATLAB画三维图像
- 颜色空间:RGB,CMY,HSV,HSL,Lab,YUV详解
- JSP页面只显示源代码不显示网页内容
- 解决python运行selenium程序执行完后,Chrome浏览器自动关闭的问题
- ASP.NET设置背景图案
- 计算机网络基础知识之应用层篇
- 【操作系统】CPU是如何执行程序的?
- java public aspect_spring aop的两种写法aspect和advisor
- RMAN备份恢复Oracle_wuli大世界_新浪博客