外部中断的检测及其应用教材_第1页
外部中断的检测及其应用教材_第2页
外部中断的检测及其应用教材_第3页
外部中断的检测及其应用教材_第4页
外部中断的检测及其应用教材_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、目录 摘要 1 1 软件介绍 2 1.1 protues 仿真软件 2 1.2 C 编译器 Keil 介绍 3 2 外部中断源的特点及控制 4 2.1 IE 寄存器的特点及设置 4 2.2 中断标志位 TCON的特点及设置 5 2.3 外部中断标志的编程方式 6 3 定时/ 计数器 7 3.1 定时/ 计数器的结构和工作原理 7 3.2 TMOD定时器/ 计数器方式寄存器 7 3.3 TCON定时器/ 计数器控制寄存器 8 4 定时器 / 计数器的设计 10 4.1 任务分析及设计方案 10 4.2 理论分析 10 4.3 流程图 11 4.4 程序设计 12 4.5 Protues 仿真 1

2、3 4.6 仿真结果 14 5 小结 15 武汉理工大学单片机原理与应用课程设计说明书 摘要 中断控制是单片机最重要的技术之一, 实时控制及人机交换等都是通过中断 控制实现的。使用中断控制技术的主要优点表现在: 1)能提高 CPU 工作效率。在中断方式下,当计算机需要进行输入 / 输出操作 时,可以启动相应的外部设备,此后计算机继续执行原来的程序;与此同时,相 应外部设备启动后能独立进行操作, 只有当它需要与 CPU 交换信息时, 才发出中 断申请。 2)能使几个外部设备并行工作。当计算机需要与若干外部设备进行输入/ 输 出操作时, 可以分别启动不同外部设备, 让它们各自进行自己的工作。 当它

3、们准 备就绪分别或同时向计算机提出申请时, 计算机可根据设置的优先级别, 逐个响 应外部设备的中断请求, 不会造成紊乱。 3)能进行实时处理。如在监测系统中,对温度、压力、流量、湿度参数的采 集,根据捕捉到的信息, 利用中断及时进行处理等。 由此可见,中断系统越强大, 单片机的应用范围就越广。 本文主要涉及的内容是单片机外部中断、 中断系统的 应用及其程序的调试。 本次课程设计的要求是:由中断引脚输入 500Hz的脉冲信号,要求每中断一 次,P1.0输出一个 500us的同步负脉冲, P1.1输出一个 1ms的同步正脉冲。 完成这 个课程设计首先需要编写正确的程序代码, 然后通过 Keil 进

4、行编译,使用 Proteus 画出电路图,导入编译生成的 hex文件进行仿真。本次课程设计完成了简单的外 部中断应用,输出脉冲波形,其中涉及到中断及定时计数等知识。 武汉理工大学单片机原理与应用课程设计说明书 1 软件介绍 1.1 proteus 仿真软件 Proteus 软件是来自英国 Labcenter electronics公司的 EDA 工具软件, Proteus 软件有 20 年的历史,在全球广泛使用。 除了具有和其它 EDA 工具一样的原理布图、 PCB 自动或人工布线及电路仿 真的功能外, Proteus 革命性的功能是,它的电路仿真是交互的,可视化的,针 对微处理器的应用, 还

5、可以直接在基于原理图的虚拟原型上编程, 并实现软件源 码级的实时调试, 如有显示及输出, 还能看到运行后输入输出的效果, 配合系统 配置的虚拟仪器如示波器、 逻辑分析仪等,可以测量仿真的波形及记录仿真数据。 在不需要硬件设备投入的情况下 Proteus 软件可以建立完整的电子学习设计开 发环境,缩短研发周期,并且降低开发成本。 Proteus 组合了高级原理布图、 混合模式 SPICE 仿真,PCB 设计以及自动布 线来实现一个完整的电子设计系统。此系统受益于多年来的持续开发 , 被电子 世界在其对 PCB 设计系统的比较文章中评为最好产品“ The Route to PCB CAD”。 Pr

6、oteus 产品系列也包含了我们革命性的 VSM 技术, 用户可以对基于微 控制器的设计连同所有的周围电子器件一起仿真。用户甚至可以实时采用诸如 LED/LCD、键盘、 RS232 终端等动态外设模型来对设计进行交互仿真。 其功能模块 : 个易用而又功能强大的 ISIS 原理布图工具; PROSPICE混 合 模型 SPICE 仿真; ARESPCB 设计。 PROSPICE仿 真器的一个扩展 PROTEUS VSM: 便于包括所有相关的器件的基于微处理器设计的协同仿真。 此外,还可以结合微 控制器软件使用动态的键盘,开关,按钮, LED 甚至 LCD 显示 CPU 模型。 Proteus 主

7、要特征: 1 )支持许多通用的微控制器 , 如 ARM,PIC,AVR,以及 8051. 2 )交互的装置模型包括 :LED 和 LCD 显示,RS232 终端, 通用键盘 3 ) 强大的调试工具 , 包括寄存器和存储器 , 断点和单步模式 4 ) IAR C-SPY 和 Keil uVision4 等开发工具的源层调试 武汉理工大学单片机原理与应用课程设计说明书 1.2 C 编译器 Keil 介绍 Keil C51是美国 Keil Software 公司出品的 51 系列兼容单片机 C语言软件 开发系统,与汇编相比, C 语言在功能上、结构性、可读性、可维护性上有明显 的优势,因而易学易用。

8、 Keil 提供了包括 C 编译器、宏汇编、连接器、库管理 和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境 ( uVision )将这些部分组合在一起。 KeilSoftware 公司推出的 uVision4 是一款可用于多种 8051MCU的集成开发 环境(IDE) ,该 IDE同时也是 PK51及其它开发套件的一个重要组件。 除增加了源 代码、功能导航器、模板编辑以及改进的搜索功能外, uVision3 还提供了一个 配置向导功能, 加速了启动代码和配置文件的生成。 此外其内置的仿真器可模拟 目标 MCU,包括指令集、 片上外围设备及外部信号等。 uVision3 提

9、供逻辑分析器, 可监控基于 MCUI/O引脚和外设状态变化下的程序变量。 uVision4 提供对多种最 新的 8051类微处理器的支持,包括 AnalogDevices 的 ADuC83x和 ADuC84x,以 及 Infineon 的 XC866等。 武汉理工大学单片机原理与应用课程设计说明书 2 外部中断源的特点及控制 80C51 共有 5 个中断源,它们在程序存储器中各有固定的中断服务入口地 址,当CPU响应中断时, 硬件自动形成各自的入口地址, 由此进入中断服务程序, 从而实现了正确的转移。 其中有 2 个来自单片机的外部外部中断源。 对外部中 断的控制主要有: 1) 外部中断的开放

10、或禁止; 2) 触发电平方式; 3)优先级别的选 择。这些控制机构分别位于 IE、TCON和 IP 等 3 个专用寄存器中。 这些中断源的符号,名称,产生条件及中断服务程序的入口地址见表 2.1 表 2.1 外部中断源的特点及控制 中断源符号 名称 中断引起原因 中断服务程序入口地址 INT0 外部中断 0 P3.2引脚的低电平或下降沿信号 0003H INT1 外部中断 1 P3.3引脚的低电平或下降沿信号 0013H T0 定时器 0 中断 定时 /计数器 0 计数回零溢出 000BH T1 定时器 1 中断 定时 /计数器 1 计数回零溢出 001BH T2 定时器 2 中断 定时器 2

11、 中断(TF2 或 T2EX )信号 002BH TI /RI 串行口中断 串行通信完成一帧数据发送或接受 引起中断 0023H 2.1 IE 寄存器的特点及设置 IE 寄存器是由一个中断允许总控制位和各中断源的中断允许控制位构成 的,由此实现 2 级中断允许控制。 IE 寄存器中的各位定位如图 2.2 所示。 表 2.2 IE 寄存器的特点及设置 EA - ET2 ES ET1 EX1 ET0 EX0 中断总控 不用 T2 串行口 T1 INT1 T0 INT 0 允/禁 允/ 禁 允/禁 允/禁 允/禁 允/ 禁 允 / 禁 IE各位具体说明如下: EA :总开关控制位 EA=0,屏蔽所有

12、中断请求; EA=1,开放中断 武汉理工大学单片机原理与应用课程设计说明书 只有开放总中断后,各中断源的申请才可能被响应。 EX0 :外部中断 0中断允许位 EX0=0 禁止外部中断 0 申请中断; EX0=1 允许外部中断 0 申请中断。 EX1 :外部中断 1 中断允许位 EX1=0 禁止外部中断 1 申请中断; EX1=1 允许外部中断 1 申请中断。 对外部中断请求的设置, 可用位操作指令, 也可用字节操作指令, 如开放外 中断0。用位操作指令: SETBE A,CPU 打开总中断; SETBE X0,允许外部中断 0 中 断。用字节操作指令: MOV IE, #81H 或MOV A8

13、H,#81H。 比较这 2 种指令对 IE 的赋值方法,显然用位指令赋值直观性强,但书写麻 烦些;用字节指令赋值, 直观性差, 但书写简单。 在实际运用中, 采取哪种方式, 可根据自己对指令系统掌握的熟练程度来选择。 2.2 中断标志位 TCON的特点及设置 80C51 还为每个中断源设置有标志位, 2 个外部中断源的标志位锁存在专用 寄存器 TCON之 中,如图 2.3 。 表2.3 TCON的特点及设置 TF1 TR1 TF0 TR0 TE1 IT1 IE0 IT0 T1 请求 T1 工作 T0 请求 T0 工作 INT 请求 INT1 方式 INT 请求 INT 方式 有/ 无 有 /

14、无 有/无 有/无 有/无 下沿 / 低电平 有/无 下沿/ 低电平 各控制位的含义: IE0 :外部中断 0 中断请求标志 IT0 :外部中断 0 中断触发方式控制位 IT0=0,外部中断 0 为电平触发方式 ( 低电平有效 ) ; IT0=1 ,外部中断 0 为 边沿触发方式 ( 下降沿有效 ) IE1 :外部中断 1 中断请求标志 IT1 :外部中断 1 中断触发方式控制位 IT1=0 ,外部中断 1 为电平触发方式; IT1=1 ,外部中断 1 为边沿触发方式。 电平触发方式适合于外部中断输入以低电平输入且中断服务程序能清除外 部中断请求源的情况,而边沿触发方式适合于以负脉冲形式输入的

15、外部中断请 武汉理工大学单片机原理与应用课程设计说明书 求。在运用中,可根据具体情况合理选择。 2.3 外部中断标志的编程方式 合理编写程序是实现对中断控制的最基本方法, 外部中断标志的编程方式有 中断方式和查询方式。 中断方式是指 CPU 在接收到外部中断请求时, 暂时停止主程序的执行, 转去 处理相关的服务程序, 之后再返回继续运行原程序。 中断方式下的编程一般有如 下步骤: 1) 开中断;2)设置中断优先级; 3)中断源的相关控制; 4) 编写中断服务 程序。 查询方式就是 CPU 主动地监测中断源的状态并做出相应反应。 其编程步骤如 下: 1)关中断; 2)中断源的相关设置; 3)关中

16、断查询及相关处理。 2 种方式的特点是: 在中断方式下, CPU 除了响应中断之外的时间都用于执 行主程序,中断源与 CPU实现了并行工作。而在查询方式下,除初始化工作外, CPU 完全用于处理中断标志的查询及中断标志有效后的处理,中断一直占用着 CPU 的时间,并没有处于并行工作状态。 武汉理工大学单片机原理与应用课程设计说明书 3 定时 / 计数器 3.1 定时/ 计数器的结构和工作原理 8XX51单片机的定时 / 计数器 T1 由寄存器 TH1、TL1 组成, T0由寄存器 TH0、 TL0组成。他们均为 8 位寄存器,在特殊功能寄存器中占地址 8AH-8DH。他们用 于存放定时或计数的

17、初始值。此外,内部还有一个 8 位的方式寄存器 TMOD和一 个 8 位的控制寄存器 TCON,用于选择和控制定时 / 计数器的工作。 定时/计数器实质上是一个加 1 计数器,它可以用于定时方式,也可以用于 计数方式,这两种工作方式实质上都是对脉冲计数, 只不过所记脉冲的来源不同。 1)定时器 / 计数器为计数工作方式 计数器 T0,T1 的计数脉冲分别来自于引脚 T0(P3.4) 或引脚 T1(P3.5 )上的 外部脉冲。 计数器对外部脉冲的下降沿进行加 1计数,直到记满预订值回零, 置 位定时/计数器中断标志位 TF0(或 TF1),产生溢出中断。由于检测一个由“ 1” 到“ 0”的跳变需

18、要两个机器周期,前一个机器周期测出“ 1”,后一个周期测出 “ 0”,故计数脉冲的最高频率不得超过 fosc/24 。 2)定时器 / 计数器为定时工作方式 计数器的加 1 信号由振荡器的 12 分频信号产生,即每过一个机器周期,计 数器加 1,直至计满溢出为止。 显然,定时器的定时时间与系统的振荡频率有关。 因一个机器周期等于 12 个振荡周期,所以计数频率 fcount=1/12osc 。如果晶振 为 12MHz,则计数周期为: T=1/(12106)Hz1/12=1 s 这是最短的定时周期。 若要延长定时时间, 则需要改变定时器的初值, 并要 适当选择定时器的长度(如 8 位、 13位、

19、 16 位等)。 3.2 TMOD定时器 / 计数器方式寄存器 定时器方式控制寄存器 TMOD在特殊功能寄存器中,字节地址为 89H,无位 地址。其高 4位用于选择 T1的工作方式,低 4 位用于选择 T0的工作方式。 武汉理工大学单片机原理与应用课程设计说明书 TMOD的格式如表 3.1 所示 表 3.1 TMOD 定时器 / 计数器方式寄存器 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

20、=1时启动定时 /计数器工作。 C T:定时器计数器选择位。 C/T1,为计数器方式; CT0,为定时 器方式。 M1M:0 工作方式选择位。定时器计数器的 4 种工作方式由 M1M0设定。其 工作方式如表 3.2 所示: 表 3.2 TMOD 工作方式 M1M0 工作方式 功能描述 00 工作方式 0 13位计数器 01 工作方式 1 16位计数器 10 工作方式 2 自动再装入 8 位计数器 11 工作方式 3 定时器 0:分成两个 8 位计数器; 定时器 1:停止计数 定时器/ 计数器方式控制寄存器 TMOD不能进行位寻址,只能用字节传送指令 设置定时器工作方式,低半字节定义为定时器 0

21、,高半字节定义为定时器 1。复 位时, TMOD所有位均为 0。 3.3 TCON定时器 / 计数器控制寄存器 TCON在特殊功能寄存器中,字节地址为 88H,位地址(由低位到高位 )为 88H 一 8FH。 TCON是一个多功能的寄存器,其格式如表 3.3 所示: 表 3.3 TCON 定时器 / 计数器控制寄存器 TCON 地址 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H 符号位 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 8 武汉理工大学单片机原理与应用课程设计说明书 在 TCON寄存器中,定时 / 计数器的控制仅用了其中的高 4 位,其意义如下:

22、 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 任务分析及设计方案 由题目要求由中断引脚输入脉冲信号, 所以既可以采用外部中断也可以采用 计数器中断。我采用的是计数器中断,在计数器

23、中断设计过程通过 T1 对脉冲进 行计数,利用 T0 进行定时。 本次设计使用 PROTUE软S 件进行仿真,在电路设计中要对软件里的各元件的 属性有一定的了解,对元件的选择也要仔细,在使用 WAVE仿真器仿真时候要把 每个生成的 HEX文件保存好, 然后把所写的程序烧写到硬件电路中, 这样就可以 在硬件电路中显示结果。 8XX51的定时 /计数器件,使用前应现对其内部的寄存器进行设置,以对它 进行控制,这称为初始化编程, 8XX51的定时/ 计数器初始化编程步骤: (1)根据定时器时间要求或计数器要求计算计算器初值; ( 2)将工作方式控制字写入 TMOD寄存器; (3)将计数器初值写入 T

24、Hx和 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 上的外部脉 冲计数,重复前述过程。 设定

25、时 500us 的初始值为 X,则 (256-X)*2us=500us X=6 10 武汉理工大学单片机原理与应用课程设计说明书 4.3 流程图 开始 P1.1 取 0 T0 为方式 2 计数器 装入初值并启动 T0 关闭 T0 设定 T0 为 500us 定时 P1.1置 1, P1.0清 0 图 4.3 程序设计流程图 11 武汉理工大学单片机原理与应用课程设计说明书 4.4 程序设计 BEGIN:MOV TMOD,#6H; 设 T0为方式 2 计数器 MOV TH0,#0FFH ; MOV TL0,#0FFH SETB P1.0 CLR P1.1;P1.1 SETB TR0; DELL:

26、JBC TF0,RESP1 AJMP DELL RESP1:CLR TR0 MOV TMOD,#02H ; MOV TH0,#06H ; MOV TL0,#06H SETB P1.1;P1.1 CLR P1.0;P1.0 SETB TR0; DEL2:JBC TF0,RESP2 AJMP DEL2 计数一个脉冲 初值为 0 启动计数器 检测外跳变信号 重置 T0为 500us定时 重置定时初值 清零 启动定时 / 计数器 检测第一次 500us 到否 RESP2:SETB P1.0 ;P1.0 恢复 1 DEL3:JBC TF0,RESP3 检测第二次 500us 到否 AJMP DEL3 R

27、ESP3:CLR P1.1 ;P1.1 复 0 CLR TR0 AJMP BEGIN 12 武汉理工大学单片机原理与应用课程设计说明书 4.5 Protues 仿真 VCC X1 CRYST 18 C3 R3 R1 5 220 R2 C1 33pF 1 2 3 6 7 8 29 30 31 C2 33pF 220 U1 19 XTAL1 P0.0/AD0 P0.1/AD1 P0.2/AD2 XTAL2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 RST P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 PSEN ALE P2.4/

28、A12 EA P2.5/A13 P2.6/A14 P2.7/A15 P1.0 P3.0/RXD P1.1 P3.1/TXD P1.2 P3.2/INT0 P1.3 P3.3/INT1 P1.4 P3.4/T0 P1.5 P3.5/T1 P1.6 P3.6/WR P1.7 P3.7/RD AT89C51 3938373635343332 21 10 11 12 13 14 15 16 17 500HZ脉冲 根据程序设计和理论分析设计原理图如下图 4.2 所示: 图 4.2 电路仿真图 元件及其主要参数设置: 单片机: AT89C51 晶振 6MHZ 电阻: R1,R2, R3 阻值都为 220欧姆 无极电容: C1,C2 都为 33PF 极性电容: C3 10uF 500HZ脉冲:幅度 5V 13 武汉理工大学单片机原理与应用课程设计说明书 4.6 仿真结果 电路仿真结果如下图 4.3 所示: 图 4.3 电路仿真结果 示波器显示的波形依次为脉冲信号的波形, P1.0 端口和 P1.1 端口。 上述示波器的设置:水平方向每格为 1mS,垂直方向每格代表 5mV。从示波器显 示的波形可以看出每中断一次, P1.0 输出一个 500us 的同步负脉冲, P1.1 输出 一个 1ms的同步正脉冲。

温馨提示

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

评论

0/150

提交评论