| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 12.STC15W408AS单片机比较器 -> 正文阅读 |
|
[嵌入式]12.STC15W408AS单片机比较器 |
一、比较器内部结构STC15W408AS单片机内置比较器功能。的比较器内部规划如下图所示: 比较器正极输入端CMP+电平可以与比较器负极输入端CMP-的电平进行比较,也可以与内部BandGap参考电压(1.27V附近)进行比较。 二、STC15W系列与比较器相关的特殊功能寄存器2.1 比较器控制寄存器1:CMPCR1CMPCR1 : 比较器控制寄存器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。 三、比较器测试程序
? |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 18:23:23- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |