比较器是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,则比较结果不抖动,直接输出比较结果,电平输出不延时。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。