📄 3510i.lis
字号:
0018 .dbline 17
0018 ; LCD_Delay();
0018 F3DF xcall _LCD_Delay
001A .dbline 18
001A ; set_bit(LCD_RST_PORT, LCD_RST); //set RST = H
001A C39A sbi 0x18,3
001C .dbline 19
001C ; LCD_Delay();
001C F1DF xcall _LCD_Delay
001E .dbline -2
001E L6:
001E .dbline 0 ; func end
001E 0895 ret
0020 .dbend
0020 .dbfunc e LCD_SendCommand _LCD_SendCommand fV
0020 ; cmd -> R16
.even
0020 _LCD_SendCommand::
0020 .dbline -1
0020 .dbline 23
0020 ; }
0020 ;
0020 ; void LCD_SendCommand(uchar cmd)
0020 ; {
0020 .dbline 24
0020 ; set_bit(LCD_SIO_DDR, LCD_SIO); //set SDI.DDR = 1
0020 BD9A sbi 0x17,5
0022 .dbline 25
0022 ; clr_bit(LCD_CS_PORT, LCD_CS); //set CS = L
0022 C498 cbi 0x18,4
0024 .dbline 26
0024 ; clr_bit(LCD_SCL_PORT, LCD_SCL); //set SCK = L
0024 C798 cbi 0x18,7
0026 .dbline 27
0026 ; clr_bit(LCD_SIO_PORT, LCD_SIO); //send 0, for command
0026 C598 cbi 0x18,5
0028 .dbline 28
0028 ; set_bit(LCD_SCL_PORT, LCD_SCL); //set SCK = H, latch data
0028 C79A sbi 0x18,7
002A .dbline 30
002A ; //Bit 0(MSB)
002A ; clr_bit(LCD_SCL_PORT, LCD_SCL);
002A C798 cbi 0x18,7
002C .dbline 31
002C ; if(cmd & 0x80)
002C 07FF sbrs R16,7
002E 02C0 rjmp L8
0030 .dbline 32
0030 ; set_bit(LCD_SIO_PORT, LCD_SIO);
0030 C59A sbi 0x18,5
0032 01C0 xjmp L9
0034 L8:
0034 .dbline 34
0034 ; else
0034 ; clr_bit(LCD_SIO_PORT, LCD_SIO);
0034 C598 cbi 0x18,5
0036 L9:
0036 .dbline 35
0036 ; set_bit(LCD_SCL_PORT, LCD_SCL);
0036 C79A sbi 0x18,7
0038 .dbline 37
0038 ; //Bit 1
0038 ; clr_bit(LCD_SCL_PORT, LCD_SCL);
0038 C798 cbi 0x18,7
003A .dbline 38
003A ; if(cmd & 0x40)
003A 06FF sbrs R16,6
003C 02C0 rjmp L10
003E .dbline 39
003E ; set_bit(LCD_SIO_PORT, LCD_SIO);
003E C59A sbi 0x18,5
0040 01C0 xjmp L11
0042 L10:
0042 .dbline 41
0042 ; else
0042 ; clr_bit(LCD_SIO_PORT, LCD_SIO);
0042 C598 cbi 0x18,5
0044 L11:
0044 .dbline 42
0044 ; set_bit(LCD_SCL_PORT, LCD_SCL);
0044 C79A sbi 0x18,7
0046 .dbline 44
0046 ; //Bit 2
0046 ; clr_bit(LCD_SCL_PORT, LCD_SCL);
0046 C798 cbi 0x18,7
0048 .dbline 45
0048 ; if(cmd & 0x20)
0048 05FF sbrs R16,5
004A 02C0 rjmp L12
004C .dbline 46
004C ; set_bit(LCD_SIO_PORT, LCD_SIO);
004C C59A sbi 0x18,5
004E 01C0 xjmp L13
0050 L12:
0050 .dbline 48
0050 ; else
0050 ; clr_bit(LCD_SIO_PORT, LCD_SIO);
0050 C598 cbi 0x18,5
0052 L13:
0052 .dbline 49
0052 ; set_bit(LCD_SCL_PORT, LCD_SCL);
0052 C79A sbi 0x18,7
0054 .dbline 51
0054 ; //Bit 3
0054 ; clr_bit(LCD_SCL_PORT, LCD_SCL);
0054 C798 cbi 0x18,7
0056 .dbline 52
0056 ; if(cmd & 0x10)
0056 04FF sbrs R16,4
0058 02C0 rjmp L14
005A .dbline 53
005A ; set_bit(LCD_SIO_PORT, LCD_SIO);
005A C59A sbi 0x18,5
005C 01C0 xjmp L15
005E L14:
005E .dbline 55
005E ; else
005E ; clr_bit(LCD_SIO_PORT, LCD_SIO);
005E C598 cbi 0x18,5
0060 L15:
0060 .dbline 56
0060 ; set_bit(LCD_SCL_PORT, LCD_SCL);
0060 C79A sbi 0x18,7
0062 .dbline 58
0062 ; //Bit 4
0062 ; clr_bit(LCD_SCL_PORT, LCD_SCL);
0062 C798 cbi 0x18,7
0064 .dbline 59
0064 ; if(cmd & 0x08)
0064 03FF sbrs R16,3
0066 02C0 rjmp L16
0068 .dbline 60
0068 ; set_bit(LCD_SIO_PORT, LCD_SIO);
0068 C59A sbi 0x18,5
006A 01C0 xjmp L17
006C L16:
006C .dbline 62
006C ; else
006C ; clr_bit(LCD_SIO_PORT, LCD_SIO);
006C C598 cbi 0x18,5
006E L17:
006E .dbline 63
006E ; set_bit(LCD_SCL_PORT, LCD_SCL);
006E C79A sbi 0x18,7
0070 .dbline 65
0070 ; //Bit 5
0070 ; clr_bit(LCD_SCL_PORT, LCD_SCL);
0070 C798 cbi 0x18,7
0072 .dbline 66
0072 ; if(cmd & 0x04)
0072 02FF sbrs R16,2
0074 02C0 rjmp L18
0076 .dbline 67
0076 ; set_bit(LCD_SIO_PORT, LCD_SIO);
0076 C59A sbi 0x18,5
0078 01C0 xjmp L19
007A L18:
007A .dbline 69
007A ; else
007A ; clr_bit(LCD_SIO_PORT, LCD_SIO);
007A C598 cbi 0x18,5
007C L19:
007C .dbline 70
007C ; set_bit(LCD_SCL_PORT, LCD_SCL);
007C C79A sbi 0x18,7
007E .dbline 72
007E ; //Bit 6
007E ; clr_bit(LCD_SCL_PORT, LCD_SCL);
007E C798 cbi 0x18,7
0080 .dbline 73
0080 ; if(cmd & 0x02)
0080 01FF sbrs R16,1
0082 02C0 rjmp L20
0084 .dbline 74
0084 ; set_bit(LCD_SIO_PORT, LCD_SIO);
0084 C59A sbi 0x18,5
0086 01C0 xjmp L21
0088 L20:
0088 .dbline 76
0088 ; else
0088 ; clr_bit(LCD_SIO_PORT, LCD_SIO);
0088 C598 cbi 0x18,5
008A L21:
008A .dbline 77
008A ; set_bit(LCD_SCL_PORT, LCD_SCL);
008A C79A sbi 0x18,7
008C .dbline 79
008C ; //Bit 7(LSB)
008C ; clr_bit(LCD_SCL_PORT, LCD_SCL);
008C C798 cbi 0x18,7
008E .dbline 80
008E ; if(cmd & 0x01)
008E 00FF sbrs R16,0
0090 02C0 rjmp L22
0092 .dbline 81
0092 ; set_bit(LCD_SIO_PORT, LCD_SIO);
0092 C59A sbi 0x18,5
0094 01C0 xjmp L23
0096 L22:
0096 .dbline 83
0096 ; else
0096 ; clr_bit(LCD_SIO_PORT, LCD_SIO);
0096 C598 cbi 0x18,5
0098 L23:
0098 .dbline 84
0098 ; set_bit(LCD_SCL_PORT, LCD_SCL);
0098 C79A sbi 0x18,7
009A .dbline -2
009A L7:
009A .dbline 0 ; func end
009A 0895 ret
009C .dbsym r cmd 16 c
009C .dbend
009C .dbfunc e LCD_SendData _LCD_SendData fV
009C ; data -> R16
.even
009C _LCD_SendData::
009C .dbline -1
009C .dbline 89
009C ; //done
009C ; }
009C ;
009C ; void LCD_SendData(uchar data)
009C ; {
009C .dbline 90
009C ; set_bit(LCD_SIO_DDR, LCD_SIO); //set SDI.DDR = 1
009C BD9A sbi 0x17,5
009E .dbline 91
009E ; clr_bit(LCD_CS_PORT, LCD_CS); //set CS = L
009E C498 cbi 0x18,4
00A0 .dbline 92
00A0 ; clr_bit(LCD_SCL_PORT, LCD_SCL); //set SCK = L
00A0 C798 cbi 0x18,7
00A2 .dbline 93
00A2 ; set_bit(LCD_SIO_PORT, LCD_SIO); //send 1, for command
00A2 C59A sbi 0x18,5
00A4 .dbline 94
00A4 ; set_bit(LCD_SCL_PORT, LCD_SCL); //set SCK = H, latch data
00A4 C79A sbi 0x18,7
00A6 .dbline 96
00A6 ; //Bit 0(MSB)
00A6 ; clr_bit(LCD_SCL_PORT, LCD_SCL);
00A6 C798 cbi 0x18,7
00A8 .dbline 97
00A8 ; if(data & 0x80)
00A8 07FF sbrs R16,7
00AA 02C0 rjmp L25
00AC .dbline 98
00AC ; set_bit(LCD_SIO_PORT, LCD_SIO);
00AC C59A sbi 0x18,5
00AE 01C0 xjmp L26
00B0 L25:
00B0 .dbline 100
00B0 ; else
00B0 ; clr_bit(LCD_SIO_PORT, LCD_SIO);
00B0 C598 cbi 0x18,5
00B2 L26:
00B2 .dbline 101
00B2 ; set_bit(LCD_SCL_PORT, LCD_SCL);
00B2 C79A sbi 0x18,7
00B4 .dbline 103
00B4 ; //Bit 1
00B4 ; clr_bit(LCD_SCL_PORT, LCD_SCL);
00B4 C798 cbi 0x18,7
00B6 .dbline 104
00B6 ; if(data & 0x40)
00B6 06FF sbrs R16,6
00B8 02C0 rjmp L27
00BA .dbline 105
00BA ; set_bit(LCD_SIO_PORT, LCD_SIO);
00BA C59A sbi 0x18,5
00BC 01C0 xjmp L28
00BE L27:
00BE .dbline 107
00BE ; else
00BE ; clr_bit(LCD_SIO_PORT, LCD_SIO);
00BE C598 cbi 0x18,5
00C0 L28:
00C0 .dbline 108
00C0 ; set_bit(LCD_SCL_PORT, LCD_SCL);
00C0 C79A sbi 0x18,7
00C2 .dbline 110
00C2 ; //Bit 2
00C2 ; clr_bit(LCD_SCL_PORT, LCD_SCL);
00C2 C798 cbi 0x18,7
00C4 .dbline 111
00C4 ; if(data & 0x20)
00C4 05FF sbrs R16,5
00C6 02C0 rjmp L29
00C8 .dbline 112
00C8 ; set_bit(LCD_SIO_PORT, LCD_SIO);
00C8 C59A sbi 0x18,5
00CA 01C0 xjmp L30
00CC L29:
00CC .dbline 114
00CC ; else
00CC ; clr_bit(LCD_SIO_PORT, LCD_SIO);
00CC C598 cbi 0x18,5
00CE L30:
00CE .dbline 115
00CE ; set_bit(LCD_SCL_PORT, LCD_SCL);
00CE C79A sbi 0x18,7
00D0 .dbline 117
00D0 ; //Bit 3
00D0 ; clr_bit(LCD_SCL_PORT, LCD_SCL);
00D0 C798 cbi 0x18,7
00D2 .dbline 118
00D2 ; if(data & 0x10)
00D2 04FF sbrs R16,4
00D4 02C0 rjmp L31
00D6 .dbline 119
00D6 ; set_bit(LCD_SIO_PORT, LCD_SIO);
00D6 C59A sbi 0x18,5
00D8 01C0 xjmp L32
00DA L31:
00DA .dbline 121
00DA ; else
00DA ; clr_bit(LCD_SIO_PORT, LCD_SIO);
00DA C598 cbi 0x18,5
00DC L32:
00DC .dbline 122
00DC ; set_bit(LCD_SCL_PORT, LCD_SCL);
00DC C79A sbi 0x18,7
00DE .dbline 124
00DE ; //Bit 4
00DE ; clr_bit(LCD_SCL_PORT, LCD_SCL);
00DE C798 cbi 0x18,7
00E0 .dbline 125
00E0 ; if(data & 0x08)
00E0 03FF sbrs R16,3
00E2 02C0 rjmp L33
00E4 .dbline 126
00E4 ; set_bit(LCD_SIO_PORT, LCD_SIO);
00E4 C59A sbi 0x18,5
00E6 01C0 xjmp L34
00E8 L33:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -