📄 8segled8loop.lis
字号:
.module .8SegLed8Loop.c
.area text
0000 .dbfile E:\grc\licc\例子10.3.7\8SegLed8Loop.c
0000 .dbfunc s delay _delay fI
; i -> R20,R21
; t -> R16,R17
.even
0000 _delay::
0000 00D0 rcall push_gset1
0002 .dbline 5{
; #include <io8515.h>
; #define uchar unsigned char
; #define uint unsigned int
; void delay(uint t)
; {
0002 .dbline 7
; uint i;
; for (i=0;i<t;i++)
0002 4427 clr R20
0004 5527 clr R21
0006 02C0 rjmp L5
0008 L2:
0008 .dbline 8
0008 L3:
0008 .dbline 7
0008 4F5F subi R20,255 ; offset = 1
000A 5F4F sbci R21,255
000C L5:
000C .dbline 7
000C 4017 cp R20,R16
000E 5107 cpc R21,R17
0010 D8F3 brlo L2
0012 .dbline 9}
; ;
; }
0012 L1:
0012 00D0 rcall pop_gset1
0014 0895 ret
0016 .dbsym r i 20 i
0016 .dbsym r t 16 i
0016 .dbfunc s init_disp _init_disp fI
.even
0016 _init_disp::
0016 .dbline 11{
; void init_disp(void)
; {
0016 .dbline 12
; DDRB=0xff;
0016 8FEF ldi R24,255
0018 87BB out 0x17,R24
001A .dbline 13
; DDRD=0xff;
001A 81BB out 0x11,R24
001C .dbline 14
; PORTB=0x7f;
001C 8FE7 ldi R24,127
001E 88BB out 0x18,R24
0020 .dbline 15}
; }
0020 L6:
0020 0895 ret
0022 .dbfunc s scan _scan fI
; j -> R22
; i -> R20
.even
0022 _scan::
0022 00D0 rcall push_gset2
0024 .dbline 17{
; void scan(void)
; {
0024 .dbline 19
; uchar i,j;
; for (i=0;i<6;i++)
0024 4427 clr R20
0026 16C0 rjmp L11
0028 L8:
0028 .dbline 20
; {
0028 .dbline 21
; j=150;
0028 66E9 ldi R22,150
002A L12:
002A .dbline 23
; do
; {
002A .dbline 24
; PORTD=~(0x01<<i);
002A 01E0 ldi R16,1
002C 142F mov R17,R20
002E 00D0 rcall lsl8
0030 202E mov R2,R16
0032 2094 com R2
0034 22BA out 0x12,R2
0036 .dbline 25
; delay(150);
0036 06E9 ldi R16,150
0038 10E0 ldi R17,0
003A E2DF rcall _delay
003C .dbline 26
; PORTD=0xff;
003C 8FEF ldi R24,255
003E 82BB out 0x12,R24
0040 .dbline 27
; delay(2100);
0040 04E3 ldi R16,52
0042 18E0 ldi R17,8
0044 DDDF rcall _delay
0046 .dbline 28
; }
0046 L13:
0046 .dbline 29
0046 862F mov R24,R22
0048 8150 subi R24,1
004A 282E mov R2,R24
004C 622D mov R22,R2
004E 2220 tst R2
0050 61F7 brne L12
0052 .dbline 30
0052 L9:
0052 .dbline 19
0052 4395 inc R20
0054 L11:
0054 .dbline 19
0054 4630 cpi R20,6
0056 40F3 brlo L8
0058 .dbline 31}
; while(--j);
; }
; }
0058 L7:
0058 00D0 rcall pop_gset2
005A 0895 ret
005C .dbsym r j 22 c
005C .dbsym r i 20 c
005C .dbfunc s main _main fI
.even
005C _main::
005C .dbline 33{
; void main(void)
; {
005C .dbline 34
; init_disp();
005C DCDF rcall _init_disp
005E .dbline 35
; for(;;)
005E L16:
005E .dbline 36
; scan();
005E E1DF rcall _scan
0060 .dbline 35
0060 .dbline 35
0060 FECF rjmp L16
0062 X0:
0062 L15:
0062 0895 ret
0064 .dbline 36}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -