找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2365|回复: 2
收起左侧

新手求助!中断返回不了 怎么办,急!!!!

[复制链接]
ID:62332 发表于 2014-6-5 13:02 | 显示全部楼层 |阅读模式
ORG 0000H
        AJMP MAIN
        ORG 0003H
        AJMP JINGJI
        ORG 0030H


MAIN:        MOV SP,#80H
        SETB EX0
        SETB IT0
        SETB EA
        MOV P0,#00H
        MOV P1,#00H
        MOV P2,#00H
        MOV R7,#30
        MOV P1,#3EH
        MOV B,#10
        MOV R5,#0
        ACALL INTR
        MOV R7,#29

LOOP:        ACALL YANSHI
        ACALL INTR
        DEC R7
        CJNE R7,#9,LOOP
        ACALL HUANDENG
        MOV R7,#30

LOOP4:        MOV P1,#0E3H
        ACALL INTR
        ACALL YANSHI
        DEC R7
        CJNE R7,#10,LOOP4
        ACALL HUANDENG1
        AJMP MAIN

INTR:        MOV A,R7
        DIV AB
        MOV DPTR,#TAB
        MOVC A,@A+DPTR
        MOV P2,A
        MOV A,B
        MOVC A,@A+DPTR
        MOV P0,A
        MOV B,#10
        RET

YANSHI:        MOV R3,#10
LOOP3:        MOV R2,#100
LOOP2:        MOV R1,#250
LOOP1:        NOP
        NOP
        DJNZ R1,LOOP1
        DJNZ R2,LOOP2
        DJNZ R3,LOOP3
        RET

HUANDENG:MOV P1,#0DEH
        ACALL YANSHI
        DEC R7
        ACALL INTR
        MOV P1,#0FEH
        ACALL YANSHI
        DEC R7
        ACALL INTR
        INC R5
        CJNE R5,#5,HUANDENG
        MOV R5,#0
        RET

HUANDENG1:MOV P1,#0EDH
        ACALL YANSHI
        DEC R7
        ACALL INTR
        MOV P1,#0EFH
        ACALL YANSHI
        DEC R7
        ACALL INTR
        INC R5
        CJNE R5,#5,HUANDENG1
        MOV R5,#0
        RET

JINGJI:        PUSH P1
        PUSH ACC
        PUSH P0
        PUSH P2
        MOV R4,#10
        MOV P0,#0C0H
        MOV P2,#0C0H
        MOV P1,#0EEH
LL:        MOV A,R4
        DIV AB
        MOV DPTR,#TAB
        MOVC A,@A+DPTR
        MOV P2,A
        MOV A,B
        MOVC A,@A+DPTR
        MOV P0,A
        MOV B,#10
        ACALL YANSHI
        DEC R4
        CJNE A,#0,LL
        POP P2
        POP P0
        POP ACC
        POP P1
        RETI

TAB:  DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
        END
       
       
       

360截图20140605130148194.jpg
回复

使用道具 举报

ID:7485 发表于 2014-6-5 14:53 | 显示全部楼层
你的程序有不少的问题。首先外部中断0需要设置工作方式,下跳沿触发?低电平触发?其次你是用的是51系列的,还是52系列的?如果是51系列的,栈底就不能设置到80H。
最重要的是中断程序里面的控制流程的语句:          CJNE A,#0,LL ,程序里面的 acc 不可能为 “0”,所以跳不出循环,就一直执行不完中断程序。
你按下面的改,试一试。

JINGJI:
        PUSH P1
        PUSH ACC
        PUSH P0
        PUSH P2
                push 04
        MOV R4,#10
        MOV P0,#0C0H
        MOV P2,#0C0H
        MOV P1,#0EEH
LL:
;        MOV A,R4
        DIV AB
        MOV DPTR,#TAB
        MOVC A,@A+DPTR
        MOV P2,A
        MOV A,B
        MOVC A,@A+DPTR
        MOV P0,A
        MOV B,#10
        ACALL YANSHI
        djnz r4, ll
;        DEC R4
;        CJNE A,#0,LL
        pop 04
        POP P2
        POP P0
        POP ACC
        POP P1
        RETI
回复

使用道具 举报

ID:98640 发表于 2015-12-9 09:17 来自手机 | 显示全部楼层
中断缺少RETI
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表