中职基于Proteus仿真的单片机技能应用(双色)proteus项目5教学课件 .ppt

上传人:春哥&#****71; 文档编号:90569464 上传时间:2023-05-15 格式:PPT 页数:30 大小:462KB
返回 下载 相关 举报
中职基于Proteus仿真的单片机技能应用(双色)proteus项目5教学课件 .ppt_第1页
第1页 / 共30页
中职基于Proteus仿真的单片机技能应用(双色)proteus项目5教学课件 .ppt_第2页
第2页 / 共30页
点击查看更多>>
资源描述

《中职基于Proteus仿真的单片机技能应用(双色)proteus项目5教学课件 .ppt》由会员分享,可在线阅读,更多相关《中职基于Proteus仿真的单片机技能应用(双色)proteus项目5教学课件 .ppt(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、中职 基于Proteus仿真的单片机技能应用(双色)proteus项目5教学课件 高教版 项目五 中断系统及外部中断的应用技能应用一 使用外部中断项目基本技能 中断系统是单片机中非常重要的组成部分,它是为了使单片机能够对外部或内部随机发生的事件实时处理而设置的。中断功能的存在,在很大程度上提高了单片机实时处理外部或内部事件的能力,它也是单片机最重要的功能部件之一。一、外部中断控制LED1.技能要求单片机外部中断0中断请求信号输入端(P3.2第二功能)接按键S1模拟外部设备,当每按一次按键S1,产生一次负跳变,模拟外部中断的中断请求信号。在单片机的P1.0接一只LED发光二极管,每产生一次外部中

2、断,P1.0取反一次,LED便会由亮变灭或由灭变亮。一、外部中断控制LED2.仿真电路图外部中断控制LED的电路原理图如图5-1所示。图5-1 外部中断控制LED的电路一、外部中断控制LED3.程序设计与调试分析:由于每按一次按键,单脉冲发生器产生一个脉冲作为中断请求信号,所以将设置为脉冲触发方式,即IT0=1;要让CPU响应中断,需开总中断和外部中断0的中断,即EA=1,EX0=1;因为只有一个中断源,所以不用设置中断优先级。参考程序如下:一、外部中断控制LED#include sbit led=P10;int main()IT0=1;/设置触发方式为脉冲方式EA=1;/允许总中断EX0=1

3、;/允许外部中断0中断while(1)void int0()interrupt 0/外部中断0的中断号为0led=!led;二、防盗报警器的设计1.技能要求 本实例采用断线式防盗报警电路,当触及报警器时,设在隐蔽处的断线报警电路断线,从而输出报警信号,该信号作为中断请求信号向CPU发出中断请求,CPU响应中断后开启报警,LED循环闪烁,同时发出警笛声。2.仿真电路图二、防盗报警器的设计二、防盗报警器的设计3.程序与调试 程序设计主要包括两个部分,一是主程序,主要完成外部中断的初始化、自检、中断被触发后调用报警子函数等;二是中断服务程序,当有中断请求时将报警标志位置1。因为声音是由于振动产生的,

4、只要在P1.0脚输出方波,就能使扬声器的纸盆不停的振动而发声,但要发出人耳能够听到的声音,则方波频率必须在20Hz20KH(音频)之间,频率不同,音调则不同,警笛声的设计思路是:使音调由低逐渐到高,然后突变到低,一直循环,程序中使延时由长逐渐变短,然后突变到长,一直循环。二、防盗报警器的设计主程序及中断服务程序流程图如图5-4所示。(a)主程序流程图(b)中断服务程序流程图 二、防盗报警器的设计根据流程图,编写参考程序如下:#include#include/MCS-51系列单片机内部函数头文件unsigned char a=200;sbit sp=P10;bit flag;delay(unsi

5、gned char i)while(i-);int main()unsigned int k=480;P2=0 x00;while(k-)/开机自检,灯亮、警笛响两声 sp=!sp;二、防盗报警器的设计delay(a);a-;if(a10)a=250;P2=_crol_(P2,1);P2=0 xff;/灯灭,进入警戒状态flag=0;IT1=1;/将外部中断1设置为脉冲方式EA=1;/开中断EX1=1;while(1)if(flag)sp=!sp;delay(a);二、防盗报警器的设计a-;if(a10)a=250;P2=_crol_(P2,1);void int0()interrupt 2/

6、外部中断1中断服务函数flag=1;/将报警标志拉置1P2=0 xf8;三、使用外部中断对脉冲计数1.技能要求 单片机外部中断0中断请求信号输入端(P3.2第二功能)接一个脉冲源,单片机对输入的脉冲个数进行计数,并在数码管上显示脉冲个数。2.仿真电路图 使用外部中断对脉冲计数的电路如图5-5所示,其中脉冲源使用激励源中的数字时钟源,设置频率为10Hz。因为程序中的计数变量为int型的,最大计数脉冲为65535,所以图中使用六个数码管,并且最高位始终显示“0”。三、使用外部中断对脉冲计数图5-5 使用外部中断对脉冲计数的电路三、使用外部中断对脉冲计数3.程序设计与调试 由于脉冲是由外部中断0中断

7、请求信号输入端输入,程序采用中断的方式,每输入一个脉冲,在引脚上产生一次负跳变,就会向CPU请求一次中断,每响应一次中断,使变量a加1,即可实现对外部脉冲进行计数。三、使用外部中断对脉冲计数使用外部中断对脉冲计数参考程序如下:#include unsigned char code seg=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90;/09十个数字和共阳型段码unsigned int a;void delay()unsigned int j;for(j=0;j50;j+);三、使用外部中断对脉冲计数display()un

8、signed char i,wk=0 x01;/wk变量作位控,初始选通左边第1位unsigned char buf6;buf0=sega%10;buf1=sega/10%10;buf2=sega/100%10;buf3=sega/1000%10;buf4=sega/10000%10;buf5=0 xc0;for(i=0;i8;i+)P2=wk;/输出位控P0=bufi;/依次输出18的段码wk=wk1;/位控左移一位delay();/延时P0=0 xff;/熄灭所有数码管(消隐)三、使用外部中断对脉冲计数int main()IT0=1;/将外部中断0设置为脉冲方式EA=1;/开中断EX0=1

9、;while(1)display();void int0()interrupt 0 a+;/每中断一次a加1项目基本知识一、中断的概念 对于单片机来讲,中断是指CPU在处理某一事件A时,发生了另一事件B,请求CPU迅速去处理(中断请求);CPU接到中断请求后,暂停当前正在进行的工作(中断响应),转去处理事件B(执行相应的中断程序),待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断。和中断有关几个概念总结如下:中断:CPU正在执行当前程序的过程中,由于CPU之外的某种原因,暂停当前程序的执行,转而去执行相应的处理(中断服务)程序,待处理程序结束

10、之后,再返回原程序断点处继续运行的过程称为中断。中断系统:实现中断过程的软、硬件系统。中断源:可以引起中断事件的来源称为中断源。中断响应:CPU收到中断请求信号后,暂停当前程序,转去执行中断程序的过程称为中断响应。知识链接一 MCS-51 单片机的中断系统 断点:暂停当前程序时所在的位置称为断点。中断服务程序:中断响应后,转去对突发事件的处理程序称为中断服务程序。中断返回:执行完中断程序返回原程序的过程称为中断返回。中断优先级:当多个中断源同时申请中断时,为了使CPU能够按照用户的规定先处理最紧急的事件,然后再处理其他事件,就需要中断系统设置优先级机制。通过设置优先级,排在前面的中断源称为高级

11、中断,排在后面的称为低级中断。设置优先级以后,若有多个中断源同时发出中断请求时,CPU会优先响应优先级较高的中断源。如果优先级相同,则将按照它们的自然优先级顺序响应默认优先级较高的中断源。中断嵌套:当CPU响应某一中断源请求而进入该中断服务程序中处理时,若更高级别的中断源发出中断申请,则CPU暂停执行当前的中断服务程序,转去响应优先级更高的中断,等到更高级别的中断处理完毕后,再返回低级中断服务程序,继续原先的处理,这个过程称为中断嵌套。中断嵌套示意图如图5-7所示。中断系统中,高优先级中断能够打断低优先级中断以形成中断嵌套,反之,低级中断则不能打断高级中断,同级中断也不能相互打断。项目基本知识

12、二、MCS-51单片机的中断系统MCS-51单片机的中断系统的内部结构框图如图5-8所示。图5-8 MCS-51单片机的中断系统内部结构组成框图 由图可知,MCS-51单片机的中断系统有5个中断源,4个用于中断控制的寄存器TCON、SCON、IE、IP来控制中断类型、中断的开关和各中断源的优先级确定。1 中断源(5 个)(1)外部中断0:名称为,中断请求信号由单片机的P3.2(12脚)口线引入,可通过编程设置为低电平触发或下降沿触发。(2)外部中断1:名称为,中断请求信号由单片机的P3.3(13脚)口线引入,可通过编程设置为低电平触发或下降沿触发。(3)定时/计数器0中断:名称为T0,当T0计

13、数器计满溢出时就会向CPU发出中断请求信号。(4)定时/计数器1中断:名称为T1,当T1计数器计满溢出时就会向CPU发出中断请求信号。(5)串行口中断:MCS-51单片机内部有1个全双工的串行通信接口,可以和外部设备进行串行通信,当串行口接收或发送完一帧数据后会向CPU发出中断请求。小帖士:52子系列单片机有6个中断源,除了上述5个外,还有一个定时/计数器2中断,名称为T2,当T2计数器计满溢出时就会向CPU发出中断请求信号。项目基本知识2 用于中断控制的寄存器(4 个)(1)定时/计数器控制寄存器TCON定时/计数器控制寄存器TCON是一个可位寻址的8位特殊功能寄存器,即可以对其每一位单独进

14、行操作。它不仅与两个定时/计数器的中断有关,也与两个外部中断源有关。它可以用来控制定时/计数器的启动与停止,标志定时/计数器是否计满溢出,还可以设定两个外部中断的触发方式、标志外部中断请求是否触发。因此,它又称为中断请求标志寄存器。单片机复位时,TCON的全部位均被清0。TCON寄存器的各位功能介绍如下:IT0:外部中断0()的触发方式控制位。当IT0=0时,为电平触发方式,收到低电平时则认为是中断请求;当IT0=1时,为边沿触发方式,收到脉冲下降沿时则认为是中断请求。项目基本知识IE0:外部中断0()的中断请求标志位。当外部中断0()的触发请求有效时,硬件电路自动将该位置1。换句话说,当IE

15、0=1时,表示有外部中断0向CPU请求中断;当IE0=0时,则表示外部中断0没有向CPU请求中断。当CPU响应该中断后,由硬件自动将该位清0,不需用专门的语句将该位清0。IT1:外部中断1()的触发方式控制位。当IT1=0时,为电平触发方式,收到低电平时则认为是中断请求;当IT1=1时,为边沿触发方式,收到脉冲下降沿时则认为是中断请求。IE1:外部中断1()的中断请求标志位。当外部中断1()的触发请求有效时,硬件电路自动将该位置1。当CPU响应该中断后,由硬件自动将该位清0,不需用专门的语句将该位清0。TR0:定时/计数器0(T0)的启动/停止控制位。当TR0=1时,T0启动计数;当TR0=0

16、时,T0停止计数。TF0:定时/计数器0(T0)的溢出中断标志位。当定时/计数器0计满溢出时,由硬件自动将TF0置1,表示向CPU发出中断请求,当CPU响应该中断进入中断服务程序后,由硬件自动将该位清0,不需用专门的语句将该位清0。项目基本知识TR1:定时/计数器1(T1)的启动/停止控制位。其功能及使用方法同TR0。TF1:定时/计数器1(T1)的溢出中断标志位。其功能及使用方法同TF0。(2)串行口控制寄存器SCON 串行口控制寄存器SCON中只有低2位与中断有关,用于锁存串行口的接收中断和发送中断标志。TI:串行口发送中断标志位。当串行口发送完一帧数据后,由硬件自动置位TI。TI=1表示

17、串行口发送器正在向CPU请求中断。RI:串行口接收中断标志位。当串行口接收完一帧数据后,由硬件自动置位RI。RI=1表示串行口接收器正在向CPU请求中断。(3)中断允许计寄存器IE 在MCS-51单片机的中断系统中,中断的允许或禁止是在中断允许寄存器IE中设置的。IE也是一个可位寻址的8位特殊功能寄存器,可以对其每一位单独进行操作,也可以对整个字节操作。单片机复位时,IE全部被清0。中断允许寄存器IE的各位功能定义如下:项目基本知识 EA:全局中断允许控制位。当EA=0时,则所有中断均被禁止;当EA=1时,全局中断允许打开,在此条件下,由各个中断源的中断控制位确定相应的中断允许或禁止。换言之,

18、EA就是各种中断源的总开关。EX0:外部中断0()的中断允许位。EX0=1,则允许外部中断0中断,EX0=0则禁止外部中断0中断。ET0:定时/计数器0的中断允许位。ET0=1,则允许定时/计数器0中断,ET0=0则禁止定时/计数器0中断。EX1:外部中断1()的中断允许位。EX1=1,则允许外部中断1中断,EX1=0则禁止外部中断1中断。ET1:定时/计数器1的中断允许位。ET1=1,则允许定时/计数器1中断,ET1=0则禁止定时/计数器1中断。ES:串行口中断允许位。ES1,则允许串行口中断,ES0则禁止串行口中断。项目基本知识(4)中断优先级寄存器IP 前面已讲到中断源优先级的概念。在M

19、CS-51单片机的中断系统中,中断源按优先级分为两级中断:1级中断即高级中断,0级中断即低级中断。中断源的优先级需在中断优先级寄存器IP中设置。IP也是一个可位寻址的8位特殊功能寄存器。单片机复位时,IP全部被清0,即所有中断源均为低级中断。PX0、PT0、PX1、PT1、PS分别为外部中断0、定时/计数器0中断、外部中断1、定时/计数器1中断、串行口中断的优先级控制位。当某位置1时,则相应的中断就是高级中断,否则就是低级中断。优先级相同的中断源同时提出中断请求时,CPU会按照对5个中断源的标志位的查询顺序进行查询,排在前面的中断会被优先响应。项目基本知识3 中断的响应过程及中断功能的使用(1

20、)中断的响应过程如果中断源有请求,CPU开中断(开总中断和相应中断源的中断),且没有同级或高级中断正在服务,CPU就会响应中断。中断响应过程可以分为以下几个步骤:保护断点。保护断点就是将下一条将要执行的指令的地址送入堆栈保存起来,在中断返回时再从堆栈中取出,以保证中断返回后找到断点并从断点处继续执行。保护断点是由硬件自动完成,不需要编程者编写相应的程序。清除中断标志位。内部硬件自动清除所响应的中断源的中断标志位。可自动清除的中断标志位有IE0、IE1、TF0、TF1。项目基本知识 寻找中断入口。中断响应后,CPU会自动转去执行对应中断源的中断服务程序。那么CPU是怎么找到各中断源的中断程序的呢

21、?原来MCS-51单片机的每个中断源都有固定的入口地址,一旦响应中断,CPU自动跳转到相应中断源的入口地址处执行。我们的任务就是把中断程序存放在与中断源对应的入口地址处,如果没把中断程序放在那儿,中断程序就不能被执行到,就会出错。MCS-51单片机的中断服务程序入口地址及中断序号如表5-6所示。执行中断处理程序。中断返回。当执行完中断服务程序后,就从中断服务程序返回到主程序断点处,继续执行主程序。项目基本知识(2)中断功能的使用中断功能的使用主要包括中断初始化和中断服务程序的编写两个方面。中断初始化实质上就是对4个与中断有关的特殊功能寄存器TCON、SCON、IE和IP进行管理和控制,具体实施如下:外部中断请求信号触发方式的设置(IT0、IT1位)。中断的允许和禁止(IE寄存器)。中断源优先级别的设置(IP寄存器)三、使用外部中断的一般步骤和外部中断相关的寄存器是TCON、IE和IP,对外部中断的初始化就是对这三个寄存器赋值。初始化主要包括:外部中断请求信号触发方式的设置(对TCON寄存器的IT0、IT1位赋值);中断的允许和禁止(对IE寄存器的EX0、EX1位赋值);中断源优先级别的设置(对IP寄存器的PX0、PX1位赋值)。中断服务程序需要根据中断源的具体要求

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

当前位置:首页 > 教育专区 > 初中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