📄 sound.lis
字号:
.module sound.c
.area text
0000 .dbfile E:\grc\licc\例子10.3.6\sound.c
0000 .dbfunc s delay _delay fI
; i -> R20
; j -> R22
; t -> R16
.even
0000 _delay::
0000 00D0 rcall push_gset2
0002 .dbline 5{
; #include <io8515.h> /*预处理命令 */
; #define uchar unsigned char
; #define uint unsigned int
; void delay(uchar t)
; {
0002 .dbline 7
; uchar i,j;
; for (i=0;i<t;i++)
0002 4427 clr R20
0004 06C0 rjmp L5
0006 L2:
0006 .dbline 8
0006 61E0 ldi R22,1
0008 01C0 rjmp L9
000A L6:
000A .dbline 8
000A L7:
000A .dbline 8
000A 6395 inc R22
000C L9:
000C .dbline 8
000C 6639 cpi R22,150
000E E8F3 brlo L6
0010 L3:
0010 .dbline 7
0010 4395 inc R20
0012 L5:
0012 .dbline 7
0012 4017 cp R20,R16
0014 C0F3 brlo L2
0016 .dbline 9}
; for(j=1;j<150;j++);
; }
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 t 16 c
001A .dbfunc s sound_pc0 _sound_pc0 fI
; i -> R20,R21
; t -> R22
.even
001A _sound_pc0::
001A 00D0 rcall push_gset2
001C 602F mov R22,R16
001E .dbline 11{
; void sound_pc0(uchar t)
; {
001E .dbline 13
; uint i;
; DDRC=0xff;
001E 8FEF ldi R24,255
0020 84BB out 0x14,R24
0022 .dbline 14
; PORTC=0xff;
0022 85BB out 0x15,R24
0024 .dbline 15
; for (i=0;i<350-t*t;i++)
0024 4427 clr R20
0026 5527 clr R21
0028 08C0 rjmp L14
002A L11:
002A .dbline 16
002A .dbline 17
002A 81E0 ldi R24,1
002C 25B2 in R2,0x15
002E 2826 eor R2,R24
0030 25BA out 0x15,R2
0032 .dbline 18
0032 062F mov R16,R22
0034 E5DF rcall _delay
0036 .dbline 19
0036 L12:
0036 .dbline 15
0036 4F5F subi R20,255 ; offset = 1
0038 5F4F sbci R21,255
003A L14:
003A .dbline 15
003A 262F mov R18,R22
003C 3327 clr R19
003E 062F mov R16,R22
0040 1127 clr R17
0042 00D0 rcall mpy16s
0044 8EE5 ldi R24,94
0046 91E0 ldi R25,1
0048 801B sub R24,R16
004A 910B sbc R25,R17
004C 4817 cp R20,R24
004E 5907 cpc R21,R25
0050 60F3 brlo L11
0052 .dbline 20}
; {
; PORTC^=0x01;
; delay(t);
; }
; }
0052 L10:
0052 00D0 rcall pop_gset2
0054 0895 ret
0056 .dbsym r i 20 i
0056 .dbsym r t 22 c
0056 .dbfunc s main _main fI
; dt -> R20
.even
0056 _main::
0056 .dbline 22{
; void main (void)
; {
0056 .dbline 24
; uchar dt;
; for(;;)
0056 L16:
0056 .dbline 25
; {
0056 .dbline 26
; for(dt=1;dt<14;dt++)
0056 41E0 ldi R20,1
0058 03C0 rjmp L23
005A L20:
005A .dbline 27
005A 042F mov R16,R20
005C DEDF rcall _sound_pc0
005E L21:
005E .dbline 26
005E 4395 inc R20
0060 L23:
0060 .dbline 26
0060 4E30 cpi R20,14
0062 D8F3 brlo L20
0064 .dbline 28
; sound_pc0(dt);
; }
0064 .dbline 24
0064 .dbline 24
0064 F8CF rjmp L16
0066 X0:
0066 L15:
0066 0895 ret
0068 .dbline 25}
0068 .dbsym r dt 20 c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -