📄 xunhuan.lis
字号:
.module xunhuan.c
.area data(ram, con, rel)
0000 _Table::
0000 .blkb 2
.area idata
0000 FC60 .byte 252,96
.area data(ram, con, rel)
0002 .blkb 2
.area idata
0002 DAF2 .byte 218,242
.area data(ram, con, rel)
0004 .blkb 2
.area idata
0004 66B6 .byte 'f,182
.area data(ram, con, rel)
0006 .blkb 2
.area idata
0006 BEE0 .byte 190,224
.area data(ram, con, rel)
0008 .blkb 2
.area idata
0008 FEF6 .byte 254,246
.area data(ram, con, rel)
000A .dbfile D:\icc\程序\循环移位\xunhuan.c
000A .dbsym e Table _Table A[10:10]c
.area text(rom, con, rel)
0000 .dbfile D:\icc\程序\循环移位\xunhuan.c
0000 .dbfunc e Delay _Delay fV
0000 ; j -> R20,R21
0000 ; i -> R16,R17
.even
0000 _Delay::
0000 00D0 rcall push_gset1
0002 .dbline -1
0002 .dbline 8
0002 ; #include<iom8v.h>
0002 ; #define uchar unsigned char
0002 ; #define uint unsigned int
0002 ; uchar Table[10]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};//共阴7段码
0002 ;
0002 ;
0002 ; void Delay(uint i) // 延时程序
0002 ; {uint j;
0002 .dbline 9
0002 ; for(;i!=0;i--)
0002 0AC0 rjmp L5
0004 L2:
0004 .dbline 10
0004 .dbline 10
0004 44EF ldi R20,500
0006 51E0 ldi R21,1
0008 02C0 rjmp L9
000A L6:
000A .dbline 10
000A L7:
000A .dbline 10
000A 4150 subi R20,1
000C 5040 sbci R21,0
000E L9:
000E .dbline 10
000E 4030 cpi R20,0
0010 4507 cpc R20,R21
0012 D9F7 brne L6
0014 X0:
0014 .dbline 10
0014 L3:
0014 .dbline 9
0014 0150 subi R16,1
0016 1040 sbci R17,0
0018 L5:
0018 .dbline 9
0018 0030 cpi R16,0
001A 0107 cpc R16,R17
001C 99F7 brne L2
001E X1:
001E .dbline -2
001E L1:
001E 00D0 rcall pop_gset1
0020 .dbline 0 ; func end
0020 0895 ret
0022 .dbsym r j 20 i
0022 .dbsym r i 16 i
0022 .dbend
0022 .dbfunc e Init_IO _Init_IO fV
.even
0022 _Init_IO::
0022 .dbline -1
0022 .dbline 15
0022 ; {for(j=500;j!=0;j--);}
0022 ; }
0022 ;
0022 ;
0022 ; void Init_IO(void) //IO口设置 全部设为输出
0022 ; {
0022 .dbline 16
0022 ; DDRD=0xff;
0022 8FEF ldi R24,255
0024 81BB out 0x11,R24
0026 .dbline 17
0026 ; PORTD=0xff;
0026 82BB out 0x12,R24
0028 .dbline 18
0028 ; DDRB=0xff;
0028 87BB out 0x17,R24
002A .dbline 19
002A ; PORTB=0x00;
002A 2224 clr R2
002C 28BA out 0x18,R2
002E .dbline -2
002E L10:
002E .dbline 0 ; func end
002E 0895 ret
0030 .dbend
0030 .dbfunc e Display _Display fV
0030 ; i -> R20
.even
0030 _Display::
0030 00D0 rcall push_gset1
0032 .dbline -1
0032 .dbline 23
0032 ; }
0032 ;
0032 ; void Display(void)
0032 ; {
0032 .dbline 25
0032 ; uchar i;//uchar j; uchar n;
0032 ; for(i=0;i<4;i++)
0032 4427 clr R20
0034 15C0 rjmp L15
0036 L12:
0036 .dbline 26
0036 .dbline 27
0036 242F mov R18,R20
0038 3327 clr R19
003A 0FEE ldi R16,239
003C 10E0 ldi R17,0
003E 00D0 rcall lsl16
0040 02BB out 0x12,R16
0042 .dbline 28
0042 04E1 ldi R16,20
0044 10E0 ldi R17,0
0046 DCDF rcall _Delay
0048 .dbline 31
0048 80E0 ldi R24,<_Table
004A 90E0 ldi R25,>_Table
004C E42F mov R30,R20
004E FF27 clr R31
0050 E80F add R30,R24
0052 F91F adc R31,R25
0054 2080 ldd R2,z+0
0056 28BA out 0x18,R2
0058 .dbline 32
0058 08EC ldi R16,200
005A 10E0 ldi R17,0
005C D1DF rcall _Delay
005E .dbline 36
005E L13:
005E .dbline 25
005E 4395 inc R20
0060 L15:
0060 .dbline 25
0060 4430 cpi R20,4
0062 48F3 brlo L12
0064 .dbline -2
0064 L11:
0064 00D0 rcall pop_gset1
0066 .dbline 0 ; func end
0066 0895 ret
0068 .dbsym r i 20 c
0068 .dbend
0068 .dbfunc e main _main fV
.even
0068 _main::
0068 .dbline -1
0068 .dbline 40
0068 ; {
0068 ; PORTD=(0xef<<i); //<<是左移.0是位选
0068 ; Delay(20);
0068 ; //PORTD=(~(0x80>>i);) //>>右移,~是取反
0068 ;
0068 ; PORTB=Table[i];//0xfc;//
0068 ; Delay(200);
0068 ;
0068 ;
0068 ;
0068 ; }
0068 ; }
0068 ;
0068 ; void main (void)
0068 ; {
0068 .dbline 41
0068 ; Init_IO();
0068 DCDF rcall _Init_IO
006A 01C0 rjmp L18
006C L17:
006C .dbline 43
006C .dbline 43
006C E1DF rcall _Display
006E .dbline 44
006E L18:
006E .dbline 42
006E FECF rjmp L17
0070 X2:
0070 .dbline -2
0070 L16:
0070 .dbline 0 ; func end
0070 0895 ret
0072 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -