导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→help me

* 35873: help me

   土萝卜 
土萝卜发表的帖子 

 help me
      各位虾虾,我是一只小小菜鸟,在单片机世界里已疲备的飞了很久,经常被一些极简单的问题搞的心力憔瘁。下面这两段程序就是我遇到的其中之一。程序ss3已在我买的实验板(购于<<电子世界>>,型号df-2)上顺利实现,另一程序ss4则不能实现。两段程序如下:
程序ss3:
            org 0000
                  ljmp main
                  org 0003
                  ljmp in0
 main:         mov ie,#081h           ;开中断
            setb it0             ;下跳沿触发 

  ll:      mov p0,#0ebh        ;led2 and led3 亮
        lcall del
           mov p0,#0beh          led1 and led4 亮
        lcall del
            ljmp ll
  in0:        mov a,#03h          ;将pa,pb定意为输出
          mov dptr,#0fb00h      ;送命令地址
          movx @dptr,a
               mov a,#00h
               mov dptr,#0fb01h
               movx @dptr,a
               mov dptr,#0fb02h
               movx @dptr,a
第20行:  lcall del
               mov r2,#2
  ii:         mov a,#076h
             mov dptr,#0fb02h  ;显h
             movx @dptr,a
             mov a,#01h
             mov dptr,#0fb01h
             movx @dptr,a
             lcall del
             mov a,#00h
             mov dptr,#0fb01h
             movx @dptr,a
             lcall del
             djnz r2,ii
             reti 
del:       mov r5,#25
 s3:       mov   r6,#100
 s2:       mov   r7,#100
 s1:       djnz  r7,s1
            djnz  r6,s2
            djnz  r5,s3
            ret
ee:       end

程序 ss4:            
                          org 0030h  
        in0:             mov a,#03h          ;将pa,pb定意为输出
                 mov dptr,#0fb00h      ;送命令地址
                 movx @dptr,a
                         mov a,#00h
                         mov dptr,#0fb01h
                         movx @dptr,a
                         mov dptr,#0fb02h
                         movx @dptr,a
                         lcall del
             mov r2,#2
        ii:   mov a,#076h
             mov dptr,#0fb02h  ;显h
             movx @dptr,a
             mov a,#01h
             mov dptr,#0fb01h
             movx @dptr,a
             lcall del
             mov a,#00h
             mov dptr,#0fb01h
             movx @dptr,a
             lcall del
             djnz r2,ii
             ljmp ee
del:      mov r5,#25
 s3:      mov   r6,#100
 s2:      mov   r7,#100
 s1:      djnz  r7,s1
          djnz  r6,s2
          djnz  r5,s3
          ret
ee:       end
        其中ss3是通过控制实验板上的8155内的pa(地址:fb01h)与pb口(fb02h)来使板上的六位数码管先灭一秒钟,再让第一位数码管显"h"字形。该程序在实验板上顺利实现。但当我把实现这一功能的程序段(从in0至ee)单独取出另作为一段程序(即ss4),只是将"reti"换成"ljmp  ee"语句,其它均未改动,编译也能通过没有错误。但却不能在实验板上实现上述功能。
    这一奇怪现象令我极其困惑,望各位大虾救弟于水火之中。
    我用的是89c51的片子。8155的命令寄存器地址:fb00h。有关8155详细
内容可在去年的<<电子世界>>登载的"单片机实用技术讲座"之第五讲中查找。



发表时间:2003年6月30日17:27:36

  
回复该帖

本主题共有 3 帖,分页:>>>>>该主题的所有内容[3]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  35883.[详细]不要老是给别人推荐你的网站,还要找,直接告诉别人不就行了?其实
摘要:简单的说:reti 是用于中断返回的标志,程执行过程中,如果进入中断,必须使用reti返回。这告诉硬件我要退出中断,并且将相应的中断响应标志等硬件清零,以及一些中断硬件源的初始化,以及恢复断点等。如果使用RET返回的话,硬件认为你......(250字)
- [tm1300][866次] 2003年6月30日

  35887.[详细][推荐]
摘要:我同意!......(8字)
- [guest][853次] 2003年6月30日

[上一篇帖子]:我的tasking 一时找不到,你可以去 /P P www.tasking.com /
[下一篇帖子]:多谢了!  不过没办法,我只能用196,因为硬件是现成的,所以。。。 希