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

📄 cp1.c

📁 基于c8051f320单片机开发的实验例程
💻 C
字号:
/***************************************************************
功能:此程序可完成CP1比较器的比较功能,比较器基准信号来自于E_VREF(+2.5V)引脚,
	 比较器响应后将产生中断,可在中断程序中设断点观察.

// J5-2为CP0+, J5-3为CP- 
***************************************************************/ 
//------------------------------------------------------------------------------------
// 头文件包含
//------------------------------------------------------------------------------------
#include <c8051f320.h>     
#include <INTRINS.H>      
//------------------------------------------------------------------------------------
//函数定义
//------------------------------------------------------------------------------------
void PORT_Init (void);
void CPT0_Init (void);
void CPT0_ISR (void);

sbit led=P2^6;
//------------------------------------------------------------------------------------
//主程序
//------------------------------------------------------------------------------------
void main (void)
{  
   PCA0MD &= ~0x40;            // WDTE = 0 (watchdog timer enable bit)
   OSCICN |= 0x03;             // Set internal oscillator to highest

   PORT_Init ();
   CPT0_Init ();					
   EA=1;			          //*开总中断标志*/
   while (1)
   {

	}
} 
//--------------------------------------------------------------------------------
//函数名称:      CPT0_Init()
//函数功能:      比较器0初始化
//--------------------------------------------------------------------------------
void CPT0_Init (void)
{ int i;
  EIE1   =0x20;	              //允许CP0FIF 标志位(CPT1CN.4)的中断请求
  CPT0CN =0x8A;		
  for(i=0;i<35;i++);
  CPT0CN &=~0x30;
  CPT0MX  = 0x11;
  CPT0MD  = 0X22;

 }
//------------------------------------------------------------------------------------
//函数名称:      PORT_Init ()
//函数功能:      通用I/O口及交叉开关初始化
//------------------------------------------------------------------------------------
//
void PORT_Init (void)
{  
   XBR0      = 0x02;                  // Enable SMBus pins
   XBR1 = 0x40;                       // Enable crossbar and weak pull-ups

   P0MDOUT = 0xFF;                    // All P0 pins open-drain output
   P1MDOUT = 0xFF;
   P2MDOUT = 0x40;
   P3MDOUT |= 0x04;                   // P3.3 push-pull output

}
//------------------------------------------------------------------------
//函数名称:      CPT0_ISR ()
//函数功能:      比较器1中断程序
//------------------------------------------------------------------------
void CPT0_ISR (void) interrupt 12
{   
	CPT0CN &=~ 0x30;		          //清中断标志位,在此设断点观察
	led=~led;
	EIE1  |=0x20;

}

⌨️ 快捷键说明

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