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

📄 cp1.c

📁 C51LED显示、模数转换、液晶显示、直流电机等模块的程序代码
💻 C
字号:
//-----------------------------------------------------------------------------
// 版权归新华龙电子公司所有
//-----------------------------------------------------------------------------
//
// 文件名:CP1.c
//
// 编写人:LC
//
// 编写时间:2005/2/25
//
// 目标器件: C8051F02x
//
// 编译工具: Silicon Laboratories IDE
//
//程序说明
//   此程序可完成CP1比较器的比较功能,比较器基准信号来自于VREF引脚,比较器响应后将产生中
//断,可在中断程序中设断点观察.
//------------------------------------------------------------------------------------
// 头文件包含
//------------------------------------------------------------------------------------
#include <c8051f020.h>
#include <intrins.h>
sbit BUZ = P3^5;

//------------------------------------------------------------------------------------
//函数定义
//------------------------------------------------------------------------------------
void PORT_Init (void);
void CPT1_Init (void);
void CPT1_ISR  (void);
//------------------------------------------------------------------------------------
//主程序
//------------------------------------------------------------------------------------
void main (void) {
   
   WDTCN = 0xde;   
   WDTCN = 0xad;   //禁止看门狗定时器
	
   PORT_Init ();
   CPT1_Init ();					
   EA=1;			/*开总中断标志*/
   BUZ = 1;
   while (1) 
   {                         
   }
} 
//--------------------------------------------------------------------------------
//函数名称:      CPT1_Init()
//函数功能:      比较器1初始化
//入口参数:      无
//出口参数:      无
//全局变量引用:  无
//调用模块:      无
//--------------------------------------------------------------------------------
void CPT1_Init (void)
 {
  EIE1   |=0x40;	/*允许CP1FIF 标志位(CPT1CN.4)的中断请求*/
  CPT1CN =0x8F;
  REF0CN |= 0x03;   //用基准电压作为比较信号基准,CP1N接VREF
  					/*内部电压基准提供从VREF脚输出,ADC0电压基准取自VREF0*/
 }
//------------------------------------------------------------------------------------
//函数名称:      PORT_Init ()
//函数功能:      通用I/O口及交叉开关初始化
//入口参数:      无
//出口参数:      无
//全局变量引用:  无
//调用模块:      无
//------------------------------------------------------------------------------------
//
void PORT_Init (void)
{
   XBR2    = 0x40; 	/*交叉开关使能*/             
   P74OUT |= 0xc0;
   //P3MDOUT &= 0xdf;     /*使能P3.5推挽输出*/

}

/***************************************************************************************
函数名称:	void sleep_ms(WORD count)
功能描述:	延时
输入:		WORD count(所要延时的长度)
输出:		无
全局变量:	无
调用模块:	_nop_()
***************************************************************************************/
void sleep_ms(unsigned int count)
{
  unsigned char ii,jj;
  for(ii=0;ii<count;ii++)
    {
      for(jj=0;jj<250;jj++)
	  _nop_();			
    }	
}
//------------------------------------------------------------------------
//函数名称:      CPT1_ISR ()
//函数功能:      比较器1中断程序
//入口参数:      无
//出口参数:      无
//全局变量引用:  无
//调用模块:      无
//------------------------------------------------------------------------
void CPT1_ISR (void) interrupt 12
{
  CPT1CN &=~ 0x30;		/*清中断标志位*/
	BUZ=0;			/*有键按下*/
	sleep_ms(200);
	BUZ=1;
}

⌨️ 快捷键说明

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