单片机中断技术实验报告

合集下载

单片机实验四报告_外中断实验

单片机实验四报告_外中断实验

南昌大学实验报告学生姓名:学号:专业班级:实验类型:⃞验证⃞综合■设计⃞创新实验日期:2018.05.29 实验成绩:实验四外中断实验(一)实验目的1.掌握单片机外部中断原理;2.掌握数码管动态显示原理。

(二)设计要求1.使用外部中断0和外部中断1;2.在动态数码管上显示中断0次数,中断1用作次数清0,数码管采用74HC595驱动。

(三)实验原理1.中断所谓中断是指程序执行过程中,允许外部或内部时间通过硬件打断程序的执行,使其转向为处理外部或内部事件的中断服务程序中去,完成中断服务程序后,CPU返回继续执行被打断的程序。

如下图所示,一个完整的中断过程包括四个步骤:中断请求、中断响应、中断服务与中断返回。

当中断请求源发出中断请求时,如果中断请求被允许的话,单片机暂时中止当前正在执行的主程序,转到中断处理程序处理中断服务请求。

中断服务请求处理完后,再回到原来被中止的程序之处(断电),继续执行被中断的主程序。

如果单片机没有终端系统,单片机的大量时间可能会浪费在是否有服务请求发生的查询操作上,即不论是否有服务请求发生,都必须去查询。

因此,采用中断技术大大地提高了单片机的工作效率和2.IAP15W4K58S4单片机的中断请求IAP15W4K58S4单片机的中断系统有21个中断请求源,2个优先级,可实现二级中断服务嵌套。

由IE、IE2、INT_CLKO等特殊功能寄存器控制CPU是否相应中断请求;由中断优先级高存器IP、IP2安排各中断源的优先级;同优先级内2个以中断同时提出中断请求时,由内部的查询逻辑确定其响应次序。

中断请求源中的外部中断0(INT0)和外部中断1(INT1)详述如下:(1)外部中断0(INT0):中断请求信号由P3.2引脚输入。

通过IT0来设置中断请求的触发方式。

当IT0为“1”时,外部中断0为下降沿触发;当IT0为“0”时,无论是上升沿还是下降沿,都会引发外部中断0。

一旦输入信号有效,则置位IE0标志,向CPU申请中断。

单片机外部中断实验报告

单片机外部中断实验报告

单片机外部中断实验报告实验目的:1、理解单片机外部中断的原理和用途;2、掌握单片机外部中断的配置和使用方法。

实验器材:1、STC15W408AS单片机开发板;2、简单的电路连接器;3、按钮开关。

实验原理:单片机外部中断是通过外部硬件信号触发单片机的中断请求,在单片机运行过程中,当外部信号满足特定条件时,会触发中断,并暂停当前的运行程序,转而执行中断服务程序。

通过外部中断,可以实现对外部事件的实时处理。

实验步骤:1、将按钮开关与单片机开发板连接,将按钮开关的一端与单片机的INT0引脚连接,另一端与GND连接。

2、在开发板上连接好电源并供电。

3、打开Keil软件,新建一个工程,并选择合适的单片机型号。

4、配置单片机的外部中断功能,设置INT0引脚为中断输入。

5、编写中断服务程序,当INT0引脚检测到边沿信号时,执行中断服务程序,并在其中加入相应的处理代码。

6、编写主程序,配置相关的引脚和寄存器,使单片机进入中断模式,接受外部中断信号,并执行中断服务程序。

7、下载程序到单片机开发板上,运行程序。

8、按下按钮开关,触发外部中断,并查看实验结果。

实验结果:当按下按钮开关时,实时触发外部中断,单片机停止当前程序的运行,进入中断模式,并执行中断服务程序中的相应代码。

实验总结:通过这次实验,我对单片机的外部中断有了更深入的理解,并学会了如何使用外部中断实现对外部事件的及时处理。

外部中断广泛应用于各种实时系统和设备中,具有很大的实用价值。

在以后的学习和实践中,我会进一步掌握和应用单片机的外部中断功能。

外中断实验报告

外中断实验报告

外中断实验报告1. 实验目的本实验的目的是通过外中断的实验,加深对中断概念的理解,并掌握在单片机中使用外中断的方法和技巧。

2. 实验原理外中断是单片机系统中常用的一种中断方式。

当外部输入信号满足一定条件时,可以触发中断请求,从而打断当前正在执行的程序,转而执行中断服务程序。

外中断可以有效地处理实时性要求较高的任务。

3. 实验材料和器件本次实验所需材料和器件如下: - 单片机开发板 - 电脑 - 连接线4. 实验步骤4.1 准备工作首先,将单片机开发板与电脑通过连接线连接好,确保通信正常。

4.2 硬件连接将外部输入信号源连接至单片机的外部中断引脚,确保输入信号与单片机能够正常连接。

4.3 软件编程在单片机开发板上,选择合适的编程软件进行编程。

根据单片机的型号和开发板的特点,选择相应的编程语言进行编写。

4.4 编写中断服务程序根据实验要求,编写一个中断服务程序。

该程序在接收到外部中断请求时,能够对请求进行响应,并执行相应的操作。

4.5 编译和下载编译程序,生成可执行文件,并将该文件下载到单片机开发板上。

4.6 实验操作打开外部输入信号源,触发外部中断请求。

观察单片机开发板的输出,验证中断服务程序是否正确执行。

5. 实验结果与分析根据实验操作,我们成功触发了外部中断请求,并且中断服务程序正确执行。

这表明我们的实验设计和实施都是成功的。

6. 实验总结通过本次实验,我们深入了解了外中断的概念和原理,并通过实际操作掌握了外中断的使用方法和技巧。

外中断在单片机系统中具有广泛的应用场景,通过合理利用外中断,能够提高单片机系统的实时性能。

7. 实验注意事项•在进行硬件连接时,应确保信号连接正确,避免因连接错误导致中断请求无法触发。

•在编写中断服务程序时,应注意处理中断请求的时序和优先级,确保程序的正确性和可靠性。

•在实验过程中,应注意保护实验设备和材料,避免损坏或丢失。

8. 参考资料[1] 单片机原理与应用教程 [2] 51单片机外部中断原理及应用。

实现中断功能_实验报告(3篇)

实现中断功能_实验报告(3篇)

第1篇一、实验目的1. 理解中断的概念和作用。

2. 掌握单片机中断系统的基本原理和配置方法。

3. 学会编写中断服务程序,实现外部中断和定时器中断的应用。

4. 通过实验加深对中断系统在实际应用中的理解。

二、实验原理中断是计算机系统中一种重要的机制,它允许CPU在执行程序过程中,响应某些外部或内部事件,从而暂停当前程序的执行,转而处理这些事件。

单片机的中断系统主要包括外部中断和定时器中断两种类型。

三、实验环境1. 单片机:80C512. 开发环境:Keil for 80513. 仿真软件:Proteus4. 实验电路:外部按钮电路、LED灯电路、定时器电路四、实验内容1. 外部中断实验(1)实验目的:学习外部中断的工作原理,掌握外部中断的配置和编程方法。

(2)实验步骤:a. 创建80C51固件项目,并在Keil中编写程序。

b. 配置外部中断源,设置中断优先级。

c. 编写外部中断服务程序,实现LED灯的闪烁。

d. 在Proteus中搭建实验电路,并进行仿真测试。

(3)实验结果:当按下按钮时,LED灯闪烁,松开按钮后LED灯熄灭。

2. 定时器中断实验(1)实验目的:学习定时器中断的工作原理,掌握定时器中断的配置和编程方法。

(2)实验步骤:a. 创建80C51固件项目,并在Keil中编写程序。

b. 配置定时器工作模式,设置定时时间。

c. 编写定时器中断服务程序,实现LED灯的闪烁。

d. 在Proteus中搭建实验电路,并进行仿真测试。

(3)实验结果:定时器中断触发后,LED灯闪烁,达到设定时间后停止闪烁。

五、实验分析1. 外部中断实验分析通过外部中断实验,我们了解了外部中断的工作原理和配置方法。

在实验中,我们设置了外部中断源,并编写了中断服务程序,实现了LED灯的闪烁。

这表明外部中断可以有效地响应外部事件,并执行相应的操作。

2. 定时器中断实验分析通过定时器中断实验,我们掌握了定时器中断的配置和编程方法。

实验二 51单片机外部中断实验报告

实验二 51单片机外部中断实验报告

实验二外部中断实验实验报告
一、实验内容
单片机外部中断0(P3.2)已与独立式键盘中KEY0连接,外部中断1(P3.3)已与KEY1连接,要求在无外部中断时最上面一位发光二极管(LED10)点亮。

请编程实现:当KEY0按下,外部中断0请求中断,控制发光二极管从上到下循环点亮3圈;当KEY1按下,外部中断1请求中断,控制发光二极管闪烁3次。

(要求外部中断1优先级高于外部中断0,即KEY1按下后能够打断流水灯的动作,当外中断1处理完后,恢复外中断0的处理,并且能从上次打断的那个LED开始循环)。

单片机与发光二极管的连接如图2-1所示,独立式键盘原理图如图2-2所示。

图2-1 单片机与发光二极管的连接原理图
2-2 独立式键盘原理图
三、硬件电路分析
1、阅读电路2-1简要分析如何使发光二极管点亮?
当LEDS0 为高电平时,三极管Q6导通,发光二极管的阳极为高电平,此时,当给发光二极管的阴极为低电平时,发光二极管两端存在电位差,发光二极管导通,则发光二极管点亮。

2、简要画出独立式按键电路(一个键),并分析其如何工作?
如图所示,当按键按下时,单片机IO处会由高电平变为低电平,单片机IO口在经过消抖处理之后仍然检测为低电平,则表明按键被按下。

四、程序设计
画出主程序流程图:
画出外部中断0流程图;
五、思考题
六、收获和体会。

微机原理_中断实验报告(3篇)

微机原理_中断实验报告(3篇)

第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灯停止闪烁。

单片机指示灯和数码管的中断控制实验报告.doc

单片机指示灯和数码管的中断控制实验报告.doc

单片机指示灯和数码管的中断控制实验报告.doc本次实验是对单片机指示灯和数码管的中断控制的探索与实验。

本次实验采用的控制芯片是C8051F020,并使用了Keil uVision 5软件进行编程,通过搭建的硬件电路实现指示灯和数码管的控制。

一、实验目的1.了解中断的基本概念和中断的处理过程;2.学习如何设置中断优先级和使用中断嵌套;4.进一步巩固单片机的编程基础。

二、实验内容1.实现定时器中断控制指示灯,每隔一定时间改变指示灯的亮灭状态2.实现外部中断控制数码管,当外部引脚有电平变化时,更新数码管的显示内容三、实验原理中断是单片机系统中常用的一种处理机制。

引发中断的事件可以是定时器计数器溢出,外部I/O口电平跳变、串口数据到达等多种情况。

在中断响应后,单片机会暂停当前的程序执行,先转到相应的中断服务程序中执行,待中断处理完成后再从原来暂停的位置继续执行。

本次实验中,通过使用单片机的定时器和外部中断控制指示灯和数码管。

定时器中断每隔一定时间改变指示灯的状态,外部中断控制数码管显示内容的改变。

在编程时,需要设置中断的优先级和中断嵌套的情况。

四、实验步骤1.硬件连接将指示灯连接到P0.0引脚,将数码管连接到P2口对应的引脚,在数码管的位选接口处接入一个按键(用于模拟外部中断)。

2.编写定时器中断代码在Keil uVision中打开一个新的工程,编写定时器中断的代码,具体代码如下://包含头文件和全局变量定义#include<reg51.h>unsigned char ledStatus = 0;//定时器中断服务程序void tmr0_isr(void) interrupt 1{TMOD &= 0xf0;TH0 = (65536-50000)/256;}//定时器初始化ET0 = 1;unsigned char code num_c[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};//LED灯控制函数control_led();//外部中断初始化//数码管更新函数P0 = num_c[num];P2 = ~(0x01<<num);4.实验结果将编写好的程序下载到单片机控制芯片上,按下数码管的位选按键,就可以看到数码管上的数字不断改变,同时指示灯每隔一定时间改变一次状态。

单片机中断实验总结

单片机中断实验总结

单片机中断实验总结本次实验是关于单片机中断的,通过对中断的学习和实验,我了解了中断的基本原理和实现方式,进一步认识到中断在程序设计和实现中的重要性。

首先,通过实验我了解到中断是一种异步的事件,可以打断正在执行的程序,并在中断发生时响应处理。

单片机中断是指在硬件或软件条件满足时,单片机主动中断正在执行的程序,跳转到相应的中断服务程序中执行。

中断可以在不影响主程序的同时响应该事件,使程序更加高效、灵活。

其次,在实验过程中我学会了如何在单片机中实现外部中断,包括设置中断触发方式、对中断请求进行检测和响应等。

我了解到单片机中断可以分为外部中断和内部中断,其中外部中断是通过外部中断源(如按键、触摸开关等)触发的,而内部中断则是由单片机内部条件触发的。

外部中断常常用于接收外部设备输入(如计数器、编码器等),并在特定条件下进行中断处理。

最后,在实验中我还学习了如何编写中断服务程序,并利用中断服务程序响应中断并完成相应处理。

中断服务程序需要快速、准确地响应中断事件,才能实现高效的中断处理。

因此在编写中断服务程序时需要注意以下几点:1. 确定中断源:不同的中断源可能需要不同的中断触发方式和响应程序。

因此在编写中断服务程序前需要确定中断源,根据中断源的特点确定相应的中断触发方式、响应程序等。

2. 保存寄存器状态:中断服务程序执行过程中需要使用寄存器等CPU资源,因此在中断服务程序中需要先保存相关寄存器的状态,防止中断服务程序执行过程中出现寄存器误操作等问题。

3. 快速响应和处理:中断服务程序需要快速、准确地响应中断,因此需要使用最小可行代码,避免执行过多的指令或函数调用等操作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验名称:中断技术、基本时钟和定时功能(实验4、5) 姓名_ 学号_ 实验班号_ 21_ 机器号_ 一、实验目的 1.了解中断原理,包括对中断源、中断向量、中断类型号、中断程序以及中断响应过程的理解; 2.掌握单片机C语言中断程序设计方法; 3.了解MSP430G2553基本时钟模块的工作原理,掌握其控制方法; 4.掌握利用时钟信号和中断技术实现定时功能的方法 二、实验基本任务 1. 中断响应过程的理解 阅读下面 C 语言中断程序,说明程序 L4_int.c执行的流程和实现功能。上机实践,回答下面问题,掌握用 C 语言编写中断程序的方法。 1) 从程序如何判断用的是哪个中断源?其中断类型号是多少?将实验板上某一按键与该中断源对应的引脚相连,运行程序,操作按键,观察现象。 答:(注:源程序主函数中第7、8行有误,应为P1SEL &=~ BIT5; P1SEL2 &=~ BIT5; ) ① P1.1为中断源,中断类型号为2; ② 现象:LED灯一直在闪烁,按下按键后闪烁暂停,蜂鸣器响三声,然后LED灯继续闪烁; 2) main 函数中无调用函数 Buzz 的语句, 函数 Buzz 如何能被执行?何时会被执行? 据此描述中断响应过程。 答: ① 当按下按键时函数Buzz被执行; ② 中断响应的过程:P1.1处发出中断请求→判断是否满足响应条件→若满足,则CPU在执行完当前指令后,硬件自动完成保护现场的操作→从中断向量表中取中断向量至PC→转去执行中断服务子程; 3) 如果port_int 函数中不清分中断标志 P1IFG的后果是什么? 答:中断将一直重复进行下去; 4) 如果 L4_int.c中的 PORT1_VECTOR 改为 PORT2_VECTOR, 其他不变,程序执行的后果是什么?为什么?(可在中断处加一断点,运行程序,看现象,分析原因) 答:PORT1_VECTOR改为PORT2_VECTOR,其他不变,程序将会无法进入中断。因为程序中的中断属于P1引脚的中断,中断向量与P2引脚的中断向量不同,所进行的的改动则是把中断程序写入到了P2引脚的中断向量对应的地址中,而P1引脚的中断向量对应的地址上没有程序,因此无法执行原先的中断子程。 5) 如果中断源采用的是P1.5, 按键用K7,请设计连线,修改程序完成以中断方式响应K7的操作。 答: ① 只需将程序中对P1.1的操作改为对P1.5的操作即可,程序见附录程序1; ② 连线:将引脚与K6相连,其他连线不变; 2.中断程序编程练习 在实验板上用跳线将按键K5、K6分别与单片机的P1.4、P1.5相连,编程以中断方式响应按键K5和K6的请求:当按一次K5键,实验板上的蜂鸣器发出一声警报声;当按下一次K6键,实验板上的发光二极管L1闪3次。主循环中控制L7循环闪亮。 思考:如果用长导线将按键 K5、K6 分别连接在 P2.2 和 P2.5 上,如何修改程序以实现任务 2 功能? 答:经过分析, ① 本程序需要有四个函数,分别是延时函数、L1闪烁3次的函数、L7循环闪烁、以及蜂鸣器响一声的函数; ② 其次P2端口为输出端口,分别控制L1、L7和蜂鸣器,本程序中选用P2.1、P2.3、P2.4引脚;P1.4与P1.5作为中断源; ③ 应注意到本程序有两个中断源,须利用P1IFG判断产生中断的中断源引脚。 ④ 程序见附录程序2。 思考题: 如果用长导线将按键 K5、K6 分别连接在 P2.2 和 P2.5 上,则应设置P2.2、P2.5为中断源,设置中断向量时也应注意将对P1端口的操作改为对P2端口操作。具体程序见附录程序2之思考题。 3. 数字示波器的使用 1)将信号源的波形在示波器上显示出来,掌握测量周期、频率、峰峰值的方法; 2)用孔孔导线将实验板的地信号与示波器的地信号相连,测量实验板上的 Vcc 电源信 号是否正常。 答: 1) a. 信号源的峰峰值为3.20V; b. 周期为1.000ms; c. 频率为1.000kHz. 2)经测量,Vcc=3.64V,正常 4. 测试上电复位系统的ACLK、和SMCLK时钟频率 编程输出单片机上电复位后的ACLK、 和SMCLK时钟, 用示波器测量其频率, 并记录下来。 思考:上电复位后,CPU工作的时钟信号 MCLK频率值是多少? 答:经分析 ① 本程序需要置引脚P1.0、P1.4分别输出ACLK、SMCLK; ② 需要确认外部晶振连上; ③ 具体程序见附录程序5测试程序。 ④ 测得f(ACLK)=32.79kHz,f(SMCLK)=1.044MHz. 思考题 上电复位后,通过观察寄存器,发现BCSCTL2寄存器上SELM位为00,SELS位为则0,说明MCLK与SMCLK均由DCO振荡器控制,所以MCLK的频率与SMCLK相同,也为1.044MHz。 5. 掌握基本时钟模块的编程控制 参看附录 A实验板原理图,用跳线将 JP8 中的插针信号接到晶振 32.768Khz 侧,使晶振 与单片机的 P2.6 和 P2.7 相连。编程控制基本时钟模块,设置 ACLK 分别为下面时钟频 率,并通过 P1.0 输出 ACLK,用示波器观察: 1) ACLK=4096Hz; (时钟源外部晶振,32768Hz/8) 2) ACLK=3KHz;(时钟源 VLOCLK, 12KHz/4) 思考:可否编程在引脚 P2.0 上输出 ACLK? 为什么? 答: a. 1)中,应使单片机接外部晶振,并使ACLK的输出为8分频;具体程序见附录程序5之1) b. 2)中,应通过BCSCTL3寄存器选择时钟源VLOCLK,并使其输出为4分频,具体程序见附录程序5之2) 思考题 不能在引脚 P2.0 上输出 ACLK,因为,各引脚的特殊功能是由单片机结构所决定的,P2.0引脚不具有输出辅助时钟的功能. 6. DCO出厂校验值的频率检测 1)利用出厂校验值,编程使 DCO 分别为 1MHz、8MHz、12MHz、16MHz,通过 P1.4 输出,用示波器测量实际值。 答:经分析知 ① P1.4输出的是SMCLK; ② 1MHz、8MHz、12MHz、16MHz的情况类似,此处仅以1MHz为例,具体程序见附录程序6 ③ 测得真实值分别为1.002MHz、7.752MHz、12.08MHz、15.94MHz。 7. 利用输出的时钟信号做中断源,实现定时功能 将任务 3 中P1.0 输出的3KHz ACLK 时钟信号,作为 P1.5 的中断申请信号,用导线将 P1.5 与 P1.0相连即可,在中断子程中设置一个计数变量,计数中断子程被执行的次数, 中断子程每被执行 3000 次表示一秒时间到。利用该定时功能,将 8 个发光二级管设计 成一个秒表,显示秒值,每秒改变一次 8 个发光二级管的显示。 答:根据分析可知 a. 需要在实验5之2)的基础上进行编程; b. 须用跳线板将P2的引脚与LED灯相连; c. 具体程序见附录程序7 思考:如果要每隔 10 秒蜂鸣器响一声,如何在任务 5 的基础上编程实现? 答:将P1.7与蜂鸣器相连,增加一个延时函数以及每10秒操作一次P1.7上电位;具体程序见附录程序7之思考题

三、实验选做任务 1.中断响应的理解 6) (选做) 去掉 L4_int.c程序最后的那条无限循环语句, 看看有什么现象?可以去掉吗? 答: ① 现象:程序很快运行结束,无法响应中断; ② 不可去掉无限循环语句 注意: 1) 查看 io430G2553.h 文件末尾处有关中断向量偏址的符号定义。 2)为便于了解程序执行流程,可在中断子程入口处设置一断点,然后连续运行 程序(F5) ,观察操作按键和不操作按键两种情况下程序执行的现象有何不同。 2. (选做) 采用事件标志处理中断 阅读程序L4_intA.c和 L4_intB.c(见后页) ,描述其实现功能。在实验板上将P1.0与 一个按键的控制端相连, P1.7与蜂鸣器的控制端相连。 比较L4_intA.c和L4_intB.c 二者在编程实现上有何不同。注意各自中断子程执行时间的长短。 用L4_intB.c的方 法,改写任务2的编程。 答: 不同之处: ① 采用事件标志处理中断时,按键之后机器做出的反应相对较慢,这是因为它需要现在中断子程中设置flag,再回到主程序根据flag做相应改动,耗费时间较长。 ② 但是采用事件标志中断的一个好处就是,由于它在中断子程中只是进行了一个标记,你可以在标记flag在主程序中发挥作用之前再次进行中断,将flag改为其它值。它相当于解决了一般中断过程中“中断执行时,屏蔽其他中断”的问题。 任务2改写后的程序程序3 3.(选做) 按键抖动处理 程序 L4_Key.C 见后页, 其功能是用中断方式相应与 P1.2 连接的按键,计数按键的次 数,并将所计的次数用 8 个发光二极管显示出来。运行该程序,并操作按键,观察实际 操作的次数与显示值之间的关系。编程改进L4_Key.C程序,用软件方式去除按键抖动 的影响。 答:根据分析,需要在响应了第一次下降沿后,加入一定的延时,躲过其它电压毛刺的产生时间。具体程序见附录程序4 通过实验观察可以发现,改进之前,二进制显示的数值明显大于实际按键数,而改进之后,两者数值大致相等。 4. DCO出厂校验值的频率检测 2) (选做)控制发光二级管通过延时闪亮,编程分别使主系统时钟工作在 (1)MCLK=复位频率/8 约 100KHz; (2)MCLK=DCO=16MHz; 两种不同频率下,观察灯的亮灭速度有何不同,掌握主系统时钟的变化对程 序执行速度的影响 答:根据分析 a. (1)须选择8分频; b. (1)须具备延时函数与LED灯亮函数; c. (2)须选择DCO时钟源,并使用出厂校验值16MHz; d. (2)须具备延时函数与LED灯亮函数; e. 具体程序见附录选作4之1)和选作4之2) f. 实验观察到两种不同频率下,第一种情形下灯的亮灭速度非常慢,而第二种情形下灯的亮灭速度非常快,则说明:主系统时钟频率的加快会加速执行速度。 5. (选做)改用 4 个数码管显示秒值,重新完成必做任务 7 答:本题需要用到数码管的知识,需要标志值,具体程序见附录选作5程序 四、小结 总的来说,我觉得这次的实验内容很多,但是收获也是很大的;并且在这个过程中重温了课本,加深了对课本上抽象的内容的理解,比如说实验前对于时钟,我的理解一直很模糊,似是而非,经过实验,发现其实它不过是三个寄存器,三个时钟信号,四个时钟源之间的问题,虽然过程比较繁琐,脉络却是清晰的;而且关于中断,我也有了进一步的理解,特别是

相关文档
最新文档