📄 8515fourportsledshift.lst
字号:
.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
002A _delay::
002A D089 rcall push_gset2
002B .dbline 4{
; #include <io8515.h>
; #define BIT(x) (1<<(x))
; void delay(unsigned char delayValue)
; {
002B .dbline 6
; unsigned char i,j;
; for(i=0;i<delayValue;i++)
002B 2744 clr R20
002C C006 rjmp L5
002D L2:
002D .dbline 7
; for (j=1;j;j++)
002D E061 ldi R22,1
002E C001 rjmp L9
002F L6:
002F .dbline 8
002F L7:
002F .dbline 7
002F 9563 inc R22
0030 L9:
0030 .dbline 7
0030 2366 tst R22
0031 F7E9 brne L6
0032 L3:
0032 .dbline 6
0032 9543 inc R20
0033 L5:
0033 .dbline 6
0033 1740 cp R20,R16
0034 F3C0 brlo L2
0035 .dbline 9}
; ;
; }
0035 L1:
0035 D081 rcall pop_gset2
0036 9508 ret
0037 .dbsym r i 20 c
0037 .dbsym r j 22 c
0037 .dbsym r delayValue 16 c
0037 .dbfunc s led_pb _led_pb fI
; i -> R20
; t -> R22
.even
0037 _led_pb::
0037 D07C rcall push_gset2
0038 2F60 mov R22,R16
0039 .dbline 11{
; void led_pb(unsigned char t)
; {
0039 .dbline 13
; unsigned char i;
; DDRB=0xff;
0039 EF8F ldi R24,255
003A BB87 out 0x17,R24
003B .dbline 14
; for (i=0;i<8;i++)
003B 2744 clr R20
003C C009 rjmp L14
003D L11:
003D .dbline 15
003D .dbline 16
003D E001 ldi R16,1
003E 2F14 mov R17,R20
003F D079 rcall lsl8
0040 2E20 mov R2,R16
0041 9420 com R2
0042 BA28 out 0x18,R2
0043 .dbline 17
0043 2F06 mov R16,R22
0044 DFE5 rcall _delay
0045 .dbline 18
0045 L12:
0045 .dbline 14
0045 9543 inc R20
0046 L14:
0046 .dbline 14
0046 3048 cpi R20,8
0047 F3A8 brlo L11
0048 .dbline 19
; {
; PORTB=~BIT(i);
; delay(t);
; }
; PORTB=0xff;
0048 EF8F ldi R24,255
0049 BB88 out 0x18,R24
004A .dbline 20}
; }
004A L10:
004A D06C rcall pop_gset2
004B 9508 ret
004C .dbsym r i 20 c
004C .dbsym r t 22 c
004C .dbfunc s led_pd _led_pd fI
; i -> R20
; t -> R22
.even
004C _led_pd::
004C D067 rcall push_gset2
004D 2F60 mov R22,R16
004E .dbline 22{
; void led_pd(unsigned char t)
; {
004E .dbline 24
; unsigned char i;
; DDRD=0xff;
004E EF8F ldi R24,255
004F BB81 out 0x11,R24
0050 .dbline 25
; for (i=0;i<8;i++)
0050 2744 clr R20
0051 C009 rjmp L19
0052 L16:
0052 .dbline 26
0052 .dbline 27
0052 E001 ldi R16,1
0053 2F14 mov R17,R20
0054 D064 rcall lsl8
0055 2E20 mov R2,R16
0056 9420 com R2
0057 BA22 out 0x12,R2
0058 .dbline 28
0058 2F06 mov R16,R22
0059 DFD0 rcall _delay
005A .dbline 29
005A L17:
005A .dbline 25
005A 9543 inc R20
005B L19:
005B .dbline 25
005B 3048 cpi R20,8
005C F3A8 brlo L16
005D .dbline 30
; {
; PORTD=~BIT(i);
; delay(t);
; }
; PORTD=0xff;
005D EF8F ldi R24,255
005E BB82 out 0x12,R24
005F .dbline 31}
; }
005F L15:
005F D057 rcall pop_gset2
0060 9508 ret
0061 .dbsym r i 20 c
0061 .dbsym r t 22 c
0061 .dbfunc s led_pc _led_pc fI
; i -> R20
; t -> R22
.even
0061 _led_pc::
0061 D052 rcall push_gset2
0062 2F60 mov R22,R16
0063 .dbline 33{
; void led_pc(unsigned char t)
; {
0063 .dbline 35
; unsigned char i;
; DDRC=0xff;
0063 EF8F ldi R24,255
0064 BB84 out 0x14,R24
0065 .dbline 36
; for (i=0;i<8;i++)
0065 2744 clr R20
0066 C009 rjmp L24
0067 L21:
0067 .dbline 37
0067 .dbline 38
0067 E001 ldi R16,1
0068 2F14 mov R17,R20
0069 D04F rcall lsl8
006A 2E20 mov R2,R16
006B 9420 com R2
006C BA25 out 0x15,R2
006D .dbline 39
006D 2F06 mov R16,R22
006E DFBB rcall _delay
006F .dbline 40
006F L22:
006F .dbline 36
006F 9543 inc R20
0070 L24:
0070 .dbline 36
0070 3048 cpi R20,8
0071 F3A8 brlo L21
0072 .dbline 41
; {
; PORTC=~BIT(i);
; delay(t);
; }
; PORTC=0xff;
0072 EF8F ldi R24,255
0073 BB85 out 0x15,R24
0074 .dbline 42}
; }
0074 L20:
0074 D042 rcall pop_gset2
0075 9508 ret
0076 .dbsym r i 20 c
0076 .dbsym r t 22 c
0076 .dbfunc s led_pa _led_pa fI
; i -> R20
; t -> R22
.even
0076 _led_pa::
0076 D03D rcall push_gset2
0077 2F60 mov R22,R16
0078 .dbline 44{
; void led_pa(unsigned char t)
; {
0078 .dbline 46
; unsigned char i;
; DDRA=0xff;
0078 EF8F ldi R24,255
0079 BB8A out 0x1a,R24
007A .dbline 47
; for (i=8;i>0;i--)
007A E048 ldi R20,8
007B C00A rjmp L29
007C L26:
007C .dbline 48
007C .dbline 49
007C 2F14 mov R17,R20
007D 5011 subi R17,1
007E E001 ldi R16,1
007F D039 rcall lsl8
0080 2E20 mov R2,R16
0081 9420 com R2
0082 BA2B out 0x1b,R2
0083 .dbline 50
0083 2F06 mov R16,R22
0084 DFA5 rcall _delay
0085 .dbline 51
0085 L27:
0085 .dbline 47
0085 954A dec R20
0086 L29:
0086 .dbline 47
0086 2422 clr R2
0087 1624 cp R2,R20
0088 F398 brlo L26
0089 .dbline 52
; {
; PORTA=~BIT(i-1);
; delay(t);
; }
; PORTA=0xff;
0089 EF8F ldi R24,255
008A BB8B out 0x1b,R24
008B .dbline 53}
; }
008B L25:
008B D02B rcall pop_gset2
008C 9508 ret
008D .dbsym r i 20 c
008D .dbsym r t 22 c
008D .dbfunc s main _main fI
; dt -> R20
.even
008D _main::
008D .dbline 55{
; void main (void)
; {
008D C00D rjmp L32
008E L31:
008E .dbline 58
; unsigned char dt;
; while (1)
; {
008E .dbline 59
; for (dt=5;dt<200;dt+=25)
008E E045 ldi R20,5
008F C009 rjmp L37
0090 L34:
0090 .dbline 60
0090 .dbline 61
0090 2F04 mov R16,R20
0091 DFA5 rcall _led_pb
0092 .dbline 62
0092 2F04 mov R16,R20
0093 DFB8 rcall _led_pd
0094 .dbline 63
0094 2F04 mov R16,R20
0095 DFCB rcall _led_pc
0096 .dbline 64
0096 2F04 mov R16,R20
0097 DFDE rcall _led_pa
0098 .dbline 65
0098 L35:
0098 .dbline 59
0098 5E47 subi R20,231 ; addi 25
0099 L37:
0099 .dbline 59
0099 3C48 cpi R20,200
009A F3A8 brlo L34
009B .dbline 66
009B L32:
009B .dbline 57
009B CFF2 rjmp L31
009C X0:
009C .dbline 67}
; {
; led_pb(dt);
; led_pd(dt);
; led_pc(dt);
; led_pa(dt);
; }
; }
; }
009C L30:
009C 9508 ret
009D .dbsym r dt 20 c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -