C51单片机外部中断,定时中断,串口中断同时使用的问题

作者&投稿:暴蓓 (若有异议请与网页底部的电邮联系)
单片机中,比如51单片机有五个中断源,两个外部中断源,两个定时器中断源,一个串口中断。它们都在什么情~

MCS-51单片机中断系统的结构:
5个中断源的符号、名称及产生的条件如下。
INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。
INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。

T0:定时器/计数器0中断,由T0计满回零引起。
T1:定时器/计数器l中断,由T1计满回零引起。
TI/RI:串行I/O中断,串行端口完成一帧字符发送/接收后引起。
整个中断系统的结构框图见下图一所示。



如图所示,由与中断有关的特殊功能寄存器、中断入口、次序查询逻辑电路等组成,包括5个中断请求源,4个用于中断控制的寄存器IE、IP、ECON和SCON来控制中断类弄、中断的开、关和各种中断源的优先级确定。

教你详细认识!看看网址吧!

可以的 51单片机的默认(此时的IP寄存器不做设置)中断优先级为: 外部中断0 > 定时/计数器0 > 外部中断1 > 定时/计数器1 > 串行中断; 但这种优先级只是逻辑上的优先级,当同时有几种中断到达时,高优先级中断会先得到服务。这种优先级实际上是中断同时到达的情况下,谁先得到服务的优先级,而不是可提供中断嵌套能力的优先级。这种优先级被称为逻辑优先级。 例如:当计数器0中断和外部中断1(优先级 计数器0中断>外部中断1)同时到达时,会进入计时器0的中断服务函数;但是在外部中断1的中断服务函数正在服务的情况下,这时候任何中断都是打断不了它的,包括逻辑优先级比它高的外部中断0计数器0中断。 要实现真正的嵌套形式的优先级,也即高优先级中断服务可以打断低优先级中断服务的情况,必须通过设置中断优先级寄存器IP来实现;这种优先级被称为物理优先级。我觉得可以通过设置IP来实现。

应该一个定时器,一个计算器,一个外部中断。定时器中断设高。不要用外部中断计数,有可能会漏掉脉冲。开一个计数器就行,外部中断来了就开定时器和计数器。定时器到2S直接关计数器,并将计数值用串口发送。注意计数器满了之后会由FF变为00然后继续计数。

1整体思路是没问题的,2秒计算一次,采集响应太慢,现实使用中基本不适用。
2你的counter,这样发到串口,只能是低8位,根本不是实际的数据,应该将其分解开,2次发送.

尝试一下自己写,先整理好逻辑,理顺了,用语言描述出来就是。自己想提高,就必要要尝试

这个10分不够



51单片机c语言编程中产生中断的条件是什么
答:oid PxInt0(void) interrupt 0 //定义外部中断0 void PxInt1(void) interrupt 2 //定义外部中断1 void time0_int(void) interrupt 1 //定义定时器0 void time1_int(void) interrupt 3 //定义定时器1 这里为什么是 0 1 2 3的顺序呢~?其实是单片机内部默认的,顺序依次是...

关于at89c51单片机 定时中断的问题
答:用T0定时器定时50ms,采用中断方式,对中断计数20次,就是1秒,再对1秒计数就可以了。其次是显示出计时的秒即可。这个提问有这么多灌水的回答,而且也网友采纳了。你能采纳了,用私信发给你程序。仿真图如下

51单片机:请问定时器如果使用外部中断,此时就是计数器吗?是不是此时T...
答:定时器如果使用外部中断,此时就是计数器吗?--不是。是不是此时TMOD中的C/T=1?--是,这才是计数器。

MCS-51系列单片机中用于中断允许和中断优先级控制的寄存器分别是什么...
答:51系列单片机中用于中断控制的寄存器为:IE,中断允许控制寄存器,各位定义如下:EX0(IE.0),外部中断0允许位;ET0(IE.1),定时/计数器T0中断允许位;EX1(IE.2),外部中断0允许位;ET1(IE.3),定时/计数器T1中断允许位;ES (IE.4),串行口中断允许位;EA (IE.7), CPU中断允许(总允许)位...

51单片机,我的外部中断执行后为什么回不了原来的主程序,主程序用定时...
答:由于外部中断改变了P1的值,使循环P1=_crol_(P1,1);的初值改变,中断后P1=0xff,流水灯循环效果没有了。考虑增加1全局变量k,让k循环,再赋值给p1 include<reg51.h> include<intrins.h> define uchar unsigned char uchar j,k; //增加k保护P1状态 void Delay(){ unsigned char a,b,c;for...

C语言中,用于设置中断、中断信号的函数有哪些?怎么设置一个发送中断信...
答:对于C51单片机,其内部总共有五级中断源 分别为外部中断0、定时器0、外部中断1、定时器1及串行中断。C51单片机的中断使用时,主要是通过中断服务号来决定的。如你定义一个中断服务函数:void KEY(void) intterrupt 0 { } 当外部中断0申请中断时 会自动根据interrupt后面的0,找到上面定义的这个中断服务...

单片机可以连续用两个中断吗 比如定时器中断t0和外部中断怎么用
答:单片机可以连续用两个中断,相互独立,但同时发生中断(这种几率太小了)响应有先后顺序,并且程序中可设置两种优先级,高优先级中断可打断低先级中断(这么看又不相互独立)51单片机中只要开总中断,再同时打开外部中断和定时中断,编写相应的中断程序即可 如 :EA=1;开总中断 EX0=1;开外部中断0 ET0...

c51单片机中断程序中的interrupt1,2,3是由什么决定的?
答:interrupt X是指用的第几个中断。。1~2~3是由中断向量表决定的。也就是由单片机的中断入口地址的顺序决定的。这个是硬件决定的软件不能改变。例如外部中断0就是interrupt 0 定时器0 是interrupt 1 外部中断1是interrupt 2 定时器2是interrupt 3 串口是interrupt 4 ...

51单片机定时的时候为什么一定要打开中断?
答:1、单片机的中断是一个很高明的办法。没有中断时单片机只会顺序执行主程序中的语句。2、单片机的定时器有自己的时钟,打开51单片机的定时器后,单片机一边顺序执行主程序的语句时,一边定时器在计时。当计到你设定的值后,他需要产生中断,然后暂停主程序语句,转到中断程序中执行你的命令。执行完命令后返回到主程序的顺序...

单片机的中断
答:根据你所说,这里中断应该是定时器中断,起到计时的作用。51单片机一般有 1、外部中断,共两个,主要处理一些靠外部脉冲或低电平触发的事件。2、定时器中断,共两个(52是三个),主要起定时、计数、波特率发生器等作用 3、串口中断,共1个,主要是收发串行数据。