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

📄 cp1.c

📁 C8051F310单片机应用程序
💻 C
字号:
/*************************************************************************************
功能:此程序可完成CP0比较器的比较功能,比较器CP0+来自于VREF引脚,CP0-由S2控制.按下S3后,
	 比较器响应后将产生中断,可在中断程序中设断点观察.


版本:V1.0
*************************************************************************************/ 
//------------------------------------------------------------------------------------
// 头文件包含
//------------------------------------------------------------------------------------
#include <c8051f310.h>     
#include <INTRINS.H>      
//------------------------------------------------------------------------------------
//函数定义
//------------------------------------------------------------------------------------
void PORT_Init (void);
void CPT0_Init (void);
void CPT0_ISR (void);

//sbit led=P2^4;	         //红色LED
//------------------------------------------------------------------------------------
//主程序
//------------------------------------------------------------------------------------
void main (void) {
   
   PCA0MD &= ~0x40;      // WDTE = 0 (watchdog timer enable bit)
   OSCICN |= 0x03;       // Set internal oscillator to highest
                         // setting (24500000)
   PORT_Init ();
   CPT0_Init ();					
   EA=1;			     /*开总中断标志*/
   while (1)
   {
      _nop_();
	}
} 
//--------------------------------------------------------------------------------
//函数名称:      CPT0_Init()
//函数功能:      比较器0初始化
//--------------------------------------------------------------------------------
void CPT0_Init (void)
{
  int i;
  EIE1   =0x20;	           //允许CP0FIF 标志位(CPT1CN.4)的中断请求
  CPT0CN =0x8F;		
  for(i=0;i<35;i++);
  CPT0CN &=~0x30;
  CPT0MX  = 0x20;
  CPT0MD  = 0X22;

 }
//------------------------------------------------------------------------------------
//函数名称:      PORT_Init ()
//函数功能:      通用I/O口及交叉开关初始化
//------------------------------------------------------------------------------------
//
void PORT_Init (void)
{
	P0SKIP = 0xff;
	P1SKIP = 0x7f;
	XBR0   = 0x10;
	XBR1   = 0x40;
    P1MDOUT |=0x80;  	          
}
//------------------------------------------------------------------------
//函数名称:      CPT0_ISR ()
//函数功能:      比较器0中断程序
//------------------------------------------------------------------------
void CPT0_ISR (void) interrupt 12
{
	CPT0CN &=~ 0x30;		   //清中断标志位,在此设断点观察

}

⌨️ 快捷键说明

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