📄 max144_test.lis
字号:
01E2 0E940000 xcall div16s
01E6 C801 movw R24,R16
01E8 C096 adiw R24,48
01EA 8883 std y+0,R24
01EC .dbline 140
01EC 28EE ldi R18,1000
01EE 33E0 ldi R19,3
01F0 8701 movw R16,R14
01F2 0E940000 xcall mod16s
01F6 7801 movw R14,R16
01F8 .dbline 141
01F8 ; data[1]=dat/100+0x30; dat%=100;
01F8 24E6 ldi R18,100
01FA 30E0 ldi R19,0
01FC 0E940000 xcall div16s
0200 C801 movw R24,R16
0202 C096 adiw R24,48
0204 8983 std y+1,R24
0206 .dbline 141
0206 24E6 ldi R18,100
0208 30E0 ldi R19,0
020A 8701 movw R16,R14
020C 0E940000 xcall mod16s
0210 7801 movw R14,R16
0212 .dbline 142
0212 ; data[2]=dat/10+0x30;
0212 2AE0 ldi R18,10
0214 30E0 ldi R19,0
0216 0E940000 xcall div16s
021A C801 movw R24,R16
021C C096 adiw R24,48
021E 8A83 std y+2,R24
0220 .dbline 143
0220 ; data[3]=dat%10+0x30;
0220 2AE0 ldi R18,10
0222 30E0 ldi R19,0
0224 8701 movw R16,R14
0226 0E940000 xcall mod16s
022A C801 movw R24,R16
022C C096 adiw R24,48
022E 8B83 std y+3,R24
0230 .dbline 145
0230 ;
0230 ; LCD_set_xy(X,Y);
0230 2C2D mov R18,R12
0232 0A2D mov R16,R10
0234 2EDF xcall _LCD_set_xy
0236 .dbline 146
0236 ; for(i=0;i<4;i++)
0236 4427 clr R20
0238 0BC0 xjmp L43
023A L40:
023A .dbline 147
023A ; LCD_write_char(0,data[i]);
023A CE01 movw R24,R28
023C E42F mov R30,R20
023E FF27 clr R31
0240 E80F add R30,R24
0242 F91F adc R31,R25
0244 2081 ldd R18,z+0
0246 3327 clr R19
0248 0027 clr R16
024A 1127 clr R17
024C 3ADF xcall _LCD_write_char
024E L41:
024E .dbline 146
024E 4395 inc R20
0250 L43:
0250 .dbline 146
0250 4430 cpi R20,4
0252 98F3 brlo L40
0254 X8:
0254 .dbline -2
0254 L36:
0254 .dbline 0 ; func end
0254 2496 adiw R28,4
0256 0C940000 xjmp pop_xgset30FC
025A .dbsym l data 0 A[4:4]c
025A .dbsym r i 20 c
025A .dbsym r dat 14 I
025A .dbsym r Y 12 c
025A .dbsym r X 10 c
025A .dbend
025A .dbfile D:\iccavr\mega16\11\max144\max144.h
025A .dbfunc e max144_read _max144_read fV
025A ; adc -> y+0
025A ; adc_temp -> R10,R11
025A ; temp -> R12
.even
025A _max144_read::
025A 0E940000 xcall push_xgsetF03C
025E 2497 sbiw R28,4
0260 .dbline -1
0260 .dbline 14
0260 ; //**********ADC口线定义**********//
0260 ; #define adc_cs PA5
0260 ; #define adc_sdat PA6
0260 ; #define adc_sclk PA7
0260 ; #define adc_port PORTA
0260 ; #define adc_ddr DDRA
0260 ; #define adc_pin PINA
0260 ;
0260 ; unsigned int adc_out1,adc_out0;
0260 ; unsigned int adcttemp[2][15];
0260 ; unsigned int adcfirst[2];
0260 ;
0260 ; void max144_read(void)
0260 ; {
0260 .dbline 16
0260 ; unsigned char temp;
0260 ; unsigned int adc_temp=0;
0260 AA24 clr R10
0262 BB24 clr R11
0264 .dbline 20
0264 ; unsigned long adc;
0264 ;
0264 ; /*********max144模拟SPI口线设置**********/
0264 ; adc_port|=BIT(adc_cs)|BIT(adc_sdat)|BIT(adc_sclk);
0264 8BB3 in R24,0x1b
0266 806E ori R24,224
0268 8BBB out 0x1b,R24
026A .dbline 21
026A ; adc_ddr|=BIT(adc_cs)|BIT(adc_sclk);
026A 8AB3 in R24,0x1a
026C 806A ori R24,160
026E 8ABB out 0x1a,R24
0270 .dbline 22
0270 ; adc_ddr&=~BIT(adc_sdat);
0270 D698 cbi 0x1a,6
0272 .dbline 24
0272 ;
0272 ; adc_port|=BIT(adc_cs);
0272 DD9A sbi 0x1b,5
0274 .dbline 25
0274 ; adc_port|=BIT(adc_sclk);
0274 DF9A sbi 0x1b,7
0276 .dbline 26
0276 ; adc_port&=~BIT(adc_cs);
0276 DD98 cbi 0x1b,5
0278 .dbline 27
0278 ; asm("nop");asm("nop");asm("nop");asm("nop");
0278 0000 nop
027A .dbline 27
027A 0000 nop
027C .dbline 27
027C 0000 nop
027E .dbline 27
027E 0000 nop
0280 .dbline 28
0280 ; adc_port&=~BIT(adc_sclk);
0280 DF98 cbi 0x1b,7
0282 05C0 xjmp L46
0284 L45:
0284 .dbline 30
0284 ; while(1)
0284 ; {
0284 .dbline 31
0284 ; if((adc_pin&BIT(adc_sdat))==BIT(adc_sdat))
0284 89B3 in R24,0x19
0286 8074 andi R24,64
0288 8034 cpi R24,64
028A 09F4 brne L48
028C X9:
028C .dbline 32
028C ; break;
028C 01C0 xjmp L47
028E L48:
028E .dbline 33
028E ; }
028E L46:
028E .dbline 29
028E FACF xjmp L45
0290 L47:
0290 .dbline 34
0290 ; temp=16; while(temp--)
0290 80E1 ldi R24,16
0292 C82E mov R12,R24
0294 0BC0 xjmp L51
0296 L50:
0296 .dbline 35
0296 ; {
0296 .dbline 36
0296 ; adc_port|=BIT(adc_sclk);
0296 DF9A sbi 0x1b,7
0298 .dbline 37
0298 ; if((adc_pin&BIT(adc_sdat))==BIT(adc_sdat))
0298 89B3 in R24,0x19
029A 8074 andi R24,64
029C 8034 cpi R24,64
029E 19F4 brne L53
02A0 X10:
02A0 .dbline 38
02A0 ; adc_temp++;
02A0 C501 movw R24,R10
02A2 0196 adiw R24,1
02A4 5C01 movw R10,R24
02A6 L53:
02A6 .dbline 39
02A6 ; adc_temp=adc_temp<<1;
02A6 AA0C lsl R10
02A8 BB1C rol R11
02AA .dbline 40
02AA ; adc_port&=~BIT(adc_sclk);
02AA DF98 cbi 0x1b,7
02AC .dbline 41
02AC ; }
02AC L51:
02AC .dbline 34
02AC 2C2C mov R2,R12
02AE 3324 clr R3
02B0 822D mov R24,R2
02B2 8150 subi R24,1
02B4 C82E mov R12,R24
02B6 2220 tst R2
02B8 71F7 brne L50
02BA X11:
02BA .dbline 42
02BA ; adc_port|=BIT(adc_cs);
02BA DD9A sbi 0x1b,5
02BC .dbline 44
02BC ;
02BC ; if((adc_temp&0x2000)==0x2000)
02BC C501 movw R24,R10
02BE 8070 andi R24,0
02C0 9072 andi R25,32
02C2 8030 cpi R24,0
02C4 A0E2 ldi R26,32
02C6 9A07 cpc R25,R26
02C8 09F0 breq X15
02CA 67C0 xjmp L55
02CC X15:
02CC X12:
02CC .dbline 45
02CC ; {
02CC .dbline 46
02CC ; adcfirst[0]=(adc_temp>>1)&0xfff;
02CC C501 movw R24,R10
02CE 9695 lsr R25
02D0 8795 ror R24
02D2 9F70 andi R25,15
02D4 90930100 sts _adcfirst+1,R25
02D8 80930000 sts _adcfirst,R24
02DC .dbline 47
02DC ; adc_temp&=0x1ffc;
02DC C501 movw R24,R10
02DE 8C7F andi R24,252
02E0 9F71 andi R25,31
02E2 5C01 movw R10,R24
02E4 .dbline 48
02E4 ; adc=adc_temp;
02E4 1C01 movw R2,R24
02E6 4424 clr R4
02E8 5524 clr R5
02EA 2882 std y+0,R2
02EC 3982 std y+1,R3
02EE 4A82 std y+2,R4
02F0 5B82 std y+3,R5
02F2 .dbline 49
02F2 ; adcttemp[0][14]=adc_temp;
02F2 B0922100 sts _adcttemp+28+1,R11
02F6 A0922000 sts _adcttemp+28,R10
02FA .dbline 50
02FA ; for(temp=0;temp<14;temp++)
02FA CC24 clr R12
02FC 2AC0 xjmp L61
02FE L58:
02FE .dbline 51
02FE ; {
02FE .dbline 52
02FE ; adcttemp[0][temp]=adcttemp[0][temp+1];
02FE 80E0 ldi R24,<_adcttemp
0300 90E0 ldi R25,>_adcttemp
0302 EC2D mov R30,R12
0304 FF27 clr R31
0306 3196 adiw R30,1
0308 EE0F lsl R30
030A FF1F rol R31
030C E80F add R30,R24
030E F91F adc R31,R25
0310 2080 ldd R2,z+0
0312 3180 ldd R3,z+1
0314 EC2D mov R30,R12
0316 FF27 clr R31
0318 EE0F lsl R30
031A FF1F rol R31
031C E80F add R30,R24
031E F91F adc R31,R25
0320 3182 std z+1,R3
0322 2082 std z+0,R2
0324 .dbline 53
0324 ; adc+=adcttemp[0][temp];
0324 EC2D mov R30,R12
0326 FF27 clr R31
0328 EE0F lsl R30
032A FF1F rol R31
032C E80F add R30,R24
032E F91F adc R31,R25
0330 2080 ldd R2,z+0
0332 3180 ldd R3,z+1
0334 4424 clr R4
0336 5524 clr R5
0338 6880 ldd R6,y+0
033A 7980 ldd R7,y+1
033C 8A80 ldd R8,y+2
033E 9B80 ldd R9,y+3
0340 620C add R6,R2
0342 731C adc R7,R3
0344 841C adc R8,R4
0346 951C adc R9,R5
0348 6882 std y+0,R6
034A 7982 std y+1,R7
034C 8A82 std y+2,R8
034E 9B82 std y+3,R9
0350 .dbline 54
0350 ; }
0350 L59:
0350 .dbline 50
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -