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

📄 24cxx_test.lis

📁 24IIC的源代码
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0302 C22E              mov R12,R18
 0304 A02E              mov R10,R16
 0306 4E81              ldd R20,y+6
 0308 5F81              ldd R21,y+7
 030A                   .dbline -1
 030A                   .dbline 123
 030A           ; }
 030A           ; /*-------------------------------------------------------------
 030A           ; 函数: 写字符串
 030A           ; 参数:列---X=0~15,行---Y=0~1 写地址
 030A           ;       s为所要写的字符串
 030A           ; ---------------------------------------------------------------*/
 030A           ; void LCD_write_string(unsigned char X,unsigned char Y,unsigned char *s) 
 030A           ; {
 030A                   .dbline 124
 030A           ;  LCD_set_xy(X,Y);   
 030A 2C2D              mov R18,R12
 030C 0A2D              mov R16,R10
 030E 71DF              xcall _LCD_set_xy
 0310 08C0              xjmp L100
 0312           L99:
 0312                   .dbline 126
 0312           ;  while(*s)  
 0312           ;  {
 0312                   .dbline 127
 0312           ;   LCD_write_char(0,*s);
 0312 FA01              movw R30,R20
 0314 2081              ldd R18,z+0
 0316 3327              clr R19
 0318 0027              clr R16
 031A 1127              clr R17
 031C 82DF              xcall _LCD_write_char
 031E                   .dbline 128
 031E           ;   s++;
 031E 4F5F              subi R20,255  ; offset = 1
 0320 5F4F              sbci R21,255
 0322                   .dbline 129
 0322           ;  }
 0322           L100:
 0322                   .dbline 125
 0322 FA01              movw R30,R20
 0324 2080              ldd R2,z+0
 0326 2220              tst R2
 0328 A1F7              brne L99
 032A           X31:
 032A                   .dbline -2
 032A           L98:
 032A                   .dbline 0 ; func end
 032A 0C940000          xjmp pop_xgset303C
 032E                   .dbsym r s 20 pc
 032E                   .dbsym r Y 12 c
 032E                   .dbsym r X 10 c
 032E                   .dbend
 032E                   .dbfunc e LCD_write_data _LCD_write_data fV
 032E           ;           data -> y+0
 032E           ;             i0 -> R20
 032E           ;            dat -> R14,R15
 032E           ;              Y -> R12
 032E           ;              X -> R10
                        .even
 032E           _LCD_write_data::
 032E 0E940000          xcall push_xgset30FC
 0332 C22E              mov R12,R18
 0334 A02E              mov R10,R16
 0336 2497              sbiw R28,4
 0338 EC84              ldd R14,y+12
 033A FD84              ldd R15,y+13
 033C                   .dbline -1
 033C                   .dbline 138
 033C           ; }
 033C           ; 
 033C           ; /*-------------------------------------------------------------
 033C           ; 函数: 写数字
 033C           ; 参数:列---X=0~15,行---Y=0~1 写地址
 033C           ;       dat为所要写的数字
 033C           ; ---------------------------------------------------------------*/
 033C           ; void LCD_write_data(unsigned char X,unsigned char Y,int dat)
 033C           ; {
 033C                   .dbline 151
 033C           ;  //unsigned char fuhao;
 033C           ;  unsigned char data[4];
 033C           ;  unsigned char i;
 033C           ;   
 033C           ;  /*if(dat<0)
 033C           ;  {
 033C           ;   fuhao='-';
 033C           ;   dat=0-dat;
 033C           ;  }
 033C           ;  else
 033C           ;   fuhao=' ';
 033C           ;  data[0]=fuhao;*/
 033C           ;  data[0]=dat/1000+0x30; dat%=1000;
 033C 28EE              ldi R18,1000
 033E 33E0              ldi R19,3
 0340 8701              movw R16,R14
 0342 0E940000          xcall div16s
 0346 C801              movw R24,R16
 0348 C096              adiw R24,48
 034A 8883              std y+0,R24
 034C                   .dbline 151
 034C 28EE              ldi R18,1000
 034E 33E0              ldi R19,3
 0350 8701              movw R16,R14
 0352 0E940000          xcall mod16s
 0356 7801              movw R14,R16
 0358                   .dbline 152
 0358           ;  data[1]=dat/100+0x30;  dat%=100;
 0358 24E6              ldi R18,100
 035A 30E0              ldi R19,0
 035C 0E940000          xcall div16s
 0360 C801              movw R24,R16
 0362 C096              adiw R24,48
 0364 8983              std y+1,R24
 0366                   .dbline 152
 0366 24E6              ldi R18,100
 0368 30E0              ldi R19,0
 036A 8701              movw R16,R14
 036C 0E940000          xcall mod16s
 0370 7801              movw R14,R16
 0372                   .dbline 153
 0372           ;  data[2]=dat/10+0x30; 
 0372 2AE0              ldi R18,10
 0374 30E0              ldi R19,0
 0376 0E940000          xcall div16s
 037A C801              movw R24,R16
 037C C096              adiw R24,48
 037E 8A83              std y+2,R24
 0380                   .dbline 154
 0380           ;  data[3]=dat%10+0x30; 
 0380 2AE0              ldi R18,10
 0382 30E0              ldi R19,0
 0384 8701              movw R16,R14
 0386 0E940000          xcall mod16s
 038A C801              movw R24,R16
 038C C096              adiw R24,48
 038E 8B83              std y+3,R24
 0390                   .dbline 156
 0390           ;  
 0390           ;  LCD_set_xy(X,Y);
 0390 2C2D              mov R18,R12
 0392 0A2D              mov R16,R10
 0394 2EDF              xcall _LCD_set_xy
 0396                   .dbline 157
 0396           ;  for(i=0;i<4;i++)
 0396 4427              clr R20
 0398 0BC0              xjmp L109
 039A           L106:
 039A                   .dbline 158
 039A           ;   LCD_write_char(0,data[i]);
 039A CE01              movw R24,R28
 039C E42F              mov R30,R20
 039E FF27              clr R31
 03A0 E80F              add R30,R24
 03A2 F91F              adc R31,R25
 03A4 2081              ldd R18,z+0
 03A6 3327              clr R19
 03A8 0027              clr R16
 03AA 1127              clr R17
 03AC 3ADF              xcall _LCD_write_char
 03AE           L107:
 03AE                   .dbline 157
 03AE 4395              inc R20
 03B0           L109:
 03B0                   .dbline 157
 03B0 4430              cpi R20,4
 03B2 98F3              brlo L106
 03B4           X32:
 03B4                   .dbline -2
 03B4           L102:
 03B4                   .dbline 0 ; func end
 03B4 2496              adiw R28,4
 03B6 0C940000          xjmp pop_xgset30FC
 03BA                   .dbsym l data 0 A[4:4]c
 03BA                   .dbsym r i0 20 c
 03BA                   .dbsym r Y 12 c
 03BA                   .dbsym r X 10 c
 03BA                   .dbend
                        .area lit(rom, con, rel)
 0000           L111:
 0000 00                .byte 0
 0001 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000  .word 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 003D 00000000000000000000      .word 0,0,0,0,0
 0047 00000000000000000000      .word 0,0,0,0,0
 0051 00000000000000000000      .word 0,0,0,0,0
 005B 000000000000000000        .byte 0,0,0,0,0,0,0,0,0
                        .area text(rom, con, rel)
 03BA                   .dbfile D:\iccavr\mega16\11\24CXX\lcd1602.h
 03BA                   .dbfile D:\iccavr\mega16\11\24CXX\24cxx_test.c
 03BA                   .dbfunc e main _main fV
 03BA           ;          temp2 -> y+2
 03BA           ;             i5 -> R20
 03BA           ;             i2 -> R20
 03BA           ;             i0 -> R20
                        .even
 03BA           _main::
 03BA EF97              sbiw R28,63
 03BC A797              sbiw R28,39  ; offset = 102
 03BE                   .dbline -1
 03BE                   .dbline 15
 03BE           ; //ICC-AVR application builder : 2008-11-10 11:10:06
 03BE           ; // Target : M16
 03BE           ; // Crystal: 8.0000Mhz
 03BE           ; 
 03BE           ; #include <iom16v.h>
 03BE           ; #include <macros.h>
 03BE           ; 
 03BE           ; 
 03BE           ; #include "delay.h"
 03BE           ; #include "24cxx_twi.h"
 03BE           ; #include "lcd1602.h"
 03BE           ; 
 03BE           ; //
 03BE           ; void main(void)
 03BE           ; {
 03BE                   .dbline 17
 03BE           ;  //unsigned char temp1[19]={18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0};
 03BE           ;  unsigned char temp2[100]={0};
 03BE 80E0              ldi R24,<L111
 03C0 90E0              ldi R25,>L111
 03C2 FE01              movw R30,R28
 03C4 3296              adiw R30,2
 03C6 04E6              ldi R16,100
 03C8 10E0              ldi R17,0
 03CA FA93              st -y,R31
 03CC EA93              st -y,R30
 03CE 9A93              st -y,R25
 03D0 8A93              st -y,R24
 03D2 0E940000          xcall asgncblk
 03D6                   .dbline 19
 03D6           ;  unsigned char i;
 03D6           ;  LCD_init();
 03D6 EEDE              xcall _LCD_init
 03D8                   .dbline 21
 03D8           ;  //insert your functional code here...
 03D8           ;  LCD_write_string(0,0,"  AT24C64 TEST  ");
 03D8 80E0              ldi R24,<L112
 03DA 90E0              ldi R25,>L112
 03DC 9983              std y+1,R25
 03DE 8883              std y+0,R24
 03E0 2227              clr R18
 03E2 0027              clr R16
 03E4 8CDF              xcall _LCD_write_string
 03E6                   .dbline 22
 03E6           ;  for(i=0;i<100;i++)
 03E6 4427              clr R20
 03E8 08C0              xjmp L116
 03EA           L113:
 03EA                   .dbline 23
 03EA           ;   WriteByte((i+1000),i+64);
 03EA 242F              mov R18,R20
 03EC 205C              subi R18,192    ; addi 64
 03EE 042F              mov R16,R20
 03F0 1127              clr R17
 03F2 0851              subi R16,24  ; offset = 1000
 03F4 1C4F              sbci R17,252
 03F6 2EDE              xcall _WriteByte
 03F8           L114:
 03F8                   .dbline 22
 03F8 4395              inc R20
 03FA           L116:
 03FA                   .dbline 22
 03FA 4436              cpi R20,100
 03FC B0F3              brlo L113
 03FE           X33:
 03FE                   .dbline 24
 03FE           ;  for(i=0;i<100;i++)
 03FE 4427              clr R20
 0400 0DC0              xjmp L120
 0402           L117:
 0402                   .dbline 25
 0402           ;   temp2[i]=ReadByte(i+1000);
 0402 042F              mov R16,R20
 0404 1127              clr R17
 0406 0851              subi R16,24  ; offset = 1000
 0408 1C4F              sbci R17,252
 040A 74DE              xcall _ReadByte
 040C CE01              movw R24,R28
 040E 0296              adiw R24,2
 0410 E42F              mov R30,R20
 0412 FF27              clr R31
 0414 E80F              add R30,R24
 0416 F91F              adc R31,R25
 0418 0083              std z+0,R16
 041A           L118:
 041A                   .dbline 24
 041A 4395              inc R20
 041C           L120:
 041C                   .dbline 24
 041C 4436              cpi R20,100
 041E 88F3              brlo L117
 0420           X34:
 0420 15C0              xjmp L122
 0422           L121:
 0422                   .dbline 27
 0422           ;  while(1)
 0422           ;  {
 0422                   .dbline 28
 0422           ;   for(i=0;i<100;i++)
 0422 4427              clr R20
 0424 11C0              xjmp L127
 0426           L124:
 0426                   .dbline 29
 0426           ;   {
 0426                   .dbline 30
 0426           ;    LCD_write_data(5,1,temp2[i]);
 0426 CE01              movw R24,R28
 0428 0296              adiw R24,2
 042A E42F              mov R30,R20
 042C FF27              clr R31
 042E E80F              add R30,R24
 0430 F91F              adc R31,R25
 0432 2080              ldd R2,z+0
 0434 3324              clr R3
 0436 3982              std y+1,R3
 0438 2882              std y+0,R2
 043A 21E0              ldi R18,1
 043C 05E0              ldi R16,5
 043E 77DF              xcall _LCD_write_data
 0440                   .dbline 31
 0440           ;    delay_ms(1000);
 0440 08EE              ldi R16,1000
 0442 13E0              ldi R17,3
 0444 F8DD              xcall _delay_ms
 0446                   .dbline 32
 0446           ;   }
 0446           L125:
 0446                   .dbline 28
 0446 4395              inc R20
 0448           L127:
 0448                   .dbline 28
 0448 4436              cpi R20,100
 044A 68F3              brlo L124
 044C           X35:
 044C                   .dbline 33
 044C           ;  }
 044C           L122:
 044C                   .dbline 26
 044C EACF              xjmp L121
 044E           X36:
 044E                   .dbline -2
 044E           L110:
 044E                   .dbline 0 ; func end
 044E EF96              adiw R28,63
 0450 A796              adiw R28,39  ; offset = 102
 0452 0895              ret
 0454                   .dbsym l temp2 2 A[100:100]c
 0454                   .dbsym r i5 20 c
 0454                   .dbsym r i2 20 c
 0454                   .dbsym r i0 20 c
 0454                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile D:\iccavr\mega16\11\24CXX\24cxx_test.c
 0000           L112:
 0000                   .blkb 17
                        .area idata
 0000 20204154323443363420544553542020  .byte 32,32,'A,'T,50,52,'C,54,52,32,'T,'E,'S,'T,32,32
 0010 00                .byte 0
                        .area data(ram, con, rel)
 0011                   .dbfile D:\iccavr\mega16\11\24CXX\24cxx_test.c
 0011           ; }
 0011           ; 

⌨️ 快捷键说明

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