📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile E:\avr\1602测试程序\main.c
0000 .dbfunc e init_devices _init_devices fV
.even
0000 _init_devices::
0000 .dbline -1
0000 .dbline 6
0000 ; #include <iom16v.h>
0000 ; #include "lcd.h"
0000 ; #include "delay.h"
0000 ;
0000 ; void init_devices( void )
0000 ; {
0000 .dbline 7
0000 ; LCD_init();
0000 0E940000 xcall _LCD_init
0004 .dbline -2
0004 L1:
0004 .dbline 0 ; func end
0004 0895 ret
0006 .dbend
0006 .dbfunc e main _main fV
0006 ; tmp_f -> y+9
0006 ; i -> y+5
.even
0006 _main::
0006 2D97 sbiw R28,13
0008 .dbline -1
0008 .dbline 11
0008 ; }
0008 ;
0008 ; void main( void )
0008 ; {
0008 .dbline 12
0008 ; long int i = 0;
0008 40E0 ldi R20,0
000A 50E0 ldi R21,0
000C 60E0 ldi R22,0
000E 70E0 ldi R23,0
0010 4D83 std y+5,R20
0012 5E83 std y+6,R21
0014 6F83 std y+7,R22
0016 7887 std y+8,R23
0018 .dbline 13
0018 ; float tmp_f = 0.00;
0018 00E0 ldi R16,<L3
001A 10E0 ldi R17,>L3
001C 0E940000 xcall lpm32
0020 0987 std y+9,R16
0022 1A87 std y+10,R17
0024 2B87 std y+11,R18
0026 3C87 std y+12,R19
0028 .dbline 14
0028 ; init_devices(); //目标版初始化
0028 EBDF xcall _init_devices
002A .dbline 16
002A ;
002A ; LCD_write_string( 1, 4, "TEST LCD" ); //写字符串
002A 80E0 ldi R24,<L4
002C 90E0 ldi R25,>L4
002E 9983 std y+1,R25
0030 8883 std y+0,R24
0032 24E0 ldi R18,4
0034 01E0 ldi R16,1
0036 0E940000 xcall _LCD_write_string
003A .dbline 17
003A ; delay_ns( 1 ); //延时1S
003A 01E0 ldi R16,1
003C 0E940000 xcall _delay_ns
0040 .dbline 18
0040 ; LCD_write_string( 1, 0, " " ); //清第一行数据
0040 80E0 ldi R24,<L5
0042 90E0 ldi R25,>L5
0044 9983 std y+1,R25
0046 8883 std y+0,R24
0048 2227 clr R18
004A 01E0 ldi R16,1
004C 0E940000 xcall _LCD_write_string
0050 .dbline 20
0050 ;
0050 ; for( i = 0; i < 1234; i++ ) //显示整数,小数
0050 40E0 ldi R20,0
0052 50E0 ldi R21,0
0054 60E0 ldi R22,0
0056 70E0 ldi R23,0
0058 4D83 std y+5,R20
005A 5E83 std y+6,R21
005C 6F83 std y+7,R22
005E 7887 std y+8,R23
0060 L6:
0060 .dbline 21
0060 ; {
0060 .dbline 22
0060 ; LCD_write_datalongint( 2, 1, i ); //显示正整数 i
0060 2D80 ldd R2,y+5
0062 3E80 ldd R3,y+6
0064 4F80 ldd R4,y+7
0066 5884 ldd R5,y+8
0068 2882 std y+0,R2
006A 3982 std y+1,R3
006C 4A82 std y+2,R4
006E 5B82 std y+3,R5
0070 21E0 ldi R18,1
0072 02E0 ldi R16,2
0074 0E940000 xcall _LCD_write_datalongint
0078 .dbline 23
0078 ; LCD_write_datalongint( 1, 0, i*(-1) ); //显示负整数 -i
0078 2D80 ldd R2,y+5
007A 3E80 ldd R3,y+6
007C 4F80 ldd R4,y+7
007E 5884 ldd R5,y+8
0080 4FEF ldi R20,255
0082 5FEF ldi R21,255
0084 6FEF ldi R22,255
0086 7FEF ldi R23,255
0088 5A92 st -y,R5
008A 4A92 st -y,R4
008C 3A92 st -y,R3
008E 2A92 st -y,R2
0090 8A01 movw R16,R20
0092 9B01 movw R18,R22
0094 0E940000 xcall empy32s
0098 0883 std y+0,R16
009A 1983 std y+1,R17
009C 2A83 std y+2,R18
009E 3B83 std y+3,R19
00A0 2227 clr R18
00A2 01E0 ldi R16,1
00A4 0E940000 xcall _LCD_write_datalongint
00A8 .dbline 24
00A8 ; delay_nms( 10 );
00A8 0AE0 ldi R16,10
00AA 10E0 ldi R17,0
00AC 0E940000 xcall _delay_nms
00B0 .dbline 26
00B0 ;
00B0 ; tmp_f = 1.234 * i;
00B0 00E0 ldi R16,<L10
00B2 10E0 ldi R17,>L10
00B4 0E940000 xcall lpm32
00B8 1801 movw R2,R16
00BA 2901 movw R4,R18
00BC 0D81 ldd R16,y+5
00BE 1E81 ldd R17,y+6
00C0 2F81 ldd R18,y+7
00C2 3885 ldd R19,y+8
00C4 0E940000 xcall long2fp
00C8 3A93 st -y,R19
00CA 2A93 st -y,R18
00CC 1A93 st -y,R17
00CE 0A93 st -y,R16
00D0 8101 movw R16,R2
00D2 9201 movw R18,R4
00D4 0E940000 xcall fpmule2
00D8 0987 std y+9,R16
00DA 1A87 std y+10,R17
00DC 2B87 std y+11,R18
00DE 3C87 std y+12,R19
00E0 .dbline 27
00E0 ; LCD_write_datafloat( 2, 8, tmp_f, 2 ); //显示正浮点数tmp_f, 小数位2位
00E0 82E0 ldi R24,2
00E2 8C83 std y+4,R24
00E4 2984 ldd R2,y+9
00E6 3A84 ldd R3,y+10
00E8 4B84 ldd R4,y+11
00EA 5C84 ldd R5,y+12
00EC 2882 std y+0,R2
00EE 3982 std y+1,R3
00F0 4A82 std y+2,R4
00F2 5B82 std y+3,R5
00F4 28E0 ldi R18,8
00F6 02E0 ldi R16,2
00F8 0E940000 xcall _LCD_write_datafloat
00FC .dbline 28
00FC ; LCD_write_datafloat( 1, 7, tmp_f*(-1), 2 ); //显示负浮点数-tmp_f, 小数位2位
00FC 82E0 ldi R24,2
00FE 8C83 std y+4,R24
0100 00E0 ldi R16,<L11
0102 10E0 ldi R17,>L11
0104 0E940000 xcall lpm32
0108 CE01 movw R24,R28
010A 0996 adiw R24,9
010C 9A93 st -y,R25
010E 8A93 st -y,R24
0110 0E940000 xcall fpmule1
0114 0883 std y+0,R16
0116 1983 std y+1,R17
0118 2A83 std y+2,R18
011A 3B83 std y+3,R19
011C 27E0 ldi R18,7
011E 01E0 ldi R16,1
0120 0E940000 xcall _LCD_write_datafloat
0124 .dbline 30
0124 ;
0124 ; if( i == 1233 )
0124 41ED ldi R20,209
0126 54E0 ldi R21,4
0128 60E0 ldi R22,0
012A 70E0 ldi R23,0
012C 2D80 ldd R2,y+5
012E 3E80 ldd R3,y+6
0130 4F80 ldd R4,y+7
0132 5884 ldd R5,y+8
0134 2416 cp R2,R20
0136 3506 cpc R3,R21
0138 4606 cpc R4,R22
013A 5706 cpc R5,R23
013C C1F4 brne L12
013E X0:
013E .dbline 31
013E ; {
013E .dbline 32
013E ; LCD_write_string( 1, 0, " " ); //清第一行数据
013E 80E0 ldi R24,<L5
0140 90E0 ldi R25,>L5
0142 9983 std y+1,R25
0144 8883 std y+0,R24
0146 2227 clr R18
0148 01E0 ldi R16,1
014A 0E940000 xcall _LCD_write_string
014E .dbline 33
014E ; LCD_write_string( 2, 0, " " ); //清第二行数据
014E 80E0 ldi R24,<L5
0150 90E0 ldi R25,>L5
0152 9983 std y+1,R25
0154 8883 std y+0,R24
0156 2227 clr R18
0158 02E0 ldi R16,2
015A 0E940000 xcall _LCD_write_string
015E .dbline 34
015E ; i = 0;
015E 40E0 ldi R20,0
0160 50E0 ldi R21,0
0162 60E0 ldi R22,0
0164 70E0 ldi R23,0
0166 4D83 std y+5,R20
0168 5E83 std y+6,R21
016A 6F83 std y+7,R22
016C 7887 std y+8,R23
016E .dbline 35
016E ; }
016E L12:
016E .dbline 36
016E ; }
016E L7:
016E .dbline 20
016E 41E0 ldi R20,1
0170 50E0 ldi R21,0
0172 60E0 ldi R22,0
0174 70E0 ldi R23,0
0176 2D80 ldd R2,y+5
0178 3E80 ldd R3,y+6
017A 4F80 ldd R4,y+7
017C 5884 ldd R5,y+8
017E 240E add R2,R20
0180 351E adc R3,R21
0182 461E adc R4,R22
0184 571E adc R5,R23
0186 2D82 std y+5,R2
0188 3E82 std y+6,R3
018A 4F82 std y+7,R4
018C 5886 std y+8,R5
018E .dbline 20
018E 42ED ldi R20,210
0190 54E0 ldi R21,4
0192 60E0 ldi R22,0
0194 70E0 ldi R23,0
0196 2D80 ldd R2,y+5
0198 3E80 ldd R3,y+6
019A 4F80 ldd R4,y+7
019C 5884 ldd R5,y+8
019E 2416 cp R2,R20
01A0 3506 cpc R3,R21
01A2 4606 cpc R4,R22
01A4 5706 cpc R5,R23
01A6 0CF4 brge X2
01A8 5BCF xjmp L6
01AA X2:
01AA X1:
01AA .dbline -2
01AA L2:
01AA .dbline 0 ; func end
01AA 2D96 adiw R28,13
01AC 0895 ret
01AE .dbsym l tmp_f 9 D
01AE .dbsym l i 5 L
01AE .dbend
.area lit(rom, con, rel)
0000 L11:
0000 000080BF .word 0x0,0xbf80
0004 L10:
0004 B6F39D3F .word 0xf3b6,0x3f9d
.area data(ram, con, rel)
0000 .dbfile E:\avr\1602测试程序\main.c
0000 L5:
0000 .blkb 25
.area idata
0000 20202020202020202020202020202020 .byte 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
0010 202020202020202000 .byte 32,32,32,32,32,32,32,32,0
.area data(ram, con, rel)
0019 .dbfile E:\avr\1602测试程序\main.c
0019 L4:
0019 .blkb 9
.area idata
0019 54455354204C434400 .byte 'T,'E,'S,'T,32,'L,'C,'D,0
.area data(ram, con, rel)
0022 .dbfile E:\avr\1602测试程序\main.c
.area lit(rom, con, rel)
0008 L3:
0008 00000000 .word 0x0,0x0
000C ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -