📄 8segled8loop.s
字号:
.module .8SegLed8Loop.c
.area text
.dbfile E:\grc\licc\例子10.3.7\8SegLed8Loop.c
.dbfunc s delay _delay fI
; i -> R20,R21
; t -> R16,R17
.even
_delay::
rcall push_gset1
.dbline 5{
; #include <io8515.h>
; #define uchar unsigned char
; #define uint unsigned int
; void delay(uint t)
; {
.dbline 7
; uint i;
; for (i=0;i<t;i++)
clr R20
clr R21
rjmp L5
L2:
.dbline 8
L3:
.dbline 7
subi R20,255 ; offset = 1
sbci R21,255
L5:
.dbline 7
cp R20,R16
cpc R21,R17
brlo L2
.dbline 9}
; ;
; }
L1:
rcall pop_gset1
ret
.dbsym r i 20 i
.dbsym r t 16 i
.dbfunc s init_disp _init_disp fI
.even
_init_disp::
.dbline 11{
; void init_disp(void)
; {
.dbline 12
; DDRB=0xff;
ldi R24,255
out 0x17,R24
.dbline 13
; DDRD=0xff;
out 0x11,R24
.dbline 14
; PORTB=0x7f;
ldi R24,127
out 0x18,R24
.dbline 15}
; }
L6:
ret
.dbfunc s scan _scan fI
; j -> R22
; i -> R20
.even
_scan::
rcall push_gset2
.dbline 17{
; void scan(void)
; {
.dbline 19
; uchar i,j;
; for (i=0;i<6;i++)
clr R20
rjmp L11
L8:
.dbline 20
; {
.dbline 21
; j=150;
ldi R22,150
L12:
.dbline 23
; do
; {
.dbline 24
; PORTD=~(0x01<<i);
ldi R16,1
mov R17,R20
rcall lsl8
mov R2,R16
com R2
out 0x12,R2
.dbline 25
; delay(150);
ldi R16,150
ldi R17,0
rcall _delay
.dbline 26
; PORTD=0xff;
ldi R24,255
out 0x12,R24
.dbline 27
; delay(2100);
ldi R16,52
ldi R17,8
rcall _delay
.dbline 28
; }
L13:
.dbline 29
mov R24,R22
subi R24,1
mov R2,R24
mov R22,R2
tst R2
brne L12
.dbline 30
L9:
.dbline 19
inc R20
L11:
.dbline 19
cpi R20,6
brlo L8
.dbline 31}
; while(--j);
; }
; }
L7:
rcall pop_gset2
ret
.dbsym r j 22 c
.dbsym r i 20 c
.dbfunc s main _main fI
.even
_main::
.dbline 33{
; void main(void)
; {
.dbline 34
; init_disp();
rcall _init_disp
.dbline 35
; for(;;)
L16:
.dbline 36
; scan();
rcall _scan
.dbline 35
.dbline 35
rjmp L16
X0:
L15:
ret
.dbline 36}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -