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

📄 project.lis

📁 AVRkaifashili.rar
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 00B6 2220              tst R2
 00B8 D9F7              brne L28
 00BA                   .dbline 96
 00BA           ;  EOM_Flag=1;                                 //重新赋EOM标志位为1
 00BA 81E0              ldi R24,1
 00BC 80930000          sts _EOM_Flag,R24
 00C0                   .dbline -2
 00C0                   .dbline 97
 00C0           ; }
 00C0           L27:
 00C0                   .dbline 0 ; func end
 00C0 0895              ret
 00C2                   .dbend
 00C2                   .dbfunc e Inform _Inform fV
 00C2           ;              i -> R20
 00C2           ;              m -> R20
                        .even
 00C2           _Inform::
 00C2 00D0              rcall push_gset1
 00C4 402F              mov R20,R16
 00C6                   .dbline -1
 00C6                   .dbline 101
 00C6           ; 
 00C6           ; //****************************语音报站程序****************************//
 00C6           ; void Inform(uchar m)                   //报站
 00C6           ; {uchar i;
 00C6                   .dbline 102
 00C6           ;  if(Pst_Flag) Snd_Info[0]=m;           //若为上行方向,顺序报站
 00C6 20904200          lds R2,_Pst_Flag
 00CA 2220              tst R2
 00CC 19F0              breq L32
 00CE                   .dbline 102
 00CE 40930300          sts _Snd_Info,R20
 00D2 04C0              rjmp L33
 00D4           L32:
 00D4                   .dbline 103
 00D4           ;  else           Snd_Info[0]=17-m;            //若为下行方向,逆序报站
 00D4 81E1              ldi R24,17
 00D6 841B              sub R24,R20
 00D8 80930300          sts _Snd_Info,R24
 00DC           L33:
 00DC                   .dbline 104
 00DC           ;  Set_PD(1);                                          //语音芯片复位
 00DC 01E0              ldi R16,1
 00DE A1DF              rcall _Set_PD
 00E0                   .dbline 105
 00E0           ;  delay(20000);
 00E0 00E2              ldi R16,20000
 00E2 1EE4              ldi R17,78
 00E4 8DDF              rcall _delay
 00E6                   .dbline 106
 00E6           ;  Set_PD(0); 
 00E6 0027              clr R16
 00E8 9CDF              rcall _Set_PD
 00EA                   .dbline 107
 00EA           ;  for(i=0;i<2;i++)
 00EA 4427              clr R20
 00EC 0AC0              rjmp L37
 00EE           L34:
 00EE                   .dbline 108
 00EE                   .dbline 108
 00EE 80E0              ldi R24,<_Snd_Info
 00F0 90E0              ldi R25,>_Snd_Info
 00F2 E42F              mov R30,R20
 00F4 FF27              clr R31
 00F6 E80F              add R30,R24
 00F8 F91F              adc R31,R25
 00FA 0081              ldd R16,z+0
 00FC B2DF              rcall _Seek_Segment
 00FE                   .dbline 109
 00FE D4DF              rcall _Play
 0100                   .dbline 109
 0100           L35:
 0100                   .dbline 107
 0100 4395              inc R20
 0102           L37:
 0102                   .dbline 107
 0102 4230              cpi R20,2
 0104 A0F3              brlo L34
 0106                   .dbline -2
 0106                   .dbline 110
 0106           ;  {Seek_Segment(Snd_Info[i]);         //搜索相应语音信息段
 0106           ;   Play();}                                                   //播放
 0106           ; }
 0106           L31:
 0106 00D0              rcall pop_gset1
 0108                   .dbline 0 ; func end
 0108 0895              ret
 010A                   .dbsym r i 20 c
 010A                   .dbsym r m 20 c
 010A                   .dbend
 010A                   .dbfunc e Pre_Inform _Pre_Inform fV
 010A           ;              i -> R20
 010A           ;              m -> R20
                        .even
 010A           _Pre_Inform::
 010A 00D0              rcall push_gset1
 010C 402F              mov R20,R16
 010E                   .dbline -1
 010E                   .dbline 113
 010E           ; 
 010E           ; void Pre_Inform(uchar m)               //报站 
 010E           ; {uchar i;
 010E                   .dbline 114
 010E           ;  if(Pst_Flag) Snd_Pre_Info[1]=m;       //若为上行方向,顺序预报站
 010E 20904200          lds R2,_Pst_Flag
 0112 2220              tst R2
 0114 19F0              breq L39
 0116                   .dbline 114
 0116 40930600          sts _Snd_Pre_Info+1,R20
 011A 04C0              rjmp L40
 011C           L39:
 011C                   .dbline 115
 011C           ;  else           Snd_Pre_Info[1]=17-m;    //逆序预报站
 011C 81E1              ldi R24,17
 011E 841B              sub R24,R20
 0120 80930600          sts _Snd_Pre_Info+1,R24
 0124           L40:
 0124                   .dbline 116
 0124           ;  Set_PD(1);                                          //语音芯片复位
 0124 01E0              ldi R16,1
 0126 7DDF              rcall _Set_PD
 0128                   .dbline 117
 0128           ;  delay(20000);
 0128 00E2              ldi R16,20000
 012A 1EE4              ldi R17,78
 012C 69DF              rcall _delay
 012E                   .dbline 118
 012E           ;  Set_PD(0); 
 012E 0027              clr R16
 0130 78DF              rcall _Set_PD
 0132                   .dbline 119
 0132           ;  for(i=0;i<3;i++)
 0132 4427              clr R20
 0134 0AC0              rjmp L46
 0136           L43:
 0136                   .dbline 120
 0136                   .dbline 120
 0136 80E0              ldi R24,<_Snd_Pre_Info
 0138 90E0              ldi R25,>_Snd_Pre_Info
 013A E42F              mov R30,R20
 013C FF27              clr R31
 013E E80F              add R30,R24
 0140 F91F              adc R31,R25
 0142 0081              ldd R16,z+0
 0144 8EDF              rcall _Seek_Segment
 0146                   .dbline 121
 0146 B0DF              rcall _Play
 0148                   .dbline 121
 0148           L44:
 0148                   .dbline 119
 0148 4395              inc R20
 014A           L46:
 014A                   .dbline 119
 014A 4330              cpi R20,3
 014C A0F3              brlo L43
 014E                   .dbline -2
 014E                   .dbline 122
 014E           ;  {Seek_Segment(Snd_Pre_Info[i]);         //搜索相应语音信息段
 014E           ;   Play();}                                                       //播放
 014E           ; }
 014E           L38:
 014E 00D0              rcall pop_gset1
 0150                   .dbline 0 ; func end
 0150 0895              ret
 0152                   .dbsym r i 20 c
 0152                   .dbsym r m 20 c
 0152                   .dbend
 0152                   .dbfunc e Special _Special fV
 0152           ;              m -> R20
                        .even
 0152           _Special::
 0152 00D0              rcall push_gset1
 0154 402F              mov R20,R16
 0156                   .dbline -1
 0156                   .dbline 125
 0156           ; 
 0156           ; void Special(uchar m)                  //播放特殊信息
 0156           ; {Set_PD(1);                                          //语音芯片复位
 0156                   .dbline 125
 0156 01E0              ldi R16,1
 0158 64DF              rcall _Set_PD
 015A                   .dbline 126
 015A           ;  delay(20000);
 015A 00E2              ldi R16,20000
 015C 1EE4              ldi R17,78
 015E 50DF              rcall _delay
 0160                   .dbline 127
 0160           ;  Set_PD(0);
 0160 0027              clr R16
 0162 5FDF              rcall _Set_PD
 0164                   .dbline 128
 0164           ;  Seek_Segment(Snd_Spec[m]);                  //搜索相应语音信息段
 0164 80E0              ldi R24,<_Snd_Spec
 0166 90E0              ldi R25,>_Snd_Spec
 0168 E42F              mov R30,R20
 016A FF27              clr R31
 016C E80F              add R30,R24
 016E F91F              adc R31,R25
 0170 0081              ldd R16,z+0
 0172 77DF              rcall _Seek_Segment
 0174                   .dbline 129
 0174           ;  Play();                                                         //播放
 0174 99DF              rcall _Play
 0176                   .dbline -2
 0176                   .dbline 130
 0176           ; }
 0176           L47:
 0176 00D0              rcall pop_gset1
 0178                   .dbline 0 ; func end
 0178 0895              ret
 017A                   .dbsym r m 20 c
 017A                   .dbend
 017A                   .dbfunc e Welcome _Welcome fV
                        .even
 017A           _Welcome::
 017A                   .dbline -1
 017A                   .dbline 133
 017A           ; 
 017A           ; void Welcome()                         //欢迎信息
 017A           ; {Set_PD(1);                                          //语音芯片复位
 017A                   .dbline 133
 017A 01E0              ldi R16,1
 017C 52DF              rcall _Set_PD
 017E                   .dbline 134
 017E           ;  delay(20000);
 017E 00E2              ldi R16,20000
 0180 1EE4              ldi R17,78
 0182 3EDF              rcall _delay
 0184                   .dbline 135
 0184           ;  Set_PD(0); 
 0184 0027              clr R16
 0186 4DDF              rcall _Set_PD
 0188                   .dbline 136
 0188           ;  Seek_Segment(Snd_Welc);                     //搜索相应语音信息段
 0188 00910A00          lds R16,_Snd_Welc
 018C 6ADF              rcall _Seek_Segment
 018E                   .dbline 137
 018E           ;  Play();                                                     //播放
 018E                   .dbline -2
 018E                   .dbline 138
 018E           ; }
 018E           L48:
 018E                   .dbline 0 ; func end
 018E 8CCF              rjmp _Play
 0190                   .dbend
 0190                   .dbfunc e Set_SCL _Set_SCL fV
 0190           ;              i -> R16
                        .even
 0190           _Set_SCL::
 0190                   .dbline -1
 0190                   .dbline 142
 0190           ; 
 0190           ; //****************************I2C驱动程序****************************//
 0190           ; void Set_SCL(uchar i)                  //定义MAX6959时钟线为PA^7
 0190           ; {if(i)   PORTA |=0x80;
 0190                   .dbline 142
 0190 0023              tst R16
 0192 11F0              breq L50
 0194                   .dbline 142
 0194 DF9A              sbi 0x1b,7
 0196 03C0              rjmp L51
 0198           L50:
 0198                   .dbline 143
 0198 8BB3              in R24,0x1b
 019A 8F77              andi R24,127
 019C 8BBB              out 0x1b,R24
 019E           L51:
 019E                   .dbline -2
 019E                   .dbline 144
 019E           ;  else    PORTA &=0x7f;
 019E           ; }
 019E           L49:
 019E                   .dbline 0 ; func end
 019E 0895              ret
 01A0                   .dbsym r i 16 c
 01A0                   .dbend
 01A0                   .dbfunc e Set_SDA _Set_SDA fV
 01A0           ;              i -> R16
                        .even
 01A0           _Set_SDA::
 01A0                   .dbline -1
 01A0                   .dbline 147
 01A0           ;  
 01A0           ; void Set_SDA(uchar i)                  //定义MAX6959数据线为PA^6
 01A0           ; {if(i)   PORTA |=0x40;
 01A0                   .dbline 147
 01A0 0023              tst R16
 01A2 11F0              breq L53
 01A4                   .dbline 147
 01A4 DE9A              sbi 0x1b,6
 01A6 03C0              rjmp L54
 01A8           L53:
 01A8                   .dbline 148
 01A8 8BB3              in R24,0x1b
 01AA 8F7B              andi R24,191
 01AC 8BBB              out 0x1b,R24
 01AE           L54:
 01AE                   .dbline -2
 01AE                   .dbline 149
 01AE           ;  else    PORTA &=0xbf;
 01AE           ; }
 01AE           L52:
 01AE                   .dbline 0 ; func end
 01AE 0895              ret
 01B0                   .dbsym r i 16 c
 01B0                   .dbend
 01B0                   .dbfunc e Start _Start fV
                        .even
 01B0           _Start::
 01B0                   .dbline -1
 01B0                   .dbline 152
 01B0           ; 
 01B0           ; void Start()                           //I2C总线的开始条件
 01B0           ; {Set_SDA(1);                         //SDA=1;
 01B0                   .dbline 152
 01B0 01E0              ldi R16,1
 01B2 F6DF              rcall _Set_SDA
 01B4                   .dbline 153
 01B4           ;  Set_SCL(1);                         //SCL=1;
 01B4 01E0              ldi R16,1
 01B6 ECDF              rcall _Set_SCL
 01B8                   .dbline 154
 01B8           ;  delay(100);                         //等待时钟信号变高

⌨️ 快捷键说明

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