c8051f020中断问题
大家好 我用c8051f020做了一个简单的外部中断实验 我发现当没有外部中断的时候 程序自动跳到外部中断了 是什么原因呢#include<c8051f020.h>
#include<intrins.h>
void I0_init() //IO端口初始化配置
{
unsigned int m;
//关闭看门狗
WDTCN=0xde;
WDTCN=0xad;
//交叉开关使能,但没有进行外围设备配置
XBR0=0x00;
XBR1=0x04; //外部中断0连接到端口引脚P0.0
XBR2=0xc0; //交叉开关允许,弱上拉全局禁止
//引脚输出配置
P74OUT=0x03; //将P4口全部设置为推挽模式做为指示信号
P1MDOUT=0xef; //P1.4口设置为开漏模式,其余端口设置为推挽模式
//晶振配置,采用外部晶振22.1184MHz
OSCXCN = 0x77; //晶体振荡器方式二分频
for (m = 0; m < 3000; m++);// Wait 1ms for initialization
while ((OSCXCN & 0x80) == 0);
OSCICN|= 0x88; //外部石英晶振,22.1184MHZ 11100111
}
/*************************************************************************************
* 函数名称:Delay_us;
*
* 函数功能描述:延时程序,延时时间范围:1~65535us;
*
* 输入参数:times: unsigned int, 延时时间变量;
*
* 返回数据:none;
*
* 注意: 延时时间最大是65535us,不要超过这个值;
**************************************************************************************/
void Delay_us(unsigned int times)
{
unsigned int i;
for (i=0; i<times; i++)
{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
}
/**************************************************************************************
* 函数名称:Delay_ms;
*
* 函数功能描述:延时程序,延时时间范围:1~65535ms;
*
* 输入参数:times: unsigned int, 延时时间变量;
*
* 返回数据:none;
*
* 注意: 延时时间最大是65535ms,不要超过这个值;
**************************************************************************************/
void Delay_ms(unsigned int times)
{
unsigned int i;
for (i=0; i<times; i++)
Delay_us(1000);
}
/**************************************************************************************
* 函数名称:Delay_s;
*
* 函数功能描述:延时程序,延时时间范围:1~65535s;
*
* 输入参数:times: unsigned int, 延时时间变量;
*
* 返回数据:none;
*
* 注意: 延时时间最大是65535s,不要超过这个值;
***************************************************************************************/
void Delay_s(unsigned int times)
{
unsigned int i;
for (i=0; i<times; i++)
Delay_ms(1000);
}
void Outside_Init(void) //控制中断寄存器设置
{
EX0 = 1; //开外部中断0
IT0 = 1; //下降沿触发外部中断
EA = 1; //开总中断
}
void main()
{
I0_init();
Outside_Init();
while(1);
}
void Outside_Int(void) interrupt 0
{
P4=0x00;
Delay_s(1);
P4=0xff;
}
麻烦大家看一下 这个现象很奇怪啊。 有时候程序跳不出中断是什么原因? 你好,刚刚看到你之前的一个问题,关于c8051f020的中断问题,我也出现了同样的情况,你的解决了没??? 帮你们俩顶顶看!
页:
[1]