?? speak.lis
字號:
.module speak.c
.area text(rom, con, rel)
0000 .dbfile speak.c
0000 .dbfile E:\產品\開發板\mega128-board\待完成\無源蜂鳴器\speak.c
0000 .dbfunc e s_ms _s_ms fV
0000 ; m -> R20,R21
0000 ; t -> R16,R17
.even
0000 _s_ms::
0000 4A93 st -y,R20
0002 5A93 st -y,R21
0004 .dbline -1
0004 .dbline 9
0004 ; //無源蜂鳴器試驗
0004 ; //產生間隔的di的響聲
0004 ; #include<iom16v.h>
0004 ; #define uchar unsigned char
0004 ; #define uint unsigned int
0004 ;
0004 ; //延時函數
0004 ; void s_ms(unsigned int t)
0004 ; {
0004 .dbline 11
0004 ; uint m;
0004 ; for(;t>1;t--)
0004 0BC0 xjmp L5
0006 L2:
0006 .dbline 12
0006 ; {
0006 .dbline 13
0006 ; for(m=0;m<100;m++);
0006 4427 clr R20
0008 5527 clr R21
000A 02C0 xjmp L9
000C L6:
000C .dbline 13
000C L7:
000C .dbline 13
000C 4F5F subi R20,255 ; offset = 1
000E 5F4F sbci R21,255
0010 L9:
0010 .dbline 13
0010 4436 cpi R20,100
0012 E0E0 ldi R30,0
0014 5E07 cpc R21,R30
0016 D0F3 brlo L6
0018 X0:
0018 .dbline 14
0018 ; }
0018 L3:
0018 .dbline 11
0018 0150 subi R16,1
001A 1040 sbci R17,0
001C L5:
001C .dbline 11
001C 81E0 ldi R24,1
001E 90E0 ldi R25,0
0020 8017 cp R24,R16
0022 9107 cpc R25,R17
0024 80F3 brlo L2
0026 X1:
0026 .dbline -2
0026 L1:
0026 .dbline 0 ; func end
0026 5991 ld R21,y+
0028 4991 ld R20,y+
002A 0895 ret
002C .dbsym r m 20 i
002C .dbsym r t 16 i
002C .dbend
002C .dbfunc e main _main fI
002C ; i -> R20,R21
.even
002C _main::
002C .dbline -1
002C .dbline 19
002C ; }
002C ;
002C ; //主函數
002C ; main()
002C ; {
002C .dbline 21
002C ; uint i;
002C ; DDRC=0xff; //端口C為輸出
002C 8FEF ldi R24,255
002E 84BB out 0x14,R24
0030 .dbline 22
0030 ; PORTC=0xff;
0030 85BB out 0x15,R24
0032 14C0 xjmp L12
0034 L11:
0034 .dbline 24
0034 ; while(1)
0034 ; {
0034 .dbline 25
0034 ; s_ms(12000); //間隔延時
0034 00EE ldi R16,12000
0036 1EE2 ldi R17,46
0038 E3DF xcall _s_ms
003A .dbline 26
003A ; for(i=0;i<500;i++) //在端口c產生音頻信號
003A 4427 clr R20
003C 5527 clr R21
003E 0AC0 xjmp L17
0040 L14:
0040 .dbline 27
0040 ; {
0040 .dbline 28
0040 ; PORTC|=0x80; //端口=1
0040 AF9A sbi 0x15,7
0042 .dbline 29
0042 ; s_ms(6); //延時
0042 06E0 ldi R16,6
0044 10E0 ldi R17,0
0046 DCDF xcall _s_ms
0048 .dbline 30
0048 ; PORTC&=~0x80; //端口=0
0048 AF98 cbi 0x15,7
004A .dbline 31
004A ; s_ms(6);
004A 06E0 ldi R16,6
004C 10E0 ldi R17,0
004E D8DF xcall _s_ms
0050 .dbline 32
0050 ; }
0050 L15:
0050 .dbline 26
0050 4F5F subi R20,255 ; offset = 1
0052 5F4F sbci R21,255
0054 L17:
0054 .dbline 26
0054 443F cpi R20,244
0056 E1E0 ldi R30,1
0058 5E07 cpc R21,R30
005A 90F3 brlo L14
005C X2:
005C .dbline 33
005C ; }
005C L12:
005C .dbline 23
005C EBCF xjmp L11
005E X3:
005E .dbline -2
005E L10:
005E .dbline 0 ; func end
005E 0895 ret
0060 .dbsym r i 20 i
0060 .dbend
0060 ; }
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -