#include<stch>
sbit
d1=P2^0;
sbit
p1=P2^1;
void
main()
{
方式一;
}
void
main()
{
EA=1;
EX0=1;
IT0=1;
方式二;
}
void
main()
{
EA=1;
EX1=1;
IT0=1;
方式三;
}
void
zd0()
interrupt
0
{
d1=0;
}
void
zd1()
interrupt
1
{
p1=0;
}
用的是外部中断0和1,程序很简单,注释就不写了。如果有错误的话,还请指正。
外部中断和定时器中断互补干涉,你的51单片机外部中断1和外部中断0都被使用了,不会对你使用定时器中断产生影响的,设置很简单,程序代码附后,要想是定时器中断1的优先级低于外部中断,你可以将外部中断优先级设置为高优先级,而定时器中断设置为低优先级。这样就可以了。初始化程序为:
init()
{
TMOD=0x10;
EX0=1;
EX1=1;
IT0=1;
IT1=1;
PX0=1;
PX1=1;
PT1=0;
TR1=1;
ET1=1;
TH1=xxxxx;
TL1=xxxxx;
EA=1;
}
51单片机et1是定时器1中断。51单片机et1分时 *** 作,CPU可以分时为多个IO设备服务,提高了计算机的利用率,实时响应。CPU能够及时处理应用系统的随机事件,系统的实时性大大增强,可靠性高。CPU具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性高。
51单片机CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理中断产生,CPU暂时中断当前的工作,转去处理事件B中断响应和中断服务,待CPU将事件B处理完毕后,再回到原来事件A中断的地方继续处理事件A中断返回,这一过程称为中断。
51单片机特点
51单片机是对兼容英特尔8051指令系统的单片机的统称。51单片机广泛应用于家用电器、汽车、工业测控、通信设备中。因为51单片机的指令系统、内部结构相对简单,所以国内许多高校用其进行单片机入门教学。
兼容性方面,向下完全兼容51全部字系列产品。比如8051、89C51等等早期MCS51兼容产品。也就是说所有教科书、网络教程上的程序不论教科书上采用的单片机是8051还是89C51还是MCS51等等,在89S51上一样可以照常运行,这就是所谓的向下兼容。
中断就是中途打断。\x0d\通俗解释:\x0d\你在看影碟,有人敲门(中断源),中断了你看影碟,观看暂停。处理敲门的事宜(中断目的),处理完成(中断结束),继续看影碟(继续执行原来的任务)。\x0d\再比如:你在看电视,水开了(中断源),把水灌到暖瓶里(中断目的),再烧上一壶(继续开中断),回去看电视。水又开了。。。。。。。。(循环中断)\x0d\ \x0d\以51单片机16位定时计数器0(T0)来讲,\x0d\计数是T1是一个能盛65536(十六位时)滴水的水盆,在水龙头下水一滴滴地滴入盆中。如果盆是空的那水在滴完65536滴水时盆子的水就满了再滴一滴的时候就溢出了。这时就会产生中断。\x0d\如果盆里面已经装入65500滴水(即初装值),那么只需要36滴水后就溢出了。\x0d\每一个水滴计数时即一个脉冲(高低电平变换一次)。\x0d\定时时每一个水滴即一个机器周期,水滴的速度即机器周期,等于12个振荡周期(晶振的振荡频率除以12),直接影响到溢出的时间。
1、设置TI=1,是人为的设置了串行发送请求完毕的中断请求标志。但是你并没有致能(es=1)串口中断。实际上你的interrupt5的处理程序也没有写,是空的。(注意这点)
2、你既然没有设置it0=1(跳变触发中断),那么就是IT0=0(低电平触发)。
3、当一个低电平来的时候,就进入你的interrupt0处理程序。并且硬件自动清标记位置。执行完毕 beer=1。
4、这个时候还有一个中断请求标志IT=1,于是产生了中断嵌套。执行完高级中断后,进入低级中断interrupt5。之后是空白。。。。
5、结果就是你描述的:蜂鸣器一直响,数码管停止显示。
不知道我这样描述,你能不能理解。呵呵
以上就是关于51单片机 C语言 如何实现中断调用全部的内容,包括:51单片机 C语言 如何实现中断调用、51单片机外部中断1和0都被使用了,但是还需要使用一个定时器中断,请问该怎么设置呢、51单片机et1是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)