‘壹’ 51单片机中断程序问题。
interrupt
是
中断的意思,后面的数字是
入口,就像门牌号。
号码排序
按
51单片机默认中断优先级安排:
外中断0
最高,排号为
0,
定时器0
次高,排号为1,
外中断1
第三,排号为2,
定时器1
第四,排号为3,
串口中断较低,排号为4,
定时器2,排号为5(52系列单片机才有)
‘贰’ 51单片机定时器中断程序
再次重新启动。
‘叁’ 51单片机的中断类型有哪些
中断号 中断源
0 外部中断0
1 定时器0中断
2 外部中断1
3 定时器1中断
4 串行口中断
5 定时器2中断
参考 http://www.51hei.com/
‘肆’ 51单片机中断程序
这个图未接入任何中断输入IO。中断程序写法是:
voidext0()interrupt0//外部中断0
{
//中断服务程序类容
}
voidext1()interrupt2//外部中断1
{
//中断服务程序类容
}
voidtime0()interrupt1//定时器0中断
{
//中断服务程序类容
}
voidtime1()interrupt3//定时器0中断
{
//中断服务程序类容
}
voiart()interrupt4//串口中断
{
//中断服务程序类容
}
‘伍’ 什么是中断51单片机有哪几个中断源
51的中断系统有5个中断源,中断系统的结构及级别如下:
(5)51单片机中断程序类型扩展阅读:
51单片机功能特性
1,可以仿真63K程序空间,接近64K 的16位地址空间;
2,可以仿真64Kxdata 空间,全部64K 的16位地址空间;
3,可以真实仿真全部32 条IO脚;
4,完全兼容keilC51 UV2 调试环境,可以通过UV2 环境进行单步,断点, 全速等操作;
5,可以使用C51语言或者ASM汇编语言进行调试 ;
6,可以非常方便地进行所有变量观察,包括鼠标取值观察,即鼠标放在某 变量上就会立即显示出它此的值;
7,可选 使用用户晶振,支持0-40MHZ晶振频率;
8,片上带有768字节的xdata,您可以在仿真时选 使用他们,进行xdata 的仿真;
9,可以仿真双DPTR 指针;
10,可以仿真去除ALE 信号输出. ;
11,自适应300-38400bps 的所有波特率通讯;
‘陆’ c51单片机中断程序中的interrupt1,2,3是由什么决定的
由中断号决定,一般计数器0是interrupt 0,定时器0是interrupt 1,接下来是计数器1,再是定时器1,再是串口,有些单片机还会有ADC,串口2,PCI等中断,具体看单片机的资料。
Proteus 自从有了单片机也就有了开发系统,随着单片机的发展开发系统也在不断发展。 keil是一种先进的单片机集成开发系统。它代表着汇编语言单片机开发系统的最新发展,首创多项便利技术,将开发的编程/仿真/调试/写入/加密等所有过程一气呵成,中间不须任何编译或汇编。
(6)51单片机中断程序类型扩展阅读:
功能:
8位CPU·4kbytes程序存储器(ROM) (52为8K)。
128bytes的数据存储器(RAM) (52有256bytes的RAM)。
32条I/O口线·111条指令,大部分为单字节指令。
21个专用寄存器。
2个可编程定时/计数器·5个中断源,2个优先级(52有6个)
一个全双工串行通信口。
外部数据存储器寻址空间为64kB。
‘柒’ 51单片机中断编程
外部中断信号接到P3.3口,为INT0中断,程序如下
#include<reg51.h>
sbit X0=P1^0; //用X0表示P1.0
sbit X1=P1^1; //用X0表示P1.1
sbit X2=P1^2; //用X0表示P1.2
void main(void)
{
P1=0x00; //将P1口初始化位高电平,如果没有这句,初始化为低电平,这里可根据需要选择
EA=1; //中断允许
IT1=1; //触发方式为下降沿触发
EX1=1; //外部中断允许
while(1); //这里可以随便写你需要的主程序,我用了个死循环,目的是等待中断
}
void counter1(void) interrupt 2 //INT1中断
{
EX1=0; //禁止外部中断
ET0=1; //计时器中断0允许
ET1=1; //计时器中断1允许
TMOD=0x21; //T1用模式2、T0用模式1
IP=0x0a; //T1、T0为高优先级
X2=~X2; //每次中断就取反P1.2引脚
X1=1; //P1.1输出低电平0.3ms
X0=1; //P1.0输出低电平1.5ms
TH0=0xfd; //T0用模式1,16位计时器,在1.5ms后执行时间中断0
TL0=0x12;
TH1=0x6a; //T1用模式2,8位计时器,在0.3ms执行时间中断1
TL1=0x6a;
TR1=1; //启动计时器T1
TR0=1; //启动计时器T0
while(X0==1); //等待中断响应完成
EX1=1; //允许外部中断
}
void counter2(void) interrupt 1 //定时器0中断
{
X0=0;
}
void counter3(void) interrupt 3 //定时器1中断
{
X1=0;
}
程序已经经过仿真调试,可以完成你的要求,等待加分中。。。。
PS一下,如果满意的话,十分期待给好评,谢谢了
‘捌’ 51系列单片机具有几个中断源,分别是如何定义的其中哪些中断源可以被定义为高优先级中断,如何定义
有5个中断源,外部中断0,定义为INT0,;定时/计数器0,定义为T0,外部中断1,定义为INT1;定时/计数器1,定义为T1;串行通信口中断
五个都可以定义高优先级中断,可以根据自身需要进行设置,5个中断源都可以根据需要定义高优先级,当需要定义高优先级时,只需要将IP寄存器中的相应位置1即可,它们的位分别是PX0,PT0,PX1,PT1,PS
(8)51单片机中断程序类型扩展阅读:
为使系统能及时响应并处理发生的所有中断,系统根据引起中断事件的重要性和紧迫程度,硬件将中断源分为若干个级别,称作中断优先级。
引入多级中断是因为:为使系统能及时的响应和处理所发生的紧迫中断,同时又不至于发生中断信号丢失,计算机发展早期在设计中断系统硬件时根据各种中断的轻重在线路上作出安排,从而使中断响应能有一个优先次序。
多级中断的处理原则:当多级中断同时发生时,CPU按照由高到低的顺序响应。高级中断可以打断低级中断处理程序的运行,转而执行高级中断处理程序。当同级中断同时到时,则按位响应。
当多级中断同时发生时,CPU按照由高到低的顺序响应
另外,优先级高的中断源可以中断优先级低的中断服务程序,这就形成了中断服务程序中套着中断服务程序的情况,即形成了所谓的中断嵌套。
中断优先级的高低顺序为硬件故障中断、自愿中断、程序性中断、外部中断和输入输出中断。
‘玖’ 51单片机中断程序怎么写
用c语言的话中断程序是单独写在中断服务函数中的,51单片机的中断服务函数的定义:
void functionname(void) interrupt num //functionname是自己定义的函数名字,num对应实际的中断向量号
‘拾’ 中断种类有那些(51单片机)
A.执行中断指令INTn,CPU出错引起的中断,为调试程序设置的中断;
B.除法出错的中断、溢出中断、单步中断、软件中断;
C.可屏蔽中断、不可屏蔽中断、中断指令INTn;
D.可屏蔽中断、不可屏蔽中断、断点中断;