winnie 发表于 2009-3-11 14:26:38

一个很奇怪的问题,帮忙分晰一下是什么原因。

PIC16F72查表程序返回的值都为‘0’;**********查表程序***********************************
table
         addwf pcl,1
          retlw d'100'   ;0
          retlw d'100'
          retlw d'100'   
          retlw d'100'
          retlw d'100'   
          retlw d'100'   ;5      
          retlw d'100'
          retlw d'100'
          retlw d'14'
         retlw d'16'   
          retlw d'18'   ;10
         retlw d'20'   
         retlw d'21'         
         retlw d'23'
         retlw d'25'   
         retlw d'27'   ;15
                        
         retlw d'29'   
         retlw d'31'
         retlw d'33'   
         retlw d'35'         
         retlw 0x0f   ;20

         retlw 0x10   
         retlw 0x11
         retlw d'46'   
         retlw d'49'
         retlw d'52'   ;25
   
         retlw d'55'         
         retlw d'58'
         retlw d'61'   
         retlw d'64'
         retlw d'67'    ;30

         retlw d'70'
         retlw d'73'   
         retlw d'76'   
         retlw d'79'
         retlw d'82'   ;35

         retlw d'85'
         retlw d'88'   
         retlw d'92'   
         retlw d'95'
         retlw d'98'   ;40
         retlw d'101'
         retlw d'104'
         retlw d'107'
         retlw d'110'
         retlw d'113'   ;45
         retlw d'116'
         retlw d'119'
         retlw d'121'
         retlw d'124'
         retlw d'127'   ;50

         retlw d'130'
         retlw d'133'
         retlw d'137'
         retlw d'140'
         retlw d'143'   ;50

winnie 发表于 2009-3-11 14:27:08

给个事例参考
#include <P16F72.inc>
Count   equ20h
temp   equ21h
;***********************************************************
;******************复位向量和中断向量***********************
             org 000h   ;
             nop          ;设置一条ICD必须的空操作指令
             goto MAIN    ;
;----------------------不带小数点---------------------------
TABLE                              
            ADDWF      PCL,1
            RETLW      0xc0      
            RETLW      0xf9         
            RETLW      0xa4         
            RETLW      0xb0         
            RETLW      0x99         
            RETLW      0x92      
            RETLW      0x82         
            RETLW      0XD8         
            RETLW      0x80         
            RETLW      0x90   
;------------------------------------------------------------
MAIN
      BCF         STATUS,RP0         ;恢复寄存器体0
      BCF         STATUS,RP1         
loop   
      movlw0ah      
      XORWFtemp,W
      BTFSSSTATUS,Z
      goto   loop1
      clrf   temp
loop1   movf   temp,0
      call   TABLE
      MOVWFCount
         incf   temp
      goto   loop
;------------------------------------------------------------
      end

winnie 发表于 2009-3-11 14:27:27

表是否定位不对?
表开始定义在比如 0007H

表最后一行不要超出 00FFH,试一下。否则是不是调用问题啊?
页: [1]
查看完整版本: 一个很奇怪的问题,帮忙分晰一下是什么原因。