版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本章学习目标 : 理解中断概念,能正确描绘单片机中断响应过程 熟记80C51单片机的5个中断源及其中断入口地址 能按要求正确设置特殊功能寄存器IE、IP、TCON、SCON和TMOD 熟悉中断优先控制的方法 能正确描绘定时/计数器的4种工作方式,重点掌握方式1、方式2的应用 学会定时/计数初值的计算 能读懂教材中的控制实例,学会编写同等难度的中断、定时/计数程序,第2章 单片机的指令系统,第四章 80C51中断系统和定时器,4.1 中断系统,1.中断的概念 CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生或中断请求); CPU暂时中断当前的工作,转去处理事件B(中断响应
2、和中断服务); 待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回)。,4.1.1 中断系统的基本概念,4.1 中断系统,2.中断技术的应用并行处理 CPU可以与多台外设并行工作,并分时与他们进行信息交换,提高了CPU的工作效率。实时控制 单片机应用系统可能随机请求CPU提供服务。有了中断系统,CPU就可以立即响应并予以处理。故障处理 单片机系统在工作时可能会出现一些突发故障,如电源断电,存储器出错,程序执行错误(如除数为0)等,一旦出现故障,CPU就可及时转去执行故障处理程序,而不必停机。3.中断系统 为实现中断功能而配置的硬件和编写的软件就是中断系统。,4.1
3、.1 中断系统的基本概念,4.1 中断系统,能够向CPU发出中断申请的部件称为中断源。80C51单片机有5个中断源。见下表,4.1.2 中断源,4.1 中断系统,单片机通过对4个特殊功能寄存器实施中断控制: 1.中断允许寄存器IE 2.中断优先级寄存器IP 3.定时/计数器及外部中断控制寄存器TCON 4.串口控制寄存器SCON,4.1.3 中断控制,4.1 中断系统,1.中断允许寄存器IE功能: 控制单片机是否接受中断申请,以及接受哪一种中断申请字节地址: A8H 其格式和每位的含义如下(位操作指令实现):,4.1.3 中断控制,4.1 中断系统,1.中断允许寄存器IE例:同时打开外部中断0
4、和串行口中断,可设置为: 方法1:MOV IE,#10010001B方法2:SETB EA SETB ES SETB EX0方法3:ORL IE,#10010001B,4.1.3 中断控制,4.1 中断系统,2.中断优先级寄存器IP功能: 对80C51单片机进行高级别或低级别中断的设置IP的字节地址: B8H 格式和每位的含义如下:,4.1.3 中断控制,4.1 中断系统,2.中断优先级寄存器IP 例:令串行口为高优先级中断,外部中断0为低优先级中断。 设置方法:法1: MOV IE,#10010001B ;开中断 MOV IP,#00010000B ;设优先级 法2: MOV IE,#100
5、10001B SETB PS ;假设单片机之前进行了初始化说明:此时串口的优先级高于外部中断0的优先级,4.1.3 中断控制,4.1 中断系统,2.中断优先级寄存器IP 如果几个相同级别的中断源同时申请中断,则根据以下自然顺序响应:,4.1.3 中断控制,4.1 中断系统,3.定时/计数器及外部中断控制寄存器TCON 功能: 可设置外部中断申请的形式:低电平触发还是下降沿触发,控制定时/计数器的计时开始或停止,是各中断源(串口中断除外)是否申请中断的标志位TCON的字节地址: 88H 格式和每位的含义如下:,4.1.3 中断控制,4.1 中断系统,3.定时/计数器及外部中断控制寄存器TCON,
6、4.1.3 中断控制,4.1 中断系统,3.定时/计数器及外部中断控制寄存器TCON,4.1.3 中断控制,4.1 中断系统,4.串口控制寄存器SCON 功能: 只有D1和D0位用于中断,作为串口中断请求标志,即串口中断请求寄存器TCON的字节地址: 98H 格式和每位的含义如下:RI为接收中断请求标志位:当串口接收完一帧串行数据时,RI自动置1;CPU响应中断后,用软件对RI清0;TI为发送中断请求标志:当串口发送完一帧串行数据时,TI自动置1,请求中断。CPU响应中断后,由软件对TI清零。,4.1.3 中断控制,4.1 中断系统,4.1.4 中断响应(现场保护与恢复),4.1 中断系统,4
7、.1.4 中断响应(二级中断嵌套),4.1 中断系统,编程实例软件构成:主程序+中断服务程序程序编制的关键点: 要对题目要求进行精确分析,明确哪些环节应该安排在主程序中,哪些环节应该安排在中断服务程序中,再分别编制主程序和中断服务程序。例:在程序正常运行时P1口的8个LED灯作单灯左移8次而后单灯右移7次,如此循环;中断时(即按键按下)则P1口的8个LED闪烁3次(即全亮全灭3次)。 1中断程序的设计主要涉及开中断、设定优先级,外中断还涉及触发方式的设定。 2在软件设计中,首先要对主程序和中断服务程序所完成的任务进行划分。根据该课题提出的要求,在主程序中应该完成的任务是8个LED循环左移右移;
8、在中断服务程序中应该完成的功能是8个LED闪烁3次。,4.1 中断系统,4.1 中断系统,ORG 0000HLJMP STARTORG 0003HLJMP INT0ORG 0100HSTART:MOV SP,#60H MOV IE,#81H ;开INT0中断 SETB IT0 ;INT0下降沿触发 L1:MOV A,#0FFH ;设初值 MOV R0,#8 ;设定左移八次 CLR C ;将CY清0 L2:RLC A ;带进位位循环左移一位 MOV P1,A ;送P1口,P1.0灯亮 ACALL DELAY ;延时0.2秒 DJNZ R0,L2 ;判断是否左移8次 MOV R0,#7 ;移动7次
9、 L3:RRC A ;带进位位循环右移,4.1 中断系统,MOV P1,A ;送P1口 ACALL DELAY DJNZ R0,L3 ;是否右移7次? AJMP L1 ;重新开始DELAY:MOV R5,#4 ;延时0.2秒 D1:MOV R6,#200 D2:MOV R7,#123 NOP DJNZ R7,$DJNZ R6,D2 DJNZ R5,D1 RETINT0: PUSH PSW ;保护PSW,ACC值 PUSH ACC MOV A,#00H ;使8个LED全亮 MOV R2,#6 ;闪烁3次(全亮全灭各3次) L4:MOV P1,A ;A值送出,4.1 中断系统,LCALL DELA
10、Y ;延时0.2秒 CPL A ;A值取反 DJNZ R2,L4 ;闪烁3次? POP ACC ;恢复保护的A值 POP PSW ;恢复保护的PSW值 RETI ;返回主程序 END,4.2 定时器/计数器,4.2.1定时器计数器概述1. 日常生活中定时、计数的例子: 如闹钟、画“正”统计选票、家用水表对水量的计数。2. 单片机应用系统中定时计数的需求: 如用单片机控制的打铃器、空调的定时开关、啤酒自动生产线上对酒瓶的计数装置等。3. 80C51单片机片内的定时/计数器: 两个位可编程的定时计数器:T0和T1,都能定时和对外部事件进行计数。 此外,T1还可以作为串行接口的波特率发生器。4. 如
11、何理解定时和计数的概念? 单片机中的定时器和计数器其实是一个器件: 计数器:是对外部发生的事件进行计数; 定时器:是对单片机内部的标准时钟(fosc/12)脉冲进行计数。,4.2 定时器/计数器,4.2.2 定时器/计数器的结构 单片机内部的16位定时计数器由高8位和低8位两个寄存器组成: T0由TH0和TL0组成; T1由TH1和TL1组成; 定时计数器的计数值就存放在这里面; 定时/计数器T1的结构与T0相同。,定时/计数器T0的结构示意图,4.2 定时器/计数器,4.2.3 定时器/计数器基本原理 定时计数器溢出后标志位TF0(或TF1)由0变1,由此能够引发定时中断。如果采用12的晶振
12、,对应的脉冲周期是微秒,计满65536个脉冲所对应的时间就是65.536ms。思考:如何设置指定时间的定时?-预设初值 在主频为12MHz的情况下,每个时钟脉冲是1微秒,则计满5536个脉冲需65.536毫秒,如要定时10毫秒则存入初值55536,(10毫秒是10000微秒,需计数10000个脉冲)。可见,定时器的定时时间长短与系统时钟和定时器初值有关。说明 1. 当定时计数器用作计数器时,通过引脚P3.4(P3.5)对外部输入脉冲计数。 2. 定时计数器T0(T1)启动运行后,会按设定的工作方式独立进行计数,不再占用CPU时间。当计数器T0(T1)计满溢出时,TF0(TF1)置1,向CPU发
13、出中断请求信号。,4.2 定时器/计数器,4.2.4 定时器/计数器控制 在单片机中有两个特殊功能寄存器与定时/计数有关,它们就是TMOD和TCON,定时计数器T0、T1就由它们来控制: TMOD用于设置工作方式; TCON用于控制其启动、停止和中断申请。1.定时器工作方式寄存器TMOD TMOD用于设置T0和T1的工作方式,字节地址为89H,不能按位寻址。其格式和各位的含义如下:,4.2 定时器/计数器,4.2.4 定时器/计数器控制,4.2 定时器/计数器,4.2.4 定时器/计数器控制,4.2 定时器/计数器,4.2.4 定时器/计数器控制2定时/计数器控制寄存器TCON TCON的低4
14、位用于控制外部中断,高4位用于控制定时/计数器的启动和中断申请。 当计数溢出时,TF0(或TF1)会自动由0变1,告诉我们计数已满,我们可以通过查询TF0(或TF1)位的状态来判断计时时间是否已到; 如果采用定时中断方式,则TF0(或TF1)由0变1时,能自动引发中断。,4.2 定时器/计数器,4.2.4 定时器/计数器控制,由右图可知,只有当TR0(或TR1)为1时,开关1才能闭合,计数脉冲才能进入计数器,故TR0(或TR1)称为运行控制位,可用指令“SETB TR0(或TR1)”来置位以启动定时/计数器运行;或用指令“CLR TR0(或TR1)”来关闭定时/计数器的工作,一切全靠编程人员控
15、制。,4.2 定时器/计数器,4.2.5 定时器/计数器工作方式,80C51单片机定时/计数器T0有4种工作方式(方式0、1、2、3), T1有3种工作方式(方式0、1、2)。 1. 方式0 当TMOD的M1M0=00时,定时/计数器工作于方式0。 方式0为13位定时/计数器,由TL0的低5位和TH0(8位)共同完成计数功能(TL0的高3位可忽略)。当TL0的低5位溢出时,向TH0产生进位;TH0溢出时,将定时器中断请求标志位TF0置1,可申请中断,也可对TF0进行查询。 方式0下,定时/计数器为13位,原因是当时的51设计者需要兼容48系列单片机,所以方式0容量受限,计数深度为8K。,4.2
16、 定时器/计数器,4.2.5 定时器/计数器工作方式,4.2 定时器/计数器,4.2.5 定时器/计数器工作方式,80C51单片机定时/计数器T0有4种工作方式(方式0、1、2、3), T1有3种工作方式(方式0、1、2)。 2. 方式1 当M1M0=01时,定时/计数器工作于方式1。方式1的计数位数是16位,由TL0作为低8位,TH0作为高8位共同构成。其余操作同方式0。,4.2 定时器/计数器,4.2.5 定时器/计数器工作方式,4.2 定时器/计数器,4.2.5 定时器/计数器工作方式,80C51单片机定时/计数器T0有4种工作方式(方式0、1、2、3), T1有3种工作方式(方式0、1
17、、2)。 3. 方式2 当M1M0=10时,定时/计数器工作于方式2。这是自动重装初值的8位计数方式,它省去了方式0和方式1在多次重复计数状态下必须重新设定计数初值的麻烦,但是却付出了减小定时时间的代价。,4.2 定时器/计数器,4.2.5 定时器/计数器工作方式,4.2 定时器/计数器,4.2.5 定时器/计数器工作方式,80C51单片机定时/计数器T0有4种工作方式(方式0、1、2、3), T1有3种工作方式(方式0、1、2)。 4. 方式3 方式3只适用于定时/计数器T0。当T1被设定为方式3状态时,将停止计数。 当M1M0=11时,T0工作于方式3。 此时TL0和TH0作为两个相互独立
18、的8位定时/计数器使用。TL0既可定时又可计数,它使用T0的各控制位、引脚和中断源,即C/、GATE、TR0、TF0、T0(P3.4引脚)、(P3.2引脚);TH0此时只能用作内部定时功能,它借用了定时/计数器T1的控制位TR1和T1的中断标志位TF1,其启动和停止只受TR1控制。,4.2 定时器/计数器,4.2.5 定时器/计数器工作方式,定时/计数器初始化步骤 向工作方式寄存器TMOD写入工作方式控制字以确定: (A)启动方式是TR0/TR1启动还是TR0/TR1和 / 配合一起启动; (B)是定时方式还是计数方式; (C)是工作方式0还是工作方式1、2或3。 向计数器TH0、TL0(或T
19、H1、TL1)装入初值; 启动定时器/计数器(将运行控制位TR0/TR1置位); 如果采用中断方式,还要将IE中的中断允许控制位ET0(或ET1)、中断允许总控位EA置位。,4.2 定时器/计数器,4.2.6 定时器/计数器举例,例1 利用定时器T0方式0产生定时脉冲。 要求:每隔2ms产生宽度为一个机器周期的正脉冲,由P1.0输出此定时序列脉冲信号(设时钟频率为6MHz)。 解:首先要求出T0的初值: 已知:时钟频率为6MHz,则可求得每个机器周期为2s(正脉冲的宽度)。 定时的时间公式为: 所以当定时时间为t=2ms时:,4.2 定时器/计数器,4.2.6 定时器/计数器举例,解法一:采用
20、查询工作方式编程 ORG 0000H ;起始程序的地址 AJMP MAIN ;转到主程序地址去 ORG 0100H ;主程序的起始地址 MAIN:CLR P1.0 ;将输出口P1的第0位清0(输出脉冲的起始值) MOV TMOD,#00H ;将T0设置为:由TR0启动、定时方式、工作方式0 MOV TH0,#0E0H ;给定时器中计数器的高8位送入初值 MOV TL0,#18H ;给定时器中计数器的低5位送入初值 SETB TR0 ;将TR0位置1,启动T0工作 LOOP:JNB TF0,LOOP ;进行查询:若TF0为0,计数器未溢出,程序转到当前指令 地址若TF0为1,计数器溢出,发出中断请求,程序往下走 CLR TF0 ;溢出中断请求标志位清0(中断请求响应之前,对TF0进行清0) SETB P1.0 ;将P1.0位置1,输出正脉冲 CLR P1.0 ;这是单机器周期的指令,所以正脉冲宽度为2s,正脉冲消失 MO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 木制家具生产合同
- 2024聘请常年法律顾问合同协议书
- 土地租赁合同税务问题
- 股权扩股协议书格式
- 建筑设计培训就业协议书
- 3.1.1 勾股定理 同步课件
- 七年级地理上册-4.2-世界的语言和宗教同课异构教案1-新人教版
- 2024版发起人协议书范例
- 《未来的建筑》示范公开课教学课件【小学三年级美术下册】
- 2024年多应用场景童鞋购销合同
- RITTAL威图空调中文说明书
- 生物质能发电技术应用中存在的问题及优化方案
- GA 1809-2022城市供水系统反恐怖防范要求
- 幼儿园绘本故事:《老虎拔牙》 课件
- 2021年上半年《系统集成项目管理工程师》真题
- 一个冬天的童话 遇罗锦
- GB/T 706-2008热轧型钢
- 实验六 双子叶植物茎的初生结构和单子叶植物茎的结构
- GB/T 25032-2010生活垃圾焚烧炉渣集料
- GB/T 13610-2020天然气的组成分析气相色谱法
- 《彩虹》教案 省赛一等奖
评论
0/150
提交评论