[求助] 新手求问,我这个程序为什么就是进不了中断呢?

zhonghxun   2011-11-16 22:46 楼主

我编了一个小程序,意图通过电脑上的串口控制软件,输出1到8这八个数字来控制版上的8个led灯,灯是共阳极的。

 

思路很简单

 

就是计时器用19200波特率,SMOD为1,。

 

采用中断的方式,来了数字后,进入中断。

 

然后将A寄存器内的数字和1、2、3、4、5、6、7、8的ASCII码逐个相比。

(这里的实现是通过A一次次减1实现的)

 

相等就让对应的灯亮。

 

然后返回等待下一个中断

 

但是运行中,怎样也无法控制灯亮,用的是hl340 usb转串口的线,检测过,线是没有问题的。也有信号出来,为什么就是不能进入中断呢,或者说就是控制不了呢?跪求各位大神解答。。。

 

                 ORG 0000H;
                 MOV TMOD, #20H;
                 MOV IE,  #90H;
                 MOV TL1, #0FDH;
                 MOV TH1, #0FDH;
                 SETB TR1;
                 MOV P2,#0FFH;
                 MOV SCON,#50H;
                 MOV PCON,#70H;

 
                 ORG 0023H

                 JNB RI, NEXT;
                 SJMP LIGHT_A;

LIGHT_A:MOV A, SBUF;
                MOV R0, A;
                 CLR C;
                 SUBB A, #49;
                 JZ LIGHT0;
                 CLR C;
                 DEC A;
                 JZ LIGHT1;
                 DEC A;
                 JZ LIGHT2;
                 DEC A;
                 JZ LIGHT3;
                 DEC A;
                 JZ LIGHT4;
                 DEC A;
                 JZ LIGHT5;
                 DEC A;
                 JZ LIGHT6;
                 DEC A;
                 JZ LIGHT7;
                 SJMP NEXT;


LIGHT0: CLR P2.0;
              SJMP NEXT;
LIGHT1: CLR  P2.1;
              SJMP NEXT;
LIGHT2: CLR  P2.2;
              SJMP NEXT;
LIGHT3: CLR  P2.3;
              SJMP NEXT;
LIGHT4: CLR  P2.4;
              SJMP NEXT;
LIGHT5: CLR  P2.5;
               SJMP NEXT;
LIGHT6: CLR  P2.6;
              SJMP NEXT;
LIGHT7: CLR  P2.7;
             SJMP NEXT; 

NEXT:   CLR RI;
             RETI;
END

回复评论 (9)

汇编不会  哎 悲剧
点赞  2011-11-17 10:31
汇编不会 哎 悲剧
汇编不会 哎 悲剧
无从下手...
点赞  2011-11-17 12:38
1:程序结构错,第九~第十行之间需要 插一句 SJMP      $;  这就无缘无故滴执行到RETI指令,在没进入过中断就返回,整个程序就乱套了,结果不可预知。
2:第11行   JNB RI, NEXT   多余,改为CLR     RI    因为你没有向SBUF发送过数据,不可能产生TI=1滴。只要进入中断,非RI不可,所以种鸽程序都不需要判断RI。
点赞  2011-11-17 14:51

回复 4楼 xu__changhua 的帖子

按照您说的改了,但是还是无法控制额,毫无反应啊。。
点赞  2011-11-17 15:18
0FDH是19200吗?自己好好再查查其他滴。
点赞  2011-11-17 15:51
mov PCON,0X70?
点赞  2011-11-17 15:53

MOV SCON,#50H;
MOV PCON,#70H;

这两个很有问题······

 

好奇怪的汇编格式

为什么不这么写呢

ORG 0000H

LJMP MAIN

ORG 0023H

LJMP SINT

ORG 0100H

MAIN:

``````````````

 

[ 本帖最后由 孤獨の快樂 于 2011-11-17 20:23 编辑 ]
点赞  2011-11-17 18:09
汇编还不会啊  正在学习。。。。。
点赞  2011-11-18 12:30
以前在大学的时候学习过汇编,但是当时没有好好学啊,只能简单的看懂一些,要是让我编程可就不会了
我爱电子!
点赞  2011-11-18 19:16
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复