📄 display.lis
字号:
002D ;
002D ; LcdSendCommand(0x20);
002D 5020 mov A,32
002F 08 push A
0030 95C5 xcall _LcdSendCommand
0032 .dbline 27
0032 ; LcdSendCommand(0x0C); // LCD in normal mode.
0032 500C mov A,12
0034 08 push A
0035 95C0 xcall _LcdSendCommand
0037 38FE add SP,-2
0039 .dbline 30
0039 ;
0039 ; //clear display
0039 ; LcdSendCommand(0x40);
0039 5040 mov A,64
003B 08 push A
003C 95B9 xcall _LcdSendCommand
003E .dbline 31
003E ; LcdSendCommand(0x80);
003E 5080 mov A,-128
0040 08 push A
0041 95B4 xcall _LcdSendCommand
0043 38FE add SP,-2
0045 .dbline 32
0045 560100 mov [X+1],0
0048 560000 mov [X+0],0
004B L3:
004B .dbline 32
004B 5000 mov A,0
004D 08 push A
004E 958D xcall _LcdSendData
0050 38FF add SP,-1
0052 L4:
0052 .dbline 32
0052 ; for(i=0; i<504; i++) LcdSendData(0x00);
0052 7701 inc [X+1]
0054 0F0000 adc [X+0],0
0057 .dbline 32
0057 5200 mov A,[X+0]
0059 3180 xor A,-128
005B 5300 mov [__rY],A
005D 5001 mov A,1
005F 3180 xor A,-128
0061 5300 mov [__rZ],A
0063 550000 mov [__rX],0
0066 5201 mov A,[X+1]
0068 11F8 sub A,-8
006A 2C00 or [__rX],A
006C 5100 mov A,[__rY]
006E 1A00 sbb A,[__rZ]
0070 2C00 or [__rX],A
0072 CFD8 jc L3
0074 X0:
0074 .dbline -2
0074 .dbline 33
0074 ; }
0074 L2:
0074 38FE add SP,-2
0076 20 pop X
0077 .dbline 0 ; func end
0077 7F ret
0078 .dbsym l i 0 I
0078 .dbend
0078 .dbfunc e LcdContrast _LcdContrast fV
0078 ; contrast -> X-4
0078 _LcdContrast::
0078 .dbline -1
0078 10 push X
0079 4F mov X,SP
007A .dbline 43
007A ;
007A ; //--------------------------------------------------------------------------------------------------
007A ; // Name : LcdContrast
007A ; // Description : Set display contrast.
007A ; // Argument(s) : contrast -> Contrast value from 0x00 to 0x7F.
007A ; // Return value : None.
007A ; // Notes : No change visible at ambient temperature.
007A ; //--------------------------------------------------------------------------------------------------
007A ; void LcdContrast ( char contrast )
007A ; {
007A .dbline 45
007A ; // LCD Extended Commands.
007A ; LcdSendCommand(0x21);
007A 5021 mov A,33
007C 08 push A
007D 9578 xcall _LcdSendCommand
007F 38FF add SP,-1
0081 .dbline 47
0081 ; // Set LCD Vop (Contrast).
0081 ; LcdSendCommand(0x80);
0081 5080 mov A,-128
0083 08 push A
0084 9571 xcall _LcdSendCommand
0086 .dbline 49
0086 ; // LCD Standard Commands, horizontal addressing mode.
0086 ; LcdSendCommand(0x20);
0086 5020 mov A,32
0088 08 push A
0089 956C xcall _LcdSendCommand
008B 38FE add SP,-2
008D .dbline -2
008D .dbline 50
008D ; }
008D L7:
008D 20 pop X
008E .dbline 0 ; func end
008E 7F ret
008F .dbsym l contrast 0 I
008F .dbsym l contrast -4 c
008F .dbend
008F .dbfunc e LcdClear _LcdClear fV
008F ; i -> X+0
008F _LcdClear::
008F .dbline -1
008F 10 push X
0090 4F mov X,SP
0091 3802 add SP,2
0093 .dbline 59
0093 ;
0093 ; //--------------------------------------------------------------------------------------------------
0093 ; // Name : LcdClear
0093 ; // Description : Clears the display.
0093 ; // Argument(s) : None.
0093 ; // Return value : None.
0093 ; //--------------------------------------------------------------------------------------------------
0093 ; void LcdClear ( void )
0093 ; {
0093 .dbline 61
0093 560100 mov [X+1],0
0096 560000 mov [X+0],0
0099 L9:
0099 .dbline 61
0099 5000 mov A,0
009B 08 push A
009C 953F xcall _LcdSendData
009E 38FF add SP,-1
00A0 L10:
00A0 .dbline 61
00A0 ; int i;
00A0 ; for(i=0; i<504; i++) LcdSendData(0x00);
00A0 7701 inc [X+1]
00A2 0F0000 adc [X+0],0
00A5 .dbline 61
00A5 5200 mov A,[X+0]
00A7 3180 xor A,-128
00A9 5300 mov [__rY],A
00AB 5001 mov A,1
00AD 3180 xor A,-128
00AF 5300 mov [__rZ],A
00B1 550000 mov [__rX],0
00B4 5201 mov A,[X+1]
00B6 11F8 sub A,-8
00B8 2C00 or [__rX],A
00BA 5100 mov A,[__rY]
00BC 1A00 sbb A,[__rZ]
00BE 2C00 or [__rX],A
00C0 CFD8 jc L9
00C2 X1:
00C2 .dbline 62
00C2 ; LcdSendCommand(0x40);
00C2 5040 mov A,64
00C4 08 push A
00C5 9530 xcall _LcdSendCommand
00C7 .dbline 63
00C7 ; LcdSendCommand(0x80);
00C7 5080 mov A,-128
00C9 08 push A
00CA 952B xcall _LcdSendCommand
00CC 38FE add SP,-2
00CE .dbline -2
00CE .dbline 64
00CE ; }
00CE L8:
00CE 38FE add SP,-2
00D0 20 pop X
00D1 .dbline 0 ; func end
00D1 7F ret
00D2 .dbsym l i 0 I
00D2 .dbend
00D2 .dbfunc e LcdGoto _LcdGoto fV
00D2 ; y -> X-5
00D2 ; x -> X-4
00D2 _LcdGoto::
00D2 .dbline -1
00D2 10 push X
00D3 4F mov X,SP
00D4 .dbline 73
00D4 ;
00D4 ; //--------------------------------------------------------------------------------------------------
00D4 ; // Name : LcdGotoXY
00D4 ; // Description : Sets cursor location to xy location corresponding to basic font size.
00D4 ; // Argument(s) : x, y -> Coordinate for new cursor position. x range 0..83, y - 0..5
00D4 ; // Return value : None.
00D4 ; //--------------------------------------------------------------------------------------------------
00D4 ; void LcdGoto ( char x, char y )
00D4 ; {
00D4 .dbline 74
00D4 ; LcdSendCommand(0x40 | y);
00D4 52FB mov A,[X-5]
00D6 2940 or A,64
00D8 08 push A
00D9 951C xcall _LcdSendCommand
00DB .dbline 75
00DB ; LcdSendCommand(0x80 | x);
00DB 52FC mov A,[X-4]
00DD 2980 or A,-128
00DF 08 push A
00E0 9515 xcall _LcdSendCommand
00E2 38FE add SP,-2
00E4 .dbline -2
00E4 .dbline 76
00E4 ; }
00E4 L13:
00E4 20 pop X
00E5 .dbline 0 ; func end
00E5 7F ret
00E6 .dbsym l y 0 I
00E6 .dbsym l y -5 c
00E6 .dbsym l x 0 I
00E6 .dbsym l x -4 c
00E6 .dbend
00E6 .dbfunc e LcdChr _LcdChr fV
00E6 ; i -> X+0
00E6 ; ch -> X-4
00E6 _LcdChr::
00E6 .dbline -1
00E6 10 push X
00E7 4F mov X,SP
00E8 3802 add SP,2
00EA .dbline 87
00EA ;
00EA ; //--------------------------------------------------------------------------------------------------
00EA ; // Name : LcdChr
00EA ; // Description : Displays a character at current cursor location and increment cursor location.
00EA ; // Argument(s) : ch -> Character to write.
00EA ; // dt (available only with DRAW_OVER_BACKGROUND directive) -> drawing type
00EA ; // Return value : None.
00EA ; //--------------------------------------------------------------------------------------------------
00EA ;
00EA ; void LcdChr ( char ch )
00EA ; {
00EA .dbline 89
00EA 560100 mov [X+1],0
00ED 560000 mov [X+0],0
00F0 L15:
00F0 .dbline 89
00F0 550005 mov [__r1],5
00F3 550000 mov [__r0],0
00F6 52FC mov A,[X-4]
00F8 5300 mov [__r3],A
00FA 550000 mov [__r2],0
00FD 550000 mov [__rX],0
0100 550000 mov [__rY],0
0103 X2:
0103 3C0000 cmp [__r0],0
0106 B006 jnz X5
0108 3C0000 cmp [__r1],0
010B A017 jz X4
010D X5:
010D 70FB and F,-5
010F 6E00 rrc [__r0]
0111 6E00 rrc [__r1]
0113 D009 jnc X3
0115 5100 mov A,[__r3]
0117 0400 add [__rX],A
0119 5100 mov A,[__r2]
011B 0C00 adc [__rY],A
011D X3:
011D 6500 asl [__r3]
011F 6B00 rlc [__r2]
0121 8FE1 jmp X2
0123 X4:
0123 5F0000 mov [__r1],[__rX]
0126 5F0000 mov [__r0],[__rY]
0129 060060 add [__r1],<_FontLookup-160
012C 0E0060 adc [__r0],>_FontLookup-160
012F 5201 mov A,[X+1]
0131 0200 add A,[__r1]
0133 5300 mov [__r1],A
0135 5200 mov A,[X+0]
0137 0A00 adc A,[__r0]
0139 10 push X
013A 5800 mov X,[__r1]
013C 28 romx
013D 20 pop X
013E 08 push A
013F 949C xcall _LcdSendData
0141 38FF add SP,-1
0143 L16:
0143 .dbline 89
0143 ; int i;
0143 ; for(i=0; i<5; i++) LcdSendData(FontLookup[ch-32][i]);
0143 7701 inc [X+1]
0145 0F0000 adc [X+0],0
0148 .dbline 89
0148 5200 mov A,[X+0]
014A 3180 xor A,-128
014C 5300 mov [__rY],A
014E 5000 mov A,0
0150 3180 xor A,-128
0152 5300 mov [__rZ],A
0154 550000 mov [__rX],0
0157 5201 mov A,[X+1]
0159 1105 sub A,5
015B 2C00 or [__rX],A
015D 5100 mov A,[__rY]
015F 1A00 sbb A,[__rZ]
0161 2C00 or [__rX],A
0163 CF8C jc L15
0165 X6:
0165 .dbline 91
0165 ; // empty space after character
0165 ; LcdSendData(0x00);
0165 5000 mov A,0
0167 08 push A
0168 9473 xcall _LcdSendData
016A 38FF add SP,-1
016C .dbline -2
016C .dbline 92
016C ; }
016C L14:
016C 38FE add SP,-2
016E 20 pop X
016F .dbline 0 ; func end
016F 7F ret
0170 .dbsym l i 0 I
0170 .dbsym l ch 0 I
0170 .dbsym l ch -4 c
0170 .dbend
0170 .dbfunc e LcdStr _LcdStr fV
0170 ; ch -> X+2
0170 ; i -> X+0
0170 ; dataPtr -> X-5
0170 _LcdStr::
0170 .dbline -1
0170 10 push X
0171 4F mov X,SP
0172 3803 add SP,3
0174 .dbline 95
0174 ;
0174 ; void LcdStr ( char *dataPtr )
0174 ; {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -