51单片机LED *** 作汇编语言程序解释

51单片机LED *** 作汇编语言程序解释,第1张

ORG 00H ;程序初始地址

SJMP STAR ;跳转到STAR

ORG 1BH ;定时器T1的中断向量地址

SJMP T1S ;跳转到T1S

ORG 30H ;程序地址30H,即STAR标号地址

STAR: MOV R2,#99 ;将十进制数99送入R2中

MOV R4,#20 ;将十进制数20送入R4中

MOV IE,#88H ;开启EA和ET1

MOV TMOD,#10H ;使用T1的工作方式1

MOV TH1,#3CH ;给T1赋初值,这里是定时50ms

MOV TL1,#0B0H

SETB TR1 ;开启T1

MOV A,R2 ;将R2中的值送入A中

MOV B,#10 ;将十进制数10送入B中

DIV AB ;将A中的数除以B中的数,商在A中,余数在B中

ACALL SEG7 ;调用SEG7

MOV P1,A ;将A中值送入P1

MOV A,B ;将B中值送入A

ACALL SEG7 ;调用SEG7

MOV P2,A ;将A中值送入P2

SJMP $ ;死循环,等待中断

SJMP STAR

T1S: MOV TH1,#3CH ;中断程序,重新赋初值T1 50ms

MOV TL1,#0B0H

DJNZ R4,T1S0 ;R4中值先减1再看是否为0,若不为0则跳转到T1S0,若为0则顺序往下执行

MOV R4,#20 ;给R4重新赋值十进制数20,因此定时时间应该为1秒

DJNZ R2,T1S1 ;R2中值先减1再看是否为0,若不为0则跳转到T1S1,若为0则顺序往下执行

/CLR TR1/

SJMP T1S1 ;跳转到T1S1

T1S0: RETI ;中断返回

T1S1: MOV A,R2 ;将R2中的值送入A中

MOV B,#10 ;将十进制数10送入B中

DIV AB ;将A中的数除以B中的数,商在A中,余数在B中

ACALL SEG7 ;调用SEG7

MOV P1,A ;将A中值送入P1

MOV A,B ;将B中值送入A

ACALL SEG7 ;调用SEG7

MOV P2,A ;将A中值送入P2

CJNE R2,#0,T1S2 ;将R2中的值与十进制数0比较,若为0则跳转到T1S2,否则顺序执行

MOV R2,#100 ;给R2赋十进制数100

T1S2: RETI ;中断返回

SEG7: INC A ;A中的值加1

MOVC A,@A+PC ;先将PC中的值加1,然后与A相加,然后以此值为地址,将该地址中的数据送入A中

RET ;返回

DB 0C0H,0F9H,0A4H,0B0H;数据

DB 99H,92H,82H,0F8H

DB 80H,90H,88H,83H

DB 0C6H,0A1H,86H,8EH

END ;程序结束

=========================================================

我就是逐句解释了一下,至于程序要实现什么功能,我就不清楚了,要跟硬件相关

用主程序入口地址替换掉外部中断服务程序保存的原返回地址就可以实现了。具体实现方法如下:

EXT1:

MOV DPTR,#MAIN

POP A ;d出原返回地址

POP A

PUSH DPH ;将主程序入口地址压入

PUSH DPL

RETI

0003H;外部中断0

000BH;定时器0中断

0013H;外部中断1

001BH;定时器1中断

0023H;串口中断

任意区域:

0000H

LJMP MAIN

0003H ;中断0入口地址。。

LJMP INT0;跳到中断子程序。

0030H

MAIN: SETB EA

SETB IT0

SETB EX0

SJMP $

INT0: CLR EA //此段中断子程序可以放任意位置。

MOV P0,#0 ;亮led ,

SETB EA

RETI

如果还有不明白的,,可以HI我!!

谢谢采纳!

以上就是关于51单片机LED *** 作汇编语言程序解释全部的内容,包括:51单片机LED *** 作汇编语言程序解释、51单片机怎样外部中断后让单片机从主程序开始、51单片机的5个中断源的中断入口地址分别是什么如果要将外部中断0的中断服务程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存