导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→为什么我的程序一到串口中断中就死机了,但串口还可以发送接收,[bluebloodman]

 *第20957篇: 为什么我的程序一到串口中断中就死机了,但串口还可以发送接收,堆栈没错,也没其他的中断啊,也没用看门狗

  
楼 主:bluebloodman 2004年4月13日13:55
 为什么我的程序一到串口中断中就死机了,但串口还可以发送接收,堆栈没错,也没其他的中断啊,也没用看门狗
  
2楼:shliujun 2004年4月14日19:36
 死机了怎么还能发送和接收呢?
  
3楼:bluebloodman 2004年4月15日10:39
 我的意思是主程序死机了,但中断还可以用啊
  
4楼:scag555 2004年4月15日11:01
 晕,能不能说详细一点
  
5楼:bluebloodman 2004年4月15日12:08
 比如按键显示都不行了,但串口可用,指示灯程序运行时会一闪一闪,也定住了
  
6楼:scag555 2004年4月15日13:37
 堆栈,调试
你要不这样试试:当串口收到一段完整的数据,让指示灯亮,再收到数据,灯灭。如此都做几次,看看串口工作是不是正常。
还有可能是你的堆栈溢出,我不知道你用什么写的,用什么芯片,但一种芯片的堆栈深度都是定的。
还有就是你把程序发上来,看看。
  
7楼:bluebloodman 2004年4月20日10:35
 ORG 0000H
 AJMP MAI

ORG 0000H
 AJMP MAIN
ORG 0023H
 LJMP TRANSMIT
ORG 0100H
MAIN:
 LCALL REIINIT     ; 发送接收寄存器初始化
 LCALL TXINIT      ;通信初始化
 NOP
 SJMP  $             ;其他主程序

REIINIT:
 MOV  R2,#3EH
 MOV  R0,#23H 
 MOV  A,#3
REIINIT1:
 MOV  @R0,A
 INC  R0
 DJNZ R2,REIINIT1
 MOV  5AH,#0
 MOV  5BH,#0
 MOV  5CH,#0
 MOV  P2,#0
 RET


SENDEXIT:
 POP ACC
 POP PSW 
 RETI

TRANSMIT:
 PUSH PSW
 PUSH ACC
 CLR  PSW.3
 JBC  TI,SENDEXIT
 CLR  RI
 MOV  A,SBUF
 CJNE A,#43H,NOCAN
 MOV  R0,#0D0H
 MOV  R5,#27
RECDATA:                           ;收到参数标志C
 JNB   RI,$
 CLR   RI
 MOV   A,SBUF
 SUBB  A,#30H
 MOV   @R0,A
 INC   R0
 DJNZ  R5,RECDATA
 SETB  P3.2
 NOP
 NOP
 MOV  A,#43H
 MOV  SBUF,A
 JNB  TI,$
 CLR  TI
 MOV  A,5AH
 ADD  A,#30H
 MOV  SBUF,A
 JNB  TI,$
 CLR  TI
 MOV  A,5BH
 ADD  A,#30H
 MOV  SBUF,A
 JNB  TI,$
 CLR  TI
 MOV  A,5CH
 ADD  A,#30H
 MOV  SBUF,A
 JNB  TI,$
 CLR  TI
 CLR  P3.2
 NOP
 NOP
 POP ACC
 POP PSW
 RETI 
 
NOCAN: 
 CJNE A,#5AH,SENDEXIT   
 SETB  P3.2            ;收到状态标志Z,MAX485转为发状态
 NOP
 NOP
 MOV  R0,#23H          ;发实际开度和开度预置
 MOV  R6,#10
ZHUANG1:                
 MOV  A,@R0
 ADD  A,#30H
 MOV  SBUF,A
 JNB  TI,$
 CLR  TI
 INC  R0
 DJNZ R6,ZHUANG1
 
 MOV  R0,#37H          ;发载荷1和载荷2
 MOV  R7,#8
ZHUANG2:                   
 MOV  A,@R0
 ADD  A,#30H
 MOV  SBUF,A
 JNB  TI,$
 CLR  TI 
 INC  R0
 DJNZ R7,ZHUANG2

WARN:
 CLR   A
 JNB   P2.0,WARN1
 SETB  ACC.0
WARN1:
 JNB   P2.1,WARN2
 SETB  ACC.1
WARN2:
 JNB   P2.2,WARN3
 SETB  ACC.2
WARN3:
 JNB   P2.3,WARN4
 SETB  ACC.3
WARN4:
 JNB   P2.4,WARN5
 SETB  ACC.4
WARN5:
 JNB   P2.5,WARN6
 SETB  ACC.5
WARN6:
 ADD   A,#30H
 MOV   SBUF,A
 JNB   TI,$
 CLR   TI
 MOV   A,#45H             ;$
 MOV   SBUF,A
 JNB   TI,$
 CLR   TI
 CLR   P3.2
 NOP
 NOP
 POP  ACC
 POP  PSW
 RETI


TXINIT:
 MOV PCON,#00
 MOV SCON,#50H
 MOV TMOD,#20H
 MOV TL1,#0FDH
 MOV TH1,#0FDH
 SETB TR1
 SETB EA
 SETB ES
 SETB REN
 CLR  P3.2
 RET

END 


>>>>>>对该主题发表你的看法

本主题贴数7,分页: [第1页]


[上一篇主题]:求助

[下一篇主题]:[原创]想做一个脱机的LED条形屏幕,显示汉字