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

📄 adc-1602.lis

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

⌨️ 快捷键说明

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