单片机中断

转载 2012年03月21日 10:38:40

1。单片机有个中断入口地址,产生中断后CPU自动从中断向量取得入口地址,然后从这个地址执行程序 。如果你用汇编写代码,你会发现main函数其实也是一个中断函数,是个复位中断,和其它中断不同处是main没有返回。要执行中断里面的代码必须让程序指针指到中断里的代码,一是通过触发中断,二是手动改变PC指针(汇编直接用jmp指令跳转.C由于编译器的限制比较难实现,可以嵌入汇编实现)(void)interrupt n(using m)函数是个中断函数,当这个中断产生后,CPU就会通过中断向量找到这个函数的地址(中断入口),然后执行此函数,结束后返回主函数。8051的中断系统包括5个中断源,并提供两个优先级,允许用户对中断源进行独立控制和中断优先级设置


2。8051支持的5个中断源分别为外部中断0、定时器0溢出中断、外部中断1、定时器1溢出中断和串口中断。对应的中断号为0、1、2、3、4;寄存器有4个工作组可以切换,为0-3; C51中,中断服务程序是以中断函数的方式来时实现的。中断函数格式如下:void 函数名() interrupt 中断号 using 工作组{ 中断服务程序内容;} 


3。中断的函数名师自己定义的,但是必须在后面加入关键字“interrupt x”,其中“x”是中断向量的编号(中断向量号对应的中断查看任何一本讲解51的书),主函数中不需要写什么语句来跳转到中断函数,因为你定义好中断向量号时,就是定义好了中断的入口地址,因为单片机响应中断是在执行程序的过程中,每个周期都会扫描中断标志位,来判断执行什么中断,比如定时器的定时到了,那么硬件就会自动将对应定时中断标志置为1,此时CPU扫描到这个中断标志为1时,就会自动跳到你定义好的中断函数执行。

相关文章推荐

单片机的中断系统

中断的产生背景 请设想这样一个场景:此刻我正在厨房用煤气烧一壶水,而烧开一壶水刚好需要 10 分钟,我是一个主体,烧水是一个目的,而且我只能时时刻刻在这里烧水,因为一旦水开了,溢出来浇灭煤气的话,有可...

单片机中断代码练习

外部中断1的练习 #include #include #define uchar unsigned char #define uint unsigned int sbit P3_3 = P3...

(二)单片机内部定时/计数器和中断系统

上讲通过讲述用单片机控制一个外部的LED闪烁实验来向读者介绍了单片机的工作原理与开发流程。这一讲将介绍单片机内部非常重要的两个资源——定时/ 计数器和中断系统。通过该讲,读者可以掌握定时器的工作原...

中断驱动多任务--- 单片机(MCU) 下的一种软件设计结构

mcu由于内部资源的限制,软件设计有其特殊性,程序一般没有复杂的算法以及数据结构,代码量也不大, 通常不会使用 OS (Operating System),  因为对于一个只有 若干K ROM, 一百...

STM8单片机的中断优先级

STM8S的中断由中断控制器(ITC)控制。STM8所有IO都支持中断,分为PA~PE 5个组,每组IO对应一个中断服务函数(也就是每组IO只有一个向量)。STM8没有专门的中断状态寄存器,所以只能通...

单片机MSP430 - Timer_A 定时器中断程序

一、利用定时器定时功能,实现定时器单个溢出中断,实现 P3.0 方波输出 #include "cc430x613x.h" void main() { WDTCTL = WDTPW + WDT...

51单片机之——中断的概念

前面讲了许多51单片机的外设部分,大致有一些芯片,以及元器件。而这篇博文就走进单片机内设——中断系统。 首先,搞清楚什么是中断? 引用资料书的话:对于单片机而言,中断是指CPU在处理某一件事A时,...

PIC单片机中断服务程序

中断服务程序有一个特殊的定义方法: void interrupt ISR(void);其中的函数名“ISR”可以改成任意合法的字母或数字组合,但其入口参数和返回参数类型必须是“void”型,亦即没有入...

51单片机初学(一)流水灯,中断定时器,显像管初步显示

学习的进度实在不怎么样,因为接下来可能要学习dan'pian'j

单片机定时器中断原理和C语言代码详解

#define _1231_C_ #include "reg51.h" #include "1231.h" //sbit OE=P2^3; unsigned int SystemTime; void ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)