首页 理论教育 STC15W4K32S4系列8051单片机的比较器控制寄存器

STC15W4K32S4系列8051单片机的比较器控制寄存器

时间:2023-11-02 理论教育 版权反馈
【摘要】:比较器是STC15W4K32S4系列单片机内部功能部件,比较器功能需要通过CMPCR1和CMPCR2特殊功能寄存器设置控制才能实现,下面介绍这两个寄存器的使用方法。CMPEN=1,使能允许比较器模块,比较器电源接通。比较器的输出,采用“经过ENLCCTL控制后的结果”,而非模拟比较器的直接输出结果。

STC15W4K32S4系列8051单片机的比较器控制寄存器

比较器是STC15W4K32S4系列单片机内部功能部件,比较器功能需要通过CMPCR1和CMPCR2特殊功能寄存器设置控制才能实现,下面介绍这两个寄存器的使用方法。

1.控制寄存器1

CMPCR1是比较器的控制寄存器1,用于设置比较器的使能和中断控制。其字节地址为0E6H,不可位寻址,系统复位后各有效位初值为00,其格式及各位的功能如下:

(1)CMPEN:比较器模块使能位控制位

CMPEN=0,禁止比较器模块,比较器电源关闭。

CMPEN=1,使能允许比较器模块,比较器电源接通。

(2)CMPIF:比较器中断请求标志位

在CPU读出CMPIF的数值时,实际是在读取(CMPIF_p)||CMPIF_n),即CMPIF=(CMPIF_p)||CMPIF_n)

当比较器的比较结果由低变高产生上升沿时,若PIE=1,CMPIF_p被置1,使CMPIF=1。比较结果由高变低产生下降沿时,若NIE=1,CMPIF_n被置1,使CMPIF=1。

比较器比较结果产生上升沿或下降沿后,使CMPIF=1向CPU申请中断或供软件查询。

触发中断响应条件是EA、PIE、CMPIF_p同时为1或EA=NIE=CMPIF_n=1。

无论是中断还是查询方式,CMPIF位必须用软件清0。

(3)PIE:比较器上升沿中断使能位

PIE=0,禁止比较器由低变高时置CMPIF_p为1产生中断。

PIE=1,使能比较器由低变高,即比较器产生上升沿时置CMPIF_p为1产生中断。

(4)NIE:比较器下降沿中断使能位

NIE=0,禁止比较器由高变低时置CMPIF_n为1产生中断。

NIE=1,使能比较器由高变低,即比较器产生下降沿时置CMPIF_n为1产生中断。

(5)PIS:比较器正极性选择位

PIS=0,选择外部P5.5为比较器的正极输入源。

PIS=1,选择ADCIS[2:0]所选择到的ADCIN作为比较器的正极输入源。

(6)NIS:比较器负极性选择位

NIS=0,选择内部BandGap电压BGV作为比较器的负极输入源。(www.xing528.com)

NIS=1,选择外部P5.4为比较器的负极输入源。

(7)CMPOE:比较器比较结果输出控制位

CMPOE=0,禁止比较器的比较结果输出。

CMPOE=1,使能比较器的比较结果输出到P1.2。

(8)CMPRES:比较器比较结果标志位

该位只能读,软件对其写没有意义。软件所读到的结果是“经过ENLCCTL控制后的结果”,而非模拟比较器的直接输出结果。

CMPRES=0,CMP+的电平低于CMP-的电平,或者CMP+的电平低于内部BandGap参考电压的电平。

CMPRES=1,CMP+的电平高于CMP-的电平,或者CMP+的电平高于内部BandGap参考电压的电平。

2.控制寄存器2

CMPCR2是比较器的控制寄存器2,用于设置比较器的比较输出选择控制。其字节地址为0E7H,不可位寻址,系统复位后初值为09,其格式及各位的功能如下:

(1)INVCMPO:比较器输出取反控制位

INVCMPO=0,比较器正常输出到P1.2。

INVCMPO=1,比较器的比较结果经取反后输出到P1.2。

比较器的输出,采用“经过ENLCCTL控制后的结果”,而非模拟比较器的直接输出结果。

(2)DISFLT:是否去除比较器输出的0.1μs滤波器

DISFLT=0,比较器的输出有0.1μs滤波器延迟。

DISFLT=1,关闭比较器的输出0.1μs滤波器,可以使比较器速度有一点提高。

(3)LCDTY[5:0]:比较器输出端电平变化滤波长度选择控制位

该位可设置比较器在延迟00~3FH个时钟后输出比较结果。

LCDTY[5:0]=bbbbbb,即为非0值时,则当比较器由低变高电平后,必须侦测到高电平至少持续bbbbbb个时钟,线路才认定比较器的输出是由低转成高电平;如果在bbbbbb个时钟之内,模拟比较器的输出又从高变为低电平,则线路认定比较器输出没有发生变化,视同比较器一直维持在低电平。

例如,当LCDTY[5:0]=100011,即等于35时,则比较器输出发生变化后,需要再经过35个时钟才会输出比较结果。

LCDTY[5:0]=000000,则比较结果不抖动,直接输出比较结果,电平输出不延时。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