⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 boyin.lst

📁 语音芯片PM50八方源代码
💻 LST
字号:
__start:
__text_start:
    0016 E5CF      LDI	R28,0x5F
    0017 E0D4      LDI	R29,4
    0018 BFCD      OUT	0x3D,R28
    0019 BFDE      OUT	0x3E,R29
    001A 51C0      SUBI	R28,0x10
    001B 40D0      SBCI	R29,0
    001C EA0A      LDI	R16,0xAA
    001D 8308      STD	Y+0,R16
    001E 2400      CLR	R0
    001F E6E0      LDI	R30,0x60
    0020 E0F0      LDI	R31,0
    0021 E010      LDI	R17,0
    0022 36E0      CPI	R30,0x60
    0023 07F1      CPC	R31,R17
    0024 F011      BEQ	0x0027
    0025 9201      ST	R0,Z+
    0026 CFFB      RJMP	0x0022
    0027 8300      STD	Z+0,R16
    0028 E2EB      LDI	R30,0x2B
    0029 E0F0      LDI	R31,0
    002A E6A0      LDI	R26,0x60
    002B E0B0      LDI	R27,0
    002C E010      LDI	R17,0
    002D 32EB      CPI	R30,0x2B
    002E 07F1      CPC	R31,R17
    002F F021      BEQ	0x0034
    0030 95C8      LPM
    0031 9631      ADIW	R30,1
    0032 920D      ST	R0,X+
    0033 CFF9      RJMP	0x002D
    0034 D001      RCALL	_main
_exit:
    0035 CFFF      RJMP	_exit
_main:
  address              --> Y+0
  j                    --> R20
  i                    --> R22
  add                  --> R10
    0036 9725      SBIW	R28,5
FILE: G:\AVR系列\boyin\boyin.c
(0001) /*/boyin.c*/
(0002) //单片机控制语音芯片pm50放音程序
(0003) #include<iom8v.h>
(0004) void main()  //控制语音芯片pm50放音主程序
(0005) {
(0006)  char i,j,add;
(0007) char address[5]={0xaa,0xaa,0xaa,0xaa,0xaa};//存储语音芯片中语音段的地址
    0037 E286      LDI	R24,0x26
    0038 E090      LDI	R25,0
    0039 01FE      MOVW	R30,R28
    003A E005      LDI	R16,5
    003B E010      LDI	R17,0
    003C 93FA      ST	R31,-Y
    003D 93EA      ST	R30,-Y
    003E 939A      ST	R25,-Y
    003F 938A      ST	R24,-Y
    0040 D031      RCALL	asgncblk
(0008)  DDRD|=0xa0;   //设置PD5,6为输出口.PD5发送地址,PD6为时钟信号,
    0041 B381      IN	R24,0x11
    0042 6A80      ORI	R24,0xA0
    0043 BB81      OUT	0x11,R24
(0009)  DDRD&=0xfb;  //设置PD2为输入口.拉低时表示PM50播放完毕.
    0044 B381      IN	R24,0x11
    0045 7F8B      ANDI	R24,0xFB
    0046 BB81      OUT	0x11,R24
(0010)  PORTD&=0x5f;  
    0047 B382      IN	R24,0x12
    0048 758F      ANDI	R24,0x5F
    0049 BB82      OUT	0x12,R24
    004A C024      RJMP	0x006F
(0011)  while(1)     //进入死循环 
(0012)  {
(0013)   for(j=0;j<5;j++) //连续播放五段录音
    004B 2744      CLR	R20
    004C C020      RJMP	0x006D
(0014)   {
(0015)    add=address[j];
    004D 01CE      MOVW	R24,R28
    004E 2FE4      MOV	R30,R20
    004F 27FF      CLR	R31
    0050 0FE8      ADD	R30,R24
    0051 1FF9      ADC	R31,R25
    0052 80A0      LDD	R10,Z+0
(0016)    if(!(PIND&0x04))
    0053 9982      SBIC	0x10,2
    0054 C017      RJMP	0x006C
(0017)    for(i=0;i<8;i++) //发送八位地址
    0055 2766      CLR	R22
    0056 C013      RJMP	0x006A
(0018)     {
(0019) 	 PORTD&=0xdf;        //先将PD5拉低使之不影响下一步父敝

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -