⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 max144_test.lis

📁 max144源代码
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 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 + -