📄 m128_my.lis
字号:
.even
00F0 _asc_tran1::
00F0 0E940000 xcall push_gset2
00F4 422F mov R20,R18
00F6 602F mov R22,R16
00F8 .dbline -1
00F8 .dbline 97
00F8 ; }
00F8 ;
00F8 ;
00F8 ; /* 传送ASCII字母到LCD */
00F8 ; /* x:0x00~0x0f y:0~64 */
00F8 ; void asc_tran1(unsigned char x,unsigned char y,unsigned char *asc_p)
00F8 ; {
00F8 .dbline 98
00F8 ; x+=4;
00F8 6C5F subi R22,252 ; addi 4
00FA .dbline 100
00FA ; //while((*asc_p)!=0)
00FA ; {
00FA .dbline 101
00FA ; ocmj_write(0xf1);
00FA 01EF ldi R16,241
00FC 10E0 ldi R17,0
00FE 0E940000 xcall _ocmj_write
0102 .dbline 102
0102 ; ocmj_write(x);
0102 062F mov R16,R22
0104 1127 clr R17
0106 0E940000 xcall _ocmj_write
010A .dbline 103
010A ; ocmj_write(y);
010A 042F mov R16,R20
010C 1127 clr R17
010E 0E940000 xcall _ocmj_write
0112 .dbline 104
0112 ; ocmj_write(*asc_p);
0112 EC81 ldd R30,y+4
0114 FD81 ldd R31,y+5
0116 0081 ldd R16,z+0
0118 1127 clr R17
011A 0E940000 xcall _ocmj_write
011E .dbline 105
011E ; asc_p++;
011E 8C81 ldd R24,y+4
0120 9D81 ldd R25,y+5
0122 0196 adiw R24,1
0124 9D83 std y+5,R25
0126 8C83 std y+4,R24
0128 .dbline 106
0128 ; if (x<0x13)
0128 6331 cpi R22,19
012A 10F4 brsh L10
012C .dbline 107
012C ; x++;
012C 6395 inc R22
012E 02C0 xjmp L11
0130 L10:
0130 .dbline 109
0130 ; else
0130 ; {
0130 .dbline 110
0130 ; x=0x04;
0130 64E0 ldi R22,4
0132 .dbline 111
0132 ; y+=8;
0132 485F subi R20,248 ; addi 8
0134 .dbline 112
0134 ; }
0134 L11:
0134 .dbline 113
0134 ; }
0134 .dbline -2
0134 L9:
0134 0E940000 xcall pop_gset2
0138 .dbline 0 ; func end
0138 0895 ret
013A .dbsym l asc_p 4 pc
013A .dbsym r y 20 c
013A .dbsym r x 22 c
013A .dbend
.area lit(rom, con, rel)
0000 L13:
0000 3031 .byte 48,49
0002 3233 .byte 50,51
0004 3435 .byte 52,53
0006 3637 .byte 54,55
0008 3839 .byte 56,57
000A 2D2B .byte 45,43
.area text(rom, con, rel)
013A .dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\a___EWTS82\m128_my.c
013A .dbfunc e main _main fI
013A ; j -> R20
013A ; code -> y+2
013A ; a -> R22,R23
013A ; i -> R10,R11
013A ; x -> R12,R13
.even
013A _main::
013A 2E97 sbiw R28,14
013C .dbline -1
013C .dbline 119
013C ; }
013C ;
013C ;
013C ;
013C ; main()
013C ; {
013C .dbline 120
013C ; int x=0,a=0,i=0;
013C CC24 clr R12
013E DD24 clr R13
0140 .dbline 120
0140 6627 clr R22
0142 7727 clr R23
0144 .dbline 120
0144 AA24 clr R10
0146 BB24 clr R11
0148 .dbline 121
0148 ; char j=0;
0148 4427 clr R20
014A .dbline 122
014A ; char code[]={'0','1','2','3','4','5','6','7','8','9','-','+',};
014A 80E0 ldi R24,<L13
014C 90E0 ldi R25,>L13
014E FE01 movw R30,R28
0150 3296 adiw R30,2
0152 0CE0 ldi R16,12
0154 10E0 ldi R17,0
0156 FA93 st -y,R31
0158 EA93 st -y,R30
015A 9A93 st -y,R25
015C 8A93 st -y,R24
015E 0E940000 xcall asgncblk
0162 .dbline 123
0162 ; DDRD=0x00;
0162 2224 clr R2
0164 21BA out 0x11,R2
0166 .dbline 124
0166 ; PORTD=0x03;
0166 83E0 ldi R24,3
0168 82BB out 0x12,R24
016A .dbline 127
016A ;
016A ; //while(1);
016A ; init_devices();
016A 74DF xcall _init_devices
016C .dbline 129
016C ;
016C ; ocmj_init();//初始化
016C 0E940000 xcall _ocmj_init
0170 .dbline 130
0170 ; ocmj_write(0xf4);//清屏
0170 04EF ldi R16,244
0172 10E0 ldi R17,0
0174 0E940000 xcall _ocmj_write
0178 .dbline 131
0178 ; hz_tran(3,0,"数模转换");//传送内部汉字
0178 80E0 ldi R24,<L14
017A 90E0 ldi R25,>L14
017C 9983 std y+1,R25
017E 8883 std y+0,R24
0180 2227 clr R18
0182 3327 clr R19
0184 03E0 ldi R16,3
0186 10E0 ldi R17,0
0188 0E940000 xcall _hz_tran
018C .dbline 135
018C ;
018C ;
018C ;
018C ; DDRB=0x03;
018C 83E0 ldi R24,3
018E 87BB out 0x17,R24
0190 .dbline 136
0190 ; PORTB=0xfc;
0190 8CEF ldi R24,252
0192 88BB out 0x18,R24
0194 5BC0 xjmp L16
0196 L15:
0196 .dbline 139
0196 ; //while(1);
0196 ; while(1)
0196 ; { for(j=0;j<128;j++)
0196 .dbline 139
0196 4427 clr R20
0198 52C0 xjmp L21
019A L18:
019A .dbline 140
019A ; { x=v;
019A .dbline 140
019A C0900000 lds R12,_v
019E D0900100 lds R13,_v+1
01A2 .dbline 141
01A2 ; pset(j,x/17);
01A2 21E1 ldi R18,17
01A4 30E0 ldi R19,0
01A6 8601 movw R16,R12
01A8 0E940000 xcall div16s
01AC 9801 movw R18,R16
01AE 042F mov R16,R20
01B0 1127 clr R17
01B2 0E940000 xcall _pset
01B6 .dbline 142
01B6 ; for(i=0;i<7;i++)
01B6 AA24 clr R10
01B8 BB24 clr R11
01BA L22:
01BA .dbline 143
01BA ; {
01BA .dbline 144
01BA ; if (x<0)
01BA C601 movw R24,R12
01BC 8030 cpi R24,0
01BE E0E0 ldi R30,0
01C0 9E07 cpc R25,R30
01C2 64F4 brge L26
01C4 .dbline 145
01C4 ; {x=-x;asc_tran1(9-7,50,& code[10]);}
01C4 .dbline 145
01C4 8095 com R24
01C6 9095 com R25
01C8 8F5F subi R24,0xFF
01CA 9F4F sbci R25,0xFF
01CC 6C01 movw R12,R24
01CE .dbline 145
01CE CE01 movw R24,R28
01D0 0C96 adiw R24,12
01D2 9983 std y+1,R25
01D4 8883 std y+0,R24
01D6 22E3 ldi R18,50
01D8 02E0 ldi R16,2
01DA 8ADF xcall _asc_tran1
01DC .dbline 145
01DC L26:
01DC .dbline 146
01DC 2AE0 ldi R18,10
01DE 30E0 ldi R19,0
01E0 8601 movw R16,R12
01E2 0E940000 xcall mod16s
01E6 B801 movw R22,R16
01E8 .dbline 147
01E8 CE01 movw R24,R28
01EA 0296 adiw R24,2
01EC 1B01 movw R2,R22
01EE 280E add R2,R24
01F0 391E adc R3,R25
01F2 3982 std y+1,R3
01F4 2882 std y+0,R2
01F6 22E3 ldi R18,50
01F8 0AE0 ldi R16,10
01FA 0A19 sub R16,R10
01FC 1B09 sbc R17,R11
01FE 78DF xcall _asc_tran1
0200 .dbline 148
0200 2AE0 ldi R18,10
0202 30E0 ldi R19,0
0204 8601 movw R16,R12
0206 0E940000 xcall div16s
020A 6801 movw R12,R16
020C .dbline 149
020C L23:
020C .dbline 142
020C C501 movw R24,R10
020E 0196 adiw R24,1
0210 5C01 movw R10,R24
0212 .dbline 142
0212 8730 cpi R24,7
0214 E0E0 ldi R30,0
0216 9E07 cpc R25,R30
0218 84F2 brlt L22
021A .dbline 150
021A ; a=x%10;
021A ; asc_tran1(10-i,50,& code[a]);
021A ; x=x/10;
021A ; } //for
021A ; delay_ms(1);
021A 01E0 ldi R16,1
021C 10E0 ldi R17,0
021E 0E940000 xcall _delay_ms
0222 .dbline 151
0222 ; if (time>100)
0222 84E6 ldi R24,100
0224 90E0 ldi R25,0
0226 20900200 lds R2,_time
022A 30900300 lds R3,_time+1
022E 8215 cp R24,R2
0230 9305 cpc R25,R3
0232 20F4 brsh L29
0234 .dbline 152
0234 ; { EIMSK = 0x03;
0234 .dbline 152
0234 83E0 ldi R24,3
0236 89BF out 0x39,R24
0238 .dbline 153
0238 ; PORTB=0xfc;
0238 8CEF ldi R24,252
023A 88BB out 0x18,R24
023C .dbline 154
023C ; }
023C L29:
023C .dbline 157
023C L19:
023C .dbline 139
023C 4395 inc R20
023E L21:
023E .dbline 139
023E 4038 cpi R20,128
0240 08F4 brsh X1
0242 ABCF xjmp L18
0244 X1:
0244 .dbline 158
0244 04EF ldi R16,244
0246 10E0 ldi R17,0
0248 0E940000 xcall _ocmj_write
024C .dbline 159
024C L16:
024C .dbline 138
024C A4CF xjmp L15
024E X0:
024E .dbline -2
024E L12:
024E 2E96 adiw R28,14
0250 .dbline 0 ; func end
0250 0895 ret
0252 .dbsym r j 20 c
0252 .dbsym l code 2 A[12:12]c
0252 .dbsym r a 22 I
0252 .dbsym r i 10 I
0252 .dbsym r x 12 I
0252 .dbend
.area data(ram, con, rel)
0004 .dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\a___EWTS82\m128_my.c
0004 L14:
0004 .blkb 9
.area idata
0004 CAFDC4A3D7AABBBB00 .byte 202,253,196,163,215,170,187,187,0
.area data(ram, con, rel)
000D .dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\a___EWTS82\m128_my.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -