12.STC15W408AS单片机比较器

发布者:春水碧于天最新更新时间:2022-08-03 来源: csdn关键字: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.2

CMPCR1 |= 0x20;     // 使能比较器的上升沿中断

}

// 比较器中断服务函数

void cmp_isr() interrupt 21 //比较器中断向量入口

{

     CMPCR1 &= ~0x40; // 清除完成标志

     P12 = CMPCR1 & 0x01; // 将比较器结果CMPRES输出到测试口显示

}

关键字:STC15W408AS  单片机  比较器 引用地址:12.STC15W408AS单片机比较器

上一篇:13.STC15W408AS单片机SPI
下一篇:11.STC15W408AS单片机CCP/PCA/PWM应用

推荐阅读最新更新时间:2024-11-11 12:22

51单片机驱动点阵显示数字程序+电路
电路原理图:X轴为P2 Y轴为P0 c51单片机程序代码: #include reg52.H #include intrins.h #define uint unsigned int #define uchar unsigned char //1 unsigned char code tab1P0 ={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; unsigned char code tab1P2 ={0xff,0xcF,0xc7,0xc3,0xcf,0xcf,0xcf,0xff}; //2 unsigned char code tab2P0 ={0x0
[单片机]
51<font color='red'>单片机</font>驱动点阵显示数字程序+电路
两机串行通讯单片机汇编语言编程举例
A、B两机之间串行通讯(方式1),用‘检验和’校验波特率为2400,发送缓冲区和接收缓冲区都为片内30H开始的16个字节单元。已知:fosc=11.0592MHz。 设计A发送,B接收的双方协议如下: 1、首先A发送‘AA’信号,B接收到后发送‘BB’应答; 2、A方最多只发送20次‘AA’,若无应答,置错误标志,退出。 3、A收到‘BB’后,开始发送缓冲区的数据,同时求检验和,共16个字节。 4、B接收数据,存入缓冲区,并同时求检验和。 5、当一个数据块发送完后,A再发送检验和(一个字节)。 6、B接收到A的检验和后,再与本身的检验和比较。 7、若接收正确,B方发送‘00’,否则发送‘EE‘,请求重发。 8、若
[单片机]
两机串行通讯<font color='red'>单片机</font>汇编语言编程举例
轮式移动机器人的循迹设计
1 智能循迹小车总体设计方案 1.1 整体设计方案 1)根据设计要求,确定控制方案。 2)利用Proteus设计合理的硬件原理图。 3)画出程序流程图,使用C语言进行编程。 4)在洞洞板上焊接元器件,然后往单片机内烧录程序。 5)进行调试以实现控制功能。 1.2 整体控制方案确定 图1为智能循迹小车的系统控制框图。黑色引导线是小车进行跟踪的目标,循迹传感器对目标轨迹进行检测,然后将得到的信息反馈给单片机进行处理,单片机处理后给电机驱动发出控制信号对两个直流电机进行控制,从而确保小车可以沿预定的路线正确行驶。 本设计使用两节3,7 V充电电池对整个系统进行供电,主控芯片为STC公司的89C52,直流电机的驱动模块
[单片机]
轮式移动机器人的循迹设计
嵌入式单片机产品开发设计框架
老板突然要给你一个新的需求,要你做一款自己不熟悉的产品,第一感觉都是懵的,不知道这个产品的工作原理是什么?用的是什么方案,什么芯片? 我们首先是买个样品回来研究一下,看别人是怎么做的,然后在别人样品的基础上优化升级,做出自己的产品。 比较郁闷的事情就是买回来的样品,芯片的丝印被打磨了,或者找不到芯片相关的资料。 对于电子工程而言,个人从事的行业不一样,个人的经历和经验也局限于自己做过的产品,随意再有经验的工程师,碰到自己没有做过的产品都是一样。 设计一款,首先是要确定产品的设计方案。产品的设计方案决定着产品设计的成功与失败,比较重要,所以我们在产品方案确定的时候,我们会不断的比较不同的方案,不同的模块,最终确定自己的产品设计。 今
[单片机]
基于MSP430单片机和CH376USB接口的信号采集存储系统
摘要:给出了一种基于CH376实现MSP430单片机对实验室小型天线信号采集存储的系统。由于工程测试的需要设计开发了天线方向图自动测试系统。该系统以MSP430单片机为核心,由自动控制模块、信号采集和数据显示模块和USB主机方式数据存储模块三部分组成。从实验结果采看,该系统能够实现转台的自动控制、信号的自动采集、天线方向图的自动绘制和数据实时存储到U盘。测试平台搭建方便,具有测试速度快、精度高、性能稳定的特点。 在现代控制系统中,经常需要在操作现场进行数据采集,以及对数据进行处理来实现现场控制,但是由于单片机数据存贮容量和数据处理能力都较低,因此本文主要介绍了使用USB总线通用接口芯片CH376和16位单片机MSP430对天线
[单片机]
基于MSP430<font color='red'>单片机</font>和CH376USB接口的信号采集存储系统
单片机流水线计数器设计
几年晚上一个网友找我做流水线计数器,于是想起了半年前我上传到百度文库的这个文档。呵呵,当年 潍坊学院第二届电子设计大赛 #include AT89X52.H #define uint unsigned int #define uchar unsigned char uchar code tabel ={ 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};// 这个数组存放0~9 uint counter;//定义计数器,用来计量脉冲次数 sbit wei_ge=P1^0; //定义位选引脚 sbit wei_shi=P1^1; sbit wei_bai=P1^2
[单片机]
ARM和单片机有什么区别?
1、软件方面 这应该是最大的区别了。引入了操作系统。为什么引入操作系统?有什么好处嘛? 1)方便。主要体现在后期的开发,即在操作系统上直接开发应用程序。不像单片机一样一切都要重新写。前期的操作系统移植工作,还是要专业人士来做。 2)安全。这是LINUX的一个特点。LINUX的内核与用户空间的内存管理分开,不会因为用户的单个程序错误而引起系统死掉。这在单片机的软件开发中没见到过。 3)高效。引入进程的管理调度系统,使系统运行更加高效。在传统的单片机开发中大多是基于中断的前后台技术,对多任务的管理有局限性。 2、硬件方面 现在的8位单片机技术硬件发展的也非常得快,也出现了许多功能非常强大的单片机。但是与32ARM相比还是有些差
[单片机]
GD32单片机和STM32单片机的区别
一、前言 什么GD32? GD32是国内开发的一款单片机,据说开发的人员是来自ST公司的,GD32也是以STM32作为模板做出来的。 所以GD32和STM32有很多地方都是一样的,不过GD32毕竟是不同的产品,不可能所有东西都沿用STM32,有些自主开发的东西还是有区别的。相同的地方我们就不说了,下面我给大家讲一下不同的地方。 二、区别 1、内核 GD32采用二代的M3内核,STM32主要采用一代M3内核,下图是ARM公司的M3内核勘误表,GD使用的内核只有752419这一个BUG。 2、主频 使用HSE(高速外部时钟):GD32的主频最大108M,STM32的主频最大72M 使用HSI(高速内部时钟):GD32的主频最大10
[单片机]
GD32<font color='red'>单片机</font>和STM32<font color='red'>单片机</font>的区别
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved