单片机外部中断概念及编程_第1页
单片机外部中断概念及编程_第2页
单片机外部中断概念及编程_第3页
单片机外部中断概念及编程_第4页
单片机外部中断概念及编程_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四课中断技术武汉三维电子工作室

第一讲1、单片机外部中断概念分析2、单片机外部中断编程讲解1、单片机外部中断概念分析所谓“中断”,是指CPU执行正常程序时,系统出现特殊请求,CPU暂时中止当前的程序,转去处理更紧急的事件(执行中断服务程序),处理完毕(中断服务完成)后,CPU自动返回原程序的过程。提高CPU效率(实时响应外界信息)、实现并行工作。(看书的同时等待电话铃响)生活中雨中断有关的列子在家里看书,门铃响了,开门,继续看书在家里看书,电话铃响了,接电话,继续看书看书(主程序)电话铃、门玲(中断信号,中断源头)开门、接电话(中断服务子程序)大脑如果没有中断机制,则必须看完书再去开门,或者不看书就在等待敲门去开门,这样做显然效率很低。即实现同步运行。1.MCS-51的中断源

51允许5个中断源:

(1)2个外部中断源

由P3.2P3.3按键接收的信号

(2)3个内部中断源

内部定时时间到的2个中断,串口通讯收到数据,或则要发送数据的1个串口中断。

高级的51单片机还有更多的中断源。(人类生活一样看书饿、门铃)51单片机中断源分类外部中断从外部引脚P3.2或者P3.3引脚接收到的信号称为中断源。(比如在看书时,敲门声和电话声就是两种中断源)外部中断信号由两种类型(敲门门铃,直接手敲门,看书手机短信、电话)。电平触发:低电平有效边缘触发:高电平变为低电平有效中断申请寄存器IE介绍中断允许寄存器IE(可以打开和屏蔽相应的中断,可位控制也可以字节控制)EX0/EX1ET1/ET0ES位:分别是外部中断、定时中断、串口中断允许控制位。

=0:禁止中断;

=1:允许中断。EA:总的中断允许控制位(总开关):

=0:禁止全部中断;

=1:允许中断。EAESET1EX1ET0EX0方式及标志寄存器TCON定时器控制寄存器TCON(高四位与定时中断有关,低四位与外部中断有关)IE0/IE1:外部中断申请标志位(由硬件自动置位,中断响应后转向中断服务程序时,由硬件自动清0)。

=0:没有外部中断申请;

=1:有外部中断申请。(与用户无关,是单片机判断有效中断信号的唯一标志)IT0/IT1:外部中断请求的触发方式控制位(可由用户通过软件设置)。

=0:在INT0/INT1端申请中断的信号低电平有效;

=1:在INT0/INT1端申请中断的信号脉冲有效。TF1TR1TF0TR0

IE1

IT1

IE0

IT02、单片机外部中断编程讲解1、确立对应中断源入口地址。2、申请中断,中断方式设置3、确立主程序和中断服务子程序。外部中断0interrupt0//P3.2进来的信号定时中断0interrupt1外部中断1interrupt2//P3.3进来的信号定时中断1interrupt3串口中断interrupt4voidint_0()interrupt0{中断服务子程序}中断程序格式Main(){

中断寄存器设置;主程序任务;}voidint_0()interruptx中断服务子程序{中断服务子程序}程序1仿真实现不带中断抽奖机不带中断的抽奖机源程序/*功能:不带中断的抽奖机L4-1-CX1.C设计:杨荣国时间:2010-11-25*/#include<reg51.h>sbitKEY1=P3^2;charSEG[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};sbitSPK=P2^7;voiddelay(intx){ inti,j; for(i=0;i<x;i++) for(j=0;j<120;j++);}main(){ while(1) {

inti; charj; for(i=0;i<10;i++) { P0=SEG[i]; delay(1000); if(KEY1==0) { for(j=0;j<3;j++) { SPK=0; P0=SEG[i]; delay(100); SPK=1; P0=0xff; delay(100); } }//us时间响应我按键信号。。。

} }}程序2仿真实现带中断抽奖机带中断的抽奖机程序/*功能:带中断的抽奖机L4-2-CX1.C设计:杨荣国日期;2010-11-25*/#include<reg51.h>intSEG[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};sbitSPK=P2^7;intx;voidint_it(){ EX0=1; //打开外部中断0开关

IT0=1;//脉冲触发

EA=1;}voiddelay(intx){ inti,j; for(i=0;i<x;i++) for(j=0;j<120;j++);}voidmain(){ int_it(); while(1) { for(x=0;x<10;x++) { P0=SEG[x]; delay(1000); } }}vo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论