⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cp1.c

📁 有价值的电子书
💻 C
字号:
/***************************************************************
功能:此程序可完成CP1比较器的比较功能,比较器基准信号来自于VREF引脚,
	 比较器响应后将产生中断,可在中断程序中设断点观察.
作者:ZDP
时间:2005-11-30
版本:V1.0
***************************************************************/ 
//------------------------------------------------------------------------------------
// 头文件包含
//------------------------------------------------------------------------------------
#include <c8051f020.h>           
//------------------------------------------------------------------------------------
//函数定义
//------------------------------------------------------------------------------------
void PORT_Init (void);
void CPT1_Init (void);
void CPT1_ISR  (void);
sbit led=P2^4;	//红色LED
//------------------------------------------------------------------------------------
//主程序
//------------------------------------------------------------------------------------
void main (void) {
   
   WDTCN = 0xde;   
   WDTCN = 0xad;   //禁止看门狗定时器
	
   PORT_Init ();
   CPT1_Init ();					
   EA=1;			/*开总中断标志*/
   while (1)
   {
   		if((CPT1CN&0x40)==0x40) //CP+>CP-,led=1
		{	
			led=1;
		}
		else					//CP+<CP-,led=0
		{
			led=0;
		}
	}
} 
//--------------------------------------------------------------------------------
//函数名称:      CPT1_Init()
//函数功能:      比较器1初始化
//--------------------------------------------------------------------------------
void CPT1_Init (void)
 {
  EIE1   |=0x40;	//允许CP1FIF 标志位(CPT1CN.4)的中断请求
  CPT1CN =0x8F;		//启用CP1比较器,CP+、-回差电压为10mV
  REF0CN |= 0x03;   //用基准电压作为比较信号基准,CP1-接VREF
  					//用电位器从3.3V分压输出至CP1+,调节电位器输出电压大、小于VREF看断点变化
 }
//------------------------------------------------------------------------------------
//函数名称:      PORT_Init ()
//函数功能:      通用I/O口及交叉开关初始化
//------------------------------------------------------------------------------------
//
void PORT_Init (void)
{
	P2MDOUT   = 0x10;	//LED 输出驱动
   	XBR2	  = 0x40; 	/*交叉开关使能*/             
}
//------------------------------------------------------------------------
//函数名称:      CPT1_ISR ()
//函数功能:      比较器1中断程序
//------------------------------------------------------------------------
void CPT1_ISR (void) interrupt 12
{
  	CPT1CN &=~ 0x30;		//清中断标志位,在此设断点观察
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -