请教一个关于51单片机外部中断的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教一个关于51单片机外部中断的问题相关的知识,希望对你有一定的参考价值。

外部中断源有中断信号发生后 单片机会置位相应的中断请求标志位 我想问的是 是一进入中断子函数就使中断标志位清零 还是把中断子函数里面的所有语句执行完之后 再把相应的中断标志位清零呢? 下降沿触发和电平触发对于此问题有什么不同吗?

进入中断子函数就使中断标志位清零。
----
低电平触发:
在退出中断程序前,应该设法使这个低电平消失。
否则,退出后,会再次进入中断程序。

下降沿触发:就不用等了,可以随意的,退出中断程序。
一次中断申请,只能产生一次中断响应。
参考技术A 进中断后, 中断标志自动清零, 你不需要处理

电平触发的话, 退出中断前, 电平要变为高电平才行, 不然的话, 刚退出中断又进了
参考技术B 我回答错了

请教C51单片机,C语言编程,怎样把一个四位数存入(读取)外部数据存储器?请举例说明。

//外部绝对地址定义,具体地址根据你所需存在哪个地址单元而定
#define uchar unsigned char
#define uint unsigned int

uchar xdata XRAM _at_ 0xFF00[4];//指定外部存储地址
uchar DATA1[4]; //你先把你的四位数每位单独分离出来存到这个4成员数组
void main(void)

uchar i;
for(i=0;i<4;i++)

XRAM[i]=DATA1[i]

参考技术A 设定变量,为XDATA类型。 参考技术B 1.将四位数分离分别为Data1,Data2,Data3,Data,4.
2.使用4次循环分别将四个数放入指定的寄存器里。
参考技术C 首先需要外部存储地址,采用全编地址还是部分编址
然后采用MOVX 地址,立即数 ;
指令传送

以上是关于请教一个关于51单片机外部中断的问题的主要内容,如果未能解决你的问题,请参考以下文章

请教高人C51单片机C语言中的中断优先级怎么设置?

51单片机外部中断0函数执行时,又来了个外部中断0信号

将单片机的外部中断1、定时器中断0打开,要求定时器0的中断优先级高于外部中断1,外部中断1采用边沿?

求助,51单片机无法进入外部中断的问题

51单片机学习笔记5 -- 外部中断

51单片机学习笔记5 -- 外部中断