📄 8515fourportsledshift.lis
字号:
.module .8515FourPortsLedShift.c
.area text
0000 .dbfile E:\grc\licc\例子10.3.5\8515FourPortsLedShift.c
0000 .dbfunc s delay _delay fI
; i -> R20
; j -> R22
; delayValue -> R16
.even
0000 _delay::
0000 00D0 rcall push_gset2
0002 .dbline 4{
; #include <io8515.h>
; #define BIT(x) (1<<(x))
; void delay(unsigned char delayValue)
; {
0002 .dbline 6
; unsigned char i,j;
; for(i=0;i<delayValue;i++)
0002 4427 clr R20
0004 06C0 rjmp L5
0006 L2:
0006 .dbline 7
; for (j=1;j;j++)
0006 61E0 ldi R22,1
0008 01C0 rjmp L9
000A L6:
000A .dbline 8
000A L7:
000A .dbline 7
000A 6395 inc R22
000C L9:
000C .dbline 7
000C 6623 tst R22
000E E9F7 brne L6
0010 L3:
0010 .dbline 6
0010 4395 inc R20
0012 L5:
0012 .dbline 6
0012 4017 cp R20,R16
0014 C0F3 brlo L2
0016 .dbline 9}
; ;
; }
0016 L1:
0016 00D0 rcall pop_gset2
0018 0895 ret
001A .dbsym r i 20 c
001A .dbsym r j 22 c
001A .dbsym r delayValue 16 c
001A .dbfunc s led_pb _led_pb fI
; i -> R20
; t -> R22
.even
001A _led_pb::
001A 00D0 rcall push_gset2
001C 602F mov R22,R16
001E .dbline 11{
; void led_pb(unsigned char t)
; {
001E .dbline 13
; unsigned char i;
; DDRB=0xff;
001E 8FEF ldi R24,255
0020 87BB out 0x17,R24
0022 .dbline 14
; for (i=0;i<8;i++)
0022 4427 clr R20
0024 09C0 rjmp L14
0026 L11:
0026 .dbline 15
0026 .dbline 16
0026 01E0 ldi R16,1
0028 142F mov R17,R20
002A 00D0 rcall lsl8
002C 202E mov R2,R16
002E 2094 com R2
0030 28BA out 0x18,R2
0032 .dbline 17
0032 062F mov R16,R22
0034 E5DF rcall _delay
0036 .dbline 18
0036 L12:
0036 .dbline 14
0036 4395 inc R20
0038 L14:
0038 .dbline 14
0038 4830 cpi R20,8
003A A8F3 brlo L11
003C .dbline 19
; {
; PORTB=~BIT(i);
; delay(t);
; }
; PORTB=0xff;
003C 8FEF ldi R24,255
003E 88BB out 0x18,R24
0040 .dbline 20}
; }
0040 L10:
0040 00D0 rcall pop_gset2
0042 0895 ret
0044 .dbsym r i 20 c
0044 .dbsym r t 22 c
0044 .dbfunc s led_pd _led_pd fI
; i -> R20
; t -> R22
.even
0044 _led_pd::
0044 00D0 rcall push_gset2
0046 602F mov R22,R16
0048 .dbline 22{
; void led_pd(unsigned char t)
; {
0048 .dbline 24
; unsigned char i;
; DDRD=0xff;
0048 8FEF ldi R24,255
004A 81BB out 0x11,R24
004C .dbline 25
; for (i=0;i<8;i++)
004C 4427 clr R20
004E 09C0 rjmp L19
0050 L16:
0050 .dbline 26
0050 .dbline 27
0050 01E0 ldi R16,1
0052 142F mov R17,R20
0054 00D0 rcall lsl8
0056 202E mov R2,R16
0058 2094 com R2
005A 22BA out 0x12,R2
005C .dbline 28
005C 062F mov R16,R22
005E D0DF rcall _delay
0060 .dbline 29
0060 L17:
0060 .dbline 25
0060 4395 inc R20
0062 L19:
0062 .dbline 25
0062 4830 cpi R20,8
0064 A8F3 brlo L16
0066 .dbline 30
; {
; PORTD=~BIT(i);
; delay(t);
; }
; PORTD=0xff;
0066 8FEF ldi R24,255
0068 82BB out 0x12,R24
006A .dbline 31}
; }
006A L15:
006A 00D0 rcall pop_gset2
006C 0895 ret
006E .dbsym r i 20 c
006E .dbsym r t 22 c
006E .dbfunc s led_pc _led_pc fI
; i -> R20
; t -> R22
.even
006E _led_pc::
006E 00D0 rcall push_gset2
0070 602F mov R22,R16
0072 .dbline 33{
; void led_pc(unsigned char t)
; {
0072 .dbline 35
; unsigned char i;
; DDRC=0xff;
0072 8FEF ldi R24,255
0074 84BB out 0x14,R24
0076 .dbline 36
; for (i=0;i<8;i++)
0076 4427 clr R20
0078 09C0 rjmp L24
007A L21:
007A .dbline 37
007A .dbline 38
007A 01E0 ldi R16,1
007C 142F mov R17,R20
007E 00D0 rcall lsl8
0080 202E mov R2,R16
0082 2094 com R2
0084 25BA out 0x15,R2
0086 .dbline 39
0086 062F mov R16,R22
0088 BBDF rcall _delay
008A .dbline 40
008A L22:
008A .dbline 36
008A 4395 inc R20
008C L24:
008C .dbline 36
008C 4830 cpi R20,8
008E A8F3 brlo L21
0090 .dbline 41
; {
; PORTC=~BIT(i);
; delay(t);
; }
; PORTC=0xff;
0090 8FEF ldi R24,255
0092 85BB out 0x15,R24
0094 .dbline 42}
; }
0094 L20:
0094 00D0 rcall pop_gset2
0096 0895 ret
0098 .dbsym r i 20 c
0098 .dbsym r t 22 c
0098 .dbfunc s led_pa _led_pa fI
; i -> R20
; t -> R22
.even
0098 _led_pa::
0098 00D0 rcall push_gset2
009A 602F mov R22,R16
009C .dbline 44{
; void led_pa(unsigned char t)
; {
009C .dbline 46
; unsigned char i;
; DDRA=0xff;
009C 8FEF ldi R24,255
009E 8ABB out 0x1a,R24
00A0 .dbline 47
; for (i=8;i>0;i--)
00A0 48E0 ldi R20,8
00A2 0AC0 rjmp L29
00A4 L26:
00A4 .dbline 48
00A4 .dbline 49
00A4 142F mov R17,R20
00A6 1150 subi R17,1
00A8 01E0 ldi R16,1
00AA 00D0 rcall lsl8
00AC 202E mov R2,R16
00AE 2094 com R2
00B0 2BBA out 0x1b,R2
00B2 .dbline 50
00B2 062F mov R16,R22
00B4 A5DF rcall _delay
00B6 .dbline 51
00B6 L27:
00B6 .dbline 47
00B6 4A95 dec R20
00B8 L29:
00B8 .dbline 47
00B8 2224 clr R2
00BA 2416 cp R2,R20
00BC 98F3 brlo L26
00BE .dbline 52
; {
; PORTA=~BIT(i-1);
; delay(t);
; }
; PORTA=0xff;
00BE 8FEF ldi R24,255
00C0 8BBB out 0x1b,R24
00C2 .dbline 53}
; }
00C2 L25:
00C2 00D0 rcall pop_gset2
00C4 0895 ret
00C6 .dbsym r i 20 c
00C6 .dbsym r t 22 c
00C6 .dbfunc s main _main fI
; dt -> R20
.even
00C6 _main::
00C6 .dbline 55{
; void main (void)
; {
00C6 0DC0 rjmp L32
00C8 L31:
00C8 .dbline 58
; unsigned char dt;
; while (1)
; {
00C8 .dbline 59
; for (dt=5;dt<200;dt+=25)
00C8 45E0 ldi R20,5
00CA 09C0 rjmp L37
00CC L34:
00CC .dbline 60
00CC .dbline 61
00CC 042F mov R16,R20
00CE A5DF rcall _led_pb
00D0 .dbline 62
00D0 042F mov R16,R20
00D2 B8DF rcall _led_pd
00D4 .dbline 63
00D4 042F mov R16,R20
00D6 CBDF rcall _led_pc
00D8 .dbline 64
00D8 042F mov R16,R20
00DA DEDF rcall _led_pa
00DC .dbline 65
00DC L35:
00DC .dbline 59
00DC 475E subi R20,231 ; addi 25
00DE L37:
00DE .dbline 59
00DE 483C cpi R20,200
00E0 A8F3 brlo L34
00E2 .dbline 66
00E2 L32:
00E2 .dbline 57
00E2 F2CF rjmp L31
00E4 X0:
00E4 .dbline 67}
; {
; led_pb(dt);
; led_pd(dt);
; led_pc(dt);
; led_pa(dt);
; }
; }
; }
00E4 L30:
00E4 0895 ret
00E6 .dbsym r dt 20 c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -