外部中断、定时(计数器)实验

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

课程:微处理器原理与应用

课时:4学时

教学环境:单片机实验室

教学方法:讲解相关内容,指导学生实验

实验二外部中断、定时/计数器实验

一、目的、任务和要求

1.1 实验目的

1. 掌握单片机中断系统的结构及工作原理。

2.掌握外部中断功能程序的一般结构和编程方法。

3.掌握单片机的定时/计数器的结构及工作原理。

4.掌握定时中断应用程序、计数器应用程序的典型结构和编程方法。

1.2 实验任务

1.对8051单片机的外部中断功能和I/O口功能,搭建一个外部中断控制输出的硬件电路,设计和调试通过相应的外部中断功能软件。

2.对8051单片机的定时/计数器功能和I/O口功能,搭建一个(种)或几个(种)应用定时/计数器的硬件电路,设计并调试通过相应的软件。

1.3实验要求

通过完成外部中断功能实验项目,掌握中断初始化的内容和中断子程序的结构,熟悉中断响应的过程和现场保护的意义,会正确运用堆栈指令作现场保护和现场恢复。

通过完成定时/计数器实验项目,掌握正确选择定时/计数器的工作方式和计数模式的方法,掌握定时/计数器的初值计算方法,会编写中断控制寄存器和定时器中断入口地址的初始化程序。

二、设备和器件

2.1实验设备

(1)微型计算机(PC机)(装配相关软件),(2)单片机实验箱或开发板。

2.2电路元器件

本实验采用Protues仿真软件搭建一个简单的单片机系统电路,进行电路仿真分析,不需要实际的元器件。若实验采用万能板(或面包板)搭建电路,则需要如下元器件:

LED发光二极管,510Ω限流电阻,小按键、软导线等。

学生可自己在课后搭建电路进行实验,并与仿真实验比较。

三、实验内容及步骤

3.1外部中断控制流水灯的实验内容及步骤

(1)根据实验任务作电路原理图设计、作电路布局设计、通过Protues仿真软件来完成单片机硬件系统的搭建。电路图如3.1所示。

(2) 通过“μVision4”软件编辑外部中断控制流水灯的程序,并将编写好的程序代码进行编译和仿真调试,然后输出*.hex文件。

(3)通过实验板专用的接口将*.hex文件写入到单片机芯片的程序存储器中,然后试运行,察看现象并分析结果。若不成功,则要分析原因,重复有关步骤直至成功。

3.2 定时中断控制流水灯电路的实验内容及步骤

(1) 根据上面已搭建好的外部中断控制流水灯电路完成本任务。

(2) 通过“μVision4”软件编辑定时中断控制流水灯程序,并将编写好的程序代码进行编译和仿真调试,然后输出*.hex文件。

(3)通过实验板专用的接口将*.hex文件写入到单片机芯片的程序存储器中,然后试运行,察看现象并分析结果。若不成功,则要分析原因,重复有关步骤直至成功。

3.3外部脉冲个数计数显示的实验内容及步骤

(1)根据实验任务作电路原理图设计、作电路布局设计、通过Protues仿真软件来完成单片机硬件系统的搭建。电路图如3.2所示。

(2) 通过“μVision4”软件编辑外部中断控制流水灯的程序,并将编写好的程序代码进行编译和仿真调试,然后输出*.hex文件。

(3)通过实验板专用的接口将*.hex文件写入到单片机芯片的程序存储器中,然后试运行,察看现象并分析结果。若不成功,则要分析原因,重复有关步骤直至成功。

说明:单片机实验板使用STC89C51RC-RD+系列单片机,利用RS232串口和STC-ISP V33.exe通信软件(或开发板自带下载软件)来下载*.hex机器程序代码。

3.4 参考电路与程序代码

1参考电路

(1)外部中断控制输出的流水灯电路简图

该电路图是在最小系统的基础上,将P1口接LED发光管电路,INT0脚连接外部中断触发开关,如图3.1所示。

图3.1 外部中断控制流水灯电路简图

(2)定时中断控制流水灯的电路简图

可根据外部中断控制流水灯电路图完成任务。如图3.1所示。实验时将K断开,只使用内部定时器功能。

(3)外部脉冲个数计数显示的电路简图

该电路图是在最小系统的基础上,将P1口接LED发光管电路,T0脚连接脉冲按键开关,通过开关K的通/断产生脉冲来进行计数。如图3.2所示。

图3.2 外部中断控制流水灯电路简图

2 参考程序代码

(1)外部中断控制的流水灯

1)外部中断控制流水灯参考程序结构

2)外部中断控制的流水灯参考程序代码

ORG 0000H

LJMP START

ORG 0003H ;INT0中断源入口

LJMP I001 ;I001是中断子程序的起始地址标号

ORG 0100H ;主程序入口

START: SETB IT0 ;采用下降沿触发方式

SETB EX0 ;允许INT0中断

SETB EA ;打开中断总允许开关

CLR A ;A存放计数值,初值=0

ST0: CPL A ;A内容取反,0和1电平反转

MOV P1, A ;P1口低电平时LED灯亮,即A取反前为1时LED亮

CPL A ;A内容取反,A仍为计数值

LCALL DL0 ;DL0是延时子程序的标号

ADD A,#1 ;加法运算,0~255循环,可用INC A指令

AJMP ST0 ;无条件循环计数

I001: PUSH ACC ;先保护断点现场A

PUSH PSW ;后保护断点现场PSW

SETB RS1 ;修改工作寄存器区,保护断点现场Rn

MOV A,#0FEH ;流水灯初值

相关文档
最新文档