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

📄 lcd.lis

📁 用于ATMEGA8单片机调试 包括串口
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00CA                   .dbline 135
 00CA           ;    unsigned char Y;
 00CA           ;    WDR();
 00CA A895              wdr
 00CC                   .dbline 136
 00CC           ;    LCD_WRI_ORDER(ADD);
 00CC 0A2D              mov R16,R10
 00CE A1DF              xcall _LCD_WRI_ORDER
 00D0                   .dbline 137
 00D0           ;    LCD_DELAY();
 00D0 CADF              xcall _LCD_DELAY
 00D2                   .dbline 138
 00D2           ;   for(Y=0;*DISP!='\0';Y++)
 00D2 AA24              clr R10
 00D4 08C0              xjmp L18
 00D6           L15:
 00D6                   .dbline 139
 00D6           ;    {  
 00D6                   .dbline 140
 00D6           ;      LCD_DELAY();     
 00D6 C7DF              xcall _LCD_DELAY
 00D8                   .dbline 141
 00D8           ;      LCD_WRI_DATA(*DISP);
 00D8 FA01              movw R30,R20
 00DA 0081              ldd R16,z+0
 00DC B0DF              xcall _LCD_WRI_DATA
 00DE                   .dbline 142
 00DE           ;      LCD_DELAY();DISP++;
 00DE C3DF              xcall _LCD_DELAY
 00E0                   .dbline 142
 00E0 4F5F              subi R20,255  ; offset = 1
 00E2 5F4F              sbci R21,255
 00E4                   .dbline 143
 00E4           ;    }
 00E4           L16:
 00E4                   .dbline 138
 00E4 A394              inc R10
 00E6           L18:
 00E6                   .dbline 138
 00E6 FA01              movw R30,R20
 00E8 2080              ldd R2,z+0
 00EA 2220              tst R2
 00EC A1F7              brne L15
 00EE           X2:
 00EE                   .dbline -2
 00EE           L14:
 00EE                   .dbline 0 ; func end
 00EE 0C940000          xjmp pop_xgset300C
 00F2                   .dbsym r Y 10 c
 00F2                   .dbsym r DISP 20 pc
 00F2                   .dbsym r ADD 10 c
 00F2                   .dbend
                        .area lit(rom, con, rel)
 0000           L20:
 0000 30313233343536373839616263646566  .byte 48,49,50,51,52,53,54,55,56,57,'a,'b,'c,'d,'e,'f
 0010 00                .byte 0
                        .area text(rom, con, rel)
 00F2                   .dbfile C:\DOCUME~1\Administrator\桌面\新建文件夹\lcd.c
 00F2                   .dbfunc e shuzi_disp _shuzi_disp fV
 00F2           ;         number -> y+0
 00F2           ;         NUMber -> R10
 00F2           ;            ADD -> R12
                        .even
 00F2           _shuzi_disp::
 00F2 AA92              st -y,R10
 00F4 CA92              st -y,R12
 00F6 A22E              mov R10,R18
 00F8 C02E              mov R12,R16
 00FA 6197              sbiw R28,17
 00FC                   .dbline -1
 00FC                   .dbline 147
 00FC           ;  }
 00FC           ; 
 00FC           ; void shuzi_disp(unsigned char ADD,unsigned char NUMber) //一位数字显示
 00FC           ;    {
 00FC                   .dbline 148
 00FC           ;       unsigned char number[]={"0123456789abcdef"}; 
 00FC 80E0              ldi R24,<L20
 00FE 90E0              ldi R25,>L20
 0100 FE01              movw R30,R28
 0102 01E1              ldi R16,17
 0104 10E0              ldi R17,0
 0106 FA93              st -y,R31
 0108 EA93              st -y,R30
 010A 9A93              st -y,R25
 010C 8A93              st -y,R24
 010E 0E940000          xcall asgncblk
 0112                   .dbline 149
 0112           ;         WDR();
 0112 A895              wdr
 0114                   .dbline 150
 0114           ;         LCD_WRI_ORDER(ADD);    LCD_DELAY(); 
 0114 0C2D              mov R16,R12
 0116 7DDF              xcall _LCD_WRI_ORDER
 0118                   .dbline 150
 0118 A6DF              xcall _LCD_DELAY
 011A                   .dbline 151
 011A           ;         LCD_WRI_DATA(number[NUMber]);   LCD_DELAY();
 011A CE01              movw R24,R28
 011C EA2D              mov R30,R10
 011E FF27              clr R31
 0120 E80F              add R30,R24
 0122 F91F              adc R31,R25
 0124 0081              ldd R16,z+0
 0126 8BDF              xcall _LCD_WRI_DATA
 0128                   .dbline 151
 0128 9EDF              xcall _LCD_DELAY
 012A                   .dbline -2
 012A           L19:
 012A                   .dbline 0 ; func end
 012A 6196              adiw R28,17
 012C C990              ld R12,y+
 012E A990              ld R10,y+
 0130 0895              ret
 0132                   .dbsym l number 0 A[17:17]c
 0132                   .dbsym r NUMber 10 c
 0132                   .dbsym r ADD 12 c
 0132                   .dbend
                        .area lit(rom, con, rel)
 0011           L22:
 0011 303132333435363738392000  .byte 48,49,50,51,52,53,54,55,56,57,32,0
                        .area text(rom, con, rel)
 0132                   .dbfile C:\DOCUME~1\Administrator\桌面\新建文件夹\lcd.c
 0132                   .dbfunc e NUM_DISPLAY_LCD _NUM_DISPLAY_LCD fV
 0132           ;             GW -> R10
 0132           ;             SW -> R12
 0132           ;            SWS -> R10
 0132           ;             BW -> R22
 0132           ;             QW -> R20
 0132           ;             WW -> R14
 0132           ;         number -> y+0
 0132           ;         NUMber -> R10,R11
 0132           ;            ADD -> R12
                        .even
 0132           _NUM_DISPLAY_LCD::
 0132 0E940000          xcall push_xgsetF0FC
 0136 5901              movw R10,R18
 0138 C02E              mov R12,R16
 013A 2C97              sbiw R28,12
 013C                   .dbline -1
 013C                   .dbline 154
 013C           ;    }
 013C           ; void NUM_DISPLAY_LCD(unsigned char ADD,unsigned int NUMber)//数字显示
 013C           ; { 
 013C                   .dbline 161
 013C           ;   unsigned char WW;
 013C           ;   unsigned char QW;
 013C           ;   unsigned char BW;
 013C           ;   unsigned char SW;
 013C           ;   unsigned char SWS;
 013C           ;   unsigned char GW;
 013C           ;   unsigned char number[]={"0123456789 "}; 
 013C 80E0              ldi R24,<L22
 013E 90E0              ldi R25,>L22
 0140 FE01              movw R30,R28
 0142 0CE0              ldi R16,12
 0144 10E0              ldi R17,0
 0146 FA93              st -y,R31
 0148 EA93              st -y,R30
 014A 9A93              st -y,R25
 014C 8A93              st -y,R24
 014E 0E940000          xcall asgncblk
 0152                   .dbline 162
 0152           ;   WDR();
 0152 A895              wdr
 0154                   .dbline 163
 0154           ;   LCD_WRI_ORDER(ADD);
 0154 0C2D              mov R16,R12
 0156 5DDF              xcall _LCD_WRI_ORDER
 0158                   .dbline 164
 0158           ;   LCD_DELAY();
 0158 86DF              xcall _LCD_DELAY
 015A                   .dbline 165
 015A           ;   WW=NUMber/10000;
 015A 20E1              ldi R18,10000
 015C 37E2              ldi R19,39
 015E 8501              movw R16,R10
 0160 0E940000          xcall div16u
 0164 E02E              mov R14,R16
 0166                   .dbline 166
 0166           ;   QW=(NUMber%10000)/1000;
 0166 20E1              ldi R18,10000
 0168 37E2              ldi R19,39
 016A 8501              movw R16,R10
 016C 0E940000          xcall mod16u
 0170 28EE              ldi R18,1000
 0172 33E0              ldi R19,3
 0174 0E940000          xcall div16u
 0178 402F              mov R20,R16
 017A                   .dbline 167
 017A           ;   BW=(NUMber%1000)/100;
 017A 28EE              ldi R18,1000
 017C 33E0              ldi R19,3
 017E 8501              movw R16,R10
 0180 0E940000          xcall mod16u
 0184 24E6              ldi R18,100
 0186 30E0              ldi R19,0
 0188 0E940000          xcall div16u
 018C 602F              mov R22,R16
 018E                   .dbline 168
 018E           ;   SWS=(NUMber%1000)%100;
 018E 28EE              ldi R18,1000
 0190 33E0              ldi R19,3
 0192 8501              movw R16,R10
 0194 0E940000          xcall mod16u
 0198 24E6              ldi R18,100
 019A 30E0              ldi R19,0
 019C 0E940000          xcall mod16u
 01A0 A02E              mov R10,R16
 01A2                   .dbline 169
 01A2           ;   SW=SWS/10;
 01A2 1AE0              ldi R17,10
 01A4 0E940000          xcall div8u
 01A8 C02E              mov R12,R16
 01AA                   .dbline 170
 01AA           ;   GW=SWS%10;
 01AA 1AE0              ldi R17,10
 01AC 0A2D              mov R16,R10
 01AE 0E940000          xcall mod8u
 01B2 A02E              mov R10,R16
 01B4                   .dbline 171
 01B4           ;   if(WW)
 01B4 EE20              tst R14
 01B6 41F0              breq L23
 01B8           X3:
 01B8                   .dbline 172
 01B8           ;     LCD_WRI_DATA(number[WW]);
 01B8 CE01              movw R24,R28
 01BA EE2D              mov R30,R14
 01BC FF27              clr R31
 01BE E80F              add R30,R24
 01C0 F91F              adc R31,R25
 01C2 0081              ldd R16,z+0
 01C4 3CDF              xcall _LCD_WRI_DATA
 01C6 02C0              xjmp L24
 01C8           L23:
 01C8                   .dbline 174
 01C8           ;   else
 01C8           ;     LCD_WRI_DATA(number[10]);
 01C8 0A85              ldd R16,y+10
 01CA 39DF              xcall _LCD_WRI_DATA
 01CC           L24:
 01CC                   .dbline 175
 01CC           ;     LCD_DELAY();
 01CC 4CDF              xcall _LCD_DELAY
 01CE                   .dbline 176
 01CE           ;   if(QW||WW)
 01CE 4423              tst R20
 01D0 11F4              brne L28
 01D2           X4:
 01D2 EE20              tst R14
 01D4 41F0              breq L26
 01D6           X5:
 01D6           L28:
 01D6                   .dbline 177
 01D6           ;     LCD_WRI_DATA(number[QW]);
 01D6 CE01              movw R24,R28
 01D8 E42F              mov R30,R20
 01DA FF27              clr R31
 01DC E80F              add R30,R24
 01DE F91F              adc R31,R25
 01E0 0081              ldd R16,z+0
 01E2 2DDF              xcall _LCD_WRI_DATA
 01E4 02C0              xjmp L27
 01E6           L26:
 01E6                   .dbline 179
 01E6           ;   else 
 01E6           ;     LCD_WRI_DATA(number[10]);
 01E6 0A85              ldd R16,y+10
 01E8 2ADF              xcall _LCD_WRI_DATA
 01EA           L27:
 01EA                   .dbline 180
 01EA           ;     LCD_DELAY();
 01EA 3DDF              xcall _LCD_DELAY
 01EC                   .dbline 181
 01EC           ;   if(BW||QW||WW)
 01EC 6623              tst R22
 01EE 21F4              brne L33
 01F0           X6:
 01F0 4423              tst R20
 01F2 11F4              brne L33
 01F4           X7:
 01F4 EE20              tst R14
 01F6 41F0              breq L30
 01F8           X8:
 01F8           L33:
 01F8                   .dbline 182
 01F8           ;     LCD_WRI_DATA(number[BW]);
 01F8 CE01              movw R24,R28
 01FA E62F              mov R30,R22
 01FC FF27              clr R31
 01FE E80F              add R30,R24
 0200 F91F              adc R31,R25
 0202 0081              ldd R16,z+0
 0204 1CDF              xcall _LCD_WRI_DATA
 0206 02C0              xjmp L31
 0208           L30:
 0208                   .dbline 184
 0208           ;   else 
 0208           ;       LCD_WRI_DATA(number[10]);
 0208 0A85              ldd R16,y+10
 020A 19DF              xcall _LCD_WRI_DATA
 020C           L31:
 020C                   .dbline 185
 020C           ;     LCD_DELAY();
 020C 2CDF              xcall _LCD_DELAY
 020E                   .dbline 186
 020E           ;   if(SW!=0||BW||QW||WW)
 020E CC20              tst R12
 0210 31F4              brne L39
 0212           X9:
 0212 6623              tst R22
 0214 21F4              brne L39
 0216           X10:
 0216 4423              tst R20
 0218 11F4              brne L39
 021A           X11:
 021A EE20              tst R14
 021C 41F0              breq L35
 021E           X12:
 021E           L39:
 021E                   .dbline 187
 021E           ;     LCD_WRI_DATA(number[SW]);
 021E CE01              movw R24,R28
 0220 EC2D              mov R30,R12
 0222 FF27              clr R31
 0224 E80F              add R30,R24
 0226 F91F              adc R31,R25
 0228 0081              ldd R16,z+0
 022A 09DF              xcall _LCD_WRI_DATA
 022C 02C0              xjmp L36
 022E           L35:
 022E                   .dbline 189
 022E           ;   else
 022E           ;     LCD_WRI_DATA(number[10]);
 022E 0A85              ldd R16,y+10
 0230 06DF              xcall _LCD_WRI_DATA
 0232           L36:
 0232                   .dbline 190
 0232           ;     LCD_DELAY();
 0232 19DF              xcall _LCD_DELAY
 0234                   .dbline 191
 0234           ;     LCD_WRI_DATA(number[GW]);
 0234 CE01              movw R24,R28
 0236 EA2D              mov R30,R10
 0238 FF27              clr R31
 023A E80F              add R30,R24
 023C F91F              adc R31,R25
 023E 0081              ldd R16,z+0
 0240 FEDE              xcall _LCD_WRI_DATA
 0242                   .dbline 192
 0242           ;     LCD_DELAY();
 0242 11DF              xcall _LCD_DELAY
 0244                   .dbline -2
 0244           L21:
 0244                   .dbline 0 ; func end
 0244 2C96              adiw R28,12
 0246 0C940000          xjmp pop_xgsetF0FC
 024A                   .dbsym r GW 10 c
 024A                   .dbsym r SW 12 c
 024A                   .dbsym r SWS 10 c
 024A                   .dbsym r BW 22 c
 024A                   .dbsym r QW 20 c
 024A                   .dbsym r WW 14 c
 024A                   .dbsym l number 0 A[12:12]c
 024A                   .dbsym r NUMber 10 i
 024A                   .dbsym r ADD 12 c
 024A                   .dbend
 024A           ;  }
 024A           ; 

⌨️ 快捷键说明

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