外部中断的检测及其应用教材.docx

上传人:b****8 文档编号:8976488 上传时间:2023-05-16 格式:DOCX 页数:15 大小:185.25KB
下载 相关 举报
外部中断的检测及其应用教材.docx_第1页
第1页 / 共15页
外部中断的检测及其应用教材.docx_第2页
第2页 / 共15页
外部中断的检测及其应用教材.docx_第3页
第3页 / 共15页
外部中断的检测及其应用教材.docx_第4页
第4页 / 共15页
外部中断的检测及其应用教材.docx_第5页
第5页 / 共15页
外部中断的检测及其应用教材.docx_第6页
第6页 / 共15页
外部中断的检测及其应用教材.docx_第7页
第7页 / 共15页
外部中断的检测及其应用教材.docx_第8页
第8页 / 共15页
外部中断的检测及其应用教材.docx_第9页
第9页 / 共15页
外部中断的检测及其应用教材.docx_第10页
第10页 / 共15页
外部中断的检测及其应用教材.docx_第11页
第11页 / 共15页
外部中断的检测及其应用教材.docx_第12页
第12页 / 共15页
外部中断的检测及其应用教材.docx_第13页
第13页 / 共15页
外部中断的检测及其应用教材.docx_第14页
第14页 / 共15页
外部中断的检测及其应用教材.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

外部中断的检测及其应用教材.docx

《外部中断的检测及其应用教材.docx》由会员分享,可在线阅读,更多相关《外部中断的检测及其应用教材.docx(15页珍藏版)》请在冰点文库上搜索。

外部中断的检测及其应用教材.docx

外部中断的检测及其应用教材

摘要

中断控制是单片机最重要的技术之一,实时控制及人机交换等都是通过中断控制实现的。

使用中断控制技术的主要优点表现在:

1)能提高CPU工作效率。

在中断方式下,当计算机需要进行输入/输出操作时,可以启动相应的外部设备,此后计算机继续执行原来的程序;与此同时,相应外部设备启动后能独立进行操作,只有当它需要与CPU交换信息时,才发出中断申请。

2)能使几个外部设备并行工作。

当计算机需要与若干外部设备进行输入/输出操作时,可以分别启动不同外部设备,让它们各自进行自己的工作。

当它们准备就绪分别或同时向计算机提出申请时,计算机可根据设置的优先级别,逐个响应外部设备的中断请求,

不会造成紊乱。

3)能进行实时处理。

如在监测系统中,对温度、压力、流量、湿度参数的采集,根据捕捉到的信息,利用中断及时进行处理等。

由此可见,中断系统越强大,单片机的应用范围就越广。

本文主要涉及的内容是单片机外部中断、中断系统的应用及其程序的调试。

本次课程设计的要求是:

由中断引脚输入500Hz的脉冲信号,要求每中断一次,P1.0输出一个500us的同步负脉冲,P1.1输出一个1ms的同步正脉冲。

完成这个课程设计首先需要编写正确的程序代码,然后通过Keil进行编译,使用Proteus画出电路图,导入编译生成的hex文件进行仿真。

本次课程设计完成了简单的外部中断应用,输出脉冲波形,其中涉及到中断及定时计数等知识。

 

1软件介绍

1.1proteus仿真软件

Proteus软件是来自英国Labcenterelectronics公司的EDA工具软件,Proteus软件有20年的历史,在全球广泛使用。

除了具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,Proteus革命性的功能是,它的电路仿真是交互的,可视化的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,可以测量仿真的波形及记录仿真数据。

在不需要硬件设备投入的情况下Proteus软件可以建立完整的电子学习设计开发环境,缩短研发周期,并且降低开发成本。

Proteus组合了高级原理布图、混合模式SPICE仿真,PCB设计以及自动布线来实现一个完整的电子设计系统。

此系统受益于多年来的持续开发,被《电子世界》在其对PCB设计系统的比较文章中评为最好产品—“TheRoutetoPCBCAD”。

Proteus产品系列也包含了我们革命性的VSM技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。

用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。

其功能模块:

—个易用而又功能强大的ISIS原理布图工具;PROSPICE混合模型SPICE仿真;ARESPCB设计。

PROSPICE仿真器的一个扩展PROTEUSVSM:

便于包括所有相关的器件的基于微处理器设计的协同仿真。

此外,还可以结合微控制器软件使用动态的键盘,开关,按钮,LED甚至LCD显示CPU模型。

Proteus主要特征:

1)支持许多通用的微控制器,如ARM,PIC,AVR,以及8051.

2)交互的装置模型包括:

LED和LCD显示,RS232终端,通用键盘

3)强大的调试工具,包括寄存器和存储器,断点和单步模式

4)IARC-SPY和KeiluVision4等开发工具的源层调试

1.2C编译器Keil介绍

KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。

KeilSoftware公司推出的uVision4是一款可用于多种8051MCU的集成开发环境(IDE),该IDE同时也是PK51及其它开发套件的一个重要组件。

除增加了源代码、功能导航器、模板编辑以及改进的搜索功能外,uVision3还提供了一个配置向导功能,加速了启动代码和配置文件的生成。

此外其内置的仿真器可模拟目标MCU,包括指令集、片上外围设备及外部信号等。

uVision3提供逻辑分析器,可监控基于MCUI/O引脚和外设状态变化下的程序变量。

uVision4提供对多种最新的8051类微处理器的支持,包括AnalogDevices的ADuC83x和ADuC84x,以及Infineon的XC866等。

 

2外部中断源的特点及控制

80C51共有5个中断源,它们在程序存储器中各有固定的中断服务入口地址,当CPU响应中断时,硬件自动形成各自的入口地址,由此进入中断服务程序,从而实现了正确的转移。

其中有2个来自单片机的外部—外部中断源。

对外部中断的控制主要有:

1)外部中断的开放或禁止;2)触发电平方式;3)优先级别的选择。

这些控制机构分别位于IE、TCON和IP等3个专用寄存器中。

这些中断源的符号,名称,产生条件及中断服务程序的入口地址见表2.1

表2.1外部中断源的特点及控制

中断源符号

名称

中断引起原因

中断服务程序入口地址

外部中断0

引脚的低电平或下降沿信号

0003H

外部中断1

引脚的低电平或下降沿信号

0013H

定时器0中断

定时/计数器0计数回零溢出

000BH

定时器1中断

定时/计数器1计数回零溢出

001BH

定时器2中断

定时器2中断(TF2或T2EX)信号

002BH

串行口中断

串行通信完成一帧数据发送或接受引起中断

0023H

2.1IE寄存器的特点及设置

IE寄存器是由一个中断允许总控制位和各中断源的中断允许控制位构成的,由此实现2级中断允许控制。

IE寄存器中的各位定位如图2.2所示。

表2.2IE寄存器的特点及设置

EA

-

ET2

ES

ET1

EX1

ET0

EX0

中断总控

允/禁

不用

T2

允/禁

串行口

允/禁

T1

允/禁

允/禁

T0

允/禁

允/禁

IE各位具体说明如下:

EA:

总开关控制位

EA=0,屏蔽所有中断请求;EA=1,开放中断。

只有开放总中断后,各中断源的申请才可能被响应。

EX0:

外部中断0中断允许位

EX0=0禁止外部中断0申请中断;EX0=1允许外部中断0申请中断。

EX1:

外部中断1中断允许位

EX1=0禁止外部中断1申请中断;EX1=1允许外部中断1申请中断。

对外部中断请求的设置,可用位操作指令,也可用字节操作指令,如开放外中断0。

用位操作指令:

SETBEA,CPU打开总中断;SETBEX0,允许外部中断0中断。

用字节操作指令:

MOVIE,#81H或MOVA8H,#81H。

比较这2种指令对IE的赋值方法,显然用位指令赋值直观性强,但书写麻烦些;用字节指令赋值,直观性差,但书写简单。

在实际运用中,采取哪种方式,可根据自己对指令系统掌握的熟练程度来选择。

2.2中断标志位TCON的特点及设置

80C51还为每个中断源设置有标志位,2个外部中断源的标志位锁存在专用寄存器TCON之中,如图2.3。

表2.3TCON的特点及设置

TF1

TR1

TF0

TR0

TE1

IT1

IE0

IT0

T1请求

有/无

T1工作

有/无

T0请求

有/无

T0工作

有/无

INT请求

有/无

INT1方式

下沿/低电平

INT请求

有/无

INT方式

下沿/低电平

各控制位的含义:

IE0:

外部中断0中断请求标志

IT0:

外部中断0中断触发方式控制位

IT0=0,外部中断0为电平触发方式(低电平有效);IT0=1,外部中断0为边沿触发方式(下降沿有效)

IE1:

外部中断1中断请求标志

IT1:

外部中断1中断触发方式控制位

IT1=0,外部中断1为电平触发方式;IT1=1,外部中断1为边沿触发方式。

电平触发方式适合于外部中断输入以低电平输入且中断服务程序能清除外部中断请求源的情况,而边沿触发方式适合于以负脉冲形式输入的外部中断请求。

在运用中,可根据具体情况合理选择。

2.3外部中断标志的编程方式

合理编写程序是实现对中断控制的最基本方法,外部中断标志的编程方式有中断方式和查询方式。

中断方式是指CPU在接收到外部中断请求时,暂时停止主程序的执行,转去处理相关的服务程序,之后再返回继续运行原程序。

中断方式下的编程一般有如下步骤:

1)开中断;2)设置中断优先级;3)中断源的相关控制;4)编写中断服务程序。

查询方式就是CPU主动地监测中断源的状态并做出相应反应。

其编程步骤如下:

1)关中断;2)中断源的相关设置;3)关中断查询及相关处理。

2种方式的特点是:

在中断方式下,CPU除了响应中断之外的时间都用于执行主程序,中断源与CPU实现了并行工作。

而在查询方式下,除初始化工作外,CPU完全用于处理中断标志的查询及中断标志有效后的处理,中断一直占用着CPU的时间,并没有处于并行工作状态。

 

3定时/计数器

3.1定时/计数器的结构和工作原理

8XX51单片机的定时/计数器T1由寄存器TH1、TL1组成,T0由寄存器TH0、TL0组成。

他们均为8位寄存器,在特殊功能寄存器中占地址8AH-8DH。

他们用于存放定时或计数的初始值。

此外,内部还有一个8位的方式寄存器TMOD和一个8位的控制寄存器TCON,用于选择和控制定时/计数器的工作。

定时/计数器实质上是一个加1计数器,它可以用于定时方式,也可以用于计数方式,这两种工作方式实质上都是对脉冲计数,只不过所记脉冲的来源不同。

1)定时器/计数器为计数工作方式

计数器T0,T1的计数脉冲分别来自于引脚T0(P3.4)或引脚T1(P3.5)上的外部脉冲。

计数器对外部脉冲的下降沿进行加1计数,直到记满预订值回零,置位定时/计数器中断标志位TF0(或TF1),产生溢出中断。

由于检测一个由“1”到“0”的跳变需要两个机器周期,前一个机器周期测出“1”,后一个周期测出“0”,故计数脉冲的最高频率不得超过fosc/24。

2)定时器/计数器为定时工作方式

计数器的加1信号由振荡器的12分频信号产生,即每过一个机器周期,计数器加1,直至计满溢出为止。

显然,定时器的定时时间与系统的振荡频率有关。

因一个机器周期等于12个振荡周期,所以计数频率fcount=1/12osc。

如果晶振为12MHz,则计数周期为:

T=1/(12×106)Hz×1/12=1μs

这是最短的定时周期。

若要延长定时时间,则需要改变定时器的初值,并要适当选择定时器的长度(如8位、13位、16位等)。

3.2TMOD定时器/计数器方式寄存器

定时器方式控制寄存器TMOD在特殊功能寄存器中,字节地址为89H,无位地址。

其高4位用于选择T1的工作方式,低4位用于选择T0的工作方式。

TMOD的格式如表3.1所示。

表3.1TMOD定时器/计数器方式寄存器

D7

D6

D5

D4

D3

D2

D1

D0

符号

GATE

C/T

M1

M0

GATE

C/T

M1

M0

各控制位的含义:

GATE:

门控信号。

GATE=0,TRx=1时启动定时/计数器工作;GATE=1,TRx=1,INTx=1时启动定时/计数器工作。

C/T:

定时器/计数器选择位。

C/T=1,为计数器方式;C/T=0,为定时器方式。

M1M0:

工作方式选择位。

定时器/计数器的4种工作方式由M1M0设定。

其工作方式如表3.2所示:

表3.2TMOD工作方式

M1M0

工作方式

功能描述

00

工作方式0

13位计数器

01

工作方式1

16位计数器

10

工作方式2

自动再装入8位计数器

11

工作方式3

定时器0:

分成两个8位计数器;

定时器1:

停止计数

定时器/计数器方式控制寄存器TMOD不能进行位寻址,只能用字节传送指令设置定时器工作方式,低半字节定义为定时器0,高半字节定义为定时器1。

复位时,TMOD所有位均为0。

3.3TCON定时器/计数器控制寄存器

TCON在特殊功能寄存器中,字节地址为88H,位地址(由低位到高位)为88H一8FH。

TCON是一个多功能的寄存器,其格式如表3.3所示:

表3.3TCON定时器/计数器控制寄存器TCON

地址

8FH

8EH

8DH

8CH

8BH

8AH

89H

88H

符号位

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

在TCON寄存器中,定时/计数器的控制仅用了其中的高4位,其意义如下:

TF1:

T1溢出中断请求标志

TF1=1,T1有溢出中断请求;TF1=0,T1无溢出中断请求。

TR1:

T1运行控制位

TR1=1,启动T1工作;TR1=0,停止T1工作。

TF0:

T0溢出中断请求标志

TF0=1,T0有溢出中断请求;TF0=0,T0无溢出中断请求。

TR0:

T0运行控制位

TR0=1,启动T0工作;TR0=0,停止T0工作。

 

4定时器/计数器的设计

4.1任务分析及设计方案

由题目要求由中断引脚输入脉冲信号,所以既可以采用外部中断也可以采用计数器中断。

我采用的是计数器中断,在计数器中断设计过程通过T1对脉冲进行计数,利用T0进行定时。

本次设计使用PROTUES软件进行仿真,在电路设计中要对软件里的各元件的属性有一定的了解,对元件的选择也要仔细,在使用WAVE仿真器仿真时候要把每个生成的HEX文件保存好,然后把所写的程序烧写到硬件电路中,这样就可以在硬件电路中显示结果。

8XX51的定时/计数器件,使用前应现对其内部的寄存器进行设置,以对它进行控制,这称为初始化编程,8XX51的定时/计数器初始化编程步骤:

(1)根据定时器时间要求或计数器要求计算计算器初值;

(2)将工作方式控制字写入TMOD寄存器;

(3)将计数器初值写入THx和TRx寄存器;

(4)启动定时器(或计数器),即将TRx置位。

4.2理论分析

初态p1.0输出高电平(系统复位时实现),P1.1输出低电平,T0选用方式2计数方式(记一个脉冲,初值为FFH)。

当加在P3.4上的外部脉冲负跳变时,T0加1,计数器溢出,程序查询到TF0为1时,改变T0为500us定时工作方式,并且P1.0输出0,P1.1输出1。

T0第一次定时500us溢出后,P1.0恢复1,T0第二次定时500us溢出后,P1.1恢复0,T0恢复计数方式,对P3.4上的外部脉冲计数,重复前述过程。

设定时500us的初始值为X,则

(256-X)*2us=500us

X=6

4.3流程图

 

图4.3程序设计流程图

4.4程序设计

BEGIN:

MOVTMOD,#6H;设T0为方式2计数器

MOVTH0,#0FFH;计数一个脉冲

MOVTL0,#0FFH

SETBP1.0

CLRP1.1;P1.1初值为0

SETBTR0;启动计数器

DELL:

JBCTF0,RESP1;检测外跳变信号

AJMPDELL

RESP1:

CLRTR0

MOVTMOD,#02H;重置T0为500us定时

MOVTH0,#06H;重置定时初值

MOVTL0,#06H

SETBP1.1;P1.1置一

CLRP1.0;P1.0清零

SETBTR0;启动定时/计数器

DEL2:

JBCTF0,RESP2;检测第一次500us到否

AJMPDEL2

RESP2:

SETBP1.0;P1.0恢复1

DEL3:

JBCTF0,RESP3;检测第二次500us到否

AJMPDEL3

RESP3:

CLRP1.1;P1.1复0

CLRTR0

AJMPBEGIN

 

4.5Protues仿真

根据程序设计和理论分析设计原理图如下图4.2所示:

图4.2电路仿真图

元件及其主要参数设置:

单片机:

AT89C51晶振6MHZ

电阻:

R1,R2,R3阻值都为220欧姆

无极电容:

C1,C2都为33PF

极性电容:

C310uF

500HZ脉冲:

幅度5V

 

4.6仿真结果

电路仿真结果如下图4.3所示:

图4.3电路仿真结果

示波器显示的波形依次为脉冲信号的波形,P1.0端口和P1.1端口。

上述示波器的设置:

水平方向每格为1mS,垂直方向每格代表5mV。

从示波器显示的波形可以看出每中断一次,P1.0输出一个500us的同步负脉冲,P1.1输出一个1ms的同步正脉冲。

通过仿真我们实现了程序和硬件的统一。

根据脉冲信号的频率和P1.0,P1.1的脉冲时间可得占空比为1/4,和1/2,与示波器的波形一致。

 

5小结

做这次课程设计之前,我们也曾用Protues仿真过,但是这么就没用,已经觉得很陌生了。

通过此次的课程设计,我认真的看了很多方面关于Protues仿真和单片机中断方面的书,我深深的体会到看书学习才是硬道理。

这次课设我最大的收获是培养了自己独立思考的能力,同时也认识到自己的不足,自己的理论知识还是太少,在以后的学习中我应多看书多学习让自己在学识方面更加的充实。

作为一名电子信息工程专业的大三学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。

在已度过的大学时间里,我们大多数接触的是专业课。

我们在课堂上掌握的仅仅是专业课的理论知识,而类似课程设计就给了我们很大的平台,让我们锻炼了实践能力,也学会把课堂上的基础知识应用到实际中去。

在此,我要感谢我的室友在此次课设当中给了我很大的支持和帮助,在他们的帮助下我顺利的完成了课程设计。

同时也要感谢我的母校能给我这次机会让我锻炼自己。

在设计的过程中有许多问题,比如自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固等。

我们通过查阅大量有关资料,并在小组中互相讨论,交流经验和自学,若遇到实在搞不明白的问题就会及时请教老师,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。

 

参考文献

[1]李全利,迟荣强.单片机原理及接口技术[M].北京:

高等教育出版社,2005:

94-103.

[2]杜洪林,周绍平.51系列单片机中断方法分析与应用[J].机械与电器,2009(3):

44.

[3]李珍,付植桐.单片机原理与应用技术[M].北京:

清华大学出版社,2003:

94-107.

[4]毕万新.单片机原理与接口技术[M].大连:

大连理工大学出版社,2005:

100-122.

[5]吴飞青,丁晓,李林功,等.单片机原理与应用实践指导[M].北京:

机械工业出版社,2009:

2-12.

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

当前位置:首页 > 法律文书 > 判决书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2