8051外中断使用
8051中断执行流程
8051微控制器的中断执行流程如下:
1.当一个外部或内部中断源被触发时,8051微控制器会响应中断请求。
2.控制器将当前正在执行的指令存储到堆栈中,以便在中断处理完毕后返回
到原来的执行点。
3.控制器将中断向量地址加载到程序计数器( PC)中,跳转到相应的中断服
务程序 ISR)的起始地址。
4.在进入中断服务程序之前,控制器会保存当前寄存器的值,以便在退出中
断服务程序后恢复原始状态。
5.在中断服务程序中,微控制器执行相应的操作,例如读取或写入数据、控
制外设等。
6.中断服务程序执行完毕后,控制器从堆栈中恢复寄存器的值,返回到原来
被中断的程序执行点。
7.如果中断允许位被设置为允许,控制器会清除对应的中断标志位,以便允
许下一次该中断的发生。
通过以上步骤,8051微控制器能够响应并处理外部或内部的中断请求,保证程序的实时性和响应性。
8051单片机引脚工作原理
8051单片机引脚工作原理8051单片机一共有40个引脚,分为四组:P0、P1、P2、P3、其中,P0端口有8个引脚(P0.0~P0.7),P1和P3端口各有8个引脚(P1.0~P1.7和P3.0~P3.7),P2端口有6个引脚(P2.0~P2.7),其中P2.6和P2.7还具有额外的功能。
P0端口可以被用来作为输入或输出端口。
当P0.0~P0.7的任意一个引脚被配置为输入时,该引脚将具有高阻抗状态(即输入模式)。
当P0.0~P0.7的任意一个引脚被配置为输出时,该引脚将具有一个逻辑电平(即输出模式)。
在输入模式下,引脚可以通过电阻连接到VCC或GND,以确定其逻辑电平。
在输出模式下,引脚的逻辑电平可以通过软件编程来控制。
P1端口也可以用作输入或输出端口。
它的工作原理与P0端口相似。
需要注意的是,在一些特殊的功能模式下,P1端口的一些引脚可能不可用,这主要是因为这些引脚被用来连接外部设备或其他功能。
P2端口有6个引脚(P2.0~P2.7)。
P2.0和P2.1用于连接外部中断输入引脚(INT0和INT1)。
当有外部信号触发INT0或INT1引脚时,单片机会相应地执行中断服务程序。
P2.2~P2.7的引脚具有两种不同的功能:如果设置为低电平,它们将成为外部总线的低字节(L0~L5),如果设置为高电平,它们将成为外部总线的高字节(H0~H5)。
P3端口也有8个引脚(P3.0~P3.7)。
其中,P3.0~P3.3是普通的IO口引脚,可以用作输入或输出。
P3.4~P3.7具有特殊功能。
P3.4和P3.5用于连接内部定时/计数器的输入引脚(T0和T1)。
P3.6和P3.7是特殊功能引脚,用于连接外部中断输入引脚(INT2和INT3)。
除了上述端口外,8051单片机还具有一个特殊的引脚,即RST(复位)引脚。
当复位引脚为低电平时,单片机将被复位,并重新启动。
通过编程,可以控制单片机引脚的工作模式和逻辑电平。
具体来说,单片机引脚的工作模式可以设置为输入(高阻抗)或输出,逻辑电平可以设置为高电平或低电平。
8051实验指导书
第一部分系统介绍一、系统概述1)、微处理器:i80c31,它的P1口、P3口皆对用户开放,供用户使用。
2)、时钟频率:6.0MHz3)、存储器:程序存储器与数据存储器统一编址,最多可达64k,板载ROM(监控程序27C256)12k;RAM1(程序存储器6264)8k供用户下载实验程序,可扩展达32k;RAM2(数据存储器6264)8k供用户程序使用,可扩展达32k。
(RAM程序存储器与数据存储器不可同时扩至32k,具体与厂家联系)。
(见图1-1:存储器组织图)。
在程序存储器中,0000H----2FFFH为监控程序存储器区,用户不可用,4000H----5FFFH为用户实验程序存储区,供用户下载实验程序。
数据存储器的范围为:6000H----7FFFH,供用户实验程序使用。
注意:因用户实验程序区位于4000H-----5FFFH,用户在编写实验程序时要注意,程序的起始地址应为4000H,所用的中断入口地址均应在原地址的基础上,加上4000H。
例如:外部中断0的原中断入口为0003H,用户实验程序的外部中断0的中断程序入口为4003H,其他类推,见表1-1。
4)、可提供的对8051的基本实验为了提高微机教学实验质量,提高实验效率,在该系统的实验板上,除微处理器外、程序存储器、数据存储器外,还增加了8255并行接口、8250串行控制器、8279键盘、显示控制器、8253可编程定时器、A/D、D/A转换、单脉冲、各种频率的脉冲发生器、输入、输出电路等模块,各部分电路既相互独立、又可灵活组合,能满足各类学校,不同层次微机实验与培训要求。
可提供的实验如下:(1)、8051P1口输入、输出实验(2)、简单的扩展输入、输出实验(3)、8051定时器/计数器实验(4)、8051外中断实验(5)、8279键盘扫描、LED显示实验(6)、8255并行口输入、输出实验(7)、8253定时器/计数器实验(8)、8259中断实验(9)、串行口通讯实验(10)、ADC0809 A/D转换实验(11)、DAC0832 D/A转换实验(12)、存储器扩展实验(13)、交通灯控制实验FFFFH用户I/O区CFEFH系统I/O区,CFBFH用户I/O区7FFFHRAM2用户实验程序区供用户下载实验程序4FFFHRAM1用户实验程序数据区2FFFHROM系统监控程序区0000H图1:存储器系统组织图中断名称 8051原中断程序入口用户实验程序响应程序入口外中断0 0003H 4003H定时器0中断 000BH 400BH外中断1 0013H 4013H定时器1中断 001BH 401BH串行口中断 0023H 4023H表1-1:用户中断程序入口表5)、资源分配本系统采用可编程逻辑器件(CPLD)EPM7128做地址的编译码工作,可通过芯片的JTAG接口与PC机相连,对芯片进行编程。
单片机中断实现按键
单片机中断实现按键一、引言在嵌入式系统中,往往需要通过外部输入设备如按键来与系统进行交互。
为了能够及时响应按键操作,避免忙等的情况发生,通常会使用中断技术来实现按键的检测和处理。
本文将介绍如何使用中断来实现按键检测,并具体以8051单片机作为示例进行说明。
二、中断基础知识在单片机中,中断是一种由硬件触发的特殊事件,当一些中断条件满足时,单片机会暂停当前任务,跳转到中断服务程序中执行对应的处理代码,待中断处理结束后再返回到原来的任务中。
中断的触发方式一般有两种:外部触发中断和内部触发中断。
对于按键这种外部输入设备,一般通过外部触发中断来实现。
三、实现原理1、按键电路:按键通常由一个导电片和两个触点组成,平时靠两个触点之间的弹簧将导电片与触点隔开,当按下按键时,弹簧压缩,导电片与触点接触形成通路。
为了能够检测按键操作,需要将按键引脚连接到单片机的外部中断引脚上。
2、中断设置:在单片机的程序中,需要设置好相应的中断向量表和中断服务程序。
中断向量表是一个存放中断服务程序地址的表格,当中断触发时,单片机会根据中断号从中断向量表中找到相应的中断服务程序地址并跳转到该地址执行对应代码。
3、中断触发条件:在按键电路中,按键的两个触点状态变化(从断开到接通或从接通到断开)时会产生干扰信号,为了避免干扰,通常会使用软件消抖技术。
当按键被按下,并经过一段时间的消抖后,会产生一个稳定的按键信号,此时可以检测到按键变化,并触发相应的中断。
四、实现步骤1、硬件连接:将按键引脚连接到单片机的外部中断引脚上。
2、中断设置:在单片机的程序中,需要设置中断的相关寄存器,包括中断向量表和中断控制寄存器。
中断向量表保存中断服务程序的入口地址,中断控制寄存器用于设置中断触发条件和中断优先级等参数。
3、中断服务程序:编写中断服务程序,在按键中断触发时执行对应的处理代码。
中断服务程序一般需要包括中断触发条件的判断和处理代码的执行。
4、主程序:在主程序中调用中断服务程序,并添加相应的处理代码,实现按键操作的具体功能。
单片机原理及应用习题 (带答案)
《单片机原理及应用》习题一、填空1、MCS-51单片机访问外部存储器时,利用 ALE 信号锁存来自 P0 口的低8位地址信号。
2、MCS-51系统中,当PSEN 信号有效时,表示从P0口稳定地读入了 低8位地址 。
3、通常单片机上电复位时PC=0000H ,SP= 07H ;而工作寄存器则缺省采用第 00 组,这组寄存器的地址范围是从 00H~07H 开始。
4、MCS-51单片机的存储器从物理结构上可划分 4 个空间,从逻辑上分别可划分 3 个空间。
5、MCS-51单片机8031中有 2 个16位的定时/计数器,可以被设定的工作方式有 4 种。
6、MCS-51有 5 中断源,有 2 中断优先级,优先级由软件填写特殊功能寄存器 加以选择。
7、当/EA 接地时,MCS-51单片机将从_ 外部程序的存储器_____的地址0000H 开始执行程序。
8、中断请求信号有 电平 触发和 边沿 触发两种触发方式。
9、用串行口扩展并行口时,串行接口的工作方式应选为 0 。
10. MCS -51复位后·CPU 从 0000 H 单元开始执行程序。
·SP 的内容为 07 H , 第一个压入堆栈的数据将位于 片内 RAM 的 08 H 单元。
·SBUF 的内容为 不定 。
·ADDC A , #54H 指令执行后 , PSW 寄存器的内容将等于 01 H 。
11. 8051AH·片内设置有4KB 的ROM , 当EA 端保持高电平时 , PC (程序计数器)值超过 OFF H时 , 将自动转向执行外部程序存储器的程序。
·可做通用I/O 的至少有_P1_口的8条I/O 线。
_P0_口作地址/数据总线, 传送地址码的_低_8位 , _P2 口作地址总线 , 传送地址码的高__8位。
12.存储器组织·8051片内RAM 有 128 个字节 , 片外RAM 寻址范围为 64K 个字节。
中断及定时器实验报告
一、实验目的1. 理解中断和定时器的基本概念及工作原理。
2. 掌握51单片机中断系统和定时器的配置方法。
3. 学会使用中断和定时器实现特定功能,如延时、计数等。
4. 培养动手实践能力和问题解决能力。
二、实验原理中断是计算机系统中的一种机制,允许CPU在执行程序过程中,暂停当前程序,转去执行另一个具有更高优先级的程序。
51单片机具有5个中断源,包括两个外部中断(INT0、INT1)、两个定时器中断(定时器0、定时器1)和一个串行口中断。
定时器是51单片机内部的一种计数器,可以用于产生定时中断或实现定时功能。
51单片机有两个定时器,即定时器0和定时器1。
定时器可以工作在模式0、模式1、模式2和模式3。
三、实验内容及步骤1. 实验内容一:外部中断实验(1)实验目的:掌握外部中断的使用方法,实现按键控制LED灯的亮灭。
(2)实验步骤:- 使用Keil for 8051编译器创建项目。
- 根据电路原理图连接电路。
- 编写程序,配置外部中断,实现按键控制LED灯的亮灭。
2. 实验内容二:定时器中断实验(1)实验目的:掌握定时器中断的使用方法,实现LED灯闪烁。
(2)实验步骤:- 使用Keil for 8051编译器创建项目。
- 根据电路原理图连接电路。
- 编写程序,配置定时器中断,实现LED灯闪烁。
3. 实验内容三:定时器与外部中断结合实验(1)实验目的:掌握定时器与外部中断结合使用的方法,实现按键控制LED灯闪烁频率。
(2)实验步骤:- 使用Keil for 8051编译器创建项目。
- 根据电路原理图连接电路。
- 编写程序,配置定时器中断和外部中断,实现按键控制LED灯闪烁频率。
四、实验结果与分析1. 外部中断实验:成功实现了按键控制LED灯的亮灭。
当按下按键时,LED灯亮;松开按键时,LED灯灭。
2. 定时器中断实验:成功实现了LED灯闪烁。
LED灯每隔一定时间闪烁一次,闪烁频率可调。
3. 定时器与外部中断结合实验:成功实现了按键控制LED灯闪烁频率。
外部中断实验总结
外部中断实验总结一、实验目的本次实验旨在通过外部中断的方式,实现对单片机的中断响应,并掌握中断程序设计方法。
二、实验原理外部中断是指由单片机外部硬件引脚产生的中断信号,当引脚电平发生变化时,单片机会立即停止当前执行的程序,跳转到相应的中断服务程序中执行。
在本次实验中,我们使用了8051单片机的INT0和INT1两个外部中断引脚。
三、实验器材1. 8051单片机开发板2. 电脑(用于编写和下载程序)3. LED灯4. 按钮开关四、实验步骤1. 编写程序:首先需要编写一个可以响应外部中断的程序。
我们可以通过设置相应寄存器来使单片机响应INT0和INT1两个引脚上的信号。
例如,在P3口接入一个按键开关,并将其与INT0引脚相连,则当按键被按下时,INT0引脚会被拉低,从而触发一个外部中断。
此时单片机会跳转到相应的ISR(Interrupt Service Routine)函数中执行。
2. 烧录程序:将编写好的程序烧录到8051芯片上。
这可以通过专门的烧录器或者通过串口下载实现。
在烧录程序之前,需要将引脚连接好,并确定中断触发方式(上升沿触发或下降沿触发)。
3. 测试程序:将LED灯连接到单片机的某个IO口上,以便测试程序是否可以正常响应外部中断。
当按下按钮开关时,LED灯应该会亮起。
五、实验结果通过本次实验,我们成功地实现了对8051单片机的外部中断响应,并掌握了中断程序设计方法。
在实验过程中,我们还学习了如何使用按键开关和LED灯来测试程序的正确性。
六、实验总结本次实验是一项非常基础的单片机实验,但是它对于初学者来说非常重要。
通过这个实验,我们不仅学会了如何编写一个简单的中断服务程序,还学会了如何使用按键开关和LED灯来测试程序的正确性。
这些知识对于今后的单片机编程工作都非常有帮助。
同时,在本次实验中我们也遇到了一些问题,例如引脚连接不正确等等,在解决这些问题的过程中也增加了我们对单片机原理和电路设计方面的认识。
8051单片机实验
新建项目
项目窗口
(4) 单击快捷工具栏中的“编译”图标(或 F9键),对刚才保存的项目进行编译和连接, 如图所示。
在编译之前,软件会自动将项目中的源程 序文件存盘。如果发生编译连接错误,则 在“信息窗口”中报告如图所示编译连接 出错信息。此时可将鼠标指向“信息窗口” 中的错误行并双击鼠标左键,光标将自动 跳转到编辑窗口中源程序的相应出错位置, 便于用户修改。修改源程序文件并保存之 后,重新进行第(3)步。
从P1.0输出不同频率的方波信号,经放 大滤波后驱动扬声器发声。声音的频率由延 时程序控制。实验电路如下图所示,执行程 序后,扬声器将发出一定频率的声音。
程序参考流程 如右图所示:
复习思考题
复习8051单片机并行I/O端口特性, P0~P3口各有什么特点?
为什么说P1口是“准双向口”?在实 验中用P1口输入时如果不先向P1口写入 “1”而直接读取引脚,会出现什么现象?
② 模拟交通信号灯控制。
8051单片机中断系统
8051单片机有5个中断源,有两个 中断优先级,高优先级的中断源可以中 断低优先级的服务程序,反之不行。当 两个同样级别的中断申请同时到来时, 则按一个固定的查寻次序来处理中断响 应。
中断源 入口地址
外部中断0 0003H
定时/计数器0 000BH
外部中断1 0013H
D7 D6 D5 D4 D3 D2 D1 D0
EA
ES ET1 EX1 ET0 EX0
EA:中断总允许位。 EA=0,CPU关闭所有的中断申请; EA=1,允许各个中断源的中断申请,但 还要取决于各中断源中断允许控 制位的状态。
ES:串行口中断允许位。 ES=1,串行口开中断; ES=0,串行口关中断。
实现中断功能_实验报告(3篇)
第1篇一、实验目的1. 理解中断的概念和作用。
2. 掌握单片机中断系统的基本原理和配置方法。
3. 学会编写中断服务程序,实现外部中断和定时器中断的应用。
4. 通过实验加深对中断系统在实际应用中的理解。
二、实验原理中断是计算机系统中一种重要的机制,它允许CPU在执行程序过程中,响应某些外部或内部事件,从而暂停当前程序的执行,转而处理这些事件。
单片机的中断系统主要包括外部中断和定时器中断两种类型。
三、实验环境1. 单片机:80C512. 开发环境:Keil for 80513. 仿真软件:Proteus4. 实验电路:外部按钮电路、LED灯电路、定时器电路四、实验内容1. 外部中断实验(1)实验目的:学习外部中断的工作原理,掌握外部中断的配置和编程方法。
(2)实验步骤:a. 创建80C51固件项目,并在Keil中编写程序。
b. 配置外部中断源,设置中断优先级。
c. 编写外部中断服务程序,实现LED灯的闪烁。
d. 在Proteus中搭建实验电路,并进行仿真测试。
(3)实验结果:当按下按钮时,LED灯闪烁,松开按钮后LED灯熄灭。
2. 定时器中断实验(1)实验目的:学习定时器中断的工作原理,掌握定时器中断的配置和编程方法。
(2)实验步骤:a. 创建80C51固件项目,并在Keil中编写程序。
b. 配置定时器工作模式,设置定时时间。
c. 编写定时器中断服务程序,实现LED灯的闪烁。
d. 在Proteus中搭建实验电路,并进行仿真测试。
(3)实验结果:定时器中断触发后,LED灯闪烁,达到设定时间后停止闪烁。
五、实验分析1. 外部中断实验分析通过外部中断实验,我们了解了外部中断的工作原理和配置方法。
在实验中,我们设置了外部中断源,并编写了中断服务程序,实现了LED灯的闪烁。
这表明外部中断可以有效地响应外部事件,并执行相应的操作。
2. 定时器中断实验分析通过定时器中断实验,我们掌握了定时器中断的配置和编程方法。
8051特殊功能寄存器详细说明
PSW(P rogram State Word)程序状态字控制寄存器程序状态寄存器PSW是计算机系统的核心部件—控制器的一部分,可位寻址,字节地址为D0H,单元地址是D0H~D7H。
PSW寄存器结构各Bit D7D6D5D4D3D2D1D0 PSW CY AC F0RS1RS0OV USR P 位地址D7H D6H D5H D4H D3H D2H D1H D0H各控制位功能介绍如下:1)CY:进位标志位,作用有两种:(1)算术运算中进位或借位时,CY=1。
(2)作为布尔代数位处理的累加器。
2)AC:辅助进位标志位,算术运算时低半字节有进位或借位时,AC=1。
3)F0:通用标志位4)RS1:寄存器组选择位高位,RS1与RS0选择四组工作寄存器,每组分别为8个寄存器(R0~R7),如RS1=0、RS0=0,则R0~R7对地址为00H~07H,如RS1=0、RS0=1,则R0~R7对地址为08H~0FH,四组寄存器地址从00H~1FH。
5)RS0:寄存器组选择位低位。
6)OV:溢出标志位,当进行正负号数值的加减运算时,如结果超出7位或2的补码(+27至-128)时,OV=17)USR:用户定义标志位,保留。
8)P:奇偶标志位,当累加器中有奇数个1,则P=1;偶数个1,则P=0.在串行传输时可用来检测传送是否有错。
PCON(Power Control Register)寄存器PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,在CHMOS型单片机中,除SMOD位外,其他位均为虚设的,SMOD是串行口波特率倍增位,当SMOD=1时,串行口波特率加倍。
系统复位默认为SMOD=0。
单元地址是87H,其结构格式如下:PCON电源管理寄存器结构各Bit D7D6D5D4D3D2D1D0 PCON SMOD------------------GF1GF0PD IDL各控制位功能介绍如下:1)SMOD:该位与串口通信有关。
8051单片机的中断响应过程解析
8051单片机的中断响应过程解析8051的CPU在每个机器周期期间,顺序采样每个中断源,CPU在下一个机器周期按优先级顺序查询中断标志,如查询到某个中断标志为1,将在下一个机器周期期间按优先级来进行中断处理。
在下列任一种情况存在时,中断申请将被封锁。
1、CPU正在执一个同级或高级的中断服务程序2、当前机器周期不是当前指令周期的最后一个机器周期,即要保证把当前指令执行完。
CPU响应中断,由硬件自动将相应的中断矢量地址装入程序程序计数器PC,转入该中断服务程序进行处理。
对于有些中断源,CPU在响应中断后会自动清除中断标志,如定时器溢出标志TF0,TF1,以及部中断标志IE0,IE1。
而有些中断标志,不会自动清除,只能由用户用户软件清除,如串行口接收发送中断标志RI,T1。
CPU执行中断服务程序之前,自动将程序计数器PC内容压入堆栈保护,然后将对应的中断矢量装入程序计数器PC,使程序转向该中断矢量地址单元中,以执行中断服务程序,中断服务程序从矢量地址开始执行,一直到返回指令“RETI”为止。
“RETI”指令的操作,一方面告诉中断系统中断服务程序以执行完毕,另一方面把原来压入堆栈保护的断电地址从栈顶弹出,装入程序计数器PC,使程序返回被中断的程序断点处,以便继续执行。
外部中断响应时间外部中断INT0和INT1的电平在每个机器周期,经反向后锁存到IE0和IE1的标志位,CPU在下一个机器周期才会查询到新置入的IE0和IE1,这时如果满足响应条件,CPU响应中断时,要用二个机器周期执行一条硬件长调用指令“LCALL”。
所以,从产生外部中断到开始执行中断程序至少需要三个完整的机器周期。
如果在中断申请时,CPU正在长指令,如乘法和除法指令等四周期指令,则额外等待时间增加三个周期;若正在执行“RETI”指令或访问IE,IP的指令,则额外等待时间又增加两个周期。
综上估计,在单一中断系统里,外部中断响应时间约在3-8个机器周期之间。
51单片机外部中断实验
实验6 外部中断实验(仿真部分)一、实验目的1. 学习外部中断技术的基本使用方法。
2. 学习中断处理程序的编程方法。
二、实验内容在INT0和INT1上分别接了两个可回复式按钮,其中INT0上的按钮每按下一次则计数加一,其中INT1上的按钮每按下一次则计数减一。
P1.0~ P1.3接LED 灯,以显示计数信号。
三、实验说明编写中断处理程序需要注意的问题是:1.保护进入中断时的状态,并在退出中断之前恢复进入时的状态。
2.必须在中断处理程序中设定是否允许中断重入,即设置EX0位。
3.INT0和INT1分别接单次脉冲发生器。
P1.0~ P1.3接LED 灯,以查看计数信号.四、硬件设计利用以下元件:AT89C51、BOTTON 、CAP 、CAP-POL 、CRYSTAL 、RES 、NOT 、LED-Yellow 。
设计出如下的硬件电路。
晶振频率为12MHz 。
五、参考程序框图主程序框图 INT0中断处理程序框图开始 设置有关中断控制寄存器开外中断INT0、INT1 设置P1.0~ 3初始状态 显示循环等待中断 INT0中断入口 计数加一 保护现场 恢复现场 中断返回实验6 外部中断实验(实验箱部分)1.实验目的认识中断的基本概念学会外部中断的基本用法学会asm和C51的中断编程方法2.实验原理图按键中断【硬件接法】P1.1控制LED,低电平点亮P3.3/INT1接按键,按下时产生低电平【运行效果】程序工作于中断方式,按下按键K2后,LED点亮,1.5秒后自动熄灭。
8051单片机有/INT0和/INT1两条外部中断请求输入线,用于输入两个外部中断源的中断请求信号,并允许外部中断源以低电平或下降沿触发方式来输入中断请求信号。
/INT0和/INT1中断的入口地址分别是0003H和0013H。
TCON寄存器(SFR地址:88H)中的IT0和IT1位分别决定/INT0和/INT1的触发方式,置位时为下降沿触发,清零时为低电平触发。
8051单片机扩展外部中断源的设计方法
尘 源 姜 培 刚 李 晓 阳 邬 法 磊 ( 岛理工大学机械工程学院, 青 山东 青岛 2 63 ) 60 3
摘 要
85 0 1系列单 片机 仅 有 IT N 0和 IT N 1两个 外 部 中断 源 , 这很 难 满足 实 际应 用 中的 要 求 , 在很 多情 况 下 需要 对 8 5 0 1单 片 机 的 外部 中断 源 进行 扩展 。叙 述 对 8 5 0 1单 片机 的 三 种 扩 展 方 法 , 以及 各 自的 实现 方 法和 优 缺 点 , 对 利 用 8 5 A 进 行 外 针 29 部 扩 展 详 细 叙 述 了 8 5 A功 能 和 使 用 方 法 , 给 出其 在 8 5 29 并 0 1单 片机 中 实现 外部 中断 源扩 展 的方 法 。 关 键 词 :0 1 片 机 ,29 , 85 单 8 5 A 扩展 , 中断 源
85 0 1系 列单 片机 的 中 断 系 统 中只 有 两 个 外 部 中 断 源 IT N0 和 IT , 在 某 些 复 杂 的 控 制 系 统 工 程 中 是 不 够 用 的 , 时 就 N 1这 这 需 要 对 外部 中断 进 行 扩 展 。 对 85 O 1系 列 中 断 系 统 扩 展 外 部 中 断可 以采 取 以 下 3种 方
法:
1 2 9 . 8 5 A的 结 构 2
ItI 2 9 的方 框 图 如 图 1 示 。 ne 8 5 A 所
1 借 用 没 有使 用 的 内部 定 时/ 数 器 溢 出 中 断来 扩 展 。 ) 计 2 采 用 查 询 法 扩 展 中断 , 把 各 个 中 断 源 通 过 硬 件 或 非 门 ) 即 引 入 到 单 片 机 外 部 中 断 源 输入 端 IT N 0或 IT , 同时 再 把 外 部 N 1 中断 源 送 到单 片机 的 IO 端 口 , 样 当外 部 中 断 时 , 过 “ 非 ” / 这 通 或
微机原理及单片机应用技术第8章 80C51的中断与定时计数器
定时/计数器的结构
T1引脚
TH1
TL1
TH0
T0引脚
TL0
机器周 期脉冲
TH1、TL1
内部总线
TH0、TL0
TF1 TR1 TF0 TR0 GATE C/T M1 M0 GATE C/T M1 M0
TCON
TMOD
TCON
外部中断相关位
T1方式
T0方式
TMOD
2020/10/27
21
计数脉冲源
定时/计数器的工作原理
76543210
TCON TF1 TR1 TF0 TR0
字节地址:88H
TFx:Tx溢出标志位。响应中断后TFx有硬件自动清0。 用软件设置TFx可产生同硬件置1或清0同样的效果。
TRx:Tx运行控制位。置1时开始工作;清0时停止工作。 TRx要由软件置1或清0(即启动与停止要由软件控制)。
2020/10/27
2020/10/27
24
定时/计数器的控制示意图
M1M0 工作方式
说
明
00 方式0 13位定时/计数器
01 方式1 16位定时/计数器
10 方式2 8位自动重装定时/计数器
11
方式3
T0分成两个独立的8位定时/计数器; T1此方式停止计数
注意:TMOD不能进行位寻址
2020/10/27
26
控制寄存器TCON
第八章 80C51的中断系统与定时计数器
8.1 80C51单片机的中断系统 8.2 80C51中断处理过程 8.3 80C51单片机的串行口
8.1 80C51单片机的中断系统
5.1.1 80C51中断系统的结构
中断的概念
与子程序调用相似 但有本质的区别
8051单片机引脚功能介绍
8051单片机引脚功能介绍单片机(Microcontroller)是一种集成了处理器、内存和输入/输出设备等基本功能的微型计算机系统。
而在单片机中,引脚(Pin)则是连接外部电路和单片机内部芯片的桥梁,具有高度的重要性。
本文将从8051单片机引脚的功能介绍、分类以及配置等方面进行论述,以帮助读者更好地理解和应用8051单片机引脚。
引脚功能介绍8051单片机共有40个引脚,每个引脚都有特定的功能。
下面是对每个引脚的功能进行详细介绍。
P0口(引脚32-39):P0是一个8位的双向IO口,即可以作为输入引脚,也可以作为输出引脚。
在默认情况下,P0口作为输入口;当需要将P0口作为输出口时,可以通过设置特定的寄存器将其配置为输出引脚。
P1口(引脚1-8):P1是一个8位的双向IO口,与P0口类似,可以作为输入引脚和输出引脚。
与P0口不同的是,P1口所有的引脚默认都是输出引脚,需要将其配置为输入引脚时,需要设置特定的寄存器。
P2口(引脚21-28):P2是一个8位的双向IO口。
和P0、P1口类似,可以作为输入引脚和输出引脚。
需要注意的是,P2口的引脚2和引脚3有特殊功能,可以用作外部中断引脚。
P3口(引脚10-17):P3是一个8位的双向IO口,除了可以作为输入引脚和输出引脚外,还可以作为外部中断引脚。
与P2口不同的是,P3口的所有引脚默认都是输入引脚,需要将其配置为输出引脚时,需要设置特定的寄存器。
RST(引脚9):RST引脚是用于复位8051单片机的引脚,当RST 引脚接收到低电平信号时,单片机将会被复位。
ALE/PROG(引脚30):ALE/PROG引脚既可以作为地址锁存使能引脚,也可以作为编程时的数据传输引脚。
EA/VPP(引脚31):EA/VPP引脚是扩展程序存储器访问使能引脚,用于选择程序存储器的地址空间。
XTAL1/CLKI(引脚18)和XTAL2/CLKO(引脚19):这两个引脚是外部晶振的输入和输出引脚。
8051单片机的引脚及其功能
8051单片机的引脚及其功能1.P0.0-P0.7:这是一个8位的双向I/O口,也可以用作外部数据总线的低8位,或者用作低8位地址总线。
可以通过设置寄存器的方式来控制引脚的输入输出状态。
2.P1.0-P1.7:这也是一个8位的双向I/O口,但是相比P0更加通用,可以使用多种面向应用的特殊功能。
3.P2.0-P2.7:和P1相似,也是一个8位的双向I/O口,可以使用多种特殊功能。
4.P3.0-P3.7:和P1,P2相似,也是一个8位的双向I/O口,可以使用多种特殊功能。
5.RST:复位引脚,低电平有效。
当RESET引脚为低电平时,单片机将处于复位状态,所有寄存器将被清零,程序将从地址0开始执行。
6.ALE/PROG:地址锁存使能引脚/编程使能引脚。
ALE用于片内外设的地址锁存,PROG用于外部EPROM/ROM的编程操作。
7.PSEN:程序存储器使能引脚,用于连接外部程序存储器,一般是ROM或EPROM,当PSEN引脚为低电平时,程序存储器将被选中。
8.EA/VPP:外部访问使能引脚/编程供电引脚。
EA用于选择片外扩展的程序存储器,VPP用于对外部EPROM/ROM进行编程。
9.XTAL1:外部晶体振荡器输入引脚,用于连接外部的高频晶体振荡器。
10.XTAL2:外部晶体振荡器输出引脚,用于连接外部的高频晶体振荡器。
11.RXD:串行接收引脚,用于接收串行通信数据。
12.TXD:串行发送引脚,用于发送串行通信数据。
13.INT0:外部中断0引脚,可以通过该引脚接收外部中断信号。
14.INT1:外部中断1引脚,可以通过该引脚接收外部中断信号。
15.T0:定时器0引脚,可以通过该引脚连接外部时钟源。
16.T1:定时器1引脚,可以通过该引脚连接外部时钟源。
17.WR:外部数据存储器写使能引脚,用于连接外部数据存储器,一般是RAM。
18.RD:外部数据存储器读使能引脚,用于连接外部数据存储器,一般是RAM。
ATC8051单片机资料
ATC8051单片机资料注释:1: 状态寄存器PSWCY:进位标志位AC:辅助进位标志位F0:通用标志位(或用户标志位)RS1:工作寄存器组选择位高位RS0:工作寄存器组选择位低位OV:溢出标志位USR:用户定义标志位P:奇偶校验位2.电源控制寄存器PCON (不可位寻址)SMOD:串行口通信波特率控制位,置位使波特率翻倍GF1:通用标志位GF0:通用标志位PDWN:低功耗标志位,置位有效IDLE:空闲标志位, 置位有效3.中断优先级寄存器IPPT2:定是器2中断优先级(中断向量:002BH)PS:串行通信中断优先级(中断向量:0023H)PT1: 定是器1中断优先级(中断向量:001BH)PX1: 外部中断1优先级(中断向量:0013H)PT0: 定是器0中断优先级(中断向量:000BH)PX0: 外部中断0优先级(中断向量:0003H)(上电复位中断向量:0000H)4.中断使能寄存器IEEA:总中断使能标志位,置位有效ET2:定时器2中断使能ES:串行通信中断使能ET1:定时器1中断使能EX1:外部中断1使能ET0:定时器0中断使能EX0:外部中断0使能5.定时器控制寄存器TCONTF1:定时器1溢出中断标志位,需软件清零TR1:定时器1控制位,置位定时器1工作TF0:定时器0溢出中断标志位,需软件清零TR0:定时器0控制位,置位定时器0工作IE1:外部中断1触发标志位,当检测到P3.3有从高到低电平跳变时置位,处理中断后,由硬件清零IT1:中断1触发方式控制位,置位时为跳变触发,复位时位低电平出发IE0:外部中断0触发标志位,当检测到P3.2有从高到低电平跳变时置位,处理中断后,由硬件清零IT0:中断0触发方式控制位,置位时为跳变触发,复位时位低电平出发6.定时器工作方式寄存器TMOD(不可位寻址)GATE: GATE=0为软件控制,定时(计数器无效)仅受TR1/0控制; GATE=1为硬件控制, 定时(计数器无效)受TR1/0和INT1/0双重控制,都置位才有效.这在测量INT1/0脚脉冲宽度时很有用,当然INT1/0脚不作外部中断用C/T: 定时/计数器方式选择位:C/T=1,计数器方式, C/T=0,定时器方式M1:模式选择高位M0:模式选择低位四种工作方式(预置值计算:用最大计数量减去需要的计数次数即可.): 软件控制,工作方式0:13位定时/计数方式,因此,最多可以计到2的13次方,也就是8192次工作方式1:16位定时/计数方式,因此,最多可以计到2的16次方,也就是65536次。
第4章8051单片机的中断系统复习
串行口接收中断标志。接收完一帧,由硬件置位。 响应中断后,必须用软件清0。
Hale Waihona Puke 8第四章 8051单片机的中断系统
2. 中断允许控制
中断允许和禁止由中断允许寄存器 IE ( A8H )控制。 IE 中 各位设置:为0时,禁止中断;为 1时,允许中断。
中断允许位。当 EA=1,允许所有 中断开放;当EA =0时,屏蔽所有 中断。
1).由硬件自动使标志位复“0”(即撤除),它们是:定时器0或1, 外部中断0或1 2). 中断系统不予以自动撤除,是串行口的中断请求标志。 20
第四章 8051单片机的中断系统 实验三电路如下,用中断方法实现LED1和LED2闪亮。
B1 LED1
LED2
21
B2
第四章 8051单片机的中断系统 编程如下:
中断程序
INT1:
第四章 8051单片机的中断系统 中断响应的条件:
1.必须没有同级或更高级别的中断正在得到响应,如果有的话, 则必须等CPU为它们服务完毕,返回主程序并执行一条指令之后才 能响应新的中断申请。 2.必须要等当前正在执行的指令执行完毕以后,CPU才能响应 新的中断申请。 3.若正在执行的指令是RETI(中断返回),则必须要在执行完 该指令以及紧随其后的另外一条指令之后才可以响应新的中断申请。
10
第四章 8051单片机的中断系统 在同一优先级内有一个由内部查询序列确定的优先级结构。其 排列如下: 中断源 中断优先级 最高 ⒈ 外部中断0 ⒉ 定时器T0中断 ⒊ 外部中断1 ⒋ 定时器T1中断 ⒌ 串行口中断 最低 中断嵌套: 优先级高的事件可以中断 CPU 正在 处理的低级的中断服务程序,待完成了 高级中断服务程序之后,再继续被打断 的低级中断服务程序。这是中断嵌套问 题。 11
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.4 实验四外部中断实验2.4.1 实验目的与要求通过本实验加深对8051单片机中断系统的理解,学习外部中断的基本使用方法及相关编程。
要求:①用单次脉冲申请中断,在中断处理程序中使P1.0的输出状态发生反转,并通过发光二极管观察P1.0的电平。
②模拟交通信号灯控制。
2.4.2 8051单片机中断系统简介8051单片机有5个中断源,有两个中断优先级,高优先级的中断源可以中断低优先级的服务程序,反之不行。
当两个同样级别的中断申请同时到来时,则按一个固定的查寻次序来处理中断响应。
8051单片机的5个中断源及其优先级次序如表2-6所示。
表2-6 8051单片机的中断源8051单片机没有专门的开中断和关中断指令,中断的开放和关闭是由特殊功能寄存器IE来实现两级控制的。
所谓两级控制是指在寄存器IE中有一个总允许位EA,当EA=0时,就关闭了所有的中断申请,CPU不响应任何中断申请。
而当EA=1时,对各中断源的申请是否开放,还要看各中断源的中断允许位的状态。
中断允许寄存器IE的地址为A8H,其中各位都可以位寻址,位地址为A8H~AFH。
总允许位EA和各中断源允许位在IE寄存器中的分布如下:D7 D6 D5 D4 D3 D2 D1 D0其中各控制位的含义如下:EA:中断总允许位。
EA=0时,CPU关闭所有的中断申请,只有EA=1时,才能允许各个中断源的中断申请,但还要取决于各中断源中断允许控制位的状态。
ES:串行口中断允许位。
ES=1,串行口开中断,ES=0,串行口关中断。
ET1:定时/计数器T1的溢出中断允许位。
ET1=1允许T1溢出中断,ET1=0则不允许T1溢出中断。
EX1:外部中断1(INT1)的中断允许位。
ET1=1允许外部中断1申请中断,EX1=0则不允许中断。
ET0:定时/计数器T0的溢出中断允许位。
ET0=1允许中断,ET0=0不允许中断。
EX0:外部中断0(INT0)的中断允许位。
EX0=1允许中断,EX0=0不允许中断。
8051单片机在复位时,IE各位的状态都为“0”,所以CPU是处于关中断的状态。
对于串行口来说,其中断请求在被响应之后,CPU不能自动清除中断标志,在这些情况下要注意用指令来实现中断的开放或关闭,以便进行各种中断处理。
8C51单片机的中断优先级控制比较简单,每个中断源的优先级别由特殊功能寄存器IP 来管理。
IP寄存器的地址为B8H,格式如下:其中各位的含义如下:PS:串行口中断优先级控制位。
PT1:定时器/计数器T1中断优级控制位。
PX1:外部中断INT1中断优先级控制位。
PT0:定时器/计数器T0中断优先级控制位。
PX0:外部中断INT0中断优先级控制位。
IP寄存器中若某一个控制位置“1”,则相应的中断源就规定为高优先级中断,反之,若某一个控制位置“0”,则相应的中断源就规定为低优先级中断。
IP寄存器的地址为B8H,其中各控制位也是可以位寻址的,位地址为B8H-BCH。
外部中断触发方式通过特殊功能寄存器TCON(地址为88H)控制,TCON中各控制位分布如下:D7 D6 D5 D4 D3 D2 D1 D0其中各控制位的含义如下:IT0:选择外中断INT0的中断触发方式。
IT0=0为电平触发方式,低电平有效。
IT0=1为负边沿触发方式,INT0脚上的负跳变有效。
IT0的状态可以用指令来置“1”或清“0”。
IE0:外中断INT0的中断申请标志。
当检测到INT0上存在有效中断申请时,由硬件使IE0置位。
当CPU转向中断服务程序时,由硬件清“0”IE0中断申请标志。
IT1:选择外中断INT1的触发方式(功能与TI0类似)。
IE1:外部中断INT1的中断申请标志(功能与IE0 类似)。
TF0:定时/计数器T0溢出中断申请标志。
当T0溢出时,由内部硬件将TF0置“1”,当CPU转向中断服务程序时,由硬件将TF0清“0”,从而清除T0的中断申请标志。
TF1:定时器1溢出中断申请标志(功能与TF0相同)。
可见定时/计数器溢出中断和外部中断的申请标志,在CPU响应中断之后能够自动撤除。
8051单片机在接收到中断源发来的中断申请以后,先把这些申请锁定在各自的中断标志位中,然后在下一个机器周期按表2-5规定的内部优先顺序和中断优先级分别来查询这些标志,并在一个机器周期之内完成检测和优先排队。
响应中断的条件有三个:(1)必须没有同级或更高级别的中断正在得到响应,如果有的话,则必须等CPU为它们服务完毕,返回主程序并执行一条指令之后才能响应新的中断申请。
(2)必须要等当前正在执行的指令执行完毕以后,CPU才能响应新的中断申请。
(3)若正在执行的指令是RETI(中断返回)或是任何访问IE寄存器或IP寄存器的指令,则必须要在执行完该指令以及紧随其后的另外一条指令之后才可以响应新的中断申请。
CPU响应中断后将自动跳转到中断源的入口地址开始执行程序,每个中断源都有其固定的入口地址,它们的处理过程也有所区别。
一般情况下,中断处理包括两个部分:一是保护现场,二是为中断服务。
所谓保护现场就是将需要在中断服程序中使用而又不希望破坏其中原来内容的工作寄存器压入堆栈中保护起来,等中断服务完成后再从堆栈中弹出以恢复原来的内容。
通常需要保护的寄存器有PSW、A以及其他工作寄存器。
在编写中断服务程序时,要注意以下几点:(1)各中断源的入口地址之间仅相隔8个单元,如果中断服务程序的长度超过8个地址单元时,应在中断入口地址处安排一条转移指令,转到其他有足够空余存储器单元的地址空间。
(2)若在执行当前中断服务程序时需要禁止更高级中断源,则要用软件指令关闭中断,在中断返回之前再开放中断。
(3)在保护和恢复现场时,为了不使现场信息受到破坏或造成混乱,保护现场之前应关中断,若需要允许高级中断,则应在保护现场之后再开中断。
同样在恢复现场之前也应先关中断,恢复现场之后再开中断。
(4)及时清除那些不能被硬件自动清“0”的中断请求标志,以免产生错误的中断。
4.4.3 实验内容1 采用外部中断INT0触发P1.0的输出状态反转在实验系统上如图2.28和表2-7所示连线。
P1.0接LED灯, INTO(P3.2)端接单脉冲发生器。
执行如下程序,每按一次单脉冲按钮,注意观察LED的状态。
本例中断服务程序长度仅7个字节,可以直接从入口地址开始编写,如果中断服务程序较长,则应在中断入口放一条长转移指令,跳转到真正的服务程序地址。
图2.28实验程序清单如下。
ORG 0000H ;复位入口LJMP STARTORG 0003H ;外部中断INT0入口INT0: ;INT0中断服务程序PUSH PSW ;保护现场CPL P1.0 ;取反P1.0POP PSW ;恢复现场START:CLR P1.0MOV TCON, #01H ;外部中断INT0, 下降沿触发MOV IE, #81H ;开中断LJMP $END2 采用外部中断模拟交通信号灯控制本实验模拟交通信号灯控制,一般情况下正常显示,有急救车到达时,两个方向交通信号灯全红,以便让急救车通过。
设急救车通过路口时间为10秒,急救车通过后,交通恢复正常,采用单脉冲申请外部中断,表示有急救车通过。
在实验系统上如表2-8所示连线,P1.0~P1.5接LED灯, INTO(P3.2)端接单脉冲发生器。
执行如下程序,每按一次单脉冲按钮,注意观察LED的状态。
实验程序清单如下。
FLASH EQU 0 ;LED状态STOP EQU 1SR EQU P1.0 ;南北红灯SY EQU P1.1 ;南北黄灯SG EQU P1.2 ;南北绿灯ER EQU P1.3 ;东西红灯EY EQU P1.4 ;东西黄灯EG EQU P1.5 ;东西绿灯ORG 0000H ;复位入口LJMP STARTORG 0003H ;外部中断INT0入口SETB STOP ;南北, 东西均红灯RETISTART: MOV SP, #70MOV IE, #81H ;开中断SETB SR ;南北, 东西均红灯CLR SYCLR SGSETB ERCLR EYCLR EGCLR STOPLOOP: JB STOP, ALLREDSETB SR ;南北红灯, 东西绿灯 CLR SYCLR SGCLR ERCLR EYSETB EGMOV A, #20CALL DELAYJB STOP, ALLREDSETB SR ;南北红灯, 东西黄灯闪 CLR SYCLR SGCLR ERCLR EYCLR EGCLR FLASHMOV R7, #9LOOP1: MOV C, FLASHMOV EY, CMOV A, #1CALL DELAYCPL FLASHDJNZ R7, LOOP1JB STOP, ALLREDCLR SR ;南北绿灯, 东西红灯 CLR SYSETB SGSETB ERCLR EYCLR EGMOV A, #20CALL DELAYCLR SR ;东西红灯, 南北黄灯闪 CLR SYCLR SGSETB ERCLR EYCLR EGCLR FLASHMOV R7, #9LOOP2: MOV C, FLASHMOV SY, CMOV A, #1CALL DELAYCPL FLASHDJNZ R7, LOOP2LJMP LOOPALLRED:SETB SRCLR SYCLR SGSETB ERCLR EYCLR EGCLR STOPMOV A, #10CALL DELAYDELAY: MOV R1, #80H ; 延时子程序 MOV R0, #0DELAYLOOP:JB STOP, EXITDELAYDJNZ R0, DELAYLOOPDJNZ R1, DELAYLOOPDJNZ ACC, DELAYEXITDELAY:RETEND。