📄 8segled8loop.lst
字号:
.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
002A _delay::
002A D031 rcall push_gset1
002B .dbline 5{
; #include <io8515.h>
; #define uchar unsigned char
; #define uint unsigned int
; void delay(uint t)
; {
002B .dbline 7
; uint i;
; for (i=0;i<t;i++)
002B 2744 clr R20
002C 2755 clr R21
002D C002 rjmp L5
002E L2:
002E .dbline 8
002E L3:
002E .dbline 7
002E 5F4F subi R20,255 ; offset = 1
002F 4F5F sbci R21,255
0030 L5:
0030 .dbline 7
0030 1740 cp R20,R16
0031 0751 cpc R21,R17
0032 F3D8 brlo L2
0033 .dbline 9}
; ;
; }
0033 L1:
0033 D02B rcall pop_gset1
0034 9508 ret
0035 .dbsym r i 20 i
0035 .dbsym r t 16 i
0035 .dbfunc s init_disp _init_disp fI
.even
0035 _init_disp::
0035 .dbline 11{
; void init_disp(void)
; {
0035 .dbline 12
; DDRB=0xff;
0035 EF8F ldi R24,255
0036 BB87 out 0x17,R24
0037 .dbline 13
; DDRD=0xff;
0037 BB81 out 0x11,R24
0038 .dbline 14
; PORTB=0x7f;
0038 E78F ldi R24,127
0039 BB88 out 0x18,R24
003A .dbline 15}
; }
003A L6:
003A 9508 ret
003B .dbfunc s scan _scan fI
; j -> R22
; i -> R20
.even
003B _scan::
003B D037 rcall push_gset2
003C .dbline 17{
; void scan(void)
; {
003C .dbline 19
; uchar i,j;
; for (i=0;i<6;i++)
003C 2744 clr R20
003D C016 rjmp L11
003E L8:
003E .dbline 20
; {
003E .dbline 21
; j=150;
003E E966 ldi R22,150
003F L12:
003F .dbline 23
; do
; {
003F .dbline 24
; PORTD=~(0x01<<i);
003F E001 ldi R16,1
0040 2F14 mov R17,R20
0041 D036 rcall lsl8
0042 2E20 mov R2,R16
0043 9420 com R2
0044 BA22 out 0x12,R2
0045 .dbline 25
; delay(150);
0045 E906 ldi R16,150
0046 E010 ldi R17,0
0047 DFE2 rcall _delay
0048 .dbline 26
; PORTD=0xff;
0048 EF8F ldi R24,255
0049 BB82 out 0x12,R24
004A .dbline 27
; delay(2100);
004A E304 ldi R16,52
004B E018 ldi R17,8
004C DFDD rcall _delay
004D .dbline 28
; }
004D L13:
004D .dbline 29
004D 2F86 mov R24,R22
004E 5081 subi R24,1
004F 2E28 mov R2,R24
0050 2D62 mov R22,R2
0051 2022 tst R2
0052 F761 brne L12
0053 .dbline 30
0053 L9:
0053 .dbline 19
0053 9543 inc R20
0054 L11:
0054 .dbline 19
0054 3046 cpi R20,6
0055 F340 brlo L8
0056 .dbline 31}
; while(--j);
; }
; }
0056 L7:
0056 D01F rcall pop_gset2
0057 9508 ret
0058 .dbsym r j 22 c
0058 .dbsym r i 20 c
0058 .dbfunc s main _main fI
.even
0058 _main::
0058 .dbline 33{
; void main(void)
; {
0058 .dbline 34
; init_disp();
0058 DFDC rcall _init_disp
0059 .dbline 35
; for(;;)
0059 L16:
0059 .dbline 36
; scan();
0059 DFE1 rcall _scan
005A .dbline 35
005A .dbline 35
005A CFFE rjmp L16
005B X0:
005B L15:
005B 9508 ret
005C .dbline 36}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -