单片机应用技术项目教程项目三任务课件2.ppt

上传人(卖家):三亚风情 文档编号:3438308 上传时间:2022-08-31 格式:PPT 页数:33 大小:981KB
下载 相关 举报
单片机应用技术项目教程项目三任务课件2.ppt_第1页
第1页 / 共33页
单片机应用技术项目教程项目三任务课件2.ppt_第2页
第2页 / 共33页
单片机应用技术项目教程项目三任务课件2.ppt_第3页
第3页 / 共33页
单片机应用技术项目教程项目三任务课件2.ppt_第4页
第4页 / 共33页
单片机应用技术项目教程项目三任务课件2.ppt_第5页
第5页 / 共33页
点击查看更多>>
资源描述

1、项目三 时钟系统设计任务2 秒表设计任务内容 单片机制作一个简易秒表,外接2位数码管显示,可用两个按键分别控制秒表的启停。学习目标1.了解51单片机中断系统的结构、工作原理2.学会用中断的方法处理定时/计数溢出的情况3.巩固数码管和按键的使用方法。知 识 点知识点一 中断的相关概念知识点二 中断源与中断函数知识点三 中断标志与控制知识点四 中断系统结构知识点五 中断请求的响应、撤除及返回1 1中断中断 中断是指计算机在执行某一程序(一般称为主程序)的过程中,当计算机系统有外部设备或内部部件要求CPU为其服务时,必须中断原程序的执行,转去执行相应的处理程序(即执行中断服务程序),待处理结束之后,

2、再回来继续执行被中断的原程序过程。CPU通过中断功能可以分时操作启动多个外部设备同时工作、统一管理,并能迅速响应外部设备的中断请求,采集实时数据或故障信息,对系统进行相应处理,从而使CPU的工作效率得到很大的提高。知识点一 中断的相关概念2 2中断源中断源 中断源是指在单片机系统中向中断源是指在单片机系统中向CPUCPU发出中断请求的来源,发出中断请求的来源,中断源可以人为设定,也可以是为响应突发性随机事件而设置。中断源可以人为设定,也可以是为响应突发性随机事件而设置。单片机系统的中断源一般有外部设备中断源、控制对象中单片机系统的中断源一般有外部设备中断源、控制对象中断源、定时器断源、定时器/

3、计数器中断源、故障中断源等。计数器中断源、故障中断源等。知识点一 中断的相关概念3 3中断优先级中断优先级 一个单片机系统可能有多个中断源,且中断申请是随机的,一个单片机系统可能有多个中断源,且中断申请是随机的,有时可能会有多个中断源同时提出中断申请,而单片机有时可能会有多个中断源同时提出中断申请,而单片机CPUCPU在在某一时刻只能响应一个中断源的中断请求,当多个中断源同时某一时刻只能响应一个中断源的中断请求,当多个中断源同时向向CPUCPU发出中断请求时,则必须按照发出中断请求时,则必须按照“优先级别优先级别”进行排队,进行排队,CPUCPU首先选定其中中断级别高的中断源为其服务,然后按排

4、队首先选定其中中断级别高的中断源为其服务,然后按排队顺序逐一服务,完毕后返回断点地址,继续执行主程序。这就顺序逐一服务,完毕后返回断点地址,继续执行主程序。这就是是“中断优先级中断优先级”的概念。的概念。知识点一 中断的相关概念4 4中断嵌套中断嵌套 优先级别同等或较低的中断请求不能中断正在执行的优先优先级别同等或较低的中断请求不能中断正在执行的优先级别高的中断服务程序,而优先级别高的中断请求可以中断级别高的中断服务程序,而优先级别高的中断请求可以中断CPUCPU正在处理的优先级别低的中断服务程序,转而执行高级别正在处理的优先级别低的中断服务程序,转而执行高级别的中断服务程序,这种情况称为中断

5、嵌套;待执行完后,先返的中断服务程序,这种情况称为中断嵌套;待执行完后,先返回被中断的低级别的中断服务程序继续执行完,然后再返回到回被中断的低级别的中断服务程序继续执行完,然后再返回到主程序。主程序。知识点一 中断的相关概念CPU正执行主程序响应低级中断请求CPU执行低级中断服务程序响应高级中断请求CPU执行高级中断服务程序返回主程序返回低级中断程序 51 51单片机具有五个中断源,分为内部中断源和外部中断单片机具有五个中断源,分为内部中断源和外部中断源:源:2 2个外部中断,个外部中断,2 2个定时器溢出中断及个定时器溢出中断及1 1个串行中断。个串行中断。知识点二 中断源与中断函数1 1外

