单片机串行口中断
MCS51的中断系统有几个中断源
.MCS51的中断系统有几个中断源?几个中断优先级?中断优先级是如何控制的?在出现同级中断申请时,CPU按什么顺序响应(按由高级到低级的顺序写出各个中断源)?各个中断源的入口地址是多少?答:MCS51单片机有5个中断源,2个中断优先级,中断优先级由特殊功能寄存器IP控制,在出现同级中断申请时,CPU按如下顺序响应各个中断源的请求:INT0、T0、INT1、T1、串口,各个中断源的入口地址分别是0003H、000BH、0013H、001BH、0023H。
3.MCS51系列单片机的内部资源有哪些?说出8031、8051和8751的区别。
答:MCS51系列单片机上有1个8位CPU、128B的RAM、21个SFR、4个并行口、1个串行口、2个定时计数器和中断系统等资源。
8031、8051和8751的区别是8031内无ROM;8051内有4KB的掩膜ROM;8751内有4KB的EPROM。
五、作图题(10分)用6264(8K*8)构成16K的数据存储系统。
要求采用线选法产生片选信号,并计算6264的地址范围答:WR接6264的WERD接6264的OEAB0---AB12接6264的A0---A12DB0—DB7接6264的D0—D7AB15、AB14分别接Y0和Y1地址:0000H---1FFFH;2000H---3FFFH六、设计题(1题13分;2题12分,共25分)1.某单片机控制系统有8个发光二极管。
试画出89C51与外设的连接图并编程使它们由左向右轮流点亮。
2.某控制系统有2个开关K1和K2,1个数码管,当K1按下时数码管加1,K2按下时数码管减1。
试画出8051与外设的连接图并编程实现上述要求1.某单片机控制系统有8个发光二极管。
试画出89C51与外设的连接图并编程使它们由右向左轮流点亮。
答:图 (5分) 构思 (3分)MOV A,#80H (1分)UP:MOV P1,A (1分)RR A (2分)SJMP UP (1分2.某控制系统有2个开关K1和K2,1个数码管,当K1按下时数码管加1,K2按下时数码管减1。
MCS-51单片机的中断系统
MCS-51单⽚机的中断系统单⽚机中断技术概述在任何⼀款事件驱动型的CPU⾥⾯都应该会有中断系统,因为中断就是为响应某种事件⽽存在的。
中断的灵活应⽤不仅能够实现想要的功能,⽽且合理的中断安排可以提⾼事件执⾏的效率,因此中断在单⽚机应⽤中的地位是⾮常重要的。
单⽚机中断(Interrupt)是硬件驱动事件,它使得CPU暂停当前的主程序,转⽽去执⾏⼀个中断服务⼦程序。
为了更形象地理解中断,下⾯以学⽣上⾃习时接电话为例阐述⼀下中断的概念。
单⽚机的中断系统有5个中断源、2个中断优先级,可实现两级中断服务程序嵌套。
如果单⽚机没有中断系统,单⽚机的⼤量时间可能会浪费在查询是否有服务请求发⽣的定时査询操作上。
采⽤中断技术完全消除了单⽚机在査询⽅式中的等待现象,⼤⼤地提⾼了单⽚机的⼯作效率和实时性。
单⽚机中断系统结构及中断控制中断系统结构图如图5-2所⽰。
由图5-2可见,MCS-51中断系统共有5个中断请求源:INT0——外部中断请求0,中断请求信号由INT0引脚输⼊。
定时/计数器T0计数溢出发出的中断请求。
INT1——外部中断请求1,中断请求信号由INT1引脚输⼊。
定时/计数器T1计数溢出发出的中断请求。
串⾏⼝中断请求。
中断优先级从⾼到底排列。
单⽚机如何知道有中断请求信号?是否能够响应该中断?若5个中断源请求信号同时到来,单⽚机如何响应?这些问题都可以由中断寄存器来解决。
单⽚机中断寄存器有中断标志寄存器TCON和SCON、中断使能寄存器IE和中断优先级寄存器IP,这些寄存器均为8位。
中断标志寄存器5个中断请求源的中断请求标志分别由TCON和SCON的相应位锁存,单⽚机通过这些中断标志位的状态便能知道具体是哪个中断源正在申请中断。
TCON寄存器TCON寄存器为定时/计数器的控制寄存器,字节地址为88H,可位寻址。
特殊功能寄存器TCON的格式如图5-3所⽰。
TCON各标志位功能如下。
TF1——定时/计数器T1的溢出中断请求标志位。
单片机原理及应用教程(C语言版)-第5章 MCS-51单片机的中断系统
5.2.5 中断允许控制
例5-1 假设允许INT0、INT1、T0、T1中断,试 设置IE的值。 (2)汇编语言程序 按字节操作: MOV IE,#8FH 按位操作: SETB EX0 ;允许外部中断0中断 SETB ET0 ;允许定时器/计数器0中断 SETB EX1 ;允许外部中断1中断 SETB ET1 ;开定时器/计数器1中断 SETB EA ;开总中断控制位
IP (B8H)
D7 —
D6 D5 D4 D3 D2 D1 D0 — PT2 PS PT1 PX1 PT0 PX0
PT2:定时器/计数器T2的中断优先级控制位 PT2设置1则T2为高优先级,PT2设置0则T2为 低优先级。 后面各位均是如此,设置1为高优先级,设置0 为低优先级,不再一一赘述。 PS:串行口的中断优先级控制位。 PT1:定时器/计数器1的中断优先级控制位。 PX1:外部中断1的中断优先级控制位。 PT0:定时器/计数器0的中断优先级控制位。 PX0:外部中断0的中断优先级控制位。
5.2.4 中断请求标志
4.定时器/计数器T2中断请求标志
T2CON D7 D6 D5 (C8H) TF2 EXF2 D4 D3 D2 D1 D0
EXF2:定时器/计数器2的外部触发中断请求标志 位。T2以自动重装或外部捕获方式定时、计数,当 T2EX(P1.1)引脚出现负跳变时,TF2由硬件置1, 向CPU请求中断,CPU响应中断后,EXF2不会被硬 件清0,需要在程序中以软件方式清0。
5.2.3 外中断触发方式
TCON格式如下:
D7 D6 D5 D4 D3 D2 D1 D0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
IT0=1,外中断0为下降沿触发 CPU在每一个机器周期的S5P2期间对P3.2引 脚采样,若上一个机器周期检测为高电平,紧挨着 的下一个机器周期为低电平,则使IE0置1。 IT1:外中断1触发方式控制位。功能同IT0
《单片机原理及应用》第6章 51单片机中断系统应用基础
• 姜志海 王蕾 姜沛勋 编著
• 电子工业出版社
第6章 51单片机中断系统应用基础
• 本章主要介绍中断系统的应用。 • 包括:
6.1 中断结构与控制 6.2 中断优先级与中断子程序 6.3 外部中断应用举例 6.4 实验与设计
6.1 中断结构与控制
5个中断源
• 外部中断:外部中断0 /INT0
6.2 中断优先级与中断子程序
• 优先级排列如下(从高到低): 外部中断0 定时器/计数器0溢出 外部中断1 定时器/计数器1溢出 串行口中断
6.3 外部中断应用示例
• 51单片机提供了2个外部中断源 : • 外部中断0请求,占用P3.2引脚,其中断请求号为0 • 外部中断1请求,占用P3.3引脚,其中断请求号为2 • 外部中断源的初始化时通过设置相应的特殊功能寄
注意:
和例题5-6的区别
修改:
(1)按3下S0,P1口的发光状态发生反转 (2)按一下,灯变为闪烁,按一下,灯全亮。
【例6-2】当S0动作时,P1.0端口的电平反向,当外S1 动作,P1.7端口的电平反向
• 修改:
• (1)S0控制P1.0—P1.3的灯,S1控制P1.4—P1.7的灯 。
• (2)按下S0后,点亮8只LED;按下S1后,变为闪烁状 态。
(3)IE寄存器中的EA、EX0、EX1位
• EA为中断允许总控制位;EX0、EX1为外 部中断0中断和外部中断1中断的中断允 许位。如:
• SETB EA;开放总的中断控制 • SETB EX0;允许外部中断0中断 • CLR EX1;禁止外部中断1中断
【例6-1】初始状态时低4位灯亮,高4位的灯灭,编程 实现按一下S0,P1口的发光状态发生反转。
单片机中断详解
Excellent handout template
Special lecture notes
中断控制
一、中断请求标志位 A、TCON中的中断标志位 TCON为定时器/计数器的控 制寄存器,字节地址为88H。
Excellent handout template
包含:
Special lecture notes
Excellent handout template
中断的概念
Special lecture notes
CPU正在执行程序时,单片机外部或内 部发生的某一事件,请求CPU迅速去处理。
CPU暂时中止当前的工作,转到中断服 务处理程序处理所发生的事件。
处理完该事件后,再回到原来被中止的 地方,继续原来的工作,这称为中断。
对应特殊功能寄存器TCON和 SCON的相应位。
下页为简表
Excellent handout template
Special lecture notes
MCS-51的中断系统——中断标志
中断源
INT0 T0 INT1 T1 串口1 TI RI
CPU
主 程 序
▪ 每一个中断源都有相应的中断标志位; ▪ 某一个中断源申请中断,相应中断标志位置1。
Excellent handout template
Special lecture notes
P140
Excellent handout template
●中断请求源
Special lecture notes
五个中断请求源 :
1 INT0*—外部中断请求0,由引脚 INT0*输入,中断请求标志为IE0。
实时处理
——CPU及时处理随机事件
单片机外部中断实验报告
单片机外部中断实验报告实验三外部中断实验报告班级:学号:姓名:教师:一、实验LI的1、掌握单片机外部中断的原理及过程。
2、掌握单片机外部中断程序的设计方法。
3、掌握单片机外部中断时中断方式的选择方法。
二、实验内容如下图所示,P3.2设为输入,P2设为输出位,连有8个发光二极管DPD8O每当发生外部中断时,发光二极管以向下流水灯的方式点亮。
分别选择边沿触发外部中断放是和电平触发外部中断方式两种。
三、编程提示1、P3 口是8位准双向口,具有双重功能:第一功能和P1 口一样,作为输入输出口,也有字节操作和位操作两种方式,每一位可分别定义为输入或输出;第二功能定义如下:P3. 0RXD串行输入口P3. 1TXD串行输出口P3. 2INTO外部中断0请求输入线P3. 3INT1外部中断1请求输入线P3.4TO定时器/计数器TO外部计数器脉冲输入线P3. 5T1定时器/计数器T1外部计数器脉冲输入线P3. 6WR外部数据存贮器写脉冲输出线P3. 7RD外部数据存贮器读脉冲输出线2、各中断服务程序入口地址:外部中断003H定时器/计数器T1溢出中断OBH外部中断113H定时器/计数器1BH串行口中断23H3、外部中断的产生条件中断允许寄存器IE:EAESET1EX1ET0EX0(1)外部中断源允许中断(中断0: EX0=l;中断1: EXl=l)o(2)CPU 开中断(EA二1)。
(3)外部中断方式CPU发出中断申请。
4、外部中断方式的选择控制TCOX:TF1TR1TF0TR0IE1IT1IE0IT0IT0是选择文字则外部中断0请求(INTO)边沿触发方式或电平触发方式的控制位。
前一方式IT0二1,后一方式IT0二0。
IT1是选择外部中断1请求(INT1)为边沿触发方式或电平触发方式的控制位。
前一方式IT1=1,后一方式ITl=0o当8031复位后,TCON被清0。
5、外部中断电路负脉冲作为中断请求信号时,为了保证中断的唯一性,必须加上消除开关抖动的电路或者去抖动延时程序,保证每次只产生单脉冲,构成边沿触发方式外部中断电路。
如何设置51单片机的中断优先级
在 MCS-51 单片机中断优先级中由中断优先级寄存器 IP 来高置的,IP 中某位设为 1,相应的中断就是高优先级,否则就是低优先级。 PS PT1 PX1 PT0 PX0 IP 优先级别寄存器各位介绍如下:
PS PT1 PX1 PT0 PX0
0 0 0 0 0 1 1 0
因此,最终,IP 的值就是 06H。 例:在上例中,如果 5 个中断请求同时发生,求中断响应的次序。 响应次序为:定时器 0->外中断 1->外中断 0->实时器 1->串行中 断。
Байду номын сангаас
PS:串行口中断优先级控制位。PS=1 设定串行口为高优先级中断;PS=0 为低优先级中断。 PT1:T1 中断优先级控制位。PT1=1 设定定时器 T1 为高优先级中断; PT1=0 为低优先级中断。 PX1:外部中断 1 优先级控制位。PX1=1 设定定时器外部中断 1 为高优先 级中断;PX1=0 为低优先级中断。 PT0:T0 中断优先级控制位。PT0=1 设定定时器 T0 为高优先级中断; PT0=0 为低优先级中断。 PX0:外部中断 0 优先级控制位。PX0=1 设定定时器外部中断 0 为高优先 级中断;PX0=0 为低优先级中断。 例:设有如下要求,将 T0、外中断 1 设为高优先级,其它为低优先级, 求 IP 的值。 IP 的首 3 位没用,可任意取值,设为 000,后面根据要求写就可以了
51单片机中断控制
计数个数与计数初值的关系为: X=216 -N
三、方式2 方式2为自动重装初值的8位计数方式。
TCON TF1 申请 中断 TR1 TF0 TR0 TH0 8位 D0 D7 溢出 1 TL0 &
≥1
TMOD T0引脚 0 1 M0 M1 C/T 0 机器周期 GATE M0 1 INT0引脚 M1 C/T GATE D7 D0
同一优先级中的中断申请不止一个时,则有中 断优先权排队问题。同一优先级的中断优先权排队, 由中断系统硬件确定的自然优先级形成,其排列如 所示:
设置52单片机的4个中断源,使他们的优顺序 为T1,INT1,INT0,T0.
IPH = 0X08; IP = 0X40; PT1 = 1; PX1 = 1;
≥1
TMOD T0引脚 1 1 0 0 0 M0 M1 C/T 机器周期 GATE M0 1 D0 INT0引脚 M1 C/T GATE D7 D0
定时器模式时有:N=t/ Tcy 计数初值计算的公式为: X=213 -N
定时器的初值还可以采用计数个数直接取补法获得。
计数模式时,计数脉冲是T0引脚上的外部脉冲。
设置为定时器模式时,加1计数器是对内部机器周期 计数(1个机器周期等于12个振荡周期,即计数频率 为晶振频率的1/12)。计数值N乘以机器周期Tcy就 是定时时间t 。 设置为计数器模式时,外部事件计数脉冲由T0或T1 引脚输入到计数器。在每个机器周期的S5P2期间采 样T0、T1引脚电平。当某周期采样到一高电平输入, 而下一周期又采样到一低电平时,则计数器加1,更 新的计数值在下一个机器周期的S3P1期间装入计数 器。由于检测一个从1到0的下降沿需要2个机器周期, 因此要求被采样的电平至少要维持一个机器周期。当 晶振频率为12MHz时,最高计数频率不超过1/2MHz, 即计数脉冲的周期要大于2 s。
单片机中断处理过程:中断响应 中断处理 中断返回详解
单片机中断处理过程:中断响应中断处理中断返回详
解
中断处理过程可分为中断响应、中断处理和中断返回三个阶段。
中断响应
中断响应是CPU 对中断源中断请求的响应,包括保护断点和将程序转向中断服务程序的入口地址(通常称矢量地址)。
中断响应过程
中断响应过程包括保护断点和将程序转向中断服务程序的入口地址。
首先,中断系统通过硬件自动生成长调用指令(LACLL),该指令将自动把断点地址压入堆栈保护(不保护累加器A、状态寄存器PSW 和其它寄存器的内容),然后,将对应的中断入口地址装入程序计数器PC(由硬件自动执行),使程序转向该中断入口地址,执行中断服务程序。
MCS-51 系列单片机各中断源的入口地址由硬件事先设定,分配如下:
中断源入口地址
外部中断00003H
定时器T0 中断000BH
外部中断10013H
定时器T1 中断001BH
串行口中断0023H
使用时,通常在这些中断入口地址处存放一条绝对跳转指令,使程序跳转到用户安排的中断服务程序的起始地址上去。
中断返回
中断返回是指中断服务完后,计算机返回原来断开的位置(即断点),继续执。
51单片机中的中断优先级总结
51单片机中的中断优先级总结这段时间编写51的控制板程序,两个大牛技术指导对51中断嵌套问题的看法不一样,后来亲自验证了一下,得到了一下的一些结论,发上来大家参考,表达不清的地方还望理解,呵呵。
51单片机的中断可嵌套,但至多支持二级嵌套。
51单片机的默认(此时的IP寄存器不做设置)中断优先级为:外部中断0 > 定时/计数器0 > 外部中断1 > 定时/计数器1 > 串行中断;但这种优先级只是逻辑上的优先级,当同时有几种中断到达时,高优先级中断会先得到服务。
这种优先级实际上是中断同时到达的情况下,谁先得到服务的优先级,而不是可提供中断嵌套能力的优先级。
这种优先级被称为逻辑优先级。
例如:当计数器0中断和外部中断1(优先级计数器0中断>外部中断1)同时到达时,会进入计时器0的中断服务函数;但是在外部中断1的中断服务函数正在服务的情况下,这时候任何中断都是打断不了它的,包括逻辑优先级比它高的外部中断0计数器0中断。
要实现真正的嵌套形式的优先级,也即高优先级中断服务可以打断低优先级中断服务的情况,必须通过设置中断优先级寄存器IP来实现;这种优先级被称为物理优先级。
例如:设置IP = 0x10,即设置串口中断为最高优先级,则串口中断可以打断任何其他的中断服务函数实现嵌套,且只有串口中断能打断其他中断的服务函数。
若串口中断没有触发,则其他几个中断之间还是保持逻辑优先级,相互之间无法嵌套。
回复于:2009-10-26 16:09:35只要硬件堆栈足够.嵌套没有级数限制。
#4楼得分:0回复于:2009-10-28 10:57:5851只有两个优先级所以只能有两级嵌套!SEI是AVR单片机的,他没有分优先级,所以支持这种嵌套!C51中interrupt和using的用法void INT0()interrupt 0 using 1{.........}interrupt 0 指明是外部中断0;interrupt 1 指明是定时器中断0;interrupt 2 指明是外部中断1;interrupt 3 指明是定时器中断1;interrupt 4 指明是串行口中断;using 0 是第0组寄存器;using 1 是第1组寄存器;using 2 是第2组寄存器;using 3 是第3组寄存器;51单片机内的寄存器是R0--R7(不是R0-R3)R0-R7在数据存储器里的实际地址是由特殊功能寄存器PSW里的RS1、RS0位决定的。
89C51中断控制寄存器
89C51中断寄存器详情中断系统:AT89C51单片机的中断系统由中断源、与中断控制有关的特殊功能寄存器、中断入口、顺序查询逻辑电路等组成,包括5个中断请求源、4个与中断控制有关的寄存器(IE、IP、TCON、SCON)、两个中断优先级及顺序查询逻辑电路。
1.中断源:中断源是指能引起中断、发出中断请求的装置或事件。
AT89C51有5个中断源○1外中断0(INT0):中断请求信号从单片机的P3.2脚输入○2外中断1(INT1):中断请求信号从单片机的P3.3脚输入○3内定时器/计数器0(T0):溢出中断○4内定时器/计数器1(T1):溢出中断○5串行口中断:包括串行收中断RI和串行发中断TI2.中断入口地址及内部优先权寄存器3.IE结构及各位名称、地址⑴EA是CPU中断总允许位。
EA=1,CPU开放中断;EA=0,CPU屏蔽所有的中断请求。
⑵ES是串行中断允许控制位。
ES=1,允许串行口中断;ES=0,禁止串行口中断。
⑶ET1是定时器/计数器1中断允许控制位。
ET1=1时允许定时器/计数器1中断;反之禁止。
⑷EX1是外部中断INT1中断允许位。
EX1=1时,允许外部中断1中断;反之依然。
⑸ET0是定时计数器T0的溢出中断允许位。
ET1=1时允许定时器/计数器0中断;反之禁止。
⑹EX0是外部中断INT0允许位。
EX1=1时,允许外部中断0中断;反之禁止。
89C51系统复位后,IE中各位均被清0,即禁止所有中断。
4.TCON(定时器/计数器和外中断控制寄存器):TCON的字节地址为88H,是可位寻址的特殊功能寄存器,其地址有低到高依次是88H ~ 8FH。
TCON结构及位名称、位地址TF1:T1溢出中断请求标志。
当定时器/计数器T1溢出时,由硬件置“1”,请求中断。
TF0:T0溢出中断请求标志。
当定时器/计数器T0溢出时,由硬件置“1”,请求中断。
IE1:外中断1中断请求标志。
当INT1引脚(P3.3)上出现有效的外部中断信号时,由硬件置“1”,请求中断。
单片机原理与应用试题及答案
单片机原理与应用试题及答案一、单选题(共64题,每题1分,共64分)1.MCS-51单片机的中断源全部编程为同级时,优先级最高的是( )。
A、/INT1B、TIC、串行接口D、/INT0正确答案:D2.MCS-51单片机的两个定时器/计数器作定时器使用时,其TMOD的D6或D2位应分别为( )。
A、D6=0,D2=0B、D6=1,D2=0C、D6=0,D2=1D、D6=1,D2=1正确答案:A3.用8051单片机的定时器/计数器T1作定时方式,用方式1,则工作方式控制字为( )。
A、10HB、05HC、50HD、01H正确答案:A4.某种存储器芯片是8KB*4/片,那么它的地址线是( )根。
A、11根B、12根C、15根(原为13)D、14根正确答案:C5.AT89C51单片机中,唯一一个用户可使用的16位寄存器是( )。
A、PSWB、ACCC、SPD、DPTR正确答案:D6.以下不是构成控制器部件的是( )。
A、程序计数器B、指令寄存器C、指令译码器D、存储器正确答案:D7.定时器/计数器T0的中断服务程序入口地址是( )。
A、0003HB、000BHC、0023HD、001BH正确答案:B8.在计算机中“A”是用( )来表示。
A、BCD码B、二—十进制C、余三码D、ASCII码正确答案:D9.单片机能直接运行的程序叫( )。
A、编译程序B、汇编程序C、源程序D、目标程序正确答案:D10.要使MCS-51单片机能够响应定时器/计数器T0中断,串行接口中断,它的中断允许寄存器IE的内部是( )。
A、98HB、84HC、42HD、92H正确答案:D11.P0口作输出用途时必须( )。
A、相应端口先置1B、相应端口先置0C、外接下拉电阻D、外接上拉电阻正确答案:D12.在C51语句的if 语句中,用作判断的表达式为( )。
A、关系表达式B、逻辑表达式C、算术表达式D、任意表达式正确答案:D13.MCS-51单片机内部有( )个定时器\计数器。
51单片机串行口中断服务程序
51单片机串行口中断服务程序单片机串行口中断服务程序是指在单片机进行串行通信时,当接收到数据时会触发中断,然后执行相应的中断服务程序。
下面是一个示例的单片机串行口中断服务程序,共计1200字以上。
#include <reg51.h> // 引入reg51.h头文件//定义串行口中断标志sbit RI_FLAG = P3^0; // 数据接收中断标志sbit TI_FLAG = P3^1; // 数据发送中断标志//定义串行口接收数据缓冲区unsigned char receiveBuffer[10];unsigned char receiveCount = 0;//定义串行口发送数据缓冲区unsigned char sendBuffer[10];unsigned char sendCount = 0;//串行口中断服务函数void serialInterrupt( interrupt 4if(RI_FLAG) // 判断是否是数据接收中断receiveBuffer[receiveCount] = SBUF; // 读取串行口接收数据receiveCount++; // 接收计数加1RI_FLAG=0;//清除中断标志位}if(TI_FLAG) // 判断是否是数据发送中断if(sendCount < 10) // 判断是否还有数据需要发送SBUF = sendBuffer[sendCount]; // 发送串行口数据sendCount++; // 发送计数加1}elsesendCount = 0; // 重置发送计数TI_FLAG=0;//清除中断标志位}}//主函数void mainES=1;//允许串行口中断TMOD=0x20;//设置定时器1为模式2,串行口使用定时器1 TH1=0xFD;//设置波特率为9600,定时器初值为0xFDTL1=0xFD;//定时器初值为0xFDSCON=0x50;//设置串行口工作在方式1,允许接收TR1=1;//启动定时器1while(1)//主程序逻辑//将数据存入发送缓冲区sendBuffer[0] = 'H';sendBuffer[1] = 'e';sendBuffer[2] = 'l';sendBuffer[3] = 'l';sendBuffer[4] = 'o';sendBuffer[5] = '\r'; // 发送回车符sendBuffer[6] = '\n'; // 发送换行符while(sendCount != 0) //等待数据发送完毕//主程序逻辑}}。
51单片机中断详解
一、中断的概念CPU在处理某一事件A时,发生了另一事件B请求C PU迅速去处理(中断发生);CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待C PU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断二、中断源在51单片机中有5个中断源中断号优先级中断源中断入口地址0 1(最高)外部中断0 0003H1 2 定时器0 000BH2 3 外部中断1 0013H3 4 定时器1 0018H4 5 串口总段0023H三、中断寄存器单片机有10个寄存器主要与中断程序的书写控制有关1.中断允许控制寄存器IE2.定时器控制寄存器TC ON3.串口控制寄存器SCON4.中断优先控制寄存器IP5.定时器工作方式控制寄存器TMOD6.定时器初值赋予寄存器(TH0/TH1,TL0/TL1)四、寄存器功能与赋值说明注:在用到中断时,必须要开总中断EA,即EA=1。
//开总中断1.中断允许控制寄存器IEEX0(EX1):外部中断允许控制位EX0=1 外部中断0开关闭合//开外部0中断EX0=0 外部中断0开关断开ET0(ET1):定时中断允许控制位ET0=1 定时器中断0开关闭合//开内部中断0ET0=0 定时器中断0开关断开ES: 串口中断允许控制位ES=1 串口中断开关闭合//开串口中断ES=0 串口中断开关断开2.定时器控制寄存器TCON //控制外部中断和定时器中断外部中断:IE0(IE1):外部中断请求标志位当INT0(INT1)引脚出现有效的请求信号,此位由单片机自动置1,cpu开始响应,处理终端,而当入中断程序后由单片机自动置0.//外部中断,即外部中断相应的引脚接入低电平或下降沿信号时,中断开始响应。
IT0(IT1):外部中断触发方式控制位//选择有效信号IT0(IT1)=1:脉冲触发方式,下降沿有效。
IT0(IT1)=0:电平触发方式,低电平有效。
单片机五种中断类型
单片机五种中断类型
1. 特殊硬件外部中断:
特殊硬件外部中断是指单片机能够监测外部某些特殊硬件信号,当这
些硬件信号跳转电平发生变化时,单片机立刻识别,根据编程代码的
设置打断当前的程序执行,从而进入中断服务程序中执行某些特殊的
功能操作的中断类型,常用的外部硬件设备包括定时器,串行通信端口,外部中断请求线等。
2. 内部特殊条件中断:
内部特殊条件中断是单片机处理器根据内部状态检测特殊条件是否满足,从而自动执行相应的中断服务程序的中断类型。
这些特殊条件包
括计数器溢出,定时器完成重复动作,以及某些子程序返回等,这些
功能有时也被称为定时器硬件中断、子程序中断等。
3. 系统总线外部中断:
系统总线外部中断是指单片机的处理器检测系统总线线路上是否发生
了特殊的外部中断,如系统总线中断请求信号、总线错误检测信号等,如果这些系统总线外部中断发生,处理器就会立刻响应,打断正在执
行的当前程序,从而进入相应的中断服务程序中进行处理。
4. 多重向量中断:
多重向量中断一般由操作系统程序设定,它由一组特殊的中断向量构
成,每个中断向量都是一个指定的处理功能,处理器能够用向量的方式发出中断请求,让存放中断服务程序的芯片知道有哪种中断请求,从而直接进入特定的中断服务程序,而不必做特定的判断操作。
5. 软件中断:
软件中断一般是大多数单片机内部指令集支持的功能,它由单片机内部模拟处理器根据一定的条件执行特定指令,从而发生中断,这通常用来实现操作系统、任务间切换以及响应资源共享等功能,常见的软件中断有中断入口(INT)异常入口(TRAP)等。
第4章 MCS-51单片机中断、定时系统及串行数据通信
表4-2 中断源入口地址表 中断源 外部中断0 中断服务程序入口地址 0003H
定时器/计数器T0 外部中断1 定时器/计数器T1 串行口中断
000BH 0013H 001BH 0023H
单片机的两个相邻中断源中断服务程序入口地址 相距只有8个单元,一般中断服务程序容纳不下,因此 在该中断的入口地址处放一条长跳转指令LJMP,这 样就可以转到64KB的任何可用区域了。在2KB范围内 转移可用短跳转AJMP指令。
表4-1 同级中断源优先级排列顺序
中断源
外部中断0(IE0) 定时器/计数器T0中断(TF0) 外部中断1(IE1) 定时器/计数器T1中断(TF1)
同级内的优先级
最低级
串行口中断(RI+TI)
最高级
当单片机系统复位后,IE中各位均被清0,所有 中断源禁止;IP中各位均被清0,5个中断源均为低优 先级。
SET SET
SET
ET0 ET1
EA
;定时器/计数器0允许中断 ;定时器/计数器1允许中断
;CPU开中断
用字节操作指令 MOV IE,#8AH 或 MOV A8H,#8AH
(2)中断优先级控制寄存器(IP) MCS-51单片机系统的中断源有两个优先级,每 个中断源均可由中断优先级寄存器IP来设置优先级别。 IP的字节地址为0B8H,位地址为0B8H~0BFH。与 中断有关的控制位如下: 位地址 0BFH 0BEH 0BDH 0BCH 0BBH 0BAH 0B9H 0B8H
TMOD是定时器的工作方式寄存器,TCON是控制 寄存器,用于对T0和T1的管理和控制。
2.定时器/计数器的结构的工作原理 16位定时器/计数器的核心是一个加1计数器,如图 4-4所示。
单片机原理及应用第4章 AT89S51的中断系统
1、TCON:定时器/计数器的控制寄存器
T1
T0
INT1 INT 0
T1的溢出中 断请求标志 位TF1, T1溢出时置 位,向CPU 申请中断
外部中断请 求标志位 若INT0引 脚上有中断 来,置IE1, 否则清0
外部中断 触发方式
当89S51复位 后,TCON=0
中断源
外部中断0 T0溢出中断 外部中断1 T1溢出中断 串行口中断
中断级别 最高
最低
例 设置IP寄存器的初始值,使2个外中断请求为 高优先级,其它中断请求为低优先级。
(1)用位操作指令 SETB PX0 SETB PX1 CLR PS CLR PT0 CLR PT1
(2)用字节操作指令 MOV IP,#05H
第 4章 AT89S51的中断系统
4.1 中断的概念 中断:用于实时测控
-对应-软件查询方式
4.2 AT89S51中断系统的结构
5个中断源,两级优先级。
中断系统结构示意图如下图所示。
中断标志 寄存器
中断允许 寄存器
中断优先级 寄存器
从图可见:AT89S51有
5个中断源: INT 0 , T0, INT1, T1, (TX,RX)
主程序 初始化 部分
(1)设置IE。 (2)设置IP。 (3)若是外部中断源,设置IT0,TT1触发
方式。
(4)编写中断服务程序。
例 假设允许外部中断0中断,并设定它为高级中断,其它 中断源为低级中断,采用跳沿触发方式。编写初始化程 序段:
解:
SETB EA SETB EX0 SETB PX0 SETB IT0
“1”高优先级 “0”低优先级
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
13.4 信号的调制与解调与通讯接口标准
当异步通信的距离在15m之内时,计算机之间可以直接进行通 信。而当传输距离较远时,通常是用电话线传送。由于电话线频带 不够宽,再加上远距离传输时信号不可避免地衰减,因而使信号发 生明显的畸变。 在发送时要用调制器(modulator)把数字信号转换为模拟信 号,并加以放大再传送,这个过程叫做调制。在接收时,再用解调 器(demodulator)检测此模拟信号,并把它转换成数字信号再送 入计算机接口,这个过程即解调。 RS-232C定义的是DTE与DCE间的接口标准。( DTE:数据 终端设备,DCE:数据通信设备 )。 目前常用MAXM232: 片内 带有自升压电路,仅需+5V电源,内含2个发送器,2个接收器。
13.6.2 串行口寄存器 与串行口工作有关的寄存器共有6个,分别是串行口控制寄存 器SCON、接收与发送缓冲寄存器SBUF、电源控制寄存器PCON、 中断允许控制寄存器IE、中断优先级寄存器IP。 1.串行口控制寄存器SCON 串行口控制寄存器SCON用于串行通信的方式选择、接收和发 送控制,并可反映串行口的工作状态。
发送
时间1
接收
发送
接收 发 送
发送
接收
接收
时间2
发送
接收
串行通信方式示意图
(1)单工制式 在单工制式下,数据在甲机和乙机之间只允许单方向传送。两机之 间只需1条数据线。 (2)半双工制式 在半双工制式下,数据在甲机和乙机之间允许双方向传送,但它们 之间只有一个通信回路,接收和发送不能同时进行,只能分时发送和接 收(即甲机发送,乙机接收,或者乙机发送,甲机接收),因而两机之间 只需1条数据线。 (3)全双工制式 在全双工制式下,甲、乙两机之间数据的发送和接收可以同时进行, 称为“全双工传送”。全双工形式的串行通信必须使用2条数据线。 不管哪种形式的串行通信,在两机之间均应有公共地线
起 始 位 一个字符帧 数据位 校 验 位 停 止 位
空 闲
空 闲
下一字符 起始位
D0
D7
异步通信帧格式
起始位:通信线上没有数据传送时,为高电平(逻辑1);当要 发送数据时,首先发1个低电平信号(逻辑0),此信号称为 “起 始位”,表示开始传输1帧数据。 数据位:起始位之后的位即数据位。数据位可以是5、6、7或8位 (不同计算机的规定不同),上图的数据位为8位。一般从最低 位开始传送,最高位在最后。 校验位:数据位之后的位为奇偶校验位(有的方式具有)。此位 可用于判别字符传送的正确性,其有3种可能的选择,即奇、偶、 无校验,用户可根据需要选择(在有的格式中,该位可省略)。 在80C51单片机中,此位还可以用来确定该帧字符信息的性质 (地址或数据)。 停止位:校验位后为停止位,用于表示1帧结束,用高电平(逻 辑1)表示。停止位可以是1.0,1.5或2位,不同计算机的规定有所 不同。
☆ SCON.1位TI——发送中断标志位。 在方式0中,发送完8位数据后,由硬件置位;在其他方式中, 在发送停止位之初由硬件置位。TI=1时,可申请中断,也可供软件 查询用。在任何方式中,都必须由软件来清除TI。 ☆ SCON.0位 RI——接收中断标志位。 在方式0中,接收完8位数据后,由硬件置位;在其他方式中, 在接收停止位的中间,由硬件置位。RI=1时,可申请中断,也可供 软件查询用。在任何方式中,都必须由软件清除RI。 SCON的低2位与中断有关。SCON的地址为98H,可以位寻址。 复位时,SCON的所有位均清0。 2.数据缓冲寄存器SBUF 数据缓冲寄存器SBUF实际上是2个寄存器:发送数据缓冲寄存 器和接收数据缓冲寄存器。接收与发送缓冲寄存器SBUF采用同一个 地址代码99H,其寄存器名亦同样为SBUF。CPU通过不同的操作命 令,区别这2个寄存器,所以不会因为地址代码相同而产生错误。当 CPU发出写SBUF命令时,即向发送缓冲寄存器中装载新的信息, 同时启动数据串行发送;当CPU发出读SBUF命令时,即读接收缓冲 寄存器的内容。
13.5 硬件连接及通信协议
13.5.1单片机与单片机间的通信
TXD RXD 80C51 GND RXD TXD 80C51 GND
TXD RXD 80C51
T1IN T1OUT MAX232A R2OUT R2IN
R1IN R1OUT MAX232A T2OUT T2IN GND
RXD TXD 80C51
80C51串行口主要由接收与发送缓冲寄存器SBUF、输入移位寄 存器以及串行控制寄存器SCON等组成。波特率发生器可以利用定 时器T1控制发送和接收的速率。SCON用于存放串行口的控制和状 态信息;发送数据缓冲寄存器SBUF用于存放准备发送出去的数据; 接收数据缓冲寄存器SBUF用于接收由外部输入到输入移位寄存器 中的数据。80C51串行口正是通过对上述专用寄存器的设置、检测 与读取来管理串行通信的。
进行串行通信的单片机的时钟相互独立;其时钟频率可以不相同; 在通信时不要求有同步时钟信号。由于异步通信是逐帧进行传输的, 各位之间的时间间隔应该相同,所以必须保证2个单片机之间有相同的 传送波特率。如果传送波特率不同,则时间间隔不同;当误差超过5% 时,就不能正常进行通信。由于信息传输可以是随时不间断地进行的, 因而帧与帧之间的时间间隔可以是不固定的,间隙处为高电平。 由于异步通信每传送一帧有固定格式,通信双方只需按约定的帧 格式来发送和接收 数据,所以硬件结构比同步通信方式简单。此外,它还能利用校验位 检测错误,所以这种通信方式应用较广泛。在单片机中主要是采用异 步通信方式。 13.2.2 同步通信SYNC
99H
SBUF
发送
TXD 控制门
TH1 TL1 发送控制器 1 ÷16 0 SMOD 接收控制器
写SBUF
TI
去中断逻辑
≥1
T1溢出率 读SBUF SBUF
接收
÷2
RI RXD
移位寄存器
99H
8051串行口结构及SBUF
在进行串行通信时,外界数据通过引脚RXD(P3.0)输入。输 入数据首先逐位进入输入移位寄存器,由串行数据转换为并行数据, 然后再送入接收寄存器。在接收寄存器中采用了双缓冲结构,以避 免在接收到第2帧数据前,CPU未及时响应接收寄存器前一帧的中 断请求,没把前一帧数据读走,而造成2帧数据重叠的错误。在发 送时,串行数据通过引脚TXD(P3.1)输出。由于CPU是主动的, 因此不会产生写重叠问题,一般不需要双缓冲器结构。要发送的数 据通过发送控制器控制逻辑门电路逐位输出。
SCON SM0 SM1 SM2 REN TB8 RB8 TI RI
串口工作寄存器
☆ SCON.7和SCON.6位 SM0和SM1——串行方式选择位
SM0 SM1 0 0 0 1 0 1 0 1 工作方式 方式0 方式1 方式2 方式3 功能描述 8位同步移位寄存器 10位UART 11位UART 11位UART 串行口4中工作方式 波特率 fosc/12 可变 fosc/64和fosc/32 可变
第十三章 串行口中断
硅谷芯微 技术贡献 网址:
串行通信是CPU与外界交换信息的一种基本通信方式。 为了实现串行通信,绝大多数单片机都配置了UART串行 接口。
本章重点: ★串行通信原理 ★串行通信四种工作方式 ★单片机串行通信协议
13.1通讯方式概述
计算机与外界的信息交换称为通信。基本的通信方式有两种。 并行通信(parallel communication):所传送数据的各位同时发送或 接收。在并行通信中,一个并行数据占多少位二进制数,就要多少根传 输线,这种方式的特点是通信速度快,但传输线多,价格较贵,适合近 距离传输。 串行通信(serial communication):所传送数据的各位按顺序一位一 位地发送或接收。如图6.2串行通信仅需1~2根传输线,故在长距离传 输数据时比较经济,但由于它每次只能传送1位,所以传送速度较慢。
A机
13.5.2 单片机与PC机间的通信 单片机与PC间通讯分为直通和交叉连接两种方式:
TXD RXD GND 80C51
MAX232
2 3 5 单片机
交叉 连接
RXD TXD GND
2 3 5
PC机
单片机与PC机之间通讯方式
13.5.3 通信协议 是指在计算机之间进行数据传输时的一些约定,包括通信方 式、波特率、命令码的约定等。为保证计算机之间能准确、可靠 地通信,相互之间必须遵循统一的通信协议。在通信之前一定要 先设置好通信协议。 13.5.4 串行通讯程序流程图:
☆ SCON.5位 SM2——多机通信控制位。 在方式2和方式3中,SM2主要用于进行多机通信控制。当串行口以 方式2或方式3接收时,如果SM2=1,允许多机通信,且接收到第9位 RB8为0时,则RI不置1不接收主机发来的数据;如果SM2=1,且RB8为 1,则RI置1,产生中断请求,将接收到的8位数据送入SBUF。当SM2=0 时,不论RB8为0还是1,都将收到的8位数据送入SBUF,并产生中断。 在方式1中,当处于接收状态时,若SM2=1,则只有接收到有效的 停止位时,RI才置1。在方式0中,SM2应置0。 ☆ SCON.4位 REN——允许串行接收位。 REN=1时,允许接收;REN=O时,禁止接收。由软件置位或清除。 ☆ SCON.3位 TB8——发送数据的第9位(D8)。 在方式2或方式3中,根据需要由软件置位或复位。双机通信时,它 可约定作奇偶校验位;在多机通信中,可作为区别地址帧或数据帧的标 识位。一般由指令设定地址帧时,设TB8为1;而设定数据帧时,设 TB8为0。方式0和方式1中没用该位。 ☆ SCON.2位 RB8——接收数据的第9位(D8)。 在方式2或方式3中,RB8的状态与TB8相呼应,(如可以是约定的奇 偶校验位,也可以是约定的地址/数据标识位)。例如,当SM2=1时,如 果RB8为0,则说明收到的是数据帧。
主程序 设置波特率 启动定时器T1 设置串口工作方式 设置测试数据 开中断 踏步等待 中断服务 保护现场 N 接收中断吗? Y RI清0,接收数据 N 是数据请求命令? Y 数据更新、发送 现场恢复 返回