📄 ps2.lis
字号:
0120 .dbline 107
0120 ; Set_DI(0);//DI=0;
0120 0027 clr R16
0122 6EDF rcall _Set_DI
0124 .dbline 108
0124 ; Set_EN(0);//ENABLE=0;
0124 0027 clr R16
0126 7CDF rcall _Set_EN
0128 .dbline 109
0128 ; PORTA=0x40+i;// P0=0x40+i;
0128 842F mov R24,R20
012A 805C subi R24,192 ; addi 64
012C 8BBB out 0x1b,R24
012E .dbline 110
012E ; nop(10);//_nop_();
012E 0AE0 ldi R16,10
0130 A8DF rcall _nop
0132 .dbline 111
0132 ; Set_EN(1);//ENABLE=1;
0132 01E0 ldi R16,1
0134 75DF rcall _Set_EN
0136 .dbline 112
0136 ; nop(10);//_nop_();
0136 0AE0 ldi R16,10
0138 A4DF rcall _nop
013A .dbline 113
013A ; nop(10);// _nop_();
013A 0AE0 ldi R16,10
013C A2DF rcall _nop
013E .dbline 114
013E ; Set_EN(0);//ENABLE=0;
013E 0027 clr R16
0140 6FDF rcall _Set_EN
0142 .dbline -2
0142 .dbline 116
0142 ; //Delay(1);
0142 ; }
0142 L36:
0142 00D0 rcall pop_gset1
0144 .dbline 0 ; func end
0144 0895 ret
0146 .dbsym r i 20 c
0146 .dbend
0146 .dbfunc e WriteByte _WriteByte fV
0146 ; i -> R20
.even
0146 _WriteByte::
0146 00D0 rcall push_gset1
0148 402F mov R20,R16
014A .dbline -1
014A .dbline 132
014A ;
014A ; //读状态//
014A ; //返回值:DB7,DB6,DB5,DB4,DB3,DB2,DB1,DB0
014A ; //返回值:BF,0,ON/OFF,RST,0,0,0,0
014A ; /*ucharReadStatus(void)
014A ; {uchardata i;
014A ; RW=1;
014A ; DI=0;
014A ; ENABLE=1;
014A ; i=P0;
014A ; return i;
014A ; }*/
014A ;
014A ; //写显示数据,i为送DDRAM的数据
014A ; void WriteByte(uchar i)
014A ; {Set_RW(0);//RW=0;
014A .dbline 132
014A 0027 clr R16
014C 61DF rcall _Set_RW
014E .dbline 133
014E ; Set_DI(1);//DI=1;
014E 01E0 ldi R16,1
0150 57DF rcall _Set_DI
0152 .dbline 134
0152 ; Set_EN(0);//ENABLE=0;
0152 0027 clr R16
0154 65DF rcall _Set_EN
0156 .dbline 135
0156 ; PORTA=i;//P0=i;
0156 4BBB out 0x1b,R20
0158 .dbline 136
0158 ; nop(10);//_nop_();
0158 0AE0 ldi R16,10
015A 93DF rcall _nop
015C .dbline 137
015C ; Set_EN(1);//ENABLE=1;
015C 01E0 ldi R16,1
015E 60DF rcall _Set_EN
0160 .dbline 138
0160 ; nop(10);//_nop_();
0160 0AE0 ldi R16,10
0162 8FDF rcall _nop
0164 .dbline 139
0164 ; nop(10);//_nop_();
0164 0AE0 ldi R16,10
0166 8DDF rcall _nop
0168 .dbline 140
0168 ; Set_EN(0);//ENABLE=0;
0168 0027 clr R16
016A 5ADF rcall _Set_EN
016C .dbline -2
016C .dbline 142
016C ; //Delay(1);
016C ; }
016C L37:
016C 00D0 rcall pop_gset1
016E .dbline 0 ; func end
016E 0895 ret
0170 .dbsym r i 20 c
0170 .dbend
0170 .dbfunc e Reset _Reset fV
.even
0170 _Reset::
0170 .dbline -1
0170 .dbline 156
0170 ;
0170 ; //读显示数据处理
0170 ; /*ucharReadData(void)
0170 ; {uchar i;
0170 ; RW=1;
0170 ; DI=0;
0170 ; ENABLE=1;
0170 ; i=P0;
0170 ; return i;
0170 ; }*/
0170 ;
0170 ; //LCD复位//
0170 ; void Reset(void)
0170 ; {Set_RST(0);//RST=0;
0170 .dbline 156
0170 0027 clr R16
0172 6EDF rcall _Set_RST
0174 .dbline 157
0174 ; Delay(1);
0174 01E0 ldi R16,1
0176 10E0 ldi R17,0
0178 73DF rcall _Delay
017A .dbline 158
017A ; Set_RST(1);//RST=1;
017A 01E0 ldi R16,1
017C .dbline -2
017C .dbline 160
017C ; //Delay(1);
017C ; }
017C L38:
017C .dbline 0 ; func end
017C 69CF rjmp _Set_RST
017E .dbend
017E .dbfunc e ClearScreen _ClearScreen fV
017E ; i -> R20
017E ; j -> R22
017E ; k -> R22
.even
017E _ClearScreen::
017E 00D0 rcall push_gset2
0180 602F mov R22,R16
0182 .dbline -1
0182 .dbline 164
0182 ;
0182 ;
0182 ; void ClearScreen(uchar k)
0182 ; {uchar i,j;
0182 .dbline 165
0182 ; Set_CS1(1);//CS1=1;
0182 01E0 ldi R16,1
0184 55DF rcall _Set_CS1
0186 .dbline 166
0186 ; Set_CS2(1);//CS2=1;
0186 01E0 ldi R16,1
0188 5BDF rcall _Set_CS2
018A .dbline 167
018A ; for(i=k;i<8;i+=1)
018A 462F mov R20,R22
018C 0AC0 rjmp L43
018E L40:
018E .dbline 168
018E ; {SetX(i);
018E .dbline 168
018E 042F mov R16,R20
0190 ACDF rcall _SetX
0192 .dbline 169
0192 ; for(j=0;j<64;j++)
0192 6627 clr R22
0194 03C0 rjmp L47
0196 L44:
0196 .dbline 170
0196 0027 clr R16
0198 D6DF rcall _WriteByte
019A L45:
019A .dbline 169
019A 6395 inc R22
019C L47:
019C .dbline 169
019C 6034 cpi R22,64
019E D8F3 brlo L44
01A0 .dbline 171
01A0 L41:
01A0 .dbline 167
01A0 4395 inc R20
01A2 L43:
01A2 .dbline 167
01A2 4830 cpi R20,8
01A4 A0F3 brlo L40
01A6 .dbline -2
01A6 .dbline 172
01A6 ; WriteByte(0x00);
01A6 ; }
01A6 ; }
01A6 L39:
01A6 00D0 rcall pop_gset2
01A8 .dbline 0 ; func end
01A8 0895 ret
01AA .dbsym r i 20 c
01AA .dbsym r j 22 c
01AA .dbsym r k 22 c
01AA .dbend
01AA .dbfunc e InitLCD _InitLCD fV
.even
01AA _InitLCD::
01AA .dbline -1
01AA .dbline 176
01AA ;
01AA ; //LCD初始化//
01AA ; void InitLCD(void)
01AA ; {Reset();
01AA .dbline 176
01AA E2DF rcall _Reset
01AC .dbline 177
01AC ; Delay(0);
01AC 0027 clr R16
01AE 1127 clr R17
01B0 57DF rcall _Delay
01B2 .dbline 178
01B2 ; ClearScreen(0);
01B2 0027 clr R16
01B4 E4DF rcall _ClearScreen
01B6 .dbline 179
01B6 ; DisplayOnOff(1);
01B6 01E0 ldi R16,1
01B8 6ADF rcall _DisplayOnOff
01BA .dbline 180
01BA ; SetStartLine(0);
01BA 0027 clr R16
01BC .dbline -2
01BC .dbline 181
01BC ; }
01BC L48:
01BC .dbline 0 ; func end
01BC 7FCF rjmp _SetStartLine
01BE .dbend
01BE .dbfunc e WriteWord _WriteWord fV
01BE ; i -> R20
01BE ; cs -> y+10
01BE ; y -> R10
01BE ; x -> R12
01BE ; disp -> R22,R23
.even
01BE _WriteWord::
01BE 00D0 rcall push_gset4
01C0 C22E mov R12,R18
01C2 602F mov R22,R16
01C4 712F mov R23,R17
01C6 A884 ldd R10,y+8
01C8 .dbline -1
01C8 .dbline 184
01C8 ;
01C8 ; void WriteWord(uchar const *disp,uchar x,uchar y,uchar cs)
01C8 ; {uchar i;
01C8 .dbline 185
01C8 ; if(cs==1) {Set_CS1(1);Set_CS2(0);}
01C8 8A85 ldd R24,y+10
01CA 8130 cpi R24,1
01CC 29F4 brne L50
01CE .dbline 185
01CE .dbline 185
01CE 01E0 ldi R16,1
01D0 2FDF rcall _Set_CS1
01D2 .dbline 185
01D2 0027 clr R16
01D4 35DF rcall _Set_CS2
01D6 .dbline 185
01D6 04C0 rjmp L51
01D8 L50:
01D8 .dbline 186
01D8 ; else {Set_CS1(0);Set_CS2(1);}
01D8 .dbline 186
01D8 0027 clr R16
01DA 2ADF rcall _Set_CS1
01DC .dbline 186
01DC 01E0 ldi R16,1
01DE 30DF rcall _Set_CS2
01E0 .dbline 186
01E0 L51:
01E0 .dbline 187
01E0 ; SetX(x);
01E0 0C2D mov R16,R12
01E2 83DF rcall _SetX
01E4 .dbline 188
01E4 ; SetY(y);
01E4 0A2D mov R16,R10
01E6 98DF rcall _SetY
01E8 .dbline 189
01E8 ; for(i=0;i<16;i++)
01E8 4427 clr R20
01EA 08C0 rjmp L55
01EC L52:
01EC .dbline 190
01EC .dbline 190
01EC E62F mov R30,R22
01EE F72F mov R31,R23
01F0 C895 lpm
01F2 002D mov R16,R0
01F4 A8DF rcall _WriteByte
01F6 .dbline 191
01F6 6F5F subi R22,255 ; offset = 1
01F8 7F4F sbci R23,255
01FA .dbline 191
01FA L53:
01FA .dbline 189
01FA 4395 inc R20
01FC L55:
01FC .dbline 189
01FC 4031 cpi R20,16
01FE B0F3 brlo L52
0200 .dbline 192
0200 ; {WriteByte(*disp);
0200 ; disp++;}
0200 ; SetX(x+1);
0200 0C2D mov R16,R12
0202 0F5F subi R16,255 ; addi 1
0204 72DF rcall _SetX
0206 .dbline 193
0206 ; SetY(y);
0206 0A2D mov R16,R10
0208 87DF rcall _SetY
020A .dbline 194
020A ; for(i=0;i<16;i++)
020A 4427 clr R20
020C 08C0 rjmp L59
020E L56:
020E .dbline 195
020E .dbline 195
020E E62F mov R30,R22
0210 F72F mov R31,R23
0212 C895 lpm
0214 002D mov R16,R0
0216 97DF rcall _WriteByte
0218 .dbline 196
0218 6F5F subi R22,255 ; offset = 1
021A 7F4F sbci R23,255
021C .dbline 196
021C L57:
021C .dbline 194
021C 4395 inc R20
021E L59:
021E .dbline 194
021E 4031 cpi R20,16
0220 B0F3 brlo L56
0222 .dbline -2
0222 .dbline 197
0222 ; {WriteByte(*disp);
0222 ; disp++;}
0222 ; }
0222 L49:
0222 00D0 rcall pop_gset4
0224 .dbline 0 ; func end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -