找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5888|回复: 2
打印 上一主题 下一主题
收起左侧

STC15W202S单片机比较器使用方法 附源程序

[复制链接]
跳转到指定楼层
楼主
ID:370644 发表于 2019-11-18 12:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/* 当P5.5引脚电压高于1.24V时,LED1不亮

当引脚电压低于1.24V时,LED1闪烁
亮,LED2灭。*/
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sfr P5=0xC8;//xxxx,1111 端口5
sfr T2H=0xD6;//0000,0000 T2高字节
sfr T2L=0xD7;//0000,0000 T2低字节
sfr IE2=0xAF;//0000,0000 中断控制寄存器2
/******比较器定义*******/
sfrCMPCR1=0XE6;
sfrCMPCR2=0XE7;
#defineCMPEN 0X80//比较器使能位
#defineCMPIF 0X40//中断标志位,要人工清0
#definePIE 0X20//上升沿,即由低变高,只要有一个为高,CMPIF就变为1产生中断
#defineNIE 0X10//下降沿,即由高变低,只要有一个为高,CMPIF就变为1产生中断
#definePIS 0X08//比较器正端选择,0为P5.5为正极
#defineNIS 0X04//比较器负端选择,1为P5.4为负极,否则以单片机内部参考电压1.24V为负端
#defineCMPOE 0X02//比较输出结果控制位,0为正常输出,1为从P1.2端输出
#defineCMPRES 0X01//比较器结果标志位,当为1时,说明正端>参考负端,最终要看它是否为0
#defineINVCMPO 0X80//为1时取反从P1.2输出,否则正常输出
#defineDISFLT 0X40//比较器滤波输出,为1时不滤波,为0时0.1秒滤波输出
#defineLCDTY 0X3F//比较器输抖动控制,最后5位
/******比较器定义*******/
sbit LED=P1^3;//LED输出引脚
sbit LED1=P1^5;//LED输出引脚
void delay(uchar z)
{
uchar x,y;
for(x=0;x<255;x++)
for(y=z;y>0;y--);
}
void main()
{
uint j=0;
CMPCR1=0;//将CMPCR1寄存器清0
CMPCR2=0;//将CMPCR2寄存器清0
CMPCR1&=~PIS;//将P5.5作为正端输入,即第4位为0
CMPCR1&=~NIS;//选择单片机内部电压为基准1.24V
CMPCR1&=~CMPOE;//禁止输出比较器结果
CMPCR2&=~INVCMPO;//比较器结果正常输出到P1.2,不用取反
CMPCR2&=~DISFLT;//0.1秒滤波输出
CMPCR2&=~LCDTY;//将结果不去抖直接输出来
CMPCR2|=(DISFLT&0X10);//比较器结果在经过16个时钟周期后输出
CMPCR1|=PIE;//使能上升沿中断,下降沿为NIE,上升沿PIE
CMPCR1|=CMPEN;//使能比较器
EA=1;//允许中断
while(1)
{
if((CMPCR1&0X01)==0)//如果比较器结果为低即为0,则执行
{
for(j=0;j<30000;j++)
LED=!LED;//为高的时候第1个灯闪烁
delay(255);
}
else
{
LED=1;//为高的时候第1个灯闪烁
}
}
}
/*********************************/
/*******比较器中断服务子程序******/
/*********************************/
void cpm_int() interrupt 21
{
CMPCR1&=~CMPIF;//清除中断标志位,即CMPCR1&1011 1111
}

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:310993 发表于 2020-10-25 18:19 | 只看该作者
比较器,尤其是STC的比较器,太让人不能理解了。点赞!
回复

使用道具 举报

板凳
ID:59135 发表于 2021-2-5 22:03 | 只看该作者
可以使用。多谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表