关于51单片机一个简单的外部中断程序,求教~

关于51单片机一个简单的外部中断程序,求教~,第1张

试试看:

ORG 0000H

JMP MAIN

ORG 0013H

AJMP INT

JMP MAIN

TAB:

DB 0X01, 0X02, 0X04, 0X08

DB 0X10, 0X20, 0X40, 0X80

MAIN:

SETB EA

SETB EX1

MOV DPTR, #TAB

LOOP:

MOV R1, #8

MOV B, #0

AGAIN:

MOV A, B

MOVC A, @A+DPTR

MOV P1, A

INC B ;下一个状态

CALL DELAY

DJNZ R1, AGAIN

JMP LOOP

DELAY:

MOV R6, #2

LOOP3: MOV R5, #255 ;延迟0。5秒

LOOP2: MOV R4, #255

LOOP1: NOP

NOP

DJNZ R4, LOOP1

DJNZ R5, LOOP2

DJNZ R6, LOOP3

RET

INT:

MOV P2, #0XAA

CALL DELAY

CALL DELAY

CALL DELAY

CALL DELAY

CALL DELAY

MOV P2, #0XFF

MOV A, B ;显示下一个状态

MOVC A, @A+DPTR

MOV P1, A

INC B

RETI

END

什么时候中断服务程序开始执行?

条件就是中断源申请了中断,即有中断请求了,并单片机允许中断时,就会转到执行中断服务程序了。

在写程序的时候,是不知道什么时候会执行中断程序的,也不必知道确切的时间,只要写好中断服务程序,并设置中断允许标志位,到时候,一旦有中断请求就会执行了。

因此,也必须要写好中断服务程序,确定好中断服务程序中要做什么,写好程序就行了。

其余的事就不必 *** 心了。

interrupt X是指用的第几个中断。。1~2~3是由中断向量表决定的。也就是由单片机的中断入口地址的顺序决定的。这个是硬件决定的软件不能改变。

例如外部中断0就是interrupt 0 定时器0 是interrupt 1 外部中断1是interrupt 2 定时器2是interrupt 3 串口是interrupt 4

以上就是关于关于51单片机一个简单的外部中断程序,求教~全部的内容,包括:关于51单片机一个简单的外部中断程序,求教~、51单片机程序中什么时候中断服务程序开始执行、c51单片机中断程序中的interrupt1,2,3是由什么决定的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9790231.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存