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

📄 int67.c

📁 C51LED显示、模数转换、液晶显示、直流电机等模块的程序代码
💻 C
字号:
//-----------------------------------------------------------------------------
// 版权归新华龙电子公司所有
//-----------------------------------------------------------------------------
//
// 文件名:int67.c
//
// 编写人:LC
//
// 编写时间:2005/2/25
//
// 目标器件: C8051F02x
//
// 编译工具: Silicon Laboratories IDE
//
//程序说明
//  此程序测试C8051F020的中断6、7,可在相应的两个中断中设断点观察,中断处理时发光
//	二极管的状态也相应的会有改变.
//------------------------------------------------------------------------------------
// 头文件包含
//------------------------------------------------------------------------------------
#include <c8051f020.h>           
#include <intrins.h>
sbit BUZ = P3^5;

//------------------------------------------------------------------------------------
// 常量定义
//------------------------------------------------------------------------------------
#define SYSCLK 2000000           //系统工作频率
//------------------------------------------------------------------------------------
// 函数定义
//------------------------------------------------------------------------------------
void PORT_Init (void);
void INT67_Init(void);
void INT6_ISR  (void);
void INT7_ISR  (void);

//------------------------------------------------------------------------------------
//函数名称:      PORT_Init ()
//函数功能:      通用I/O口及交叉开关初始化
//入口参数:      无
//出口参数:      无
//全局变量引用:  无
//调用模块:      无
//------------------------------------------------------------------------------------
void PORT_Init (void)
{
   XBR2    = 0x40;     	/*使能交叉开关*/             
   P74OUT |= 0x0f;		/*P4口推挽输出*/        
}

//---------------------------------------------------------------------------------
//函数名称:      INT67_Init ()
//函数功能:       外中断6、7初始化
//入口参数:      无
//出口参数:      无
//全局变量引用:  无
//调用模块:      无
//----------------------------------------------------------------------------------
void INT67_Init(void)
{
	EIE2 |=0x30;		/*允许外部中断6/7的请求*/
 	P3IF |=0xc0;		/*当检测到P3.6/P3.7引脚的下降延时该由硬件置位*/
	P3IF &=~0x40;		/*关外部中断6标志*/
	P3IF &=~0x80;		/*关外部中断7标志*/
}

/***************************************************************************************
函数名称:	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_();			
    }	
}

//------------------------------------------------------------------------------------
//函数名称:      INT6_ISR ()
//函数功能:      外中断6中断服务程序
//入口参数:      无
//出口参数:      无
//全局变量引用:  无
//调用模块:      无
//------------------------------------------------------------------------------------
void INT6_ISR (void) interrupt 18
{
	P3IF &=~0x40;		/*关外部中断6标志*/
	BUZ=0;			/*有键按下*/
	sleep_ms(200);
	BUZ=1;
}
//--------------------------------------------------------------------------------------
//函数名称:      INT7_ISR ()
//函数功能:      外中断7中断服务程序
//入口参数:      无
//出口参数:      无
//全局变量引用:  无
//调用模块:      无
//---------------------------------------------------------------------------------------
void INT7_ISR(void) interrupt  19
{
	P3IF &=~0x80;		/*关外部中断7标志*/
	BUZ=0;			/*有键按下*/
	sleep_ms(200);
	BUZ=1;
}
//------------------------------------------------------------------------------------
// 主程序
//------------------------------------------------------------------------------------
void main (void) 
{
  
	WDTCN = 0xde;		/*禁止看门狗定时器*/
   	WDTCN = 0xad;
   	PORT_Init ();
   	INT67_Init();
   	EA = 1;				/*使能中断总控制位*/
   	while(1) 
   	{                      
   	}
}

⌨️ 快捷键说明

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