6-外部中断应用程序设计
- 格式:ppt
- 大小:2.29 MB
- 文档页数:11
第6章 AT89S51的定时/计数器参考答案1.答:(A )对;(B )错;(C )错;(D )错; 2.答:因为机器周期: 所以定时器/计数器工作方式0下,其最大定时时间为同样可以求得方式1下的最大定时时间为262.144ms ;方式2下的最大定时时间为1024ms 。
3.答:定时/计数器作定时时,其计数脉冲由系统振荡器产生的内部时钟信号12分频后提供。
定时时间与时钟频率和定时初值有关。
4.答:由于确认1次负跳变要花2个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。
5.答:定时器/计数器T0在计数和定时工作完成后,均采用中断方式工作。
除了第一次计数工作方式设置在主程序完成外,后面的定时或计数工作方式分别在中断程序完成,用一标志位识别下一轮定时器/计数器T0的工作方式。
参考程序如下:ORG 0000H LJMP MAIN ORG000BHLJMP IT0PMAIN: MOV TMOD,#06H ;定时器/计数器T0为计数方式2 MOV TL0,#156;计数100个脉冲的初值赋值MOV TH0,#156 SETB GATE ;打开计数门 SETB TR0 ;启动T0,开始计数 SETB ET0 ;允许T0中断 SETB EA ;CPU 开中断CLRF0;设置下一轮为定时方式的标志位WAIT: AJMP WAIT IT0P: CLREA ;CPU 关中断)(410312126s f T OSCcy μ=⨯==)(192.81042261313ms T T C MAX =⨯⨯=⨯=-JB F0,COUNT ;F0=1,转计数方式设置MOV TMOD,#00H ;定时器/计数器T0为定时方式0MOV TH0,#0FEH ;定时1ms初值赋值MOV TL0,#0CHSETB EARETICOUNT: MOV TMOD,#06HMOV TL0,#156SETB EARETI6. 答:定时器/计数器的工作方式2具有自动恢复初值的特点,适用于精确定时,比如波特率的产生。
中断的使用流程1. 概述中断是计算机系统中的重要概念,用于改变程序的正常执行流程。
本文将介绍中断的基本原理和使用流程。
2. 中断的基本原理中断是一种异步事件,可以分为硬件中断和软件中断两种类型。
硬件中断由外部设备发起,例如键盘输入或定时器事件;软件中断则是程序内部发起的,通过软件指令触发。
3. 中断的使用流程下面是中断的使用流程简述: 1. 初始化中断处理程序:编写中断处理程序,并将其与特定的中断号关联起来。
2. 开启中断:通过设置相应的标志位或寄存器,告诉系统允许中断事件的发生。
3. 等待中断事件:程序进入一个循环,不断检测是否发生中断事件。
可以使用轮询或阻塞等方式进行等待。
4. 检测中断类型:当中断事件发生时,系统会根据中断号来确定具体的中断类型。
5. 执行中断处理程序:系统会根据中断类型,调用相应的中断处理程序进行处理。
6. 中断处理程序执行完毕:中断处理程序执行完毕后,系统会返回到原来的执行流程。
4. 中断的优点中断机制具有以下优点: - 提高系统的并发性:通过中断机制,可以在处理某个事件时,同时处理其他事件,提高系统的并发性。
- 提高系统的实时性:中断能够迅速打断程序的执行,优先处理紧急事件,提高系统的实时性。
- 简化程序设计:通过中断机制,可以将一些常见的操作,如读取输入设备或处理定时器事件,抽象为中断处理程序,简化程序设计。
5. 中断的注意事项在使用中断时,需要注意以下问题: - 中断处理程序应尽量简短,避免长时间的中断服务例程,以免影响其他任务的执行。
- 中断处理程序中应该禁止或限制其他中断的发生,以确保中断处理程序的完整性。
- 中断处理程序需要处理所有可能的中断类型,以保证系统能够正确响应各种中断事件。
6. 总结中断是计算机系统中的重要概念,能够改变程序的正常执行流程。
本文介绍了中断的基本原理和使用流程,以及中断的优点和注意事项。
使用中断可以提高系统的并发性和实时性,简化程序设计。
实验四-MCS-51单片机外部中断实验实验目的:1. 学习MCS-51单片机的外部中断原理和使用方法;2. 掌握如何通过硬件中断和软件中断实现MCS-51单片机的响应机制;3. 了解MCS-51单片机外部中断的实际应用。
实验器材:MCS-51单片机开发板、按键开关、调试器。
实验原理:MCS-51单片机通过INT0和INT1两个硬件中断引脚实现外部中断。
当INT0外部中断线检测到低电平信号时,中断向量为0x0003;当INT1外部中断线检测到低电平信号时,中断向量为0x0013。
通过配置中断控制寄存器IE和TCON,可以实现对外部中断的使能、触发方式和优先级等的控制。
MCS-51单片机还可以通过软件方式实现外部中断,即通过软件方式扫描外部信号,并在检测到信号发生变化时触发相应的中断处理程序。
实现软件中断的方法是使用定时器功能,通过定时器中断触发中断服务程序,该程序扫描外部信号,并根据需要触发软件中断。
实验步骤:1. 将开发板上的按键开关连接到开发板的P3.2引脚。
按键开关按下时,P3.2引脚被拉低,可以触发外部中断。
2. 打开Keil μVision5软件,新建工程,选择芯片型号为STC89C52,保存并命名为“Exp4”。
3. 在主函数中声明中断函数,并在中断函数中打印提示信息。
4. 在主函数中初始化中断控制寄存器IE和TCON,开启INT0外部中断,并将中断优先级设置为最高。
5. 在主函数中使用无限循环,来保持程序一直运行,并定时打印提示信息,以验证程序是否正常运行。
6. 烧录程序到开发板上,先在开发板上不按下按键,观察是否正常打印提示信息。
然后按下按键,观察是否触发外部中断,进入中断函数并打印提示信息。
实验代码:#include<STC89C52.h>#include<stdio.h>// 定义外部中断0的中断服务函数void Interrupt0() interrupt 0{printf("External interrupt 0 has occured!\n");}// 打印提示信息printf("Program is running...\n");while(1){// 定时打印提示信息printf("Hello!\n");delay_ms(1000);}}注意事项:1. 写中断程序时,一定要注意将中断函数的声明放在程序开头,否则可能会出现中断无法触发的情况;2. 在使用中断相关功能的时候,务必仔细阅读数据手册中的相关章节,以确保正确使用并且避免出现不必要的错误;3. 在进行外部中断实验的时候,可以使用按键开关、光敏电阻等外部器件来模拟外部信号的变化,以测试程序的正确性。
实验二外部中断实验一、实验目的1.掌握外部中断技术的基本使用方法2.掌握中断处理程序的编写方法二、实验原理1.外部中断的初始化设置的三项内容:中断总允许即EA=1,外部中断允许即EXi=1(i=0或1),中断方式设置。
中断方式设置一般有两种方式:电平方式和脉冲方式.2.中断服务的关键:(1)保护进入中断时的状态。
堆栈有保护断点和保护现场的功能使用PUSH,在转中断服务程序之前把单片机中有关寄存单元的内容保护起来。
注:中断程序自动保护PC,对其做入栈操作(2)用POP指令恢复中断时的现场。
(先进后出)3.中断控制原理:中断控制是提供给用户使用的中断控制手段。
实际上就是控制一些寄存器,51系列用于此目的的控制寄存器有四个:TCON 、IE 、SCON 及IP。
TCON格式SCON格式三、实验内容参考实验程序(主程序为P1口输出跑马灯程序),编写中断子程序使得发生外部中断0,且为下降沿触发时,LED灯全亮。
中断结束后LED继续接上次状态进行跑马灯闪烁。
注:注意保护现场。
且编译器不支持工作组寄存器名(R0-R7)入栈,需要对栈地址操作。
例:PUSH 06H ;把R6入栈等同 PHSHU R6四、实验步骤1.使用单片机最小应用系统1模块,P1接发光二极管,INTO接单次脉冲输出端。
2.用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
3.打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加**.ASM源程序,进行编译,直到编译无误。
4.打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序。
五、参考程序ORG 0000HLJMP STARTORG 0030HSTART: MOV A, #0FEHOUTPUT: MOV P1,ARL AACALL DELAYLJMP OUTPUTDELAY: MOV R6,#0MOV R7,#0MOV R5#5DELAYLOOP: ;延时程序DJNZ R6,DELAYLOOPDJNZ R7,DELAYLOOPDJNZ R5,DELAYLOOP RETEND。
第1篇一、实验目的1. 理解中断系统的基本概念和工作原理。
2. 掌握中断源、中断向量、中断服务程序等基本概念。
3. 学习使用Keil软件进行中断程序的编写和调试。
4. 熟悉中断在微机系统中的应用。
二、实验原理中断系统是微机系统中重要的组成部分,它允许CPU在执行程序的过程中,响应外部事件或内部事件,从而实现多任务处理。
中断系统主要包括以下几个部分:1. 中断源:产生中断请求的设备或事件,如外部设备、定时器、软件中断等。
2. 中断向量:中断服务程序的入口地址,用于CPU在响应中断时找到相应的服务程序。
3. 中断服务程序:处理中断请求的程序,完成中断处理任务。
4. 中断优先级:不同中断源的优先级不同,用于确定中断响应的顺序。
三、实验设备与软件1. 实验设备:单片机实验板、计算机、Keil软件、Proteus仿真软件。
2. 实验软件:Keil uVision4、Proteus 8.0。
四、实验内容1. 外部中断实验(1)使用外部中断0(INT0)实现按键控制LED灯的亮灭。
(2)使用外部中断1(INT1)实现按键控制LED灯的闪烁。
2. 定时器中断实验(1)使用定时器0产生1秒的定时中断,实现LED灯的闪烁。
(2)使用定时器1产生1秒的定时中断,实现按键输入的计数。
3. 软件中断实验(1)使用软件中断实现按键输入的字符显示。
(2)使用软件中断实现按键输入的字符加密显示。
五、实验步骤1. 在Keil软件中创建一个新项目,选择合适的单片机型号。
2. 根据实验要求,编写中断服务程序,设置中断向量。
3. 在Proteus软件中搭建实验电路,包括单片机、按键、LED灯等。
4. 将Keil软件编译后的程序下载到单片机中。
5. 在Proteus软件中运行仿真,观察实验结果。
六、实验结果与分析1. 外部中断实验(1)按键按下时,LED灯亮;按键松开时,LED灯灭。
(2)按键按下时,LED灯闪烁;按键松开时,LED灯停止闪烁。
单片机外部中断实验 Document number【980KGB-6898YT-769T8CB-246UT-18GG08】实验6 外部中断实验(仿真部分)一、实验目的1. 学习外部中断技术的基本使用方法。
2. 学习中断处理程序的编程方法。
二、实验内容在INT0和INT1上分别接了两个可回复式按钮,其中INT0上的按钮每按下一次则计数加一,其中INT1上的按钮每按下一次则计数减一。
P1.0~ P1.3接LED 灯,以显示计数信号。
三、实验说明编写中断处理程序需要注意的问题是:1.保护进入中断时的状态,并在退出中断之前恢复进入时的状态。
2.必须在中断处理程序中设定是否允许中断重入,即设置EX0位。
3.INT0和INT1分别接单次脉冲发生器。
P1.0~ P1.3接LED灯,以查看计数信号.四、硬件设计利用以下元件:AT89C51、BOTTON、CAP、CAP-POL、CRYSTAL、RES、NOT、LED-Yellow。
设计出如下的硬件电路。
晶振频率为12MHz。
五、参考程序框图1.实验目的学会asm和C512.实验原理【硬件接法】控制LED,低电平点亮INT1接按键,按下时产生低电平【运行效果】程序工作于中断方式,按下按键K2后,LED点亮,秒后自动熄灭。
8051单片机有/INT0和/INT1两条外部中断请求输入线,用于输入两个外部中断源的中断请求信号,并允许外部中断源以低电平或下降沿触发方式来输入中断请求信号。
/INT0和/INT1中断的入口地址分别是0003H和0013H。
TCON寄存器(SFR地址:88H)中的IT0和IT1位分别决定/INT0和/INT1的触发方式,置位时为下降沿触发,清零时为低电平触发。
实际应用时,如果外部的中断请求信号在产生后能够在较短时间内自动撤销,则可以选择低电平触发。
在中断服务程序里要等待其变高后才能返回主程序,否则会再次触发中断,产生不必要的麻烦。
如果外部的中断请求信号产生后可能长时间后才能撤销,则为了避免在中断服务程序里长时间无谓等待,可以选择下降沿触发。
《嵌入式系统设计(基于STM32F429)》第7章课后题参考答案1.外部中断的中断请求信号可以是控制器外部产生由GPIO引脚引入的,也可以是由控制器内部一些片上外设产生的。
这一说法是否正确?___正确_____。
2.每个GPIO引脚都可以作为外部中断信号输入引脚,GPIO引脚编号相同的映射到同一个EXTI线,那么GPIOA的0号引脚映射到EXTI线___0_____,GPIOD的0号引脚映射到EXTI线_____0___,GPIOC 的5号引脚映射到EXTI线_____5___,GPIOG的10号引脚映射到EXTI线____10____。
3.外部中断信号输入的触发信号形式可以是__上升沿触发_、_下降沿触发_、_边沿触发_、。
4.每个外部中断在中断向量表中,是否都独立占用一个位置?__不是__5.外部中断___5~9_____共用一个中断向量和外部中断__10~15__共用一个中断向量。
6.外部中断的中断0在库函数启动文件中定义的默认中断函数名是__EXTI0_IRQHandler__。
7.函数SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0)有什么功能?答:连接GPIOA的0号引脚到EXTI08.函数void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct)有什么功能?答:初始化外部中断功能。
9.应用外部中断,需要先使能GPIO端口的时钟和___ SYSCFG___时钟。
10.试述初始化外部中断的步骤。
答:(1)使能用到GPIO时钟和SYSCFG时钟。
(2)初始化相应GPIO的引脚为输入。
(3)设置GPIO引脚与EXTI线的映射关系。
(4)初始化工作类型、设置触发条件、使能等等。
(5)配置中断分组(NVIC),并初始化相应中断通道的优先级及使能/禁止。
(6)编写中断服务函数。
(7)编写中断服务程序处理内容。