6、部中断外部中断 外部中断源有两个:外部中断外部中断源有两个:外部中断0/10/1(INT0/INT1INT0/INT1),通常指),通常指由外部设备发出中断请求信号,从由外部设备发出中断请求信号,从 、引脚输入单片机。引脚输入单片机。外部中断请求有两种信号方式:外部中断请求有两种信号方式:电平方式电平方式和和边沿触发边沿触发方式方式。电平方式的中断请求是低电平有效,只要在外部中断输入引。电平方式的中断请求是低电平有效,只要在外部中断输入引脚上出现有效低电平时,就激活外部中断标志。边沿触发方式脚上出现有效低电平时,就激活外部中断标志。边沿触发方式的中断请求则是脉冲的负跳变有效。在这种方式下,两个

7、相邻的中断请求则是脉冲的负跳变有效。在这种方式下,两个相邻的机器周期内,外部中断输入引脚电平发生变化,即在第一个的机器周期内,外部中断输入引脚电平发生变化,即在第一个机器周期内为高电平,第二个机器周期内变为低电平,就激活机器周期内为高电平,第二个机器周期内变为低电平,就激活外部中断标志。由此可见,在边沿触发方式下,中断请求信号外部中断标志。由此可见,在边沿触发方式下,中断请求信号的高电平和低电平状态都应至少维持的高电平和低电平状态都应至少维持1 1个机器周期,以使个机器周期,以使CPUCPU采采样到电平状态的变化。样到电平状态的变化。知识点二 中断源与中断函数2 2定时器中断定时器中断 51

8、51单片机内部定时器单片机内部定时器/计数器计数器T0T0和和T1T1,在计数发生溢出时,在计数发生溢出时,单片机内硬件自动设置一个溢出标志位,申请中断。单片机内硬件自动设置一个溢出标志位,申请中断。3 3串行中断串行中断 串行口中断是为串行通信的需要设定的。当串行口每串行口中断是为串行通信的需要设定的。当串行口每发送发送或接收或接收完一个完一个8 8位二进制数后自动向中断系统提出中断。位二进制数后自动向中断系统提出中断。知识点二 中断源与中断函数4 4中断向量地址中断向量地址 中断源发出中断请求,中断源发出中断请求,CPUCPU响应中断后便转向中断服务程响应中断后便转向中断服务程序。中断源引

9、起的中断服务程序的入口地址(中断向量地址)序。中断源引起的中断服务程序的入口地址(中断向量地址)是固定的,不能更改。中断服务程序入口地址如表所示。是固定的,不能更改。中断服务程序入口地址如表所示。知识点二 中断源与中断函数5 5中断函数中断函数 在在C51C51语言中,对上述的五个中断源进行了编号,这样编语言中,对上述的五个中断源进行了编号,这样编写中断函数时就无需记忆具体的入口地址,只需在中断函数定写中断函数时就无需记忆具体的入口地址,只需在中断函数定义中使用中断编号,编译器就能自动根据中断源转向对应的中义中使用中断编号,编译器就能自动根据中断源转向对应的中断函数执行处理。断函数执行处理。中

10、断函数的定义格式如下:中断函数的定义格式如下:void void 函数名函数名(void)interrupt(void)interrupt 中断编号中断编号 using using 工作寄存器组编号工作寄存器组编号 可执行语句;可执行语句;例如:例如:void Timer()interrupt 1 using 2void Timer()interrupt 1 using 2 知识点二 中断源与中断函数 AT89C51 AT89C51中断标志位集中安排在定时器控制寄存器中断标志位集中安排在定时器控制寄存器TCONTCON和和串行口控制寄存器串行口控制寄存器SCONSCON中。中。1 1控制寄存器

11、控制寄存器TCONTCON 控制寄存器控制寄存器TCONTCON中集中安排了两个定时器中断和两个外部中集中安排了两个定时器中断和两个外部中断的中断标志位,以及相关的几个控制位。中断的中断标志位,以及相关的几个控制位。知识点三 中断标志与控制(1 1)TF1TF1(TCON.7TCON.7):定时器):定时器T1T1溢出中断标志位。当定时器溢出中断标志位。当定时器T1T1产生溢出时,由硬件自动置位,申请中断。待中断响应进入中产生溢出时,由硬件自动置位,申请中断。待中断响应进入中断服务程序后由硬件自动清除。断服务程序后由硬件自动清除。(2 2)TR1TR1(TCON.6TCON.6):定时器):定

12、时器T1T1的启停控制位。的启停控制位。TR1TR1状态靠软状态靠软件置位或清除。置位时,定时器件置位或清除。置位时,定时器T1T1启动开始计数工作,清除时启动开始计数工作,清除时T1T1停止工作。停止工作。(3 3)TF0TF0(TCON.5TCON.5):):T0T0溢出中断标志位。作用与溢出中断标志位。作用与TF1TF1类同。类同。(4 4)TR0TR0(TCON.4TCON.4):):T0T0的启停控制位,其操作与的启停控制位,其操作与TR1TR1类同。类同。知识点三 中断标志与控制(5 5)IE1IE1(TCON.3TCON.3):外部中断):外部中断1 1边沿触发中断请求标志位。当

13、边沿触发中断请求标志位。当CPUCPU检测到检测到INT1INT1(P3.3P3.3脚)上有外部中断请求信号时,脚)上有外部中断请求信号时,IE1IE1由硬由硬件自动置位,请求中断;当件自动置位,请求中断;当CPUCPU响应中断进入中断服务程序后,响应中断进入中断服务程序后,IE1IE1被硬件自动清除。被硬件自动清除。(6 6)IT1IT1(TCON.2TCON.2):外部中断):外部中断1 1触发类型选择位。触发类型选择位。IT1IT1状态可状态可由软件置位或清除,当由软件置位或清除,当IT1=1IT1=1时,设定的是后边沿触发(即由高时,设定的是后边沿触发(即由高变低的下降沿)请求中断方式

14、;当变低的下降沿)请求中断方式;当IT1=0IT1=0时,设定的是低电平触时,设定的是低电平触发请求中断方式。发请求中断方式。(7 7)IE0IE0(TCON.1TCON.1):外部中断):外部中断0 0边沿触发中断请求标志位,其边沿触发中断请求标志位,其功能与功能与IE1IE1类同。类同。(8 8)IT0IT0(TCON.0TCON.0):外部中断):外部中断0 0触发类型选择位,其功能与触发类型选择位,其功能与IT1IT1类同。类同。知识点三 中断标志与控制2 2串行口控制寄存器串行口控制寄存器SCONSCON 串行口控制寄存器串行口控制寄存器SCONSCON中只有中只有TITI和和RIR

15、I两位用来表示串行口两位用来表示串行口中断标志位,其余各位用于串行口其他控制。中断标志位,其余各位用于串行口其他控制。(1 1)TITI:为串行口发送中断标志位。在串行口发送完一组数据时,为串行口发送中断标志位。在串行口发送完一组数据时,TITI由硬由硬件自动置件自动置1 1),请求中断;当),请求中断;当CPUCPU响应中断进入中断服务程序后,响应中断进入中断服务程序后,TITI状态不状态不能被硬件自动清除,而必须在中断程序中由软件来清除。能被硬件自动清除,而必须在中断程序中由软件来清除。(2 2)RIRI:为串行口接收中断标志位。在串行口接收完一组串行数据时,:为串行口接收中断标志位。在串

16、行口接收完一组串行数据时,RIRI由硬件自动置由硬件自动置1 1,请求中断,当,请求中断,当CPUCPU响应中断进入中断服务程序后,也必须响应中断进入中断服务程序后,也必须由软件来清除由软件来清除RIRI标志。标志。知识点三 中断标志与控制3 3中断允许控制寄存器中断允许控制寄存器IEIE AT89C51AT89C51设有专门的开中断和关中断指令,中断的开放和设有专门的开中断和关中断指令,中断的开放和关闭是通过中断允许寄存器关闭是通过中断允许寄存器IEIE各位的状态进行两级控制的。所各位的状态进行两级控制的。所谓两级控制是指所有中断允许的总控制位和各中断源允许的单谓两级控制是指所有中断允许的总

17、控制位和各中断源允许的单独控制位,每位状态位靠软件来设定。独控制位,每位状态位靠软件来设定。知识点三 中断标志与控制3 3中断允许控制寄存器中断允许控制寄存器IEIE(1 1)EAEA(IE.7IE.7):总允许控制位。):总允许控制位。EAEA状态可由软件设定,若状态可由软件设定,若EAEA0 0,禁止,禁止AT89C51AT89C51所有中断源的中断请求;若所有中断源的中断请求;若EAEAl l,则总,则总控制被开放,但每个中断源是允许还是被禁止控制被开放,但每个中断源是允许还是被禁止CPUCPU响应,还受响应,还受控于中断源的各自中断允许控制位的状态。控于中断源的各自中断允许控制位的状态

18、。(2 2)ESES(IE.4IE.4):串行口中断允许控制位。若):串行口中断允许控制位。若ES=0ES=0,则串行,则串行口中断被禁止;若口中断被禁止;若ES=1ES=1,则串行口中断被允许。,则串行口中断被允许。知识点三 中断标志与控制3 3中断允许控制寄存器中断允许控制寄存器IEIE(3 3)ET1ET1(IE.3IE.3):定时器):定时器T1T1的溢出中断允许控制位。若的溢出中断允许控制位。若ET1=0ET1=0,则禁止定时器,则禁止定时器T1T1的溢出中断请求;若的溢出中断请求;若ET1ET11 1,则允许,则允许定时器定时器T1T1的溢出中断请求。的溢出中断请求。(4 4)EX

19、1EX1(IE.2IE.2):外部中断):外部中断1 1的中断请求允许控制位。若的中断请求允许控制位。若EX1EX10 0,则禁止外部中断请求;若,则禁止外部中断请求;若EX1EX11 1,则允许外部中断请求。,则允许外部中断请求。(5 5)ET0ET0(IE.1IE.1):定时器):定时器T0T0的溢出中断允许控制位。其功能的溢出中断允许控制位。其功能类同于类同于ET1ET1。(6 6)EX0EX0(IE.0IE.0):外部中断):外部中断0 0的中断请求允许控制位。其功的中断请求允许控制位。其功能类同于能类同于EX1EX1。知识点三 中断标志与控制例:要开放外中断例:要开放外中断0 0的中

20、断请求,如何设置。的中断请求,如何设置。答:根据如下答:根据如下IEIE的内容,将的内容,将EAEA设置为设置为1 1,EX0EX0设置为设置为1 1即可。即可。即:即:IE=0 x81 IE=0 x81;或位赋值:或位赋值:EA=1EA=1;EX0=1EX0=1;知识点三 中断标志与控制4.4.中断优先级寄存器中断优先级寄存器IPIP AT89C51AT89C51的中断源优先级是由中断优先级寄存器的中断源优先级是由中断优先级寄存器IPIP进行控进行控制的。五个中断源总共可分为两个优先级,每一个中断源都可制的。五个中断源总共可分为两个优先级,每一个中断源都可以通过以通过IPIP寄存器中的相应位

21、设置成高级中断或低级中断。因此,寄存器中的相应位设置成高级中断或低级中断。因此,CPUCPU对所有中断请求只能实现两级中断嵌套。对所有中断请求只能实现两级中断嵌套。知识点三 中断标志与控制4.4.中断优先级寄存器中断优先级寄存器IPIP(1 1)(IP.7IP.7,IP.6IP.6,IP.5IP.5):):5151单片机保留位,其他型号单片机保留位,其他型号有具体定义。有具体定义。(2 2)PSPS(IP.4IP.4):串行口中断优先级设定位。):串行口中断优先级设定位。(3 3)PT1PT1(IP.3IP.3):定时器):定时器T1T1中断优先级控制位。中断优先级控制位。(4 4)PX1PX

22、1(IP.2IP.2):外中断):外中断1 1优先级控制位。优先级控制位。(5 5)PT0PT0(IP.1IP.1):定时器):定时器T0T0中断优先级控制位。中断优先级控制位。(6 6)PX0PX0(IP.0IP.0):外部中断):外部中断0 0优先级控制位。优先级控制位。相应的位相应的位=1=1为高优先级,为高优先级,=0=0为低优先级为低优先级。知识点三 中断标志与控制4.4.中断优先级寄存器中断优先级寄存器IPIP 如果同时收到两个不同优先级的请求,则较高优先级的请如果同时收到两个不同优先级的请求,则较高优先级的请求被首先响应。如果同样优先级的请求同时接收到,则内部对求被首先响应。如果

23、同样优先级的请求同时接收到,则内部对中断源的查询次序决定先接收哪一个请求。如下所示,一般情中断源的查询次序决定先接收哪一个请求。如下所示,一般情况下我们不需考虑。况下我们不需考虑。知识点三 中断标志与控制知识点四 中断系统结构 AT89C51 AT89C51的中断系统主要由中断标志、中断允许寄存器的中断系统主要由中断标志、中断允许寄存器IEIE、中断优先级寄存器中断优先级寄存器IPIP和相应的逻辑电路组成。和相应的逻辑电路组成。知识点五 中断请求撤除(1 1)定时器溢出中断:自动撤除)定时器溢出中断:自动撤除 定时器定时器T0T0和定时器和定时器T1T1的中断请求,的中断请求,CPUCPU响应

24、后,自动由芯片响应后,自动由芯片内部硬件直接清除相应的中断标志位内部硬件直接清除相应的中断标志位TF0TF0、TF1TF1,无需使用者采,无需使用者采取其他任何措施。取其他任何措施。(2 2)串行中断:软件撤除)串行中断:软件撤除 对于串行口中断请求,对于串行口中断请求,CPUCPU响应后,没有用硬件直接清除其响应后,没有用硬件直接清除其中断标志中断标志TITI(SCON.1SCON.1,发送中断标志)、,发送中断标志)、RIRI(SCON.0SCON.0,接收中,接收中断标志)的功能,必须靠软件复位清除。因此在响应串行口中断标志)的功能,必须靠软件复位清除。因此在响应串行口中断请求后,先对断

25、请求后,先对TITI和和RIRI判断后,采用代码判断后,采用代码TI=0;RI=0TI=0;RI=0将其清除。将其清除。(3 3)负边沿请求方式外部中断:自动撤除)负边沿请求方式外部中断:自动撤除 一般情况下,选用负边沿请求方式。一般情况下,选用负边沿请求方式。(4 4)电平请求方式外部中断:需采用硬件强制撤除)电平请求方式外部中断:需采用硬件强制撤除 除特殊情况外,不建议使用该方式。除特殊情况外,不建议使用该方式。任务实施任务实施1 1硬件设计硬件设计任务实施任务实施(1)确定定时初始值X 方式1为16位计数结构,最大计数值为65536。则:方式1下TH0取高8位,TL0取低8位,即TH0=

26、0 x3C,TL0=0 xB0 2 2软件设计软件设计任务实施任务实施 (2)T0中断初始化/*描述:50ms定时*/void InitTimer0(void)TMOD=0 x01;/设定T0工作方式1 TH0=0 x3c;/计数初值 TL0=0 xb0;EA=1;/开中断 ET0=1;2 2软件设计软件设计任务实施任务实施 (3)50ms中断服务程序/*入口:i(50ms计数,记满20为1s)*/void Timer0Interrupt(void)interrupt 1 TH0=0 x3c;/重新赋初值 TL0=0 xb0;i+;if(i=20)i=0;second+;second%=100

27、;/记满1s,更新second变量 2 2软件设计软件设计任务实施任务实施2 2软件设计软件设计(4 4)程序首部及主程序)程序首部及主程序#include /define 8051 registers#include /define 8051 registers#define uchar unsigned char#define uchar unsigned charsbit K_start=P16;sbit K_start=P16;/定义按键定义按键sbit K_stop=P17;sbit K_stop=P17;uchar code tab10=0 x3f,0 x06,0 x5b,0 x4

28、f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;uchar code tab10=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/共阴极数码管共阴极数码管0909的码字的码字 任务实施任务实施 /*主程序主程序*/uchar second;uchar second;uchar i;uchar i;void InitTimer0(void)void InitTimer0(void);void main(void)void main(void)second=0;second=0;/显示初始化显示初

29、始化 P0=tab0;P0=tab0;P2=tab0;P2=tab0;InitTimer0();InitTimer0();/T0 /T0初始化初始化 while(1)while(1)if(!K_start)if(!K_start)/K_start /K_start按下,从按下,从0 0开始记秒开始记秒 while(!K_start);while(!K_start);/等待弹出等待弹出 second=0;second=0;TR0=1;TR0=1;if(!K_stop)if(!K_stop)/K_stop /K_stop按下,停止计时按下,停止计时 while(!K_stop);while(!K_stop);/等待弹出等待弹出 TR0=0;TR0=0;P0=tabsecond/10;P0=tabsecond/10;/显示显示 P2=tabsecond%10;P2=tabsecond%10;课后练习课后练习 设计一个4位数码管动态显示器,利用定时器定时2ms,实现动态显示某一固定的数。例如,显示“8952”。参考电路如图2.17所示,选用4位共阳极数码显示器,公选端需外接三极管驱动。请设计单片机控制程序,并实现仿真。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(单片机应用技术项目教程项目三任务课件2.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|