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

📄 lm1602.lis

📁 ds18b20+1602液晶显示 基于atmega16l单片机的编程
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 021E D1DF              xcall _DisNum
 0220                   .dbline 221
 0220           ;        DisNum(1, 7, minute%16);
 0220 10E1              ldi R17,16
 0222 042F              mov R16,R20
 0224 0E940000          xcall mod8u
 0228 0883              std y+0,R16
 022A 27E0              ldi R18,7
 022C 01E0              ldi R16,1
 022E C9DF              xcall _DisNum
 0230                   .dbline 222
 0230           ;        DisString(1, 8,":");
 0230 80E0              ldi R24,<L49
 0232 90E0              ldi R25,>L49
 0234 9983              std y+1,R25
 0236 8883              std y+0,R24
 0238 28E0              ldi R18,8
 023A 01E0              ldi R16,1
 023C A5DF              xcall _DisString
 023E                   .dbline 224
 023E           ;        
 023E           ;        DisNum(1, 10, second & 0x0f);
 023E 8E81              ldd R24,y+6
 0240 8F70              andi R24,15
 0242 8883              std y+0,R24
 0244 2AE0              ldi R18,10
 0246 01E0              ldi R16,1
 0248 BCDF              xcall _DisNum
 024A                   .dbline 225
 024A           ;        DisNum(1, 9, (second >> 4) &0x07);
 024A 8E81              ldd R24,y+6
 024C 8295              swap R24
 024E 8F70              andi R24,#0x0F
 0250 8770              andi R24,7
 0252 8883              std y+0,R24
 0254 29E0              ldi R18,9
 0256 01E0              ldi R16,1
 0258 B4DF              xcall _DisNum
 025A                   .dbline -2
 025A           L48:
 025A 2296              adiw R28,2
 025C 0E940000          xcall pop_gset2
 0260                   .dbline 0 ; func end
 0260 0895              ret
 0262                   .dbsym l second 6 c
 0262                   .dbsym r minute 20 c
 0262                   .dbsym r hour 22 c
 0262                   .dbend
 0262                   .dbfunc e LCD_Dis_Float _LCD_Dis_Float fV
 0262           ;       tempdata -> y+1
 0262           ;              i -> R20
 0262           ;         bvalue -> y+11
 0262           ;           ucol -> R22
 0262           ;           urow -> R10
                        .even
 0262           _LCD_Dis_Float::
 0262 0E940000          xcall push_gset3
 0266 622F              mov R22,R18
 0268 A02E              mov R10,R16
 026A 2597              sbiw R28,5
 026C                   .dbline -1
 026C                   .dbline 230
 026C           ; }
 026C           ; 
 026C           ; 
 026C           ; void LCD_Dis_Float(byte urow,byte ucol,byte bvalue)
 026C           ; {
 026C                   .dbline 234
 026C           ;    byte i;
 026C           ;    byte tempdata[4];
 026C           ;    
 026C           ;    tempdata[0] = (bvalue)/100;
 026C 14E6              ldi R17,100
 026E 0B85              ldd R16,y+11
 0270 0E940000          xcall div8u
 0274 0983              std y+1,R16
 0276                   .dbline 235
 0276           ;    if(tempdata[0]== 0) tempdata[0]= ' '-'0';
 0276 0023              tst R16
 0278 11F4              brne L51
 027A                   .dbline 235
 027A 80EF              ldi R24,240
 027C 8983              std y+1,R24
 027E           L51:
 027E                   .dbline 236
 027E           ;    tempdata[1] = (bvalue)%100/10;
 027E 14E6              ldi R17,100
 0280 0B85              ldd R16,y+11
 0282 0E940000          xcall mod8u
 0286 1AE0              ldi R17,10
 0288 0E940000          xcall div8u
 028C 0A83              std y+2,R16
 028E                   .dbline 237
 028E           ;    if((tempdata[0] == 0x00)&&(tempdata[1] == 0x00))
 028E 2980              ldd R2,y+1
 0290 2220              tst R2
 0292 21F4              brne L54
 0294 0023              tst R16
 0296 11F4              brne L54
 0298                   .dbline 238
 0298           ;    {
 0298                   .dbline 239
 0298           ;       tempdata[1] = ' '-'0';
 0298 80EF              ldi R24,240
 029A 8A83              std y+2,R24
 029C                   .dbline 240
 029C           ;    }
 029C           L54:
 029C                   .dbline 241
 029C           ;    tempdata[2] = (bvalue)%10;
 029C 1AE0              ldi R17,10
 029E 0B85              ldd R16,y+11
 02A0 0E940000          xcall mod8u
 02A4 0B83              std y+3,R16
 02A6                   .dbline 242
 02A6           ;    tempdata[3] = '.'-'0';
 02A6 8EEF              ldi R24,254
 02A8 8C83              std y+4,R24
 02AA                   .dbline 244
 02AA           ; 
 02AA           ;     for(i = 0;i<4;i++) 
 02AA 4427              clr R20
 02AC 0DC0              xjmp L63
 02AE           L60:
 02AE                   .dbline 245
 02AE CE01              movw R24,R28
 02B0 0196              adiw R24,1
 02B2 E42F              mov R30,R20
 02B4 FF27              clr R31
 02B6 E80F              add R30,R24
 02B8 F91F              adc R31,R25
 02BA 2080              ldd R2,z+0
 02BC 2882              std y+0,R2
 02BE 262F              mov R18,R22
 02C0 240F              add R18,R20
 02C2 0A2D              mov R16,R10
 02C4 7EDF              xcall _DisNum
 02C6           L61:
 02C6                   .dbline 244
 02C6 4395              inc R20
 02C8           L63:
 02C8                   .dbline 244
 02C8 4430              cpi R20,4
 02CA 88F3              brlo L60
 02CC                   .dbline -2
 02CC           L50:
 02CC 2596              adiw R28,5
 02CE 0E940000          xcall pop_gset3
 02D2                   .dbline 0 ; func end
 02D2 0895              ret
 02D4                   .dbsym l tempdata 1 A[4:4]c
 02D4                   .dbsym r i 20 c
 02D4                   .dbsym l bvalue 11 c
 02D4                   .dbsym r ucol 22 c
 02D4                   .dbsym r urow 10 c
 02D4                   .dbend
 02D4                   .dbfunc e LCD_Dis_Temperature _LCD_Dis_Temperature fV
 02D4           ;         rValue -> R10,R11
 02D4           ;           ucol -> R22
 02D4           ;           urow -> R20
                        .even
 02D4           _LCD_Dis_Temperature::
 02D4 0E940000          xcall push_gset3
 02D8 622F              mov R22,R18
 02DA 402F              mov R20,R16
 02DC 2297              sbiw R28,2
 02DE A884              ldd R10,y+8
 02E0 B984              ldd R11,y+9
 02E2                   .dbline -1
 02E2                   .dbline 249
 02E2           ;       DisNum(urow,ucol+i,tempdata[i]);
 02E2           ; }
 02E2           ; 
 02E2           ;  void LCD_Dis_Temperature(byte urow,byte ucol, unsigned int rValue)   //温度数据转换和显示函数
 02E2           ; {
 02E2                   .dbline 250
 02E2           ;     ClearLcd();
 02E2 E2DE              xcall _ClearLcd
 02E4                   .dbline 251
 02E4           ;       DisString(0,1,"Temperature is:");
 02E4 80E0              ldi R24,<L65
 02E6 90E0              ldi R25,>L65
 02E8 9983              std y+1,R25
 02EA 8883              std y+0,R24
 02EC 21E0              ldi R18,1
 02EE 0027              clr R16
 02F0 4BDF              xcall _DisString
 02F2                   .dbline 252
 02F2           ;    if((rValue &0xf800) == 0xf800)
 02F2 C501              movw R24,R10
 02F4 8070              andi R24,0
 02F6 987F              andi R25,248
 02F8 8030              cpi R24,0
 02FA E8EF              ldi R30,248
 02FC 9E07              cpc R25,R30
 02FE C1F4              brne L66
 0300                   .dbline 253
 0300           ;    {
 0300                   .dbline 254
 0300           ;          DisString(urow,ucol,"-");
 0300 80E0              ldi R24,<L68
 0302 90E0              ldi R25,>L68
 0304 9983              std y+1,R25
 0306 8883              std y+0,R24
 0308 262F              mov R18,R22
 030A 042F              mov R16,R20
 030C 3DDF              xcall _DisString
 030E                   .dbline 255
 030E           ;        LCD_Dis_Float(urow,ucol+1,((byte)(~((rValue>>3)-1)))>>1);
 030E C501              movw R24,R10
 0310 9695              lsr R25
 0312 8795              ror R24
 0314 9695              lsr R25
 0316 8795              ror R24
 0318 9695              lsr R25
 031A 8795              ror R24
 031C 0197              sbiw R24,1
 031E 8095              com R24
 0320 9095              com R25
 0322 8695              lsr R24
 0324 8883              std y+0,R24
 0326 262F              mov R18,R22
 0328 2F5F              subi R18,255    ; addi 1
 032A 042F              mov R16,R20
 032C 9ADF              xcall _LCD_Dis_Float
 032E                   .dbline 256
 032E           ;    }
 032E 16C0              xjmp L67
 0330           L66:
 0330                   .dbline 258
 0330           ;    else 
 0330           ;    {
 0330                   .dbline 259
 0330           ;      DisString(urow,ucol," ");
 0330 80E0              ldi R24,<L69
 0332 90E0              ldi R25,>L69
 0334 9983              std y+1,R25
 0336 8883              std y+0,R24
 0338 262F              mov R18,R22
 033A 042F              mov R16,R20
 033C 25DF              xcall _DisString
 033E                   .dbline 260
 033E           ;       LCD_Dis_Float(urow,ucol+1,(rValue>>4)&0xff);
 033E C501              movw R24,R10
 0340 9695              lsr R25
 0342 8795              ror R24
 0344 9695              lsr R25
 0346 8795              ror R24
 0348 9695              lsr R25
 034A 8795              ror R24
 034C 9695              lsr R25
 034E 8795              ror R24
 0350 9070              andi R25,0
 0352 8883              std y+0,R24
 0354 262F              mov R18,R22
 0356 2F5F              subi R18,255    ; addi 1
 0358 042F              mov R16,R20
 035A 83DF              xcall _LCD_Dis_Float
 035C                   .dbline 261
 035C           ;     }
 035C           L67:
 035C                   .dbline 262
 035C           ;        if((rValue&0x08)==0x08)
 035C C501              movw R24,R10
 035E 8870              andi R24,8
 0360 9070              andi R25,0
 0362 8830              cpi R24,8
 0364 E0E0              ldi R30,0
 0366 9E07              cpc R25,R30
 0368 49F4              brne L70
 036A                   .dbline 263
 036A           ;       DisString(urow,ucol+5,"5");
 036A 80E0              ldi R24,<L72
 036C 90E0              ldi R25,>L72
 036E 9983              std y+1,R25
 0370 8883              std y+0,R24
 0372 262F              mov R18,R22
 0374 2B5F              subi R18,251    ; addi 5
 0376 042F              mov R16,R20
 0378 07DF              xcall _DisString
 037A 08C0              xjmp L71
 037C           L70:
 037C                   .dbline 265
 037C           ;      else
 037C           ;       DisString(urow,ucol+5,"0");
 037C 80E0              ldi R24,<L73
 037E 90E0              ldi R25,>L73
 0380 9983              std y+1,R25
 0382 8883              std y+0,R24
 0384 262F              mov R18,R22
 0386 2B5F              subi R18,251    ; addi 5
 0388 042F              mov R16,R20
 038A FEDE              xcall _DisString
 038C           L71:
 038C                   .dbline 266
 038C           ;         DisCGRAM(urow, ucol+6, 0x00);
 038C 2224              clr R2
 038E 2882              std y+0,R2
 0390 262F              mov R18,R22
 0392 2A5F              subi R18,250    ; addi 6
 0394 042F              mov R16,R20
 0396 ECDE              xcall _DisCGRAM
 0398                   .dbline -2
 0398           L64:
 0398 2296              adiw R28,2
 039A 0E940000          xcall pop_gset3
 039E                   .dbline 0 ; func end
 039E 0895              ret
 03A0                   .dbsym r rValue 10 i
 03A0                   .dbsym r ucol 22 c
 03A0                   .dbsym r urow 20 c
 03A0                   .dbend
 03A0                   .dbfunc e LcdInit _LcdInit fV
                        .even
 03A0           _LcdInit::
 03A0 2197              sbiw R28,1
 03A2                   .dbline -1
 03A2                   .dbline 272
 03A2           ; }
 03A2           ; 
 03A2           ; 
 03A2           ; 
 03A2           ; void LcdInit(void)
 03A2           ; {
 03A2                   .dbline 273
 03A2           ;       ClearLcd();     
 03A2 82DE              xcall _ClearLcd
 03A4                   .dbline 274
 03A4           ;       CurReturn(); 
 03A4 84DE              xcall _CurReturn
 03A6                   .dbline 275
 03A6           ;       SetInputMode(1, 0); 
 03A6 2227              clr R18
 03A8 01E0              ldi R16,1
 03AA 84DE              xcall _SetInputMode
 03AC                   .dbline 276
 03AC           ;       SetDisMode(1, 0, 0); 
 03AC 2224              clr R2
 03AE 2882              std y+0,R2
 03B0 2227              clr R18
 03B2 01E0              ldi R16,1
 03B4 94DE              xcall _SetDisMode
 03B6                   .dbline 278
 03B6           ; //    SetShift(0, 0);
 03B6           ;       SetFunction(1, 1, 1);
 03B6 81E0              ldi R24,1
 03B8 8883              std y+0,R24
 03BA 21E0              ldi R18,1
 03BC 01E0              ldi R16,1
 03BE AADE              xcall _SetFunction
 03C0                   .dbline 280
 03C0           ; //    SetCGRAMAddr();
 03C0           ;     LCD_WriteCGRAM(CGRAMtab,8);
 03C0 28E0              ldi R18,8
 03C2 00E0              ldi R16,<_CGRAMtab
 03C4 10E0              ldi R17,>_CGRAMtab
 03C6 5CDE              xcall _LCD_WriteCGRAM
 03C8                   .dbline -2
 03C8           L74:
 03C8 2196              adiw R28,1
 03CA                   .dbline 0 ; func end
 03CA 0895              ret
 03CC                   .dbend
                        .area data(ram, con, rel)
 0008                   .dbfile F:\avr最小系统板\程序代码\ex15_ds18b20_1602\lm1602.c
 0008           L73:
 0008                   .blkb 2
                        .area idata
 0008 3000              .byte 48,0
                        .area data(ram, con, rel)
 000A                   .dbfile F:\avr最小系统板\程序代码\ex15_ds18b20_1602\lm1602.c
 000A           L72:
 000A                   .blkb 2
                        .area idata
 000A 3500              .byte 53,0
                        .area data(ram, con, rel)
 000C                   .dbfile F:\avr最小系统板\程序代码\ex15_ds18b20_1602\lm1602.c
 000C           L69:
 000C                   .blkb 2
                        .area idata
 000C 2000              .byte 32,0
                        .area data(ram, con, rel)
 000E                   .dbfile F:\avr最小系统板\程序代码\ex15_ds18b20_1602\lm1602.c
 000E           L68:
 000E                   .blkb 2
                        .area idata
 000E 2D00              .byte 45,0
                        .area data(ram, con, rel)
 0010                   .dbfile F:\avr最小系统板\程序代码\ex15_ds18b20_1602\lm1602.c
 0010           L65:
 0010                   .blkb 16
                        .area idata
 0010 54656D70657261747572652069733A00  .byte 'T,'e,'m,'p,'e,'r,'a,'t,'u,'r,'e,32,'i,'s,58,0
                        .area data(ram, con, rel)
 0020                   .dbfile F:\avr最小系统板\程序代码\ex15_ds18b20_1602\lm1602.c
 0020           L49:
 0020                   .blkb 2
                        .area idata
 0020 3A00              .byte 58,0
                        .area data(ram, con, rel)
 0022                   .dbfile F:\avr最小系统板\程序代码\ex15_ds18b20_1602\lm1602.c

⌨️ 快捷键说明

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