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

上传人:b****6 文档编号:15264763 上传时间:2023-07-03 格式:DOCX 页数:12 大小:79.83KB
下载 相关 举报
单片机实验四报告外中断实验.docx_第1页
第1页 / 共12页
单片机实验四报告外中断实验.docx_第2页
第2页 / 共12页
单片机实验四报告外中断实验.docx_第3页
第3页 / 共12页
单片机实验四报告外中断实验.docx_第4页
第4页 / 共12页
单片机实验四报告外中断实验.docx_第5页
第5页 / 共12页
单片机实验四报告外中断实验.docx_第6页
第6页 / 共12页
单片机实验四报告外中断实验.docx_第7页
第7页 / 共12页
单片机实验四报告外中断实验.docx_第8页
第8页 / 共12页
单片机实验四报告外中断实验.docx_第9页
第9页 / 共12页
单片机实验四报告外中断实验.docx_第10页
第10页 / 共12页
单片机实验四报告外中断实验.docx_第11页
第11页 / 共12页
单片机实验四报告外中断实验.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

《单片机实验四报告外中断实验.docx》由会员分享,可在线阅读,更多相关《单片机实验四报告外中断实验.docx(12页珍藏版)》请在冰点文库上搜索。

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

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

 

南昌大学实验报告

实验类型:

验证?

综合■设计?

创新实验日期:

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(INTO)和外部中断1(INT1)详述如下:

(1)外部中断O(INTO):

中断请求信号由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的中断请求标志等。

格式如下图所示:

D7D6D5D4D3D2D1D0

TCON

TF1

TR1

TF0

TR0

IR1

IT1

IE0

IT0

位地址

8FH

——

8DH

——

8BH

8AH

89H

88H

与中断有关的各标志位功能如下:

1TF1:

T1的溢出中断请求标志。

T1被启动计数后,从初值做加1计数,计满溢出后由硬件置位TFI,同时向CPU发出中断请求,此标志一直保持到CPU响应中断后才由硬件自动清0。

也可由软件查询该标志,并由软件清0。

2TF0:

T0的溢出中断请求标志。

T0被启动计数后,从初值做加1计数,计满溢出后由硬件

置位TF0,同时向CPU发出中断请求,此标志一直保持到CPU响应中断后才由硬件自动清0。

也可由软件查询该标志,并由软件清0。

3IE1:

外部中断1的中断请求标志。

当INT1(P3.3)引脚的输入信号满足中断触发要求时,置

位IE1,外部中断1向CPU申请中断。

中断响应后中断请求标志自动清0。

4IT1:

外部中断1(INT1)中断触发方式控制位。

当(IT1)=1时,外部中断1为下降沿触发方式。

在这种方式下,若CPU检测到INT1出现下降沿信号,则认为有中断申请,随即使IE1标志

置位。

中断响应后中断请求标志会自动清0,无须做其他处理。

当(T1)=0时,外部中断1为上升沿触发和下降沿触发触发方式。

在这种方式下,无论CPU检测到INT1引脚出现下降

沿信号还是上升沿信号,都认为有中断申请,随即使IE1标志置位。

中断响应后中断请求标

志会自动清0,无须做其他处理。

5IE0:

外部中断0的中断请求标志。

当INT0(P3.2)引脚的输入信号满足中断触发要求时,置位IE0,外部中断0向CPU申请中断。

中断响应后中断请求标志自动清0。

6IT0:

外部中断0的中断触发方式控制位。

当(IT0)=1时,外部中断1为下降沿触发方式。

这种方式下,若CPU检测到INT0(P3.2)出现下降沿信号,则认为有中断申请,随即使IE0

标志置位。

中断响应后中断请求标志会自动清0,无须做其他处理。

当(IT0)=0时,外部中

断0为上升沿触发和下降沿触发触发方式。

在这种方式下,无论CPU检测到INT0(P3.2)引

脚出现下降沿信号还是上升沿信号,都认为有中断申请,随即使IE0标志置位。

中断响应后

中断请求标志会自动清0,无须做其他处理。

(2)SCON寄存器中的中断请求标志。

SCON是串行口控制寄存器,其低2位TI和RI锁存串行口1的发送中断请求标志和接收中断请求标志格式如下:

TCON

TI

RI

位地址

99H

98H

D7D6D5D4D3D2D1D0

98H

中断请求标志和接收中断请求标志的功能如下:

1TI:

串行口1发送中断请求标志。

CPU将数据写入发送缓冲器SBUF时,就启动发送,每发送完一个串行帧,硬件将使TI置位。

但CPU响应中断时并不清除TI,必须由软件清除。

2RI:

串行口1接收中断请求标志。

在串行口1允许接收时,每接收完一个串行帧,硬件将使RI置位。

同样,CPU在响应中断时不会清除RI,必须由软件清除。

中断请求源中的外部中断0(INT0)和外部中断1(INT1)等都是可屏蔽中断,由片内的中断允许寄存器IE控制,,可对中断的开放和关闭实现两级控制。

所谓两级控制,就是有一个总的开关中断控制位EA(IE.7位),当EA=0时,所有的中断请求被屏蔽,CPU对任何中断请求都不接受,因此称EA为系统中断允许总开关控制位;当EA=1时,CPU开放中断,但5个中断源的中断请求是否允许,还要由其对应的中断请求允许控制位状态决定。

格式如下:

D7D6D5D4D3D2D1D0

IE

EA

——

ET2

ES

ET1

EX1

ET0

EX0

位地址

AFH

——

ADH

ACH

ABH

AAH

A9H

A8H

其中EX1是外部中断1中断允许位,EX仁0,禁止外部中断1中断;EX1=1,允许外部中断1中断。

EX0是外部中断0中断允许位,EX0=0,禁止外部中断0中断;EX0=1,允许外部中断0中断。

另外,单片机中的中断请求源还具有两个中断优先级,存放在特殊功能寄存器IP中,只要利用

程序改变其内容就可以对各个中断源的中断优先级进行控制,其格式如下:

IP

——

——

PT2

PS

PT1

PX1

PT0

PX0

位地址

——

——

BDH

BCH

BBH

BAH

B9H

B8H

D7D6D5D4D3D2D1D0

B8H

其中PX1是外部中断1的中断优先级控制位,PX仁1,外部中断1为高优先级;PX仁0,外部中断1为低优先级。

PX0是外部中断0的中断优先级控制位,PX0=1,外部中断0为高优先级;PX0=1,外部中断0为低优先级。

根据上述原理分析,单片机要相应中断请求,首先要使IE寄存器中的中断总允许位EA=1,再

使外部中断0和1所对应的中断请求标志为1和中断允许位为1即可。

本实验要求对中断0计数再利用中断1清0,只需要在中断0的中断服务子程序加上一个计数器,在中断1的中断服务子程序对该

计数器清0,最后利用数码管显示该计数器的值便可实现。

(四)实验设备

硬件:

PC机、USB数据传输线、STC单片机综合实验箱

软件:

兼容51单片机的Keiluvision5集成开发环境、STC-ISP单片机烧录软件

(五)实验结果

实验源代码如(七)所示。

对代码进行编译,提示0错误0警告,生成hex文件。

Rebuildtarget1'

linking*…

tiexIntel

■«\Objcta.Inttrrupt_Gount"-UErr?

r(s)rCWarning(3)-

3E丄由亡已;0?

:

GO:

0J.

将单片机试验箱和电脑通过USB数据线连接,打开STC-ISP检测串口

串□号I'SU-SELLALCM340CCQM3)-扫插

最牴慕特翠2400〜

最高〕鮒率1L5200-

点击点开程序文件,选择刚才生成的hex文件,点击下载程序,烧录成功

vlOd

Interruptcounthem

」丄兀£工口才曰71.口目丨J.1RI

看I]狗定时器分频系数256

0空闲伏态时停止着门醐计粒

 

按作贰功'(2018-0^-0?

234236)

(六)结果讨论与心得体会

结果分析讨论:

将程序烧录至单片机后,可观察到数码管的高三位显示000,其他位消隐。

按下SW17(外部中断0),数码管对此计数,当按下SW18(外部中断1),数码管显示000,即定时器清零,与预期效果一致,完成实验。

心得体会:

通过本次实验,我掌握了外部中断的原理,学会了利用按键来产生中断,还了解了如何使用数码管显示,希望通过自己多次尝试能在今后实验中熟练使用外部中断并将其运用到其他方面。

(七)附录:

实验源代码

P5

DATA

0C8H

P4M1

DATA

0xB3

P4M0

DATA

0xB4

P5M1

DATA

0xC9

P5M0

DATA

0xCA

;****************************************************

P_HC595_SERBITP4.0

P_HC595_RCLKBITP5.4

P_HC595_SRCLKBITP4.3

.****************************************************

LED8

DATA

30H

display」ndex

DATA

38H

INT0_cnt

DATA

39H

;******************************************************/

ORG

0000H

LJMP

F_Main

ORG

0003H

LJMP

F_INT0_Interrupt

ORG

0013H

LJMP

F_INT1_Interrupt

;******************************************************/

ORG

0100H

F_Main:

CLR

A

MOV

P4M1,

A

MOV

P4M0,

A

MOV

P5M1,

A

MOV

P5M0,

A

MOV

display_index.

#0

MOV

R0,

#LED8

MOV

R2,

#8

CLR

IE1

CLR

IE0

SETB

EX1

SETB

EX0

SETB

IT0

SETB

IT1

SETB

EA

MOV

INT0_cnt,

#0

L_MainLoop:

LCALL

F_delay_ms

LCALL

F_DisplayScan

LJMP

L_MainLoop

F_delay_ms:

MOV

R2,

#20

D1:

MOV

R3,

#20

D2:

DJNZ

R3,

D2

DJNZ

R2,

D1

RET

T_Display:

DB

03FH,006H,05BH,04FH,066H,06DH,07DH,007H,07FH,06FH,077H,07CH,039H,05EH,079H,071H;

DB000H

T_COM:

DB020H,040H,080H;

F_Send_595:

PUSH

02H

MOV

R2,#8

L_Send_595_

丄oop:

RLC

A

MOV

P_HC595_SER,C

SETB

P_HC595_SRCLK

CLR

P_HC595_SRCLK

DJNZ

R2,L_Send_595_Loop

POP

02H

RET

F_DisplayScan:

PUSH

DPH

J

PUSH

DPL

J

PUSH

00H

J

MOV

A,

INT0_cnt;

MOV

B,

#100;

DIV

AB

MOV

LED8+0,

A;

MOV

A,

#10;

XCH

A,

B;

DIV

AB

J

MOV

LED8+1,

A;

MOV

LED8+2,

B;

MOV

DPTR,

#T_COM;

MOV

A,

display_index;

MOVC

A,

@A+DPTR;

CPL

A;

LCALL

F_Send_595;

MOV

DPTR,#T_Display;

MOV

A,display_index;

ADD

A,#LED8;

MOV

R0,A;

MOV

A,@R0;

MOVC

A,@A+DPTR;

LCALL

F_Send_595;

CLR

P_HC595_RCLK;

SETB

P_HC595_RCLK;

INC

display_index;

MOV

A,display_index;

CJNE

A,#3,L_QuitDisplayScan;

MOV

display_index,#0;

 

L_QuitDisplayScan:

POP

00H;

POP

DPL;

POP

DPH;

RET

 

F」NTO_Interrupt:

INC

INT0_cnt;

RETI

 

F_INT1_Interrupt:

MOV

INT0_cnt,#00H;

RETI

END

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2