搜档网
当前位置:搜档网 › DSP 的定时器和外中断实验报告

DSP 的定时器和外中断实验报告

DSP 的定时器和外中断实验报告
DSP 的定时器和外中断实验报告

实验三:DSP 的定时器和外中断

定时器:

一.实验目的

1.通过实验熟悉VC5509A 的定时器;

2.掌握VC5509A 定时器的控制方法;

3.掌握VC5509A 的中断结构和对中断的处理流程;

4.学会C 语言中断程序设计,以及运用中断程序控制程序流程。

二.实验设备

计算机,ICETEK-VC5509-A 实验箱(或ICETEK 仿真器+ICETEK–VC5509-A 系统板+

相关连线及电源)。

三.实验原理

1.通用定时器介绍及其控制方法(详见spru595b.pdf):

TMS320VC5509A 内部有两个20 位通用定时器(GP):

* 每个通用定时器包括:

- 一个16 位的减计数的计数器TIM;

- 一个16 位的定时器周期寄存器PRD;

- 一个16 位的定时器控制寄存器TCR;

- 一个16 位的定时器预定标寄存器PSCR;

* PSCR 寄存器说明:

15 10 9 6 5 4 3 0

Reserved PSC Reserved TDDR

PSC: 4 位的预定标值,与TIM 共同组成20 位的定时计数器.

TDDR: 预定标周期寄存器(在需要时重装入PSC 的值)

TCR 寄存器说明(详见spru595b.pdf)

2.中断响应过程(详见spru595b.pdf):

外设事件要引起CPU 中断,必须保证:IER 中相应使能位被使能,IFR 相应中断也被

使能。在软件中,当设置好相应中断标志后,开中断,进入等待中断发生的状态;外设(如定时器)中断发生时,首先跳转到相应中断高级的服务程序中(如:定时器1 会引起TINT 中断),程序在进行服务操作之后,应将本外设的中断标志位清除以便能继续中断,然后返回。

3.中断程序设计:

- 程序中应包含中断向量表,VC5509A 默认向量表从程序区0 地址开始存放,根据IPVD 和IPVH 的值确定向量表的实际地址。

- 注意观察程序中INTR_init()函数的定义部分,其中IPVD 和IPVH 的值都为0x0d0;同时

观察配置文件ICETEK–VC5509-AE.cmd 中的VECT 段描述中o=0x0d000。

- 向量表中每项为8 个字,存放一个跳转指令,跳转指令中的地址为相应服务程序入口地址。第一个向量表的首项为复位向量,即CPU 复位操作完成后自动进入执行的程序入口。

- 服务程序在服务操作完成后,清除相应中断标志,返回,完成一次中断服务

5.实验程序分析:

本实验设计的程序是在上实验3.1 基础上修改得来,由于实验3.1 控制指示灯闪烁的延

时控制是用循环计算方法得到的,延时不精确也不均匀,采用中断方式可以实现指示灯的定时闪烁,时间更加准确。

实验程序的工程中包含了两种源代码,主程序采用C 语言编制利于控制,中断向量表

在vector.asm 汇编语言文件中,利于直观地控制存储区分配。在工程中只需将它们添加进来即可,编译系统会自动识别分别处理完成整合工作。

实验程序的C 语言主程序中包含了内嵌汇编语句,提供一种在需要更直接控制DSP 状态时的方法,同样的方法也能提高C 语言部分程序的计算效率

四.实验步骤

1.实验准备:

连接实验设备:请参看本书第三部分、第一章、二。

关闭实验箱上扩展模块和信号源电源开关。

2.设置Code Composer Studio 3.1 在硬件仿真(Emulator)方式下运行:

请参看本书第三部分、第一章、四、2。

3.启动Code Composer Studio 3.1:

请参看本书第三部分、第一章、五、2。

选择菜单Debug→Reset CPU。

4.打开工程文件:

打开菜单“Project”的“Open”项;选择C:\ICETEK\VC5509Ae\VC5509Ae\Lab0303-Timer 目录中的“Timer.pjt”。

在项目浏览器中,双击main.c,激活main.c 文件,浏览该文件的内容,理解各语句作用。打开ICETEK–VC5509-Ae.cmd,对照vector.asm 源程序学习中断向量表的写法。

5.编译、下载程序。

6.运行程序,观察结果。

7.改变TIMER_init()函数里*prd0 = 0x0ffff 为“=0x0fff ”;重复步骤5,6 观察实验现象。

五.实验代码

#include "myapp.h"// 定义指示灯寄存器地址和寄存器类型

#define LBDS (*((unsigned int *)0x400001))

void INTR_init( void );

void TIMER_init(void);

int nCount;

main()

{

nCount=0;

PLL_Init(40);

SDRAM_init();

LBDS=0;

INTR_init();

TIMER_init();

while ( 1 )

{

}

}

void interrupt Timer()

{

nCount++; nCount%=16;

if ( nCount==0 )

LBDS^=1;

}

void INTR_init( void )

{

IVPD=0xd0;

IVPH=0xd0;

IER0=0x10;

DBIER0 =0x10;

IFR0=0xffff;

asm(" BCLR INTM");

}

void TIMER_init(void)

{

ioport unsigned int *tim0;

ioport unsigned int *prd0;

ioport unsigned int *tcr0;

ioport unsigned int *prsc0;

tim0 = (unsigned int *)0x1000;

prd0 = (unsigned int *)0x1001;

tcr0 = (unsigned int *)0x1002;

prsc0 = (unsigned int *)0x1003;

*tcr0 = 0x04f0;

*tim0 = 0;

*prd0 = 0x0ffff;

*prsc0 = 2;

*tcr0 = 0x00e0;

}

六.实验结果

- 指示灯在定时器的定时中断中按照设计定时闪烁。

- 使用定时器和中断服务程序可以完成许多需要定时完成的任务,比如DSP 定时启动A/D 转

PSOC3外部中断实验报告

一.实验名称 ●中断实验 二.实验任务 ●了解PSoC3中断的构成,特点。 ●掌握PSoC3中断函数的编写 ●按键控制LED灯亮灭。 ●利用轻触按键K3分别产生PSoC3器件I/O口下降沿触发每 触发一次中断,LED1、LED2状态翻转一次。 三.实验设备及环境 ●微型计算机(安装了Psoc creator3.1集成开发软件) ●PSoC实验平台 ●DC9V电源 ●导线若干 四.原理: ●32个中断向量,每个中断向量对于多个中断源 ●可配置的中断入口向量地址 ●灵活的中断源 ●每个中断可独立的使能和禁制 ●每个中断可以设置8级中断优先级

●8级中断嵌套 ●软中断 ●程序可清除正在响应的中断 电平触发 边沿触发 五.具体步骤 1.新建工程 ●双击打开PSoC Creator软件 ●File -> New – Project,在Design栏中使用默认选择的 Empty PSoC 3 Design

●在“Name”框中输入新工程名称Timer,在“Location”框 中输入其存放路径 ●回到创建新工程对话框,点击“OK”,完成新工程的创建 2.绘制原理图 3.设置模块参数 ●设置Pin_1模块参数 ?Name:LED1 ?去掉 HW Connection前的勾 ?General:取默认 ?Drive Mode:Strong Drive ?Initial State:Low(0)

●设置Pin_2模块参数,与上一步相同 4.代码编写 ●主程序编写 #include CY_ISR(SWPin_Control) { if(InputPin_Read() == 1u) { OutputPinSW_Write(0u); } else { OutputPinSW_Write(1u); } InputPin_ClearInterrupt(); } int main() {

中断实验报告

沈阳工程学院 学生实验报告 实验室名称:微机原理实验室实验课程名称:微机原理及应用 实验项目名称:8259中断控制器实验实验日期:年月日 班级:姓名:学号: 指导教师:批阅教师:成绩: 一.实验目的 1.熟悉8086中断系统及8259的扩展方法。 2.理解8259中断控制器的工作原理。 3.初步掌握8259的应用编程方法。 二.实验设备 PC机一台,TD-PITE实验装置一套。 三.实验内容 1.实验原理 (1)在Intel 386EX芯片中集成有中断控制单元(ICU),该单元包含有两个级联中断控制器:一个为主控制器,一个为从控制器。从片的INT连接到主片的IR2信号上构成两片8259的级联。主片8259的中断请求信号IR6和IR7开放,从片的中断请求信号IR1开放,以供实验使用。 (2)单次脉冲输出与主片8259的MIR7相连,每按动一次单次脉冲开关,产生一个外部中断,在显示器上输出一个字符。 8259中断实验接线图 2.实验步骤 (1)补全实验程序,按实验接线图接线。 (2)对实验程序进行编译、链接无误后,加载到实验系统。 (3)执行程序,并按动单次脉冲开关KK1或KK2,观察程序执行结果。 3.程序清单 SSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE,SS:SSTACK START: PUSH DS MOV AX, 0000H MOV DS, AX ·1·

8259中断控制实验 ·2· MOV AX, OFFSET MIR7 ①MOV SI, ( ) MOV [SI], AX MOV AX, CS ②MOV SI, ( ) MOV [SI], AX CLI POP DS MOV AL, 11H OUT 20H, AL MOV AL, 08H OUT 21H, AL MOV AL, 04H OUT 21H, AL MOV AL, 01H OUT 21H, AL MOV AL, ( ) OUT 21H, AL STI AA1: NOP JMP AA1 MIR7: STI CALL DELAY MOV AX, 0137H INT 10H MOV AX, 0120H INT 10H MOV AL, 20H OUT 20H, AL IRET DELAY: PUSH CX MOV CX, 0F00H AA0: PUSH AX POP AX LOOP AA0 POP CX RET CODE ENDS END START 四.实验结果及分析 根据实验回答下列问题: 1.按动单次脉冲输入KK1后,屏幕显示字符 。 2.分析中断矢量地址能改成别的数值吗?为什么? 3.改变接线,KK1连接MIR6。修改程序行①为 ,修改程序行②为 ,重新设置中断向量,以及中断屏蔽字改为 。 4.如果输出数字9,如何修改程序? 5.如何屏蔽MIR7上的中断请求?按下KK1会有什么现象? 6.选做:如果采用级联方式扩展一片8259从片,应如何修改程序呢?请将程序写在背面。 成绩评定 对实验原理的掌握情况 2 1 0 — 实验步骤正确性 3 2 1 0 实验数据记录正确性 2 1 0 — 实验结果及分析的正确性 3 2 1 成 绩 批阅教师: 20 年 月 日

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

大学实验报告 学生:学号:专业班级: 实验类型:?验证?综合■设计?创新实验日期: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申请中断。 (2)外部中断1(INT1):中断请求信号由P3.3引脚输入。通过IT1来设置中断请求的触发方式。当IT1为“1”时,外部中断1为下降沿触发;当IT1为“0”时,无论是上升沿还是下降沿,都会引发外部中断1。一旦输入信号有效,则置位E1标志,向CPU申请中断。 中断源是否有中断请求,是由中断请求标志来表示的。在IAP15W4K58S4单片机中,外部中断 0、外部中断1等请求源的中断请求标志分别由特殊功能寄存器TCON和SCON控制,格式如下: (1)TCON寄存器中的中断请求标志。TCON为定时器T0与T1的控制寄存器,同时也锁存T0和T1的溢出中断请求标志及外部中断0和外部中断1的中断请求标志等。格式如下图所示: D7 D6 D5 D4 D3 D2 D1 D0 88H 与中断有关的各标志位功能如下: ①TF1:T1的溢出中断请求标志。T1被启动计数后,从初值做加1计数,计满溢出后由硬件 置位TFI,同时向CPU发出中断请求,此标志一直保持到CPU 响应中断后才由硬件自动清0。 也可由软件查询该标志,并由软件清0。 ②TF0:T0的溢出中断请求标志。T0被启动计数后,从初值做加1计数,计满溢出后由硬件 置位TF0,同时向CPU发出中断请求,此标志一直保持到CPU响应中断后才由硬件自动清 0。也可由软件查询该标志,并由软件清0。 ③IE1:外部中断1的中断请求标志。当INT1(P3.3)引脚的输入信号满足中断触发要求时,置 位IE1,外部中断1向CPU申请中断。中断响应后中断请求标志自动清0。 ④IT1:外部中断1(INT1)中断触发方式控制位。当(IT1)=1时,外部中断1为下降沿触发方式。 在这种方式下,若CPU检测到INT1出现下降沿信号,则认为有中断申请,随即使IE1标志 置位。中断响应后中断请求标志会自动清0,无须做其他处理。当(T1)=0时,外部中断1为

外部中断实验

实验二外部中断实验 一.实验目的 1.学习外部中断技术的基本使用方法; 2.学习中断处理程序的编程方法。 二.实验设备及器材配置 1.单片机仿真实验系统。 2.计算机。 3.导线。 三.实验内容 在以下实验题目中任选一个或由老师指定。 1.P1口做输出口,接八只发光二极管,编写程序,使其循环点亮。以单脉冲输出端做为中断申请,当第一次产生外部中断时,使发光二极管全亮,延时1秒后返回中断之前的状态;当第二次产生外部中断时,使发光二极管全灭,延时1秒后返回中断之前的状态;以后如上述一直循环下去。 2.以单脉冲输出端做为中断申请,自行设计连线,用实验箱上的红、绿、黄发光二极管模拟交通灯控制。当有急救车通过时,两交通灯信号为全红,以便让急救车通过,延时10秒后交通灯恢复中断前状态。 四.实验原理说明 本实验中中断处理程序的应用,最主要的地方是如何保护进入中断前的状态,使得中断程序执行完毕后能返回中断前P1口及发光二极管的状态。除了保护累加器A、程序状态字PSW外、P1口的状态外,还要注意主程序中的延时程序和中断程序的延时程序不能混用,本实验中,主程序延时程序用的寄存器和中断延时用的寄存器也不能混用。 五.连线方法及实验电路 8031的P1.0—P1.7分别接发光二极管L0—L7,P3.2接单脉冲输出端“ ” 外部中断实验电路如图1-3所示。

图1-3 外部中断实验电路 六.思考题及实验报告要求 1.思考题 (1).试说明51系列单片机外部中断如何使用。 (2).修改程序,外部中断产生时,使发光二极管闪亮移位方向改变。 2.实验报告要求 (1).给出自行设计的程序清单、程序流程图。 (2). 总结实验过程中调试所遇到的问题和解决方法,写出编程调试的经验和体会。 VW集成调试软件使用 1.自建以字母开头的文件夹,推荐在F盘。 2.双击桌面V/W快捷方式 3.左击【文件】-新建文件-保存文件(存于自建文件夹下,以字母开头,后缀为.ASM或.C) 4.左击【文件】-新建项目-(以字母开头,存于自建文件夹下,加入自存的汇编或C源程序) 5.编写程序 6. 左击【项目】-编译,根据提示将提示的错误位置修改,编译,直至程序无错。 7.实验箱断电、连线完毕后,打开实验箱电源开关。左击【仿真器】,在出现的窗口中选择LAB8000\MCS51\8031AH或A T89C51,晶体频率:6000000Hz。 8. 左击【执行】-全速运行,在实验箱上观察运行结果。

实验3 外部中断实验报告

实验三定时中断实验 一、实验目的 1、掌握51单片机外部中断的应用。 2、掌握中断函数的写法。 3、掌握定时器的定时方法。 4、掌握LED数码管的显示。 二、实验内容 1、用外部中断0测量负跳变信号的累计数,同时在LED数码管上显示出来。 2、用外部中断改变流水灯的方式。 3、用定时器T1的方式2控制两个LED以不同周期闪烁。 使用定时器T1的方式2来控制P0、0、P0、1引脚的两个LED分别以1s与2s的周期闪烁。 三、实验仿真硬件图 在Proteus软件中建立如下图所示仿真模型并保存。 1、用外部中断0测量负跳变信号的累计数,同时在LED数码管上显示出来(用中断方式做计数器)。 2、用外部中断改变流水灯的方式。 中断前:开始时,P0、0~P0、7的8个灯依次点亮。 外部中断0:P0、0~P0、7的左右4个灯闪烁亮8次 外部中断1: P0、0~P0、7的8个灯间隔闪烁8次 改变中断优先级与保护现场,观察运行结果 四、编程提示

外部中断0请求 ______ INT,由P3、2管脚输入,通过IT0位来决定就是低电平有效还就是下 降沿有效。一旦输入信号有效,即向CPU申请中断,并建立IE0中断标志。 以外部中断0为例,开放中断源采用以下语句: EA=1; //开放中断总允许位 EX0=1; //开放外部中断0允许位 IT0=1; //置外部中断为边沿(下边沿)触发方式中断函数结构如下: void int_0() interrupt 0 // interrupt 0表示该函数为中断类型号0的中断函数{ } 同级自然优先级: 外部中断0→定时器T0中断→外部中断1→定时器T1中断→串行口中断。 中断优先级别的设定: 实验二要求: 初始状态为P0、0~P0、7的8个LED显示灯依次循环点亮;外部中断0服务程序为8个LED灯,左4个,右4个闪烁8次,外部中断1服务程序8个LED灯,间隔闪烁8次。 ⑴设定外部中断0为高优先级,先执行外部1中断,过程中用外部0中断来将其中断,反之不行。注意保护现场。 ⑵设定外部中断1为高优先级,先执行外部0中断,过程中用外部1中断来将其中断,反之不行。注意保护现场。 实验三(调试下列程序,在错误行后面注明错误及改正方法): #include #define uchar unsigned char; sbit D0=P1^0; sbit D1=P1^1; uchar a,b;

计算机组成原理中断实验报告精编WORD版

计算机组成原理中断实验报告精编W O R D版 IBM system office room 【A0816H-A0912AAAHH-GX8Q8-GNTHHJ8】

北京建筑大学 2015/2016 学年第二学期 课程设计 课程名称计算机组成原理综合实验 设计题目微程序控制器设计与实现 系别电信学院计算机系 班级计141 学生姓名艾尼瓦尔·阿布力米提 学号 完成日期二〇一六年七月八日星期五 成绩 指导教师 (签名) 计算机组成综合实验任务书

?4、在原有指令集基础上自行设计或扩展4~8条指令。画出扩展指令的指令执行流程图; ?5、利用上端软件,把所编写的微程序控制器内容写入实验台中控制器中。 ?6、利用单拍测试控制器与编程的要求是否一致。如果有错误重新修改后再写入控制器中。 7、编写一段测试程序,测试控制器运行是否正确。 实验目的 1.融合贯通计算机组成原理课程,加深对计算机系统各模块的工作原理及相互联系(寄存器堆、运算器、存储器、控制台、微程序控制器)。 2.理解并掌握微程序控制器的设计方法和实现原理,具备初步的独立设计能力; 3.掌握较复杂微程序控制器的设计、调试等基本技能;提高综合运用所学理论知识独立分析和解决问题的能力。 实验电路 1. 微指令格式与微程序控制器电路 2.微程序控制器组成 仍然使用前面的CPU组成与机器指令执行实验的电路图,但本次实验加入中断系统。这是一个简单的中断系统模型,只支持单级中断、单个中断请求,有中断屏蔽功能,旨在说明最基本的原理。

中断屏蔽控制逻辑分别集成在2片GAL22V10(TIMER1 和TIMER2)中。其ABEL语言表达式如下: INTR1 := INTR; INTR1.CLK = CLK1; IE := CLR & INTS # CLR & IE & !INTC; IE.CLK= MF; INTQ = IE & INTR1; 其中,CLK1是TIMER1产生的时钟信号,它主要是作为W1—W4的时钟脉冲,这里作为INTR1的时钟信号,INTE的时钟信号是晶振产生的MF。INTS微指令位是INTS机器指令执行过程中从控制存储器读出的,INTC微指令位是INTC机器指令执行过程中从控制存储器读出的。INTE是中断允许标志,控制台有一个指示灯IE显示其状态,它为1时,允许中断,为0 时,禁止中断。当INTS = 1时,在下一个MF的上升沿IE变1,当INTC = 1时,在下一个MF的上升沿IE变0。CLR信号实际是控制台产生的复位信号CLR#。当CLR = 0时,在下一个CLK1的上升沿IE变0。当 CLR=1 且INTS = 0 且 INTC = 0时,IE保持不变。 INTR是外部中断源,接控制台按钮INTR。按一次INTR按钮,产生一个中断请求正脉冲INTR。INTR1是INTR经时钟CLK1同步后产生的,目的是保持INTR1与实验台的时序信号同步。INTR脉冲信号的上升沿代表有外部中断请求到达中断控制器。INTQ是中断屏蔽控制逻辑传递给CPU的中断信号,接到微程序控制器上。当收到INTR脉冲信号时,若中断允许位INTE=0,则中断被屏蔽,INTQ仍然为0;若INTE =1,则INTQ =1。

单片机 P1口及外部中断 硬件实验报告

实验十一P1口及外部中断 一、实验目的 1.掌握利用MCS-51单片机P1口实现I/O的三种传送方式。 2.掌握MCS-51单片机外部中断源的原理和编程方法。 3.了解MCS-51单片机处理外部中断的全过程。 4.弄懂外部中断触发方式的选择。 二、实验要求 熟练掌握结合DP-51PROC单片机综合仿真实验仪和Kiel C51 集成开发环境进行仿真调试。 三、实验内容及实验电路 1、P1口无条件输出实验,电路图图3-1所示。 图3-1 P1口无条件输出 实验参考程序1:8个LED 灯同时闪亮。 ORG 8000H LJMP Main ORG 80F0H Main: MOV R7, #0 Loop: MOV R6, #0 DJNZ R6, $ DJNZ R6, $ DJNZ R6, $ DJNZ R6, $ DJNZ R7, Loop CPL P1.0 ; P 1 .0 取反

