单片机学习指导及习题解答——双解汇编和C51 第2版 教学课件 ppt 作者 张志良 第6章

上传人:E**** 文档编号:89492505 上传时间:2019-05-25 格式:PPT 页数:44 大小:1.78MB
返回 下载 相关 举报
单片机学习指导及习题解答——双解汇编和C51 第2版 教学课件 ppt 作者 张志良 第6章_第1页
第1页 / 共44页
单片机学习指导及习题解答——双解汇编和C51 第2版 教学课件 ppt 作者 张志良 第6章_第2页
第2页 / 共44页
单片机学习指导及习题解答——双解汇编和C51 第2版 教学课件 ppt 作者 张志良 第6章_第3页
第3页 / 共44页
单片机学习指导及习题解答——双解汇编和C51 第2版 教学课件 ppt 作者 张志良 第6章_第4页
第4页 / 共44页
单片机学习指导及习题解答——双解汇编和C51 第2版 教学课件 ppt 作者 张志良 第6章_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《单片机学习指导及习题解答——双解汇编和C51 第2版 教学课件 ppt 作者 张志良 第6章》由会员分享,可在线阅读,更多相关《单片机学习指导及习题解答——双解汇编和C51 第2版 教学课件 ppt 作者 张志良 第6章(44页珍藏版)》请在金锄头文库上搜索。

1、第6章 机械工业出版社同名教材 配套电子教案,单片机原理与控制技术,第3版,第6章 80C51片内功能部件,中断系统、定时/计数器和串行口是单片机片内非常重要的功能部件, 80C51有五个中断源,两个16位定时/计数器,一个全双工串行口。,6.1 80C51中断系统,6.1.1 中断概述, 什么叫中断?,CPU暂时中止其正在执行的程序, 转去执行请求中断的那个外设或事件的服务程序, 等处理完毕后再返回执行原来中止的程序,叫做中断。, 为什么要设置中断?, 提高CPU工作效率, 具有实时处理功能, 具有故障处理功能, 实现分时操作, :外部中断0,中断请求信号由P3.2输入。 :外部中断1,中断

2、请求信号由P3.3输入。 T0:定时/计数器0溢出中断,对外部脉冲计数由P3.4输入。 T1:定时/计数器1溢出中断,对外部脉冲计数由P3.5输入。 串行中断:包括串行接收中断RI和串行发送中断TI。,6.1.2 中断源和中断控制寄存器, 中断源,中断源是指能发出中断请求,引起中断的装置或事件。,80C51单片机的中断源共有5个, 其中2个为外部中断源,3个为内部中断源:, 中断控制寄存器,80C51单片机中涉及中断控制的有中断请求、中断允许和中断优先级控制3个方面4个特殊功能寄存器:, 中断请求:定时和外中断控制寄存器TCON; 串行控制寄存器SCON; 中断允许控制寄存器IE; 中断优先级

3、控制寄存器IP。,INT0、INT1、T0、T1中断请求标志放在TCON中 串行中断请求标志放在SCON中。, 中断请求控制寄存器,TCON位功能: TF1:T1溢出中断请求标志,T1计数溢出后,F1=1 TF0:T0溢出中断请求标志,T0计数溢出后,F0=1 IE1:外中断中断请求标志,当P3.3引脚信号有效时,IE1=1 IE0:外中断中断请求标志,当P3.2引脚信号有效时,IE0=1 IT1:外中断触发方式控制位, IT1=1,边沿触发方式;IT1=0,电平触发方式。 IT0:外中断触发方式控制位,其意义和功能与IT1相似。,串行控制寄存器SCON, TI 串行口发送中断请求标志 RI

4、串行口接收中断请求标志,SCON的结构、位名称、位地址和功能如下:, 中断允许控制寄存器IE, EA: CPU中断允许控制位。 EA=1,CPU开中;EA=0,CPU关中,且屏蔽所有5个中断源。 EX0:外中断INT0 中断允许控制位。EX0=1,开中;EX0=0,关中。 EX1:外中断INT1 中断允许控制位。EX1=1,开中;EX1=0,关中。 ET0 :定时/计数器T0中断允许控制位。ET0=1,T0开中;ET0=0,T0关中。 ET1: 定时/计数器T1中断允许控制位。ET1=1,T1开中;ET1=0,T1关中。 ES: 串行口中断(包括串发、串收)允许控制位 。 ES=1,串行口开中

5、;ES=0,串行口关中。,说明: 80C51对中断实行两级控制,总控制位是EA, 每一中断源还有各自的控制位对该中断源开中或关中。 首先要EA=1,其次还要自身的控制位置“1”。,80C51有5个中断源,划分为二个中断优先级:高优先级和低优先级。, 中断优先级控制寄存器IP, PX0:中断优先级控制位。PX0=1,为高优先级;PX0=0,为低优先级。 PX1:中断优先级控制位。控制方法同上。 PT0:T0中断优先级控制位。控制方法同上。 PT1:T1中断优先级控制位。控制方法同上。 PS: 串行口中断优先级控制位。控制方法同上。,中断处理过程大致可分为四步: 中断请求、中断响应、中断服务和中断

6、返回。,6.1.3 中断处理过程,中断源发出中断请求信号,相应的中断请求标志位(在中断允许控制寄存器IE中)置“1”。, 中断请求, 中断响应,CPU查询(检测)到某中断标志为“1”,在满足中断响应条件下,响应中断。, 中断响应条件:,该中断已经“开中”; CPU此时没有响应同级或更高级的中断; 当前正处于所执行指令的最后一个机器周期; 正在执行的指令不是RETI或者是访向IE、IP的指令, 否则必须再另外执行一条指令后才能响应。, 中断响应操作, 保护断点地址; 撤除该中断源的中断请求标志; 关闭同级中断; 将相应中断的入口地址送入PC;,80C51五个中断入口地址: :0003H T0 :

7、000BH :0013H T1 :001BH 串行口 :0023H, 执行中断服务程序,中断服务程序应包含以下几部分: 保护现场 执行中断服务程序主体,完成相应操作 恢复现场, 中断返回,在中断服务程序最后,必须安排一条中断返回指令RETI, 当CPU执行RETI指令后,自动完成下列操作: 恢复断点地址。 开放同级中断,以便允许同级中断源请求中断。, 中断响应等待时间,若排除CPU正在响应同级或更高级的中断情况, 中断响应等待时间为: 38个机器周期,中断源发出中断请求,相应中断请求标志置“1”。 CPU响应中断后,必须清除中断请求“1”标志。 否则中断响应返回后,将再次进入该中断,引起死循环

8、出错。, 中断请求的撤除, 对串行口中断,用户应在串行中断服务程序中用软件清除TI或RI。, 对外中断电平触发方式,需要采取软硬结合的方法消除后果。, 对定时/计数器T0、T1中断,外中断边沿触发方式, CPU响应中断时就用硬件自动清除了相应的中断请求标志。,80C51中断优先控制首先根据中断优先级,此外还规定了同一中断优先级之间的中断优先权。其从高到低的顺序为: INT0、INT1、T0、T1、串行口。 中断优先级是可编程的,而中断优先权是固定的,不能设置,仅用于同级中断源同时请求中断时的优先次序。, 中断优先控制和中断嵌套, 中断优先控制,、,80C51中断优先控制的基本原则:, 同一中断

9、优先级中,若有多个中断源同时请求中断, CPU将先响应优先权高的中断,后响应优先权低的中断。, 同优先级中断不能互相中断。 即某个中断一旦得到响应,与它同级的中断就不能再中断它。, 高优先级中断可以中断正在响应的低优先级中断,反之则不能。, 中断嵌套,当CPU正在执行某个中断服务程序时,如果发生更高一级的中断源请求中断,CPU可以“中断”正在执行的低优先级中断,转而响应更高一级的中断,这就是中断嵌套。 中断嵌套只能高优先级“中断”低优先级,低优先级不能“中断”高优先级,同一优先级也不能相互“中断”。,中断嵌套结构类似与调用子程序嵌套,不同的是: 子程序嵌套是在程序中事先按排好的;中断嵌套是随机

10、发生的。 子程序嵌套无次序限制,中断嵌套只允许高优先级“中断”低优先级。,6.1.5 中断C51编程,void 函数名( ) interrupt n using m 中断函数体语句;, 中断函数无返回值,也不带参数。 因此,返回值类型为void,函数名后括号内无形式参数表。 interrupt是C51关键字,表示该函数是一个中断服务子函数; n=04(常正整数),对应中断源编号。, using是C51关键字,主要用于中断函数内选择工作寄存器组, m=03(常正整数),对应工作寄存器区编号。 using m允许缺省,缺省时,不进行工作寄存器组切换, 但所有在中断函数内用到的工作寄存器将被压栈保护

11、。 中断函数不能被非中断调用。 允许在中断函数中调用其他子函数,但被调用子函数使用的工作寄存器组 必须与中断函数使用的工作寄存器组相同,否则会出错。, 设置堆栈指针SP 定义中断优先级 定义外中断触发方式 开放中断 安排好等待中断或中断发生前主程序应完成的操作内容。,6.1.4 中断系统的应用, 中断初始化,中断服务子程序内容要求: 在中断服务入口地址设置一条跳转指令,转移到 中断服务程序的实际入口处。 根据需要保护现场。 中断源请求中断服务要求的操作,这是中断服务程序的主体。 恢复现场。与保护现场相对应,注意先进后出、后进先出操作原则。 中断返回,最后一条指令必须是RETI。, 中断服务主程

12、序, 中断系统应用举例,【例6-1】 出租车计价器计程方法是车轮每运转一圈产生一个负脉冲, 从外中断P3.2引脚输入,行驶里程为轮胎周长运转圈数, 设轮胎周长为2m,试实时计算出租车行驶里程(单位米), 数据存32H、31H、30H。,解: C51编程如下:,Proteus虚拟仿真调试:参阅与本书配套的(免费下载)。,定时/计数器是单片机系统一个重要的部件,其工作方式灵活、编程简单、使用方便,可用来实现定时控制、延时、频率测量、脉宽测量、信号发生、信号检测等。此外,定时/计数器还可作为串行通信中波特率发生器。,6.2 80C51定时/计数器,6.2.1 定时/计数器概述,1)80C51单片机内

13、部有两个定时/计数器T0和T1, 其核心是计数器,基本功能是加1。 2)对外部事件脉冲(下降沿)计数,是计数器; 对片内机周脉冲计数,是定时器。 3)计数器由二个8位计数器组成。 4)定时时间可编程设定,设置初值后,加1计满后溢出。 调整计数器初值,即调整了定时时间和计数值。 5)作为计数器时,外部事件脉冲必须从规定的引脚输入。 且外部脉冲的最高频率不能超过时钟频率的1/24。,TCON低4位与外中断INT0、INT1有关,已在中断中叙述。 高4位与定时/计数器T0、T1有关。 TF1:定时/计数器T1溢出标志。 TF0:定时/计数器T0溢出标志。 TR1:定时/计数器T1运行控制位。TR1=

14、1,T1运行;TR1=0,T1停。 TR0:定时/计数器T0运行控制位。TR0=1,T0运行;TR0=0,T0停。 TCON的字节地址为88H,每一位有位地址,均可位操作。,6.2.2 定时/计数器的控制寄存器, 定时/计数器工作方式控制寄存器TMOD,TMOD用于设定定时/计数器的工作方式,低4位用于控制T0,高4位用于控制T1。, M1M0 工作方式选择位。可选择4种工作方式,C/ = 1,为计数工作方式,对外部事件脉冲计数,负跳变脉冲有效。 C/ = 0,为定时工作方式,对片内机周脉冲计数,用作定时器。, GATE 门控位。 GATE=0,运行只受TCON中运行控制位TR0/TR1的控制

15、。 GATE=1,运行同时受TR0/TR1和外中断输入信号的双重控制 。,TMOD字节地址89H,不能位操作,设置TMOD须用字节操作指令。,13位计数器,由TL0低5位和TH0 8位组成,最大计数值213 =8192,6.2.3 定时/计数器工作方式, 工作方式1, 工作方式0,16位计数器,最大计数值为216 =65536。, 工作方式2,8位计数器,仅用TL0计数,最大计数值为28 =256。 计满溢出后,TH0中的初值装入TL0。, 工作方式3,TL0使用T0原有的控制寄存器资源:TF0,TR0,GATE,C/T,INT0, 组成一个8位的定时/计数器; TH0借用T1的中断溢出标志T

16、F1,运行控制开关TR1,只能对片 内机周脉冲计数,组成另一个8位定时器(不能用作计数器)。 T1由于其TF1、TR1被T0的TH0占用,计数器溢出时,只能将 输出信号送至串行口,即用作串行口波特率发生器。,方式3仅适用于T0,T1无方式3。 T0被拆成二个独立的8位计数器TH0、TL0。,其中: N与工作方式有关:方式0时,N=13; 方式1时,N=16; 方式2、3时,N=8。 机周时间与主振频率有关:机周时间=12/fosc fosc=12MHz时,1机周=1s; fosc=6MHz 时,1机周=2s。,6.2.4 定时/计数器的应用, 计算定时/计数初值,【例6-4】 已知fOSC=12MHz,要求在P1.0引脚

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号