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

📄 test.lis

📁 a good program for battery charge,only for reference
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 01D8                   .dbline 156
 01D8           ;   _nop_();
 01D8 0000              nop
 01DA                   .dbline 157
 01DA           ;   _nop_();    
 01DA 0000              nop
 01DC                   .dbline 158
 01DC           ;   PORTC &= ~(1<<SDA);   
 01DC 4498              cbi 0x8,4
 01DE                   .dbline 159
 01DE           ;   _nop_();    
 01DE 0000              nop
 01E0                   .dbline 160
 01E0           ;   _nop_();
 01E0 0000              nop
 01E2                   .dbline 161
 01E2           ;   _nop_();
 01E2 0000              nop
 01E4                   .dbline 162
 01E4           ;   _nop_();
 01E4 0000              nop
 01E6                   .dbline 163
 01E6           ;   _nop_();         
 01E6 0000              nop
 01E8                   .dbline 164
 01E8           ;   PORTC &= ~(1<<SCL);   
 01E8 4598              cbi 0x8,5
 01EA                   .dbline 165
 01EA           ;   _nop_();
 01EA 0000              nop
 01EC                   .dbline 166
 01EC           ;   _nop_();     
 01EC 0000              nop
 01EE                   .dbline -2
 01EE           L16:
 01EE                   .dbline 0 ; func end
 01EE 0895              ret
 01F0                   .dbend
 01F0                   .dbfunc e Stop_I2c _Stop_I2c fV
                        .even
 01F0           _Stop_I2c::
 01F0                   .dbline -1
 01F0                   .dbline 175
 01F0           ; }
 01F0           ; /*******************************************************************
 01F0           ;                       结束总线函数               
 01F0           ; 函数原型: void  Stop_I2c();  
 01F0           ; 功能:       结束I2C总线,即发送I2C结束条件.
 01F0           ;   
 01F0           ; ********************************************************************/
 01F0           ; void Stop_I2c()
 01F0           ; {
 01F0                   .dbline 176
 01F0           ;   PORTC &= ~(1<<SDA);                 /*发送结束条件的数据信号*/
 01F0 4498              cbi 0x8,4
 01F2                   .dbline 177
 01F2           ;   _nop_();                            /*发送结束条件的时钟信号*/
 01F2 0000              nop
 01F4                   .dbline 178
 01F4           ;   PORTC |= (1<<SCL);                  /*结束条件建立时间大于4μs*/
 01F4 459A              sbi 0x8,5
 01F6                   .dbline 179
 01F6           ;   _nop_();
 01F6 0000              nop
 01F8                   .dbline 180
 01F8           ;   _nop_();
 01F8 0000              nop
 01FA                   .dbline 181
 01FA           ;   _nop_();
 01FA 0000              nop
 01FC                   .dbline 182
 01FC           ;   _nop_();
 01FC 0000              nop
 01FE                   .dbline 183
 01FE           ;   _nop_();
 01FE 0000              nop
 0200                   .dbline 184
 0200           ;   PORTC |= (1<<SDA);                  /*发送I2C总线结束信号*/
 0200 449A              sbi 0x8,4
 0202                   .dbline 185
 0202           ;   _nop_();
 0202 0000              nop
 0204                   .dbline 186
 0204           ;   _nop_();
 0204 0000              nop
 0206                   .dbline 187
 0206           ;   _nop_();
 0206 0000              nop
 0208                   .dbline 188
 0208           ;   _nop_(); 
 0208 0000              nop
 020A                   .dbline -2
 020A           L17:
 020A                   .dbline 0 ; func end
 020A 0895              ret
 020C                   .dbend
 020C                   .dbfunc e SendByte _SendByte fV
 020C           ;         BitCnt -> R20
 020C           ;              c -> R22
                        .even
 020C           _SendByte::
 020C 00D0              rcall push_gset2
 020E 602F              mov R22,R16
 0210                   .dbline -1
 0210                   .dbline 198
 0210           ; }
 0210           ; /*******************************************************************
 0210           ;                  字节数据传送函数               
 0210           ; 函数原型: void  SendByte(unsigned char c);
 0210           ; 功能:  将数据c发送出去,可以是地址,也可以是数据,发完后等待应答,并对
 0210           ;      此状态位进行操作.(不应答或非应答都使ack=0 假)     
 0210           ;      发送数据正常,ack=1; ack=0表示被控器无应答或损坏。
 0210           ; ********************************************************************/
 0210           ; void  SendByte(unsigned char c)
 0210           ; {
 0210                   .dbline 200
 0210           ;  unsigned char BitCnt;
 0210           ;  for(BitCnt=0;BitCnt<8;BitCnt++)                              /*要传送的数据长度为8位*/
 0210 4427              clr R20
 0212 13C0              rjmp L22
 0214           L19:
 0214                   .dbline 201
 0214           ;     {
 0214                   .dbline 202
 0214           ;      if((c<<BitCnt)&0x80){PORTC |= (1<<SDA);}   /*判断发送位*/
 0214 062F              mov R16,R22
 0216 142F              mov R17,R20
 0218 00D0              rcall lsl8
 021A 802F              mov R24,R16
 021C 8078              andi R24,128
 021E 11F0              breq L23
 0220                   .dbline 202
 0220                   .dbline 202
 0220 449A              sbi 0x8,4
 0222                   .dbline 202
 0222 01C0              rjmp L24
 0224           L23:
 0224                   .dbline 203
 0224           ;        else  {PORTC &= ~(1<<SDA);}                
 0224                   .dbline 203
 0224 4498              cbi 0x8,4
 0226                   .dbline 203
 0226           L24:
 0226                   .dbline 204
 0226 0000              nop
 0228                   .dbline 205
 0228 459A              sbi 0x8,5
 022A                   .dbline 206
 022A 0000              nop
 022C                   .dbline 207
 022C 0000              nop
 022E                   .dbline 208
 022E 0000              nop
 0230                   .dbline 209
 0230 0000              nop
 0232                   .dbline 210
 0232 0000              nop
 0234                   .dbline 211
 0234 0000              nop
 0236                   .dbline 212
 0236 4598              cbi 0x8,5
 0238                   .dbline 213
 0238           L20:
 0238                   .dbline 200
 0238 4395              inc R20
 023A           L22:
 023A                   .dbline 200
 023A 4830              cpi R20,8
 023C 58F3              brlo L19
 023E                   .dbline 215
 023E           ;      _nop_();
 023E           ;      PORTC |= (1<<SCL);                                       /*置时钟线为高,通知被控器开始接收数据位*/
 023E           ;       _nop_(); 
 023E           ;       _nop_();                                                /*保证时钟高电平周期大于4μs*/
 023E           ;       _nop_();
 023E           ;       _nop_();
 023E           ;       _nop_(); 
 023E           ;         _nop_();     
 023E           ;      PORTC &= ~(1<<SCL); 
 023E           ;     }
 023E           ; 
 023E           ;       _nop_();
 023E 0000              nop
 0240                   .dbline 216
 0240           ;     _nop_();
 0240 0000              nop
 0242                   .dbline 217
 0242           ;     _nop_();  
 0242 0000              nop
 0244                   .dbline 218
 0244           ;     PORTC |= (1<<SDA);                                /*8位发送完后释放数据线,准备接收应答位*/
 0244 449A              sbi 0x8,4
 0246                   .dbline 219
 0246           ;        _nop_();
 0246 0000              nop
 0248                   .dbline 220
 0248           ;     _nop_(); 
 0248 0000              nop
 024A                   .dbline 221
 024A           ;       _nop_();
 024A 0000              nop
 024C                   .dbline 222
 024C           ;     PORTC |= (1<<SCL);
 024C 459A              sbi 0x8,5
 024E                   .dbline 223
 024E           ;     _nop_();
 024E 0000              nop
 0250                   .dbline 224
 0250           ;     _nop_();
 0250 0000              nop
 0252                   .dbline 225
 0252           ;     _nop_();
 0252 0000              nop
 0254                   .dbline 226
 0254           ;       _nop_();
 0254 0000              nop
 0256                   .dbline 227
 0256           ;       _nop_();
 0256 0000              nop
 0258                   .dbline 228
 0258           ;  if((PINC&(1<<SDA))==1){temp &= ~(1<<ack);}     
 0258 86B1              in R24,0x6
 025A 8071              andi R24,16
 025C 8130              cpi R24,1
 025E 31F4              brne L25
 0260                   .dbline 228
 0260                   .dbline 228
 0260 80911600          lds R24,_temp
 0264 8E7F              andi R24,254
 0266 80931600          sts _temp,R24
 026A                   .dbline 228
 026A 05C0              rjmp L26
 026C           L25:
 026C                   .dbline 229
 026C           ;        else {temp |= (1<<ack);}                               /*判断是否接收到应答信号*/
 026C                   .dbline 229
 026C 80911600          lds R24,_temp
 0270 8160              ori R24,1
 0272 80931600          sts _temp,R24
 0276                   .dbline 229
 0276           L26:
 0276                   .dbline 230
 0276           ;     PORTC &= ~(1<<SCL);
 0276 4598              cbi 0x8,5
 0278                   .dbline 231
 0278           ;     _nop_();
 0278 0000              nop
 027A                   .dbline 232
 027A           ;     _nop_();
 027A 0000              nop
 027C                   .dbline 233
 027C           ;       _nop_();
 027C 0000              nop
 027E                   .dbline 234
 027E           ;       _nop_();        
 027E 0000              nop
 0280                   .dbline -2
 0280           L18:
 0280 00D0              rcall pop_gset2
 0282                   .dbline 0 ; func end
 0282 0895              ret
 0284                   .dbsym r BitCnt 20 c
 0284                   .dbsym r c 22 c
 0284                   .dbend
 0284                   .dbfunc e TC1321_SET _TC1321_SET fI
 0284           ;            tem -> y+0
 0284           ;              i -> R20
 0284           ;         DA_SET -> R20,R21
                        .even
 0284           _TC1321_SET::
 0284 00D0              rcall push_gset1
 0286 A801              movw R20,R16
 0288 2497              sbiw R28,4
 028A                   .dbline -1
 028A                   .dbline 243
 028A           ; }
 028A           ; /*******************************************************************
 028A           ;                     向有子地址器件发送多字节数据函数               
 028A           ; 函数原型: bit TC1321_SET(unsigned int DA_SET);  
 028A           ; 功能:     设定TC1321的DATA寄存器,从而控制输出所设定的电压值:(DA_SET/1024)*VREF.
 028A           ; 注意:                                                                                                                                                  
 028A           ; ****************************14.3V时候的D/A输出值*******************************/
 028A           ; TC1321_SET(unsigned int DA_SET)
 028A           ; {
 028A                   .dbline 246
 028A           ;    unsigned char i;
 028A           ;    unsigned char tem[4];
 028A           ;    temp_det();
 028A E0D0              rcall _temp_det
 028C                   .dbline 247
 028C           ;     _nop_();     
 028C 0000              nop
 028E                   .dbline 248
 028E           ;   temp_det();
 028E DED0              rcall _temp_det
 0290                   .dbline 249
 0290           ;     _nop_();  
 0290 0000              nop
 0292                   .dbline 250
 0292           ;       xxyy=now_temp-5;
 0292 80910700          lds R24,_now_temp
 0296 90910800          lds R25,_now_temp+1
 029A 0597              sbiw R24,5
 029C 90931C00          sts _xxyy+1,R25
 02A0 80931B00          sts _xxyy,R24
 02A4                   .dbline 251
 02A4           ;       DA_SET=ABC[xxyy];
 02A4 9C01              movw R18,R24
 02A6 02E0              ldi R16,2
 02A8 10E0              ldi R17,0
 02AA 00D0              rcall empy16s
 02AC F801              movw R30,R16
 02AE 80E0              ldi R24,<_ABC
 02B0 90E0              ldi R25,>_ABC
 02B2 E80F              add R30,R24
 02B4 F91F              adc R31,R25
 02B6 4591              lpm R20,Z+
 02B8 5491              lpm R21,Z
 02BA                   .dbline 253
 02BA           ; 
 02BA           ;       if(now_temp <6)   
 02BA 80910700          lds R24,_now_temp

⌨️ 快捷键说明

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