CPL P1.1 ; P 1 .1 取反 CPL P1.2 ; P 1 .2 取反 CPL P1.3 ; P 1 .3 取反 CPL P1.4 ; P 1 .4 取反 CPL P1.5 ; P 1 .5 取反 CPL P1.6 ; P 1 .6 取反 CPL P1.7 ; P 1 .7 取反 SJMP Main END 2、P1口条件输出实验,电路如图3-2所示。 图3-2 P1口条件输出 实验参考程序2: ORG 8000H LJMP Main ORG 8100H Main: JB P1.7,SETLED CLRLED: CLR P1.0 CLR P1.1 CLR P1.2 CLR P1.3 CLR P1.4 CLR P1.5 CLR P1.6 SJMP Main SETLED:

STM32实验报告

实验一:一个灯的闪烁 一、实验要求 1.熟悉使用STM32F103ZET6开发板 2.利用C语言程序实现一个灯闪烁 二、电路原理图 图1-1 LED灯硬件连接图 三、软件分析 1.本实验用到以下3个库函数(省略了参数):RCC_DeInit();RCC_APB2PeriphClockCmd();GPIO_Init(); 2.配置输入的时钟:SystemInit()主要对RCC寄存器进行配置,GPIOA连接在APB2上,因此RCC_APB2PeriphClockCmd()函数需要使能APB2Periph_GPIOA 3.声明GPIO结构:PF6~PF10口配置为输出= GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10; 4.应用GPIO口:点亮LED1有五种方法 ①ODR寄存器法:GPIOA->ODR=0xffbf; ②位设置/清除寄存器法:GPIOA->BRR|=0X001; ③方法③只适用于GPIOx_BSRR寄存器 ④GPIO_WriteBit()函数法:GPIO_Write(0xffbf); ⑤置位复位库函数法:GPIO_ResetBits(GPIOF,GPIO_Pin_8); 5.主函数程序: int main(void) { RCC_Configuration(); /* 配置系统时钟*/

GPIO_Configuration(); /* 配置GPIO IO口初始化*/ for(;;) { GPIOF->ODR = 0xfeff; /* PF8=0 --> 点亮D3 */ Delay(600000); GPIOF->ODR = 0xffff; /* PF8=1 --> 熄灭D3 */ Delay(600000); } } 四、实验现象 下载程序后开发板上的LED1灯闪烁 五、总结 通过对本实验可以发现,和51等8位单片机相比,STM32对I/O端口的操作变得复杂了许多。 51单片机点灯的程序最简单,直接在main()中写一个while(1),里面写4行代码就可以了。STM32进入while(1)之前必须先配置I/O的方向,必须使能外设的时钟。对STM32来说,除了CM3内核都算外设,包括GPIO。STM32可以关闭任何外设的时钟以禁止该外设,这样设计是出于减少功耗的考虑。 实验二:流水灯的闪烁 一、实验要求 1、熟悉使用STM32F103ZET6开发板 2、利用C语言程序实现流水灯的闪烁实验 二、电路原理图

实验七 外部中断实验

贵州大学实验报告纸 实验七外部中断实验 一、实验目的 学习外部中断技术的基本使用方法。 二、实验内容 1、INT0端接单次脉冲发生器。按一次脉冲产生一次中断,CPU使P1.0状态发生一次反转,P1.0接LED灯,以查看信号反转。 2、修改程序,实现用一位开关产生外部中断1,每产生一次,调用一个流水灯方式,按顺序4次一个周期后重复 三、实验要求 根据实验内容编写一个程序,并在实验仪上调试和验证。 四、实验说明和电路原理图 1)外部中断的初始化设置共有三项内容:中断总允许即EA=1,外部中断允许即EXi=1(i=0或1),中断方式设置。中断方式设置一般有两种方式:电平方式和脉冲方式,本实验选用后者,其前一次为高电平后一次为低电平时为有效中断请求。因此高电平状态和低电平状态至少维持一个周期,中断请求信号由引脚INT0(P3.2)和INT1(P3.3)引入。 2)中断服务的关键: a、保护进入中断时的状态。 堆栈有保护断点和保护现场的功能使用PUSH指令,在转中断服务程序之前把单片机中有关寄存单元的内容保护起来。 b、必须在中断服务程序中设定是否允许中断重入,即设置EX0位。 c、用POP指令恢复中断时的现场。 3)中断控制原理:中断控制是提供给用户使用的中断控制手段。实际上就是控制一些

寄存器,51系列用于此目的的控制寄存器有四个:TCON 、IE 、SCON 及IP。 4)中断响应的过程:首先中断采样然后中断查询最后中断响应。采样是中断处理的第一步,对于本实验的脉冲方式的中断请求,若在两个相邻周期采样先高电平后低电平则中断请求有效,IE0或IE1置“1”;否则继续为“0”。所谓查询就是由CPU测试TCON和SCON中各标志位的状态以确定有没有中断请求发生以及是那一个中断请求。中断响应就是对中断请求的接受,是在中断查询之后进行的,当查询到有效的中断请求后就响应一次中断。 本实验需要用到CPU模块(F3区)和八位逻辑电平显示模块(B5区)、单次脉冲模块(E3区)。 五、实验程序 ;//************************************************* ;文件名: EXint for MCU51 ;功能: 外部中断实验 ;接线: 导线连接单次脉冲模块的输出端到CPU模块的P32, ; CPU模块的P10接八位逻辑电平显示模块的L0灯。 ;//************************************************* org 0 ljmp Start org 3 LJMP Interrupt0 ORG 0100H Start: mov TCON, #01h ; 外部中断0下降沿触发 mov IE, #81h ; 打开外部中断允许位(EX0)及总中断允许位(EA) OK: MOV R2,#04H MOV R1,#0 LOP1: CJNE R2,#0,LOP1 ljmp OK Interrupt0: Output1: CJNE R1,#0,Output2 mov a, #0fEH mov R5, #8 loop1: mov P1, a rl a Acall Delay

嵌入式系统实训报告-外部中断

《嵌入式系统技术》 实训报告 1、实验目的 z了解S3C2440A 外部中断的工作原理。 z掌握S3C2440A 外部中断的使用方法。 2、实验设备 z PC 机、Multi-ICE 仿真器、2440A 实验箱。 3、实验内容 z通过外部K1、K2、K3、K4、K5、K7 按键触发外部中断E INT1、EINT2、EINT3、EINT4、EINT5、EINT7 4、实验原理 4.1 ARM 的异常中断类型 在嵌入式系统中外部设备的功能实现主要是靠中断机制来实现的。中断功能可以解决CPU 内部运行速度远远快于外部总线速度而产生的等待延时问题。ARM 提供的FIQ 和IRQ 异常中断用于外部设备向C PU 请求中断服务,一般情况下都是采用I RQ 中断。 七种异常中断

中断过程框图 4.2 异常中断响应过程和返回过程 异常中断的响应过程: 1).保存处理器当前状态寄存器C PSR 的值到备份程序状态寄存器S PSR 中。 2).设置但前程序状态寄存器CPSR 的值,其中包括:设置CPSR 响应位的值,使处理器进入特定的处理器模式;按要求屏蔽中断,通常应该屏蔽I RQ 中断。在F IQ 中断时屏蔽F IQ 中断。 3).设置L r 寄存器。将相应中断模式的L r 寄存器的值设为异常中断的返回地址。 4).处理程序计数器PC,将PC 值设为相应的中断向量的地址,从而实现跳转以执行中断服务程序。 异常中断的返回 当处理器执行完以上流程之后,处理器已经从中断向量进入异常处理的状态。异常中断处理完毕之后,在异常中断程序的末端,处理器进入异常中断的返回状态,其流程如下: 1).恢复状态寄存器。将保存的备份程序状态寄存器SPSR 值赋给当前程序状态寄存器CPSR。 2).将返回地址赋值到程序计数器(PC)。这样程序将返回到异常中断产生的下一条指令或出现问题的指令处执行。 需要注意的是:对于不同的异常中断,其返回地址的计算方法也是不同的,IRQ 和F IQ 异常中断产生时,程序计数器PC 已经更新,而SWI 中断和未定义指令中断时由当前指令自身产生的,程序计数器P C 尚未更新,所以要计算出下一条指令的地址来执行返回操作;指令预取指中指异常中断和数据访问中断要求,返回到出现异常的执行现场,重新执行操作。 S3C2440A 异常中断的响应-返回流程图:

计算机组成原理中断实验报告

计算机组成原理中断实 验报告 Document number:PBGCG-0857-BTDO-0089-PTT1998

北京建筑大学 2015/2016 学年第二学期 课程设计 课程名称计算机组成原理综合实验 设计题目微程序控制器设计与实现 系别电信学院计算机系 班级计141 学生姓名艾尼瓦尔·阿布力米提 学号 完成日期二〇一六年七月八日星期五 成绩 指导教师 (签名) 计算机组成综合实验任务书

?实验目的 1.融合贯通计算机组成原理课程,加深对计算机系统各模块

的工作原理及相互联系(寄存器堆、运算器、存储器、控制台、微程序控制器)。 2.理解并掌握微程序控制器的设计方法和实现原理,具备初步的独立设计能力;3.掌握较复杂微程序控制器的设计、调试等基本技能;提高综合运用所学理论知识独立分析和解决问题的能力。 ?实验电路 1. 微指令格式与微程序控制器电路 2.微程序控制器组成 仍然使用前面的CPU组成与机器指令执行实验的电路图,但本 次实验加入中断系统。这是一个简单的中断系统模型,只支持单级 中断、单个中断请求,有中断屏蔽功能,旨在说明最基本的原理。 中断屏蔽控制逻辑分别集成在2片GAL22V10(TIMER1 和 TIMER2)中。其ABEL语言表达式如下: INTR1 := INTR; = CLK1; IE := CLR & INTS # CLR & IE & !INTC; = MF; INTQ = IE & INTR1; 其中,CLK1是TIMER1产生的时钟信号,它主要是作为W1—W4 的时钟脉冲,这里作为INTR1的时钟信号,INTE的时钟信号是晶振 产生的MF。INTS微指令位是INTS机器指令执行过程中从控制存储 器读出的,INTC微指令位是INTC机器指令执行过程中从控制存储

外部中断实验

计算机科学与技术系 实验报告 专业名称计算机科学与技术专业 课程名称单片机应用设计 项目名称外部中断实验 班级 14计科一班 学号 姓名 同组人员无 实验日期 2016年4月15日

一、实验目的 熟悉MCS51中断系统的工作原理和编程方法,掌握单片机中断优先级的原理和处理方法,掌握中断系统的应用、实时程序的设计和调试技巧。 二、实验内容 1、将单片机的INT0和INT1分别外接一个独立按键,要求 INT0设置为下降沿触发,INT1设置为低电平触发,并且为高优先级。 2、对每次的按键动作进行计数,要求分别显示在 LED 数码管上,并确保每次按键过程中只识别一次按键动作。 三、实验原理图 四、连线说明

五、演示程序 ;------------功能描述------------ ;外部中断0下降沿触发计数 0-60,由K1按下实现 ;外部中断1低电平触发计数 0-60由K2按下实现 ;K3为基准键,K3与K4~K8组合分别控制LED4~LED8 DS_595 EQU P2.2 SHCP_595 EQU P2.1 ;移位寄存器时钟 STCP_595 EQU P2.0 ;存储器时钟 INT_0 EQU P3^2 ;外部中断0 INT_1 EQU P3^3 ;外部中断1 LED EQU P1 KBASE_3 EQU P0^2 ;基键 K_4 EQU P0^3 K_5 EQU P0^4 K_6 EQU P0^5 K_7 EQU P0^6 K_8 EQU P0^7 DIS_DAT EQU 33H ;段选 DIS_ADDR EQU 32H ;位选 COUNT0 EQU 30H ;记按键次数 COUNT1 EQU 31H ;-------------定义地址-------------- ORG 0000H LJMP MAIN ORG 0003H ;外部中断0的入口地址 LJMP OUT0 ORG 0013H LJMP OUT1 ;-------------主函数--------------- MAIN: MOV COUNT0,#0 MOV COUNT1,#0 %SETB INT_0;复位P3.2口重新置位 %SETB INT_1;复位P3.2口重新置位 SETB EX0 ;置1,运行外部中断0产生中断 SETB IT0 ;置1,外部中断0为跳沿触发 SETB PX1 SETB EX1 CLR IT1 ;置0,低电平触发 SETB EA ;置1,CPU开总中断

嵌入式实验 中断实验报告

嵌入式实验报告 中断实验报告 指导教师:高金山 实验者:13410801 房皓13410802 张耀荣 一、实验目的: 1.理解中断向量表的结构 2.理解中断处理的过程 3.学习编写中断处理程序的方法 二、实验要求: 1.修改源程序,通过中断方式响应按键,当1-16键按下时,数码管显示0-F。 2.提高内容: 以FIQ方式,替代IRQ方式,实现按下任何一个键,数码管显示按键号的功能。 三、实验内容: 1.设计主程序,使8个LED以一定的时间间隔从右到左依次点亮,循环显示;(实验 一的内容) 2.当有键按下时,在七段数码管上,显示对应的16个键盘编码值 0-9 a-f(实验二、 三的内容) 四、程序编辑: ;boot.s IMPORT postDelay IMPORT osStack ;IMPORT post_initStack IMPORT init_Stack IMPORT post_initGpio IMPORT post_initMem IMPORT post_initKey IMPORT dummyOs IMPORT FIQ_Handler IMPORT ICMR IMPORT init_ICMR

IMPORT FIQ IMPORT init_FIQ ;IMPORT PSSR AREA boot ,CODE ,READONLY ENTRY B Reset_Handler B Undefined_Handler B SWI_Handler B Prefetch_Handler B DataAbort_Handler NOP B Reset_Handler B FIQ_Handler Undefined_Handler B Undefined_Handler SWI_Handler B SWI_Handler Prefetch_Handler B Prefetch_Handler DataAbort_Handler B DataAbort_Handler IRQ_Handler B IRQ_Handler ;Defined by yourself Reset_Handler ;************************* ;Check if run in the SDRAM ;************************* MOV R0,PC CMP R0,#0x0000003C BNE Stack ;**************************

实验3-外部中断实验报告

实验3-外部中断实验报告

实验三 定时中断实验 一、实验目的 1. 掌握51单片机外部中断的应用。 2. 掌握中断函数的写法。 3. 掌握定时器的定时方法。 4. 掌握LED 数码管的显示。 二、实验内容 1. 用外部中断0测量负跳变信号的累计数,同时在LED 数码管上显示出来。 2. 用外部中断改变流水灯的方式。 3. 用定时器T1的方式2控制两个LED 以不同周期闪烁。 使用定时器T1的方式2来控制P0.0、P0.1引脚的两个LED 分别以1s 和2s 的周期闪烁。 三、实验仿真硬件图 在Proteus 软件中建立如下图所示仿真模型并保存。 1. 用外部中断0测量负跳变信号的累计数,同 71245368 1 2 3 4 5 6 7 8 R2 220 XTAL2 18 XTAL1 19 ALE 30EA 31 PSEN 29RST 9 P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD7 32P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78 P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD 17 P3.6/WR 16P3.5/T115P2.7/A15 28P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1 AT89C51 C1 22pf C2 22pf C3 10uf X1 12M R1 10k D1R3 220 D2R4 220 D3R5 220 D4R6 220 D5R7 220 D6R8 220 D7 R9 220 D8

实验3外部中断实验报告

实验3外部中断实验报告 以下是为大家整理的实验3外部中断实验报告的相关范文,本文关键词为实验,外部,中断,报告,,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在综合文库中查看更多范文。 实验三定时中断实验 一、实验目的 1.掌握51单片机外部中断的应用。 2.掌握中断函数的写法。 3.掌握定时器的定时方法。 4.掌握LeD数码管的显示。二、实验内容

1.用外部中断0测量负跳变信号的累计数,同时在LeD数码管上显示出来。 2.用外部中断改变流水灯的方式。 3.用定时器T1的方式2控制两个LeD以不同周期闪烁。使用定时器T1的方式2来控制p0.0、p0.1引脚的两个LeD分别以1s和2s 的周期闪烁。 三、实验仿真硬件图 在proteus软件中建立如下图所示仿真模型并保存。 1.用外部中断0测量负跳变信号的累计数,同时在LeD数码管上显示出来(用中断方式做计数器)。 2.用外部中断改变流水灯的方式。 中断前:开始时,p0.0~p0.7的8个灯依次点亮。外部中断0:p0.0~p0.7的左右4个灯闪烁亮8次外部中断1:p0.0~p0.7的8个灯间隔闪烁8次改变中断优先级和保护现场,观察运行结果四、编程提示 12345678p1.0p1.1p1.2p1.3p1.4p1.5p1.6p1.7AT89c51c122pfu1x112m18 xTAL219xTAL1p0.0/AD0p0.1/AD1p0.2/AD2p0.3/AD3p0.4/AD4p0.5/AD5p 0.6/AD6p0.7/AD7p2.0/A8p2.1/A9p2.2/A10p2.3/A11p2.4/A12p2.5/A13p2 .6/A14p2.7/A15p3.0/RxDp3.1/TxDp3.2/InT0p3.3/InT1p3.4/T0p3.5/T1p3. 6/wRp3.7/RD39383736353433322122232425262728101112131415161

单片机外部中断实验报告

实验三外部中断 实验报告 班级: 学号: 姓名: 教师: 一、实验目的

1、掌握单片机外部中断的原理及过程。 2、掌握单片机外部中断程序的设计方法。 3、掌握单片机外部中断时中断方式的选择方法。 二、实验内容 如下图所示,P3.2设为输入,P2设为输出位,连有8个发光二极管D1~D8。每当发生外部中断时,发光二极管以向下流水灯的方式点亮。分别选择边沿触发外部中断 放是和电平触发外部中断方式两种。 三、编程提示 1、P3口是8位准双向口,具有双重功能: 第一功能和P1口一样,作为输入输出口,也有字节操作和位操作两种方式,每一位可分别定义为输入或输出;第二功能定义如下: P3.0 RXD 串行输入口 P3.1 TXD 串行输出口 P3.2 INT0 外部中断0请求输入线

P3.3 INT1 外部中断1请求输入线 P3.4 T0定时器/计数器T0外部计数器脉冲输入线 P3.5 T1定时器/计数器T1外部计数器脉冲输入线 P3.6 WR外部数据存贮器写脉冲输出线 P3.7 RD外部数据存贮器读脉冲输出线 2、各中断服务程序入口地址: 外部中断0 03H 定时器/计数器T1溢出中断0BH 外部中断1 13H 定时器/计数器1BH 串行口中断23H 3、外部中断的产生条件 中断允许寄存器IE: (1)外部中断源允许中断(中断0:EX0=1;中断1:EX1=1)。 (2)CPU开中断(EA=1)。 (3)外部中断方式CPU发出中断申请。 4、外部中断方式的选择 控制TCON: IT0是选择文字则外部中断0请求(INT0)边沿触发方式或电平触发方式的控制位。前一方式IT0=1,后一方式IT0=0。 IT1是选择外部中断1请求(INT1)为边沿触发方式或电平触发方式的控制位。前一方式IT1=1,后一方式IT1=0。 当8031复位后,TCON被清0。 5、外部中断电路 负脉冲作为中断请求信号时,为了保证中断的唯一性,必须加上消除开关抖动的电路或者去抖动延时程序,保证每次只产生单脉冲,构成边沿触发方式外部中断电路。边沿触发的

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

南昌大学实验报告 学生姓名:学号:专业班级: 实验类型:?验证 ?综合■设计 ?创新实验日期: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申请中断。 (2)外部中断1(INT1):中断请求信号由P3.3引脚输入。通过IT1来设置中断请求的触发方式。

单片机 中断实验 实验报告

实验三中断实验 一、实验内容 1.当单片机的INT0端出现负脉冲时,进入相应的中断服务程序,P1口做输出口,接8只发光二极管,通过程序控制发光二极管依次点亮。 2.选择外部中断0(P3.2)接按键INTO到地,按下出现负脉冲时,进入相应的中断服务程序,在中断服务程序中,数码管显示加1,在0-9之间循环。 二、实验目的 1、学习外部中断技术的基本使用方法。 2、学习中断处理程序的编程方法。 三、实验原理 (中断原理部分参考教材填写) 本实验中断处理程序的应用,最主要的地方是如何保护进入中断前的状态,使得中断程序执行完毕后能回到交通灯中断前的状态。要保护的地方,除了累加器ACC、标志寄存器PSW外,还要注意。一是主程序中的延时程序和中断处理程序中的延时程序不能混用,本实验中,主程序延时用的寄存器和中断延时用的寄存器应不相同。 四、实验电路 (参考学习板说明书Page11) 五、接线方式 (参考学习板说明书Page11) P1口接发光二极管的L1—L8;单脉冲输出端“”接INI0,即接89C51的P3.2管脚。 六、参考程序 程序一、 ORG 0030H tmpdate: DB 01H,02H,04H,08H,10H,20H,40H,80H /*定义常量做为输出*/ ORG 0000H LJMP MAIN ORG 0003H LJMP INT MAIN: SETB EA /*首先开启总中断*/

SETB EX0 /*开启外部中断0 */ SETB IT0 /* 设置成下降沿触发方式*/ MOV R7,#8 MOV DPTR,#TMPDATE L0: SJMP L0 //等待中断 INT: DJNZ R7,L1 /*外部中断0 每按一次主板上的"INT0"键,中断响应,调用该函数,我们从P1口输出点亮发光二极管*/ MOV R7,#8 L1: MOV A,R7 MOVC A,@A+DPTR CPL A MOV P1,A RETI END 程序二、 /*************************************************************** 功能:按下按键,数码管加1,用中断的方法 作者:txl 时间:2009-04 版本:V1.0 ***************************************************************/ #include #define uint unsigned int #define uchar unsigned char sbit wei1=P2^0; sbit key1=P3^2; uchar code table[]={0xC0,0xF9,0xA4,0xB0, 0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83,

相关主题