📄 ps2.lis
字号:
0030 ; i -> R16
.even
0030 _Set_CS1::
0030 .dbline -1
0030 .dbline 35
0030 ;
0030 ; //sbit CS1=PB^3;
0030 ; void Set_CS1(uchar i)
0030 ; {if(i==1) PORTB=PORTB|0x08;
0030 .dbline 35
0030 0130 cpi R16,1
0032 11F4 brne L11
0034 .dbline 35
0034 C39A sbi 0x18,3
0036 03C0 rjmp L12
0038 L11:
0038 .dbline 36
0038 88B3 in R24,0x18
003A 877F andi R24,247
003C 88BB out 0x18,R24
003E L12:
003E .dbline -2
003E .dbline 36
003E ; else PORTB=PORTB&0xf7;}
003E L10:
003E .dbline 0 ; func end
003E 0895 ret
0040 .dbsym r i 16 c
0040 .dbend
0040 .dbfunc e Set_CS2 _Set_CS2 fV
0040 ; i -> R16
.even
0040 _Set_CS2::
0040 .dbline -1
0040 .dbline 40
0040 ;
0040 ; //sbit CS2=PC^6;
0040 ; void Set_CS2(uchar i)
0040 ; {if(i==1) PORTC=PORTC|0x40;
0040 .dbline 40
0040 0130 cpi R16,1
0042 11F4 brne L14
0044 .dbline 40
0044 AE9A sbi 0x15,6
0046 03C0 rjmp L15
0048 L14:
0048 .dbline 41
0048 85B3 in R24,0x15
004A 8F7B andi R24,191
004C 85BB out 0x15,R24
004E L15:
004E .dbline -2
004E .dbline 41
004E ; else PORTC=PORTC&0xbf;}
004E L13:
004E .dbline 0 ; func end
004E 0895 ret
0050 .dbsym r i 16 c
0050 .dbend
0050 .dbfunc e Set_RST _Set_RST fV
0050 ; i -> R16
.even
0050 _Set_RST::
0050 .dbline -1
0050 .dbline 45
0050 ;
0050 ; //sbit RST=PC^7;
0050 ; void Set_RST(uchar i)
0050 ; {if(i==1) PORTC=PORTC|0x80;
0050 .dbline 45
0050 0130 cpi R16,1
0052 11F4 brne L17
0054 .dbline 45
0054 AF9A sbi 0x15,7
0056 03C0 rjmp L18
0058 L17:
0058 .dbline 46
0058 85B3 in R24,0x15
005A 8F77 andi R24,127
005C 85BB out 0x15,R24
005E L18:
005E .dbline -2
005E .dbline 46
005E ; else PORTC=PORTC&0x7f;}
005E L16:
005E .dbline 0 ; func end
005E 0895 ret
0060 .dbsym r i 16 c
0060 .dbend
0060 .dbfunc e Delay _Delay fV
0060 ; j -> R20,R21
0060 ; i -> R16,R17
.even
0060 _Delay::
0060 00D0 rcall push_gset1
0062 .dbline -1
0062 .dbline 50
0062 ;
0062 ; //延时//
0062 ; void Delay(uint i)
0062 ; {uint j;
0062 .dbline 51
0062 ; for(;i!=0;i--)
0062 0AC0 rjmp L23
0064 L20:
0064 .dbline 52
0064 48E8 ldi R20,5000
0066 53E1 ldi R21,19
0068 02C0 rjmp L27
006A L24:
006A .dbline 52
006A .dbline 52
006A .dbline 52
006A L25:
006A .dbline 52
006A 4150 subi R20,1
006C 5040 sbci R21,0
006E L27:
006E .dbline 52
006E 4030 cpi R20,0
0070 4507 cpc R20,R21
0072 D9F7 brne L24
0074 X0:
0074 L21:
0074 .dbline 51
0074 0150 subi R16,1
0076 1040 sbci R17,0
0078 L23:
0078 .dbline 51
0078 0030 cpi R16,0
007A 0107 cpc R16,R17
007C 99F7 brne L20
007E X1:
007E .dbline -2
007E .dbline 53
007E ; for(j=5000;j!=0;j--) {;}
007E ; }
007E L19:
007E 00D0 rcall pop_gset1
0080 .dbline 0 ; func end
0080 0895 ret
0082 .dbsym r j 20 i
0082 .dbsym r i 16 i
0082 .dbend
0082 .dbfunc e nop _nop fV
0082 ; i -> R16
.even
0082 _nop::
0082 .dbline -1
0082 .dbline 56
0082 ;
0082 ; void nop(uchar i)
0082 ; {for(;i!=0;i--)
0082 .dbline 56
0082 02C0 rjmp L32
0084 L29:
0084 .dbline 57
0084 0000 nop
0086 L30:
0086 .dbline 56
0086 0A95 dec R16
0088 L32:
0088 .dbline 56
0088 0023 tst R16
008A E1F7 brne L29
008C .dbline -2
008C .dbline 58
008C ; NOP();
008C ; }
008C L28:
008C .dbline 0 ; func end
008C 0895 ret
008E .dbsym r i 16 c
008E .dbend
008E .dbfunc e DisplayOnOff _DisplayOnOff fV
008E ; j -> <dead>
008E ; i -> R20
.even
008E _DisplayOnOff::
008E 00D0 rcall push_gset1
0090 402F mov R20,R16
0092 .dbline -1
0092 .dbline 63
0092 ;
0092 ;
0092 ; // 显示开关控制命令,i=0开显示,i=1关显示//
0092 ; void DisplayOnOff(uchar i)
0092 ; {uchar j;
0092 .dbline 64
0092 ; Set_RW(0);// RW=0;
0092 0027 clr R16
0094 BDDF rcall _Set_RW
0096 .dbline 65
0096 ; Set_DI(0);//DI=0;
0096 0027 clr R16
0098 B3DF rcall _Set_DI
009A .dbline 66
009A ; Set_EN(0);//ENABLE=0;
009A 0027 clr R16
009C C1DF rcall _Set_EN
009E .dbline 67
009E ; PORTA=62+i;//P0=0x3e+i;
009E 842F mov R24,R20
00A0 825C subi R24,194 ; addi 62
00A2 8BBB out 0x1b,R24
00A4 .dbline 68
00A4 ; nop(10);//_nop_();
00A4 0AE0 ldi R16,10
00A6 EDDF rcall _nop
00A8 .dbline 69
00A8 ; Set_EN(1);//ENABLE=1;
00A8 01E0 ldi R16,1
00AA BADF rcall _Set_EN
00AC .dbline 70
00AC ; nop(10);//_nop_();
00AC 0AE0 ldi R16,10
00AE E9DF rcall _nop
00B0 .dbline 71
00B0 ; nop(10);//_nop_();
00B0 0AE0 ldi R16,10
00B2 E7DF rcall _nop
00B4 .dbline 72
00B4 ; Set_EN(0);//ENABLE=0;
00B4 0027 clr R16
00B6 B4DF rcall _Set_EN
00B8 .dbline -2
00B8 .dbline 74
00B8 ; // Delay(1);
00B8 ; }
00B8 L33:
00B8 00D0 rcall pop_gset1
00BA .dbline 0 ; func end
00BA 0895 ret
00BC .dbsym l j 1 c
00BC .dbsym r i 20 c
00BC .dbend
00BC .dbfunc e SetStartLine _SetStartLine fV
00BC ; i -> R20
.even
00BC _SetStartLine::
00BC 00D0 rcall push_gset1
00BE 402F mov R20,R16
00C0 .dbline -1
00C0 .dbline 78
00C0 ;
00C0 ; //设置显示起始行,i=0~63//
00C0 ; void SetStartLine(uchar i)
00C0 ; {Set_RW(0);//RW=0;
00C0 .dbline 78
00C0 0027 clr R16
00C2 A6DF rcall _Set_RW
00C4 .dbline 79
00C4 ; Set_DI(0);//DI=0;
00C4 0027 clr R16
00C6 9CDF rcall _Set_DI
00C8 .dbline 80
00C8 ; Set_EN(0);//ENABLE=0;
00C8 0027 clr R16
00CA AADF rcall _Set_EN
00CC .dbline 81
00CC ; PORTA=0xc0+i;//P0=0xc0+i;
00CC 842F mov R24,R20
00CE 8054 subi R24,64 ; addi 192
00D0 8BBB out 0x1b,R24
00D2 .dbline 82
00D2 ; nop(10);//_nop_();
00D2 0AE0 ldi R16,10
00D4 D6DF rcall _nop
00D6 .dbline 83
00D6 ; Set_EN(1);//ENABLE=1;
00D6 01E0 ldi R16,1
00D8 A3DF rcall _Set_EN
00DA .dbline 84
00DA ; nop(10);//_nop_();
00DA 0AE0 ldi R16,10
00DC D2DF rcall _nop
00DE .dbline 85
00DE ; nop(10);//_nop_();
00DE 0AE0 ldi R16,10
00E0 D0DF rcall _nop
00E2 .dbline 86
00E2 ; Set_EN(0);//ENABLE=0;
00E2 0027 clr R16
00E4 9DDF rcall _Set_EN
00E6 .dbline -2
00E6 .dbline 88
00E6 ; // Delay(1);
00E6 ; }
00E6 L34:
00E6 00D0 rcall pop_gset1
00E8 .dbline 0 ; func end
00E8 0895 ret
00EA .dbsym r i 20 c
00EA .dbend
00EA .dbfunc e SetX _SetX fV
00EA ; i -> R20
.even
00EA _SetX::
00EA 00D0 rcall push_gset1
00EC 402F mov R20,R16
00EE .dbline -1
00EE .dbline 92
00EE ;
00EE ; //设置页(行)地址,i=0~7//
00EE ; void SetX(uchar i)
00EE ; {Set_RW(0);//RW=0;
00EE .dbline 92
00EE 0027 clr R16
00F0 8FDF rcall _Set_RW
00F2 .dbline 93
00F2 ; Set_DI(0);//DI=0;
00F2 0027 clr R16
00F4 85DF rcall _Set_DI
00F6 .dbline 94
00F6 ; Set_EN(0);//ENABLE=0;
00F6 0027 clr R16
00F8 93DF rcall _Set_EN
00FA .dbline 95
00FA ; PORTA=0xb8+i;//P0=0xb8+i;
00FA 842F mov R24,R20
00FC 8854 subi R24,72 ; addi 184
00FE 8BBB out 0x1b,R24
0100 .dbline 96
0100 ; nop(10);//_nop_();
0100 0AE0 ldi R16,10
0102 BFDF rcall _nop
0104 .dbline 97
0104 ; Set_EN(1);//ENABLE=1;
0104 01E0 ldi R16,1
0106 8CDF rcall _Set_EN
0108 .dbline 98
0108 ; nop(100);// _nop_();
0108 04E6 ldi R16,100
010A BBDF rcall _nop
010C .dbline 99
010C ; nop(100);//_nop_();
010C 04E6 ldi R16,100
010E B9DF rcall _nop
0110 .dbline 100
0110 ; Set_EN(0);//ENABLE=0;
0110 0027 clr R16
0112 86DF rcall _Set_EN
0114 .dbline -2
0114 .dbline 102
0114 ; // Delay(1);
0114 ; }
0114 L35:
0114 00D0 rcall pop_gset1
0116 .dbline 0 ; func end
0116 0895 ret
0118 .dbsym r i 20 c
0118 .dbend
0118 .dbfunc e SetY _SetY fV
0118 ; i -> R20
.even
0118 _SetY::
0118 00D0 rcall push_gset1
011A 402F mov R20,R16
011C .dbline -1
011C .dbline 106
011C ;
011C ; //设置Y(列)地址,i=0~127//
011C ; void SetY(uchar i)
011C ; {Set_RW(0);//RW=0;
011C .dbline 106
011C 0027 clr R16
011E 78DF rcall _Set_RW
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -