📄 1.lis
字号:
0098 2224 clr R2
009A 2ABA out 0x1a,R2
009C .dbline 170
009C ; PORTA=0x00;
009C 2BBA out 0x1b,R2
009E L14:
009E .dbline 172
009E ; do
009E ; { EN_H;
009E .dbline 172
009E C09A sbi 0x18,0
00A0 .dbline 173
00A0 ; Lstate = PINA;
00A0 49B3 in R20,0x19
00A2 .dbline 174
00A2 ; EN_L;
00A2 C098 cbi 0x18,0
00A4 .dbline 175
00A4 L15:
00A4 .dbline 175
00A4 ; }while(Lstate & 0x80);
00A4 47FD sbrc R20,7
00A6 FBCF rjmp L14
00A8 .dbline 176
00A8 ; DDRA=0xff;
00A8 8FEF ldi R24,255
00AA 8ABB out 0x1a,R24
00AC .dbline 177
00AC ; DI_H;
00AC C29A sbi 0x18,2
00AE .dbline 178
00AE ; RW_L;
00AE C198 cbi 0x18,1
00B0 .dbline 179
00B0 ; DATA = Rdat;
00B0 0BBB out 0x1b,R16
00B2 .dbline 180
00B2 ; EN_H;
00B2 C09A sbi 0x18,0
00B4 .dbline 181
00B4 ; EN_L;
00B4 C098 cbi 0x18,0
00B6 .dbline -2
00B6 L13:
00B6 0E940000 xcall pop_gset1
00BA .dbline 0 ; func end
00BA 0895 ret
00BC .dbsym r Lstate 20 c
00BC .dbsym r Rdat 16 c
00BC .dbend
00BC .dbfunc e LCD_INT _LCD_INT fV
.even
00BC _LCD_INT::
00BC .dbline -1
00BC .dbline 187
00BC ; }
00BC ; //-----------------------------------------------------------------------------
00BC ; // LCD:Iniatlize(DIlcdsplay).
00BC ; //-----------------------------------------------------------------------------
00BC ; void LCD_INT(void)
00BC ; {
00BC .dbline 188
00BC ; Wleft_Cmad(0xc0); // Left display start line;
00BC 00EC ldi R16,192
00BE A0DF xcall _Wleft_Cmad
00C0 .dbline 189
00C0 ; Wrigt_Cmad(0xc0); // Right display start line;
00C0 00EC ldi R16,192
00C2 CDDF xcall _Wrigt_Cmad
00C4 .dbline 190
00C4 ; Wleft_Cmad(0x3f); // Left display On;
00C4 0FE3 ldi R16,63
00C6 9CDF xcall _Wleft_Cmad
00C8 .dbline 191
00C8 ; Wrigt_Cmad(0x3f); // Right display On;
00C8 0FE3 ldi R16,63
00CA C9DF xcall _Wrigt_Cmad
00CC .dbline -2
00CC L17:
00CC .dbline 0 ; func end
00CC 0895 ret
00CE .dbend
00CE .dbfunc e LCD_CLR _LCD_CLR fV
00CE ; adrPage -> R20
00CE ; adrLaw -> R22
.even
00CE _LCD_CLR::
00CE 0E940000 xcall push_gset2
00D2 .dbline -1
00D2 .dbline 197
00D2 ; }
00D2 ; //-----------------------------------------------------------------------------
00D2 ; // LCD:Clear picture.
00D2 ; //-----------------------------------------------------------------------------
00D2 ; void LCD_CLR(void)
00D2 ; {
00D2 .dbline 199
00D2 ; unsigned char adrPage,adrLaw;
00D2 ; for(adrPage = 0; adrPage < 8; adrPage++)
00D2 4427 clr R20
00D4 14C0 xjmp L22
00D6 L19:
00D6 .dbline 200
00D6 ; { Wleft_Cmad(adrPage | 0xb8);
00D6 .dbline 200
00D6 042F mov R16,R20
00D8 086B ori R16,184
00DA 92DF xcall _Wleft_Cmad
00DC .dbline 201
00DC ; Wrigt_Cmad(adrPage | 0xb8);
00DC 042F mov R16,R20
00DE 086B ori R16,184
00E0 BEDF xcall _Wrigt_Cmad
00E2 .dbline 202
00E2 ; Wleft_Cmad(0x40);
00E2 00E4 ldi R16,64
00E4 8DDF xcall _Wleft_Cmad
00E6 .dbline 203
00E6 ; Wrigt_Cmad(0x40);
00E6 00E4 ldi R16,64
00E8 BADF xcall _Wrigt_Cmad
00EA .dbline 204
00EA ; for(adrLaw = 0; adrLaw < 64; adrLaw++)
00EA 6627 clr R22
00EC 05C0 xjmp L26
00EE L23:
00EE .dbline 205
00EE .dbline 205
00EE 0027 clr R16
00F0 9EDF xcall _Wleft_Data
00F2 .dbline 206
00F2 0027 clr R16
00F4 CBDF xcall _Wrigt_Data
00F6 .dbline 207
00F6 L24:
00F6 .dbline 204
00F6 6395 inc R22
00F8 L26:
00F8 .dbline 204
00F8 6034 cpi R22,64
00FA C8F3 brlo L23
00FC .dbline 208
00FC L20:
00FC .dbline 199
00FC 4395 inc R20
00FE L22:
00FE .dbline 199
00FE 4830 cpi R20,8
0100 50F3 brlo L19
0102 .dbline -2
0102 L18:
0102 0E940000 xcall pop_gset2
0106 .dbline 0 ; func end
0106 0895 ret
0108 .dbsym r adrPage 20 c
0108 .dbsym r adrLaw 22 c
0108 .dbend
0108 .dbfunc e WriteHZ _WriteHZ fV
0108 ; i -> R20
0108 ; left -> R22
0108 ; j -> R14
0108 ; dptr -> R10,R11
0108 ; ColSum -> R12
0108 ; adrColumn -> y+12
0108 ; adrPage -> y+10
0108 ; XH_HZ -> R20
.even
0108 _WriteHZ::
0108 3A93 st -y,r19
010A 2A93 st -y,r18
010C 0E940000 xcall push_gset5
0110 402F mov R20,R16
0112 CE84 ldd R12,y+14
0114 .dbline -1
0114 .dbline 214
0114 ; { Wleft_Data(0x00);
0114 ; Wrigt_Data(0x00);
0114 ; }
0114 ; }
0114 ; }
0114 ; //-----------------------------------------------------------------------------
0114 ; // LCD:DIlcdsplay Chinese.
0114 ; //-----------------------------------------------------------------------------
0114 ; void WriteHZ(uchar XH_HZ,uchar adrPage,int adrColumn,uchar ColSum)
0114 ; {
0114 .dbline 216
0114 ; unsigned int dptr; // dptr_adderss for HZ code.
0114 ; unsigned char left=0, i, j;
0114 6627 clr R22
0116 .dbline 217
0116 ; dptr = XH_HZ * 32;
0116 80E2 ldi R24,32
0118 849F mul R24,R20
011A 5001 movw R10,R0
011C .dbline 218
011C ; if((adrColumn-64) >= 0) left = 0; // left = 0:for right.
011C 8C85 ldd R24,y+12
011E 9D85 ldd R25,y+13
0120 8054 subi R24,64
0122 9040 sbci R25,0
0124 8030 cpi R24,0
0126 E0E0 ldi R30,0
0128 9E07 cpc R25,R30
012A 0CF0 brlt L28
012C .dbline 218
012C 09C0 xjmp L29
012E L28:
012E .dbline 219
012E ; else if((adrColumn-64) < 0) left = 1; // left = 1:for left.
012E 8C85 ldd R24,y+12
0130 9D85 ldd R25,y+13
0132 8054 subi R24,64
0134 9040 sbci R25,0
0136 8030 cpi R24,0
0138 E0E0 ldi R30,0
013A 9E07 cpc R25,R30
013C 0CF4 brge L30
013E .dbline 219
013E 61E0 ldi R22,1
0140 L30:
0140 L29:
0140 .dbline 220
0140 ; for(i=0; i<2; i++)
0140 4427 clr R20
0142 34C0 xjmp L35
0144 L32:
0144 .dbline 221
0144 ; {
0144 .dbline 222
0144 ; if(left == 0)
0144 6623 tst R22
0146 B1F4 brne L36
0148 .dbline 223
0148 ; { Wrigt_Cmad(adrPage | 0xb8);
0148 .dbline 223
0148 0A85 ldd R16,y+10
014A 086B ori R16,184
014C 88DF xcall _Wrigt_Cmad
014E .dbline 224
014E ; Wrigt_Cmad(adrColumn | 0x40);
014E 0C85 ldd R16,y+12
0150 1D85 ldd R17,y+13
0152 0064 ori R16,64
0154 84DF xcall _Wrigt_Cmad
0156 .dbline 225
0156 ; for(j=0; j< ColSum; j++)
0156 EE24 clr R14
0158 0BC0 xjmp L41
015A L38:
015A .dbline 226
015A .dbline 227
015A 80E0 ldi R24,<_HZK
015C 90E0 ldi R25,>_HZK
015E F501 movw R30,R10
0160 E80F add R30,R24
0162 F91F adc R31,R25
0164 0491 lpm R16,Z
0166 92DF xcall _Wrigt_Data
0168 .dbline 228
0168 C501 movw R24,R10
016A 0196 adiw R24,1
016C 5C01 movw R10,R24
016E .dbline 229
016E L39:
016E .dbline 225
016E E394 inc R14
0170 L41:
0170 .dbline 225
0170 EC14 cp R14,R12
0172 98F3 brlo L38
0174 .dbline 230
0174 ; {
0174 ; Wrigt_Data(HZK[dptr]);
0174 ; dptr = dptr + 1;
0174 ; }
0174 ; }
0174 L36:
0174 .dbline 231
0174 ; if(left == 1)
0174 6130 cpi R22,1
0176 B1F4 brne L42
0178 .dbline 232
0178 ; { Wleft_Cmad(adrPage | 0xb8);
0178 .dbline 232
0178 0A85 ldd R16,y+10
017A 086B ori R16,184
017C 41DF xcall _Wleft_Cmad
017E .dbline 233
017E ; Wleft_Cmad(adrColumn | 0x40);
017E 0C85 ldd R16,y+12
0180 1D85 ldd R17,y+13
0182 0064 ori R16,64
0184 3DDF xcall _Wleft_Cmad
0186 .dbline 234
0186 EE24 clr R14
0188 0BC0 xjmp L47
018A L44:
018A .dbline 234
018A .dbline 235
018A 80E0 ldi R24,<_HZK
018C 90E0 ldi R25,>_HZK
018E F501 movw R30,R10
0190 E80F add R30,R24
0192 F91F adc R31,R25
0194 0491 lpm R16,Z
0196 4BDF xcall _Wleft_Data
0198 .dbline 236
0198 C501 movw R24,R10
019A 0196 adiw R24,1
019C 5C01 movw R10,R24
019E .dbline 236
019E L45:
019E .dbline 234
019E E394 inc R14
01A0 L47:
01A0 .dbline 234
01A0 ; for(j=0; j< ColSum; j++) {
01A0 EC14 cp R14,R12
01A2 98F3 brlo L44
01A4 .dbline 237
01A4 ; Wleft_Data(HZK[dptr]);
01A4 ; dptr = dptr + 1; }
01A4 ; }
01A4 L42:
01A4 .dbline 238
01A4 0A84 ldd R0,y+10
01A6 0394 inc R0
01A8 0A86 std y+10,R0
01AA .dbline 239
01AA L33:
01AA .dbline 220
01AA 4395 inc R20
01AC L35:
01AC .dbline 220
01AC 4230 cpi R20,2
01AE 08F4 brsh X0
01B0 C9CF xjmp L32
01B2 X0:
01B2 .dbline -2
01B2 L27:
01B2 0E940000 xcall pop_gset5
01B6 2296 adiw R28,2
01B8 .dbline 0 ; func end
01B8 0895 ret
01BA .dbsym r i 20 c
01BA .dbsym r left 22 c
01BA .dbsym r j 14 c
01BA .dbsym r dptr 10 i
01BA .dbsym r ColSum 12 c
01BA .dbsym l adrColumn 12 I
01BA .dbsym l adrPage 10 c
01BA .dbsym r XH_HZ 20 c
01BA .dbend
01BA .dbfunc e WriteDG _WriteDG fV
01BA ; i -> R20
01BA ; left -> R22
01BA ; j -> R14
01BA ; dptr -> R10,R11
01BA ; adrColumn -> R12,R13
01BA ; adrPage -> y+10
01BA ; XH_Dig -> R20
.even
01BA _WriteDG::
01BA 3A93 st -y,r19
01BC 2A93 st -y,r18
01BE 0E940000 xcall push_gset5
01C2 402F mov R20,R16
01C4 CC84 ldd R12,y+12
01C6 DD84 ldd R13,y+13
01C8 .dbline -1
01C8 .dbline 245
01C8 ; adrPage = adrPage + 1;
01C8 ; }
01C8 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -