📄 boyin.lis
字号:
.module boyin.c
.area lit(rom, con, rel)
0000 L2:
0000 AAAA .byte 170,170
0002 AAAA .byte 170,170
0004 AA .byte 170
.area text(rom, con, rel)
0000 .dbfile G:\AVR系列\boyin\boyin.c
0000 .dbfunc e main _main fV
0000 ; address -> y+0
0000 ; j -> R20
0000 ; i -> R22
0000 ; add -> R10
.even
0000 _main::
0000 2597 sbiw R28,5
0002 .dbline -1
0002 .dbline 5
0002 ; /*/boyin.c*/
0002 ; //单片机控制语音芯片pm50放音程序
0002 ; #include<iom8v.h>
0002 ; void main() //控制语音芯片pm50放音主程序
0002 ; {
0002 .dbline 7
0002 ; char i,j,add;
0002 ; char address[5]={0xaa,0xaa,0xaa,0xaa,0xaa};//存储语音芯片中语音段的地址
0002 80E0 ldi R24,<L2
0004 90E0 ldi R25,>L2
0006 FE01 movw R30,R28
0008 05E0 ldi R16,5
000A 10E0 ldi R17,0
000C FA93 st -y,R31
000E EA93 st -y,R30
0010 9A93 st -y,R25
0012 8A93 st -y,R24
0014 00D0 rcall asgncblk
0016 .dbline 8
0016 ; DDRD|=0xa0; //设置PD5,6为输出口.PD5发送地址,PD6为时钟信号,
0016 81B3 in R24,0x11
0018 806A ori R24,160
001A 81BB out 0x11,R24
001C .dbline 9
001C ; DDRD&=0xfb; //设置PD2为输入口.拉低时表示PM50播放完毕.
001C 81B3 in R24,0x11
001E 8B7F andi R24,251
0020 81BB out 0x11,R24
0022 .dbline 10
0022 ; PORTD&=0x5f;
0022 82B3 in R24,0x12
0024 8F75 andi R24,95
0026 82BB out 0x12,R24
0028 24C0 rjmp L4
002A L3:
002A .dbline 12
002A ; while(1) //进入死循环
002A ; {
002A .dbline 13
002A ; for(j=0;j<5;j++) //连续播放五段录音
002A 4427 clr R20
002C 20C0 rjmp L9
002E L6:
002E .dbline 14
002E ; {
002E .dbline 15
002E ; add=address[j];
002E CE01 movw R24,R28
0030 E42F mov R30,R20
0032 FF27 clr R31
0034 E80F add R30,R24
0036 F91F adc R31,R25
0038 A080 ldd R10,z+0
003A .dbline 16
003A ; if(!(PIND&0x04))
003A 8299 sbic 0x10,2
003C 17C0 rjmp L10
003E .dbline 17
003E ; for(i=0;i<8;i++) //发送八位地址
003E 6627 clr R22
0040 13C0 rjmp L15
0042 L12:
0042 .dbline 18
0042 .dbline 19
0042 82B3 in R24,0x12
0044 8F7D andi R24,223
0046 82BB out 0x12,R24
0048 .dbline 20
0048 8A2D mov R24,R10
004A 8170 andi R24,1
004C 880F lsl R24
004E 880F lsl R24
0050 880F lsl R24
0052 880F lsl R24
0054 880F lsl R24
0056 22B2 in R2,0x12
0058 282A or R2,R24
005A 22BA out 0x12,R2
005C .dbline 21
005C 979A sbi 0x12,7
005E .dbline 22
005E 82B3 in R24,0x12
0060 8F77 andi R24,127
0062 82BB out 0x12,R24
0064 .dbline 23
0064 A694 lsr R10
0066 .dbline 24
0066 L13:
0066 .dbline 17
0066 6395 inc R22
0068 L15:
0068 .dbline 17
0068 6830 cpi R22,8
006A 58F3 brlo L12
006C L10:
006C .dbline 25
006C L7:
006C .dbline 13
006C 4395 inc R20
006E L9:
006E .dbline 13
006E 4530 cpi R20,5
0070 F0F2 brlo L6
0072 .dbline 26
0072 L4:
0072 .dbline 11
0072 DBCF rjmp L3
0074 X0:
0074 .dbline -2
0074 L1:
0074 2596 adiw R28,5
0076 .dbline 0 ; func end
0076 0895 ret
0078 .dbsym l address 0 A[5:5]c
0078 .dbsym r j 20 c
0078 .dbsym r i 22 c
0078 .dbsym r add 10 c
0078 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -