中职基于Proteus仿真的单片机技能应用(双色)proteus项目5教学课件 .ppt
《中职基于Proteus仿真的单片机技能应用(双色)proteus项目5教学课件 .ppt》由会员分享,可在线阅读,更多相关《中职基于Proteus仿真的单片机技能应用(双色)proteus项目5教学课件 .ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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能够按照用户的规定先处理最紧急的事件,然后再处理其他事件,就需要中断系统设置优先级机制。通过设置优先级,排在前面的中断源称为高级
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中职 基于Proteus仿真的单片机技能应用双色proteus项目5教学课件 基于 Proteus 仿真 单片机 技能 应用 双色 项目 教学 课件
限制150内