0
问答首页 最新问题 热门问题 等待回答标签广场
我要提问

单片机

单片机跳出中断后有时会导致复位是什么原因,这是部分程

        ORG        5000H

MAIN:MOV SP,#60H        

        MOV        30H,#0                ;30H-33H显示缓冲区

        MOV        31H,#0

        MOV        32H,#0

        MOV        33H,#0        

        MOV 50H,#5                   ;存放温度设定值

        MOV 51H,#2

          MOV DPTR,#07100H                 ;选中8155

          MOV A,#3H

           MOVX @DPTR,A

    MOV        IP,#0FH                                ;中断优先级

        MOV        TCON,#05H          ;外部中断脉冲触发有效

        MOV        IE,#8FH                                ;中断总允许,允许定时器和外部中断

        MOV        TMOD,#55H                         ;接通外部技术引脚T0T1

        MOV TH0,#0FFH

        MOV TL0,#0FFH

        MOV        TH1,#0FFH

        MOV        TL1,#0FFH

    SETB TR0                                  ;启动定时器

    SETB TR1

           CLR P2.4

        CLR P2.6

TURN:

        LCALL WATER

        LCALL ZHUANHUAN ;调用读温度子程序

        LCALL DISPLAY

        LCALL WARN                ;水温水位报警

        AJMP TURN

PLUS:        ;温度加1中断

    PUSH 30H

    PUSH 31H

    MOV        TH0,#0FFH

    MOV        TL0,#0FFH

    MOV A,50H

        CJNE A,#9,CC

        MOV 50H,#0

        INC 51H

        AJMP CC1

        CC:INC 50H

  CC1:

        MOV 30H,50H

    MOV 31H,51H

        MOV R1,#07FH

CFU:LCALL DISP1                           ;将设定值显示一段时间

    DJNZ R1,CFU

        POP 31H

    POP 30H

  RETI

MINUS:      ;温度减1中断

    PUSH 30H

    PUSH 31H

    MOV        TH1,#0FFH

        MOV        TL1,#0FFH

    MOV A,50H

        CJNE A,#0,CC2

        MOV 50H,#9

        DEC 51H

        AJMP CC3

        CC2:DEC 50H

  CC3:

        MOV 30H,50H

    MOV 31H,51H

        MOV R1,#07FH

CFU1:LCALL DISP1

    DJNZ R1,CFU1

        POP 31H

    POP 30H

  RETI                                       

有时会复位,有时又正常,是什么原因?

提问者:jiangjia12 地点:- 浏览次数:6620 提问时间:10-26 10:41
我有更好的答案
提 交
5条回答
csw_ying 01-11 03:08
世上单片机千千万,不知道楼主用的哪一种。但是请检查堆栈是否溢出以及看门狗。
cnh24 01-14 07:30


10次里大概有2次会复位不明白为什么有时又是正常的
稳特电子 01-10 19:38
不会检查就没办法了,我们不可能隔空打牛。另外还需要检查电源系统是否存在瞬间跌落,复位端处理是否恰当。
kaishengdianzi 01-12 13:04
楼主我建议你用c51编程序吧,他娘的,在学校我也用的汇编,毕业找工作了,大部份公司要会c语言的应聘者,我现在又学c语言,汇编我都快忘了
Mryan1996 01-13 01:39
1 你是如何判断复位的,是用示波器量复位脚还是?
2 你将堆栈指针设低一点,MOV SP,#30H试试
3 或者是进中断没有将有些压栈,感觉复位
4 最大的问题是干扰,解决干扰的来源,或加看门狗,进中断 复位只是表象,比如电源 或继电器的开关吸收,改变程序存储器的指针,或在空的地方加
ORG  1000H
LJMP MAIN
ORG 2000h
LJMP MAIN

撰写答案
提 交
1 / 3
1 / 3
相关单片机
具有音调控制的单片机立体声前置放大器
用于单片机与电子装置中的开关电源
单片机软硬件复位的条件都有啥
电动机的单片机控制
单片机应用系统开发实例导航