📄 bijiaoqizhongduan.c
字号:
/****************************************************************************
*文件名: bijiaoqizhongduang.c
*功能: LPC900比较器演示程序
*日期: 11:53 06-12-25
*****************************************************************************/
#include <reg932.h>
#define uchar unsigned char
sbit LED=P2^6;
sbit RING=P2^7;
uchar temp;
void CMP_Init();
void Delay10us();
//----------------------------------
//功能:比较器中断服务程序
//----------------------------------
void CMP_ISR() interrupt 8
{
EA=0; //关中断
temp=CMP1&0x02; //判断CMP1.1
if(temp==0x02) //如果CMP1.1为1(正向输入端大于反向输入端)
{
RING=0;
LED=1;
}
else if(temp==0x00) //如果CMP1.1为0
{
RING=1;
LED=0;
}
CMP1&=0xFE; //清0比较器中断标志位
EA=1; //开中断
}
//----------------------------------
//功能:主函数
//----------------------------------
void main()
{
CMP_Init(); //比较器初始化
while(1);
}
//----------------------------------
//功能:比较器初始化
//----------------------------------
void CMP_Init()
{
PT0AD=0x10; //禁止CIN1A上的数字输入功能
P0M1=0x00;
P0M2=0x10; //设置P0.4为仅为输入
P2M1=0xC0;
P2M2=0xC0; //设置P2.6,P2.7为开漏方式
CMP1=0x28; //0010 1000,CMP1使能,内部Ref,CIN1A
Delay10us(); //延迟10us,以等待比较器稳定
CMP1&=0xFE; //清除比较器中断标志位
EC=1; //比较器中断输出使能
EA=1; //开中断
}
//----------------------------------
//功能:延迟10us(7.373MHz下)
//----------------------------------
void Delay10us()
{
uchar i;
for(i=0;i<10;i++);
}
//----------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -