英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

标题: 下面的HT-PICC的程序 用CCS 怎样才可以做到 [打印本页]

作者: winnie    时间: 2009-3-28 17:59
标题: 下面的HT-PICC的程序 用CCS 怎样才可以做到
下面的HT-PICC的程序 用CCS 怎样才可以做到 不用指针 访问数组,随意输出数组中某个元素
const char TABLE_1[]={1,2,4,8,16,32,64,128};
const char TABLE_2[]={1,2,4,8,16,32,64,128};
void getString_Output(const char *String )
{char i,j;
i=String[j]
}
MAIN()
{
getString_Output( &TABLE_1[0] );
getString_Output( &TABLE_2[0] );

}
作者: winnie    时间: 2009-3-28 17:59
簡單解決,根本不需要指針

#include <16F877A.H>

const char TABLE_1[]={1,2,4,8,16,32,64,128};
      int8 TABLE_2[]={1,2,4,8,16,32,64,128};

void main()
{
   int8 i,j,k;

   k = 5;
   i = TABLE_1[k];  // 管它是不是常數,語法都相同
   j = TABLE_2[k];

   while(1);
}


不要迷戀指針!  也不需要調用函數, CCS 會幫你搞定的,會讓你有更簡潔的程序

....................    k = 5;
*
002B:  MOVLW  05
002C:  MOVWF  k
....................    i = TABLE_1[k];
002D:  MOVF   k,W
002E:  CALL   @const27 <--- CCS 會幫你搞出一個函數
002F:  MOVWF  @78
0030:  MOVWF  i
....................    j = TABLE_2[k];
0031:  MOVLW  TABLE_2
0032:  ADDWF  k,W
0033:  MOVWF  FSR
0034:  MOVF   INDF,W
0035:  MOVWF  j
....................




欢迎光临 英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 (http://enroobbs.com/) Powered by Discuz! X3.2