?? 24cxx_test.lis
字號(hào):
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 ; 函數(shù): 寫字符串
030A ; 參數(shù):列---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 ; 函數(shù): 寫數(shù)字
033C ; 參數(shù):列---X=0~15,行---Y=0~1 寫地址
033C ; dat為所要寫的數(shù)字
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 ;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -