|
发表于 2010-4-25 01:26:23
|
显示全部楼层
我指的是AVR的C,不是汇编。就算是汇编Z的值是要计算的,C在复位的时候会把表格放在RAM中。
然后调用,每次都是一排程序(八行)。
(0003) const unsigned char tabled[]=
(0004) {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xbf,0xff,0xff,0xff,0xff,0xff};
(0005) //0,1,2,3,4,5,6,7,8,9,-, , , , , ;"depcgbfa"共阳
(0006)
(0007) void main(void)
(0008) {
(0009) unsigned char x;
(0010)
(0011) x=5;
_main:
x --> R16
00044 E005 LDI R16,5
(0012)
(0013) PORTB=tabled[x];
00045 E080 LDI R24,0
00046 E091 LDI R25,1
00047 2FE0 MOV R30,R16
00048 27FF CLR R31
00049 0FE8 ADD R30,R24
0004A 1FF9 ADC R31,R25
0004B 8020 LD R2,Z
0004C B825 OUT 0x05,R2
(0014) PORTC=tabled[x+1];
0004D E081 LDI R24,1
0004E E091 LDI R25,1
0004F 2FE0 MOV R30,R16
00050 27FF CLR R31
00051 0FE8 ADD R30,R24
00052 1FF9 ADC R31,R25
00053 8020 LD R2,Z
00054 B828 OUT 0x08,R2
(0015)
(0016) while(1);
FILE: <library>
00055 CFFF RJMP 0x0055
00056 9508 RET |
|