导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→两个程序,汇编和C,请教[baolqkun]

 *第24835篇: 两个程序,汇编和C,请教

  
楼 主:baolqkun 2004年8月18日11:40
 两个程序,汇编和C,请教
 #include   <ADUC834.H>  

 ORG  0H   
 LJMP MAIN 
 org  03h    
 ljmp inta  ;INT0中断
 ORG  13H
 LJMP INTb  ;INT1 INT
 ORG  23H
 LJMP INTc  ;SIO INT
 ORG  30H
MAIN: 
 MOV SP,#0E0H ;INIT SP=E0H
;

; CONFIGURE UART....

 MOV     T3CON,#82h
 MOV     T3FD,#12h
 MOV     SCON,#52h

 SETB IT1  //INT1负边沿触发
 SETB EX1  //INT1中断有效 
 SETB ES
 SETB  IT0  //INT0负边沿触发
 SETB EX0  //INT0中断有效
 SETB EA
;
;********* MIN PROC
;
WORK: 
  LJMP WORK

;******** 时钟中断,INT0
;
INTa: 
 PUSH ACC
 PUSH B
 PUSH DPH
 PUSH DPL
 PUSH PSW
;
LTE: 
 POP PSW
 POP DPL
 POP DPH
 POP B
 POP ACC
 RETI
;
;******** 按键中断,INT1
;
INTb: 
 PUSH PSW
 PUSH ACC
 PUSH DPL
 PUSH DPH

 mov  a,#31h
 lcall sou1 //串行口输出子程序
 mov  a,#0dh
 lcall sou1  //串行口输出子程序
 mov  a,#0ah
 lcall sou1 //串行口输出子程序 
 LCALL WAT4
;
IBE: 
 POP DPH
 POP DPL
 POP ACC
 POP PSW
 RETI
;

C程序
#include   <ADuC834.h>  
#include   <stdio.h>   

void service_int1 () interrupt 2 using 2
{
printf("a");                                                           
}

  main ()
{
// char a;
    //Configure UART ,9600波特率
    T3CON = 0x82;
    T3FD = 0x12;
    SCON = 0x52;

    IT0=1;   //负边沿触发
 EX0=1;   //开中断INT0
 IT1=1;   //负边沿触发
    EX1=1;   //开中断1
 ES=1;   //开串行口中断
 EA=1;     //开所有中断
do{  }while(1);
 }

硬件一样
汇编有输出
C没有输出
有人知道为什么吗?

谢谢

  
2楼:guest 2004年8月18日14:23
 TI = TRUE;
TI = TRUE;
  
3楼:baolqkun 2004年8月18日15:34
 问题解决了
但是解决问题的办法很费解

问题解决了
但是解决问题的办法很费解
我就置了中断优先级
PX1=1;
问题解决了
而汇编没有置中断优先级
不是也能用吗?

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

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


[上一篇主题]:菜鸟请问#ifdef debug的功能:

[下一篇主题]:推荐两本学习51单片机的好书