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

📄 adc.lis

📁 LCD1602来显示通过AVR ADC0采集的信号
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 01FC FA01              movw R30,R20
 01FE A690              elpm R10,Z
 0200                   .dbline 173
 0200           ;               PORTD = t;
 0200 A2BA              out 0x12,R10
 0202                   .dbline 174
 0202           ;               PORTA|=(1<<EN);
 0202 DF9A              sbi 0x1b,7
 0204                   .dbline 175
 0204           ;               s_ms(50);
 0204 02E3              ldi R16,50
 0206 10E0              ldi R17,0
 0208 FBDE              xcall _s_ms
 020A                   .dbline 176
 020A           ;               PORTA&=~(1<<EN);                                
 020A DF98              cbi 0x1b,7
 020C                   .dbline 177
 020C           ;               pBuffer++;
 020C 4F5F              subi R20,255  ; offset = 1
 020E 5F4F              sbci R21,255
 0210                   .dbline 178
 0210           ;       }
 0210           L25:
 0210                   .dbline 170
 0210 6395              inc R22
 0212           L27:
 0212                   .dbline 170
 0212 6031              cpi R22,16
 0214 98F3              brlo L24
 0216           X4:
 0216                   .dbline -2
 0216           L19:
 0216                   .dbline 0 ; func end
 0216 0C940000          xjmp pop_xgsetF00C
 021A                   .dbsym r t 10 c
 021A                   .dbsym r i 22 c
 021A                   .dbsym r pBuffer 20 pkc
 021A                   .dbend
 021A                   .dbfunc e WriteNum _WriteNum fV
 021A           ;            num -> R20,R21
 021A           ;            col -> R10,R11
 021A           ;            row -> R22,R23
                        .even
 021A           _WriteNum::
 021A 0E940000          xcall push_xgsetF00C
 021E 5901              movw R10,R18
 0220 B801              movw R22,R16
 0222 4E81              ldd R20,y+6
 0224 5F81              ldd R21,y+7
 0226                   .dbline -1
 0226                   .dbline 188
 0226           ; }
 0226           ; //====================================================
 0226           ; // 描述:在任意位置写数字函数
 0226           ; // 入口:’row‘表示要写数字所在的行地址,只能为1或2
 0226           ; //       ’col‘表示要写数字所在的列地址,只能为0--15
 0226           ; //             ‘num’表示要写的数字,只能为0--9
 0226           ; // 出口:无
 0226           ; //===================================================
 0226           ; void  WriteNum(uint   row,uint        col,uint         num)
 0226           ; {
 0226                   .dbline 189
 0226           ;       if (row == 1)   row = 0x80 + col;
 0226 6130              cpi R22,1
 0228 E0E0              ldi R30,0
 022A 7E07              cpc R23,R30
 022C 21F4              brne L29
 022E           X5:
 022E                   .dbline 189
 022E B501              movw R22,R10
 0230 6058              subi R22,128  ; offset = 128
 0232 7F4F              sbci R23,255
 0234 03C0              xjmp L30
 0236           L29:
 0236                   .dbline 190
 0236           ;       else    row = 0xC0 + col;
 0236 B501              movw R22,R10
 0238 6054              subi R22,64  ; offset = 192
 023A 7F4F              sbci R23,255
 023C           L30:
 023C                   .dbline 191
 023C           ;       writecom(row);
 023C 062F              mov R16,R22
 023E 14DF              xcall _writecom
 0240                   .dbline 192
 0240           ;       if (num<=0 | num>9)     num =0x30;
 0240 4030              cpi R20,0
 0242 4507              cpc R20,R21
 0244 21F4              brne L33
 0246           X6:
 0246 81E0              ldi R24,1
 0248 90E0              ldi R25,0
 024A 5C01              movw R10,R24
 024C 02C0              xjmp L34
 024E           L33:
 024E AA24              clr R10
 0250 BB24              clr R11
 0252           L34:
 0252 89E0              ldi R24,9
 0254 90E0              ldi R25,0
 0256 8417              cp R24,R20
 0258 9507              cpc R25,R21
 025A 18F4              brsh L35
 025C           X7:
 025C 61E0              ldi R22,1
 025E 70E0              ldi R23,0
 0260 02C0              xjmp L36
 0262           L35:
 0262 6627              clr R22
 0264 7727              clr R23
 0266           L36:
 0266 1501              movw R2,R10
 0268 262A              or R2,R22
 026A 372A              or R3,R23
 026C 2220              tst R2
 026E 11F4              brne X8
 0270 3320              tst R3
 0272 19F0              breq L31
 0274           X8:
 0274                   .dbline 192
 0274 40E3              ldi R20,48
 0276 50E0              ldi R21,0
 0278 02C0              xjmp L32
 027A           L31:
 027A                   .dbline 193
 027A           ;       else    num = 0x30 + num;
 027A 405D              subi R20,208  ; offset = 48
 027C 5F4F              sbci R21,255
 027E           L32:
 027E                   .dbline 195
 027E           ; 
 027E           ;       PORTA|=(1<<RS);
 027E DD9A              sbi 0x1b,5
 0280                   .dbline 196
 0280           ;       s_ms(500);
 0280 04EF              ldi R16,500
 0282 11E0              ldi R17,1
 0284 BDDE              xcall _s_ms
 0286                   .dbline 197
 0286           ;       PORTA&=~(1<<RW);
 0286 DE98              cbi 0x1b,6
 0288                   .dbline 198
 0288           ;       s_ms(500);
 0288 04EF              ldi R16,500
 028A 11E0              ldi R17,1
 028C B9DE              xcall _s_ms
 028E                   .dbline 199
 028E           ;       PORTD = num;
 028E 42BB              out 0x12,R20
 0290                   .dbline 200
 0290           ;       s_ms(500);
 0290 04EF              ldi R16,500
 0292 11E0              ldi R17,1
 0294 B5DE              xcall _s_ms
 0296                   .dbline 201
 0296           ;       PORTA|=(1<<EN);
 0296 DF9A              sbi 0x1b,7
 0298                   .dbline 202
 0298           ;       s_ms(500);
 0298 04EF              ldi R16,500
 029A 11E0              ldi R17,1
 029C B1DE              xcall _s_ms
 029E                   .dbline 203
 029E           ;       PORTA&=~(1<<EN);        
 029E DF98              cbi 0x1b,7
 02A0                   .dbline 204
 02A0           ;       s_ms(500);                      
 02A0 04EF              ldi R16,500
 02A2 11E0              ldi R17,1
 02A4 ADDE              xcall _s_ms
 02A6                   .dbline -2
 02A6           L28:
 02A6                   .dbline 0 ; func end
 02A6 0C940000          xjmp pop_xgsetF00C
 02AA                   .dbsym r num 20 i
 02AA                   .dbsym r col 10 i
 02AA                   .dbsym r row 22 i
 02AA                   .dbend
 02AA                   .dbfunc e WriteChar _WriteChar fV
 02AA           ;              t -> R12
 02AA           ;              i -> R10
 02AA           ;        pBuffer -> R20,R21
 02AA           ;            num -> y+8
 02AA           ;            col -> R10
 02AA           ;            row -> R22
                        .even
 02AA           _WriteChar::
 02AA 0E940000          xcall push_xgsetF03C
 02AE A22E              mov R10,R18
 02B0 602F              mov R22,R16
 02B2 4A85              ldd R20,y+10
 02B4 5B85              ldd R21,y+11
 02B6                   .dbline -1
 02B6                   .dbline 214
 02B6           ; }
 02B6           ; //================================================================
 02B6           ; // 描述:在任意位置写任意多个字符
 02B6           ; // 入口:’row‘要写的字符所在的行,只能为1或2;
 02B6           ; //       ‘col’要写的字符所在的列,只能为0---15
 02B6           ; //       ‘num’要写字符的个数
 02B6           ; //       ‘pbuffer’要写字符的首地址
 02B6           ; //================================================================== 
 02B6           ; void  WriteChar(uchar row,uchar col,uint num,uchar *pBuffer)
 02B6           ; {
 02B6                   .dbline 216
 02B6           ;       uchar i,t;
 02B6           ;       if (row == 1)   row = 0x80 + col;
 02B6 6130              cpi R22,1
 02B8 19F4              brne L38
 02BA           X9:
 02BA                   .dbline 216
 02BA 6A2D              mov R22,R10
 02BC 6058              subi R22,128    ; addi 128
 02BE 02C0              xjmp L39
 02C0           L38:
 02C0                   .dbline 217
 02C0           ;       else    row = 0xC0 + col;
 02C0 6A2D              mov R22,R10
 02C2 6054              subi R22,64    ; addi 192
 02C4           L39:
 02C4                   .dbline 218
 02C4           ;       writecom(row);
 02C4 062F              mov R16,R22
 02C6 D0DE              xcall _writecom
 02C8                   .dbline 222
 02C8           ;       //if (num<=0 | num>9)   num =0x30;
 02C8           ;       //else  num = 0x30 + num;
 02C8           ; 
 02C8           ;       PORTA|=(1<<RS);
 02C8 DD9A              sbi 0x1b,5
 02CA                   .dbline 223
 02CA           ;       s_ms(500);
 02CA 04EF              ldi R16,500
 02CC 11E0              ldi R17,1
 02CE 98DE              xcall _s_ms
 02D0                   .dbline 224
 02D0           ;       PORTA&=~(1<<RW);
 02D0 DE98              cbi 0x1b,6
 02D2                   .dbline 225
 02D2           ;       s_ms(500);
 02D2 04EF              ldi R16,500
 02D4 11E0              ldi R17,1
 02D6 94DE              xcall _s_ms
 02D8                   .dbline 226
 02D8           ;       for(i=num;i!=0;i--)
 02D8 A884              ldd R10,y+8
 02DA 14C0              xjmp L43
 02DC           L40:
 02DC                   .dbline 227
 02DC           ;       {
 02DC                   .dbline 228
 02DC           ;               t = *pBuffer;
 02DC FA01              movw R30,R20
 02DE C080              ldd R12,z+0
 02E0                   .dbline 229
 02E0           ;               s_ms(500);
 02E0 04EF              ldi R16,500
 02E2 11E0              ldi R17,1
 02E4 8DDE              xcall _s_ms
 02E6                   .dbline 230
 02E6           ;               PORTD = t;
 02E6 C2BA              out 0x12,R12
 02E8                   .dbline 231
 02E8           ;               s_ms(500);
 02E8 04EF              ldi R16,500
 02EA 11E0              ldi R17,1
 02EC 89DE              xcall _s_ms
 02EE                   .dbline 232
 02EE           ;               PORTA|=(1<<EN);
 02EE DF9A              sbi 0x1b,7
 02F0                   .dbline 233
 02F0           ;               s_ms(500);
 02F0 04EF              ldi R16,500
 02F2 11E0              ldi R17,1
 02F4 85DE              xcall _s_ms
 02F6                   .dbline 234
 02F6           ;               PORTA&=~(1<<EN);                
 02F6 DF98              cbi 0x1b,7
 02F8                   .dbline 235
 02F8           ;               s_ms(500);              
 02F8 04EF              ldi R16,500
 02FA 11E0              ldi R17,1
 02FC 81DE              xcall _s_ms
 02FE                   .dbline 236
 02FE           ;               pBuffer++;
 02FE 4F5F              subi R20,255  ; offset = 1
 0300 5F4F              sbci R21,255
 0302                   .dbline 237
 0302           ;       }
 0302           L41:
 0302                   .dbline 226
 0302 AA94              dec R10
 0304           L43:
 0304                   .dbline 226
 0304 AA20              tst R10
 0306 51F7              brne L40
 0308           X10:
 0308                   .dbline -2
 0308           L37:
 0308                   .dbline 0 ; func end
 0308 0C940000          xjmp pop_xgsetF03C
 030C                   .dbsym r t 12 c
 030C                   .dbsym r i 10 c
 030C                   .dbsym r pBuffer 20 pc
 030C                   .dbsym l num 8 i
 030C                   .dbsym r col 10 c
 030C                   .dbsym r row 22 c
 030C                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile D:\实验程序\模数转换\adc_1602\1602.h
 0000           _adc_0::
 0000                   .blkb 12
                        .area idata
 0000 4144435F303A202E20205600  .byte 'A,'D,'C,95,48,58,32,46,32,32,'V,0
                        .area data(ram, con, rel)
 000C                   .dbfile D:\实验程序\模数转换\adc_1602\1602.h
 000C                   .dbfile D:\实验程序\模数转换\adc_1602\ADC.c
 000C                   .dbsym e adc_0 _adc_0 A[12:12]c
 000C           _adc_1::
 000C                   .blkb 12
                        .area idata
 000C 4144435F313A202E20205600  .byte 'A,'D,'C,95,49,58,32,46,32,32,'V,0
                        .area data(ram, con, rel)
 0018                   .dbfile D:\实验程序\模数转换\adc_1602\ADC.c
 0018                   .dbsym e adc_1 _adc_1 A[12:12]c

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -