📄 24cxx_test.lis
字号:
04C0 ; while(*s)
04C0 ; {
04C0 .dbline 127
04C0 ; LCD_write_char(0,*s);
04C0 FA01 movw R30,R20
04C2 2081 ldd R18,z+0
04C4 3327 clr R19
04C6 0027 clr R16
04C8 1127 clr R17
04CA 82DF xcall _LCD_write_char
04CC .dbline 128
04CC ; s++;
04CC 4F5F subi R20,255 ; offset = 1
04CE 5F4F sbci R21,255
04D0 .dbline 129
04D0 ; }
04D0 L99:
04D0 .dbline 125
04D0 FA01 movw R30,R20
04D2 2080 ldd R2,z+0
04D4 2220 tst R2
04D6 A1F7 brne L98
04D8 X34:
04D8 .dbline -2
04D8 L97:
04D8 .dbline 0 ; func end
04D8 0C940000 xjmp pop_xgset303C
04DC .dbsym r s 20 pc
04DC .dbsym r Y 12 c
04DC .dbsym r X 10 c
04DC .dbend
04DC .dbfunc e LCD_write_data _LCD_write_data fV
04DC ; data -> y+0
04DC ; i -> R20
04DC ; dat -> R14,R15
04DC ; Y -> R12
04DC ; X -> R10
.even
04DC _LCD_write_data::
04DC 0E940000 xcall push_xgset30FC
04E0 C22E mov R12,R18
04E2 A02E mov R10,R16
04E4 2497 sbiw R28,4
04E6 EC84 ldd R14,y+12
04E8 FD84 ldd R15,y+13
04EA .dbline -1
04EA .dbline 138
04EA ; }
04EA ;
04EA ; /*-------------------------------------------------------------
04EA ; 函数: 写数字
04EA ; 参数:列---X=0~15,行---Y=0~1 写地址
04EA ; dat为所要写的数字
04EA ; ---------------------------------------------------------------*/
04EA ; void LCD_write_data(unsigned char X,unsigned char Y,int dat)
04EA ; {
04EA .dbline 151
04EA ; //unsigned char fuhao;
04EA ; unsigned char data[4];
04EA ; unsigned char i;
04EA ;
04EA ; /*if(dat<0)
04EA ; {
04EA ; fuhao='-';
04EA ; dat=0-dat;
04EA ; }
04EA ; else
04EA ; fuhao=' ';
04EA ; data[0]=fuhao;*/
04EA ; data[0]=dat/1000+0x30; dat%=1000;
04EA 28EE ldi R18,1000
04EC 33E0 ldi R19,3
04EE 8701 movw R16,R14
04F0 0E940000 xcall div16s
04F4 C801 movw R24,R16
04F6 C096 adiw R24,48
04F8 8883 std y+0,R24
04FA .dbline 151
04FA 28EE ldi R18,1000
04FC 33E0 ldi R19,3
04FE 8701 movw R16,R14
0500 0E940000 xcall mod16s
0504 7801 movw R14,R16
0506 .dbline 152
0506 ; data[1]=dat/100+0x30; dat%=100;
0506 24E6 ldi R18,100
0508 30E0 ldi R19,0
050A 0E940000 xcall div16s
050E C801 movw R24,R16
0510 C096 adiw R24,48
0512 8983 std y+1,R24
0514 .dbline 152
0514 24E6 ldi R18,100
0516 30E0 ldi R19,0
0518 8701 movw R16,R14
051A 0E940000 xcall mod16s
051E 7801 movw R14,R16
0520 .dbline 153
0520 ; data[2]=dat/10+0x30;
0520 2AE0 ldi R18,10
0522 30E0 ldi R19,0
0524 0E940000 xcall div16s
0528 C801 movw R24,R16
052A C096 adiw R24,48
052C 8A83 std y+2,R24
052E .dbline 154
052E ; data[3]=dat%10+0x30;
052E 2AE0 ldi R18,10
0530 30E0 ldi R19,0
0532 8701 movw R16,R14
0534 0E940000 xcall mod16s
0538 C801 movw R24,R16
053A C096 adiw R24,48
053C 8B83 std y+3,R24
053E .dbline 156
053E ;
053E ; LCD_set_xy(X,Y);
053E 2C2D mov R18,R12
0540 0A2D mov R16,R10
0542 2EDF xcall _LCD_set_xy
0544 .dbline 157
0544 ; for(i=0;i<4;i++)
0544 4427 clr R20
0546 0BC0 xjmp L108
0548 L105:
0548 .dbline 158
0548 ; LCD_write_char(0,data[i]);
0548 CE01 movw R24,R28
054A E42F mov R30,R20
054C FF27 clr R31
054E E80F add R30,R24
0550 F91F adc R31,R25
0552 2081 ldd R18,z+0
0554 3327 clr R19
0556 0027 clr R16
0558 1127 clr R17
055A 3ADF xcall _LCD_write_char
055C L106:
055C .dbline 157
055C 4395 inc R20
055E L108:
055E .dbline 157
055E 4430 cpi R20,4
0560 98F3 brlo L105
0562 X35:
0562 .dbline -2
0562 L101:
0562 .dbline 0 ; func end
0562 2496 adiw R28,4
0564 0C940000 xjmp pop_xgset30FC
0568 .dbsym l data 0 A[4:4]c
0568 .dbsym r i 20 c
0568 .dbsym r dat 14 I
0568 .dbsym r Y 12 c
0568 .dbsym r X 10 c
0568 .dbend
.area lit(rom, con, rel)
0000 L110:
0000 1211 .byte 18,17
0002 100F .byte 16,15
0004 0E0D .byte 14,13
0006 0C0B .byte 12,11
0008 0A09 .byte 10,9
000A 0807 .byte 8,7
000C 0605 .byte 6,5
000E 0403 .byte 4,3
0010 0201 .byte 2,1
0012 00 .byte 0
0013 L111:
0013 00 .byte 0
0014 00000000000000000000 .word 0,0,0,0,0
001E 0000000000000000 .byte 0,0,0,0,0,0,0,0
.area text(rom, con, rel)
0568 .dbfile D:\mega16_32实验板资料\ICCAVR源程序\twi\24c64\连续读写\lcd1602.h
0568 .dbfile D:\mega16_32实验板资料\ICCAVR源程序\twi\24c64\连续读写\24cxx_test.c
0568 .dbfunc e main _main fV
0568 ; temp1 -> y+24
0568 ; temp2 -> y+5
0568 ; i -> R20
.even
0568 _main::
0568 AB97 sbiw R28,43
056A .dbline -1
056A .dbline 15
056A ; //ICC-AVR application builder : 2008-11-10 11:10:06
056A ; // Target : M16
056A ; // Crystal: 8.0000Mhz
056A ;
056A ; #include <iom16v.h>
056A ; #include <macros.h>
056A ;
056A ;
056A ; #include "delay.h"
056A ; #include "24cxx.h"
056A ; #include "lcd1602.h"
056A ;
056A ; //
056A ; void main(void)
056A ; {
056A .dbline 16
056A ; unsigned char temp1[19]={18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0};
056A 80E0 ldi R24,<L110
056C 90E0 ldi R25,>L110
056E FE01 movw R30,R28
0570 7896 adiw R30,24
0572 03E1 ldi R16,19
0574 10E0 ldi R17,0
0576 FA93 st -y,R31
0578 EA93 st -y,R30
057A 9A93 st -y,R25
057C 8A93 st -y,R24
057E 0E940000 xcall asgncblk
0582 .dbline 17
0582 ; unsigned char temp2[19]={0};
0582 80E0 ldi R24,<L111
0584 90E0 ldi R25,>L111
0586 FE01 movw R30,R28
0588 3596 adiw R30,5
058A 03E1 ldi R16,19
058C 10E0 ldi R17,0
058E FA93 st -y,R31
0590 EA93 st -y,R30
0592 9A93 st -y,R25
0594 8A93 st -y,R24
0596 0E940000 xcall asgncblk
059A .dbline 19
059A ; unsigned char i;
059A ; LCD_init();
059A E3DE xcall _LCD_init
059C .dbline 21
059C ; //insert your functional code here...
059C ; LCD_write_string(0,0," AT24C64 TEST ");
059C 80E0 ldi R24,<L112
059E 90E0 ldi R25,>L112
05A0 9983 std y+1,R25
05A2 8883 std y+0,R24
05A4 2227 clr R18
05A6 0027 clr R16
05A8 81DF xcall _LCD_write_string
05AA .dbline 22
05AA ; AT24CxxWrite(64,0,1000,temp1,19);
05AA 83E1 ldi R24,19
05AC 8C83 std y+4,R24
05AE CE01 movw R24,R28
05B0 4896 adiw R24,24
05B2 9B83 std y+3,R25
05B4 8A83 std y+2,R24
05B6 88EE ldi R24,1000
05B8 93E0 ldi R25,3
05BA 9983 std y+1,R25
05BC 8883 std y+0,R24
05BE 2227 clr R18
05C0 00E4 ldi R16,64
05C2 10E0 ldi R17,0
05C4 77DD xcall _AT24CxxWrite
05C6 .dbline 23
05C6 ; AT24CxxRead(64,0,1000,temp2,19);
05C6 83E1 ldi R24,19
05C8 8C83 std y+4,R24
05CA CE01 movw R24,R28
05CC 0596 adiw R24,5
05CE 9B83 std y+3,R25
05D0 8A83 std y+2,R24
05D2 88EE ldi R24,1000
05D4 93E0 ldi R25,3
05D6 9983 std y+1,R25
05D8 8883 std y+0,R24
05DA 2227 clr R18
05DC 00E4 ldi R16,64
05DE 10E0 ldi R17,0
05E0 78DE xcall _AT24CxxRead
05E2 15C0 xjmp L114
05E4 L113:
05E4 .dbline 25
05E4 ; while(1)
05E4 ; {
05E4 .dbline 26
05E4 ; for(i=0;i<19;i++)
05E4 4427 clr R20
05E6 11C0 xjmp L119
05E8 L116:
05E8 .dbline 27
05E8 ; {
05E8 .dbline 28
05E8 ; LCD_write_data(5,1,temp2[i]);
05E8 CE01 movw R24,R28
05EA 0596 adiw R24,5
05EC E42F mov R30,R20
05EE FF27 clr R31
05F0 E80F add R30,R24
05F2 F91F adc R31,R25
05F4 2080 ldd R2,z+0
05F6 3324 clr R3
05F8 3982 std y+1,R3
05FA 2882 std y+0,R2
05FC 21E0 ldi R18,1
05FE 05E0 ldi R16,5
0600 6DDF xcall _LCD_write_data
0602 .dbline 29
0602 ; delay_ms(1000);
0602 08EE ldi R16,1000
0604 13E0 ldi R17,3
0606 17DD xcall _delay_ms
0608 .dbline 30
0608 ; }
0608 L117:
0608 .dbline 26
0608 4395 inc R20
060A L119:
060A .dbline 26
060A 4331 cpi R20,19
060C 68F3 brlo L116
060E X36:
060E .dbline 31
060E ; }
060E L114:
060E .dbline 24
060E EACF xjmp L113
0610 X37:
0610 .dbline -2
0610 L109:
0610 .dbline 0 ; func end
0610 AB96 adiw R28,43
0612 0895 ret
0614 .dbsym l temp1 24 A[19:19]c
0614 .dbsym l temp2 5 A[19:19]c
0614 .dbsym r i 20 c
0614 .dbend
.area data(ram, con, rel)
0000 .dbfile D:\mega16_32实验板资料\ICCAVR源程序\twi\24c64\连续读写\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:\mega16_32实验板资料\ICCAVR源程序\twi\24c64\连续读写\24cxx_test.c
0011 ; }
0011 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -