这两天在做一个LCD实验,用1621驱动一个定制屏,定义了一个code数组来存段码。结果用变量取数组的元素显示不出,用常量却能正常显示。。。。 
比如这样: 
        LED_G0 = LED1_Disp[Value%1000000/100000]; 
         LED_G1 = LED1_Disp[Value%1000000%100000/10000]; 
         LED_G2 = LED1_Disp[Value%1000000%100000%10000/1000];          
         LED_G3 = LED1_Disp[Value%1000000%100000%10000%1000/100];    
         LED_G4 = LED1_Disp[Value%1000000%100000%10000%1000%100/10];     
         LED_G5 = LED1_Disp[Value%1000000%100000%10000%1000%100%10]; 
        HT1621_LCD();           //写入数据 
 
        给变量赋值了(比如10),就是显示不出想要的数字出来(显示207。。。),甚至对变量加加减减显示的数都不改变。 
然后我改成这样: 
        LED_G0 = LED1_Disp[123456%1000000/100000]; 
         LED_G1 = LED1_Disp[123456%1000000%100000/10000]; 
         LED_G2 = LED1_Disp[123456%1000000%100000%10000/1000];          
         LED_G3 = LED1_Disp[123456%1000000%100000%10000%1000/100];    
         LED_G4 = LED1_Disp[123456%1000000%100000%10000%1000%100/10];     
         LED_G5 = LED1_Disp[123456%1000000%100000%10000%1000%100%10]; 
        HT1621_LCD();            //写入数据 
 
        就能正常显示123456了。换成其他数字,几个数字轮流显示也行得通(123456,234567,345678这样)。 
        究竟是什么原因,跟code这个关键字有关吗,我还把Memory Model改成Large了,有影响吗? 
       数组定义是这样的: 
//LED显示表(七段码) 
code u8     LED1_Disp[29] = { 0XF5,0X60,0XB6,0XF2,0X63,0XD3,0XD7,0X30,0XF7,0XF3, 
                                                0X77,0XC7,0X95,0XE6,0X97,0X17,0X00,0X00,0X00,0X00,                                          
                                                0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00 };        //大数码管 
 
 |