📄 main.lis
字号:
0000 ; #define DisplayEnd 0b11101110
0000 ; #define DisplayReset 0b11100010
0000 ;
0000 ;
0000 ; //
0000 ; #define Ctrl PRT1DR
0000 ; #define Data PRT2DR
0000 ; #define A0 bit2
0000 ; #define CS1 bit3
0000 ; #define CS2 bit4
0000 ; //CL bit5
0000 ;
0000 ; #define E bit6
0000 ; #define WR bit7
0000 ;
0000 ; #define LCDDisable Ctrl |= E
0000 ; #define LCDEnable Ctrl &= ~E
0000 ;
0000 ;
0000 ; void main()
0000 ; {
0000 .dbline 79
0000 ; ports_init ();
0000 91E1 xcall _ports_init
0002 .dbline 81
0002 ;
0002 ; PWM8_1_Start();
0002 10 push X
0003 7C0000 xcall _PWM8_1_Start
0006 .dbline 82
0006 ; PWM8_2_Start();
0006 7C0000 xcall _PWM8_2_Start
0009 20 pop X
000A .dbline 84
000A ;
000A ; ResetDisplay (); //reset LCD
000A 9008 xcall _ResetDisplay
000C .dbline 85
000C ; InitDisplay (); //Initialize LCD
000C 9017 xcall _InitDisplay
000E .dbline 87
000E ;
000E ; test_PSoC(); // save logo in LCD
000E 915B xcall _test_PSoC
0010 .dbline 88
0010 ; display(); // LCD show
0010 918E xcall _display
0012 .dbline -2
0012 .dbline 91
0012 ;
0012 ;
0012 ; }
0012 L1:
0012 .dbline 0 ; func end
0012 8FFF jmp .
0014 .dbend
0014 .dbfunc e ResetDisplay _ResetDisplay fV
0014 _ResetDisplay::
0014 .dbline -1
0014 .dbline 94
0014 ;
0014 ; void ResetDisplay ()
0014 ; {
0014 .dbline 95
0014 ; PRT0DR |= bit0;
0014 430001 or REG[ 0],1
0017 .dbline 96
0017 ; delay(239); //1ms cpu 24MHz
0017 5000 mov A,0
0019 08 push A
001A 50EF mov A,-17
001C 08 push A
001D 9192 xcall _delay
001F 38FE add SP,-2
0021 .dbline 97
0021 ; PRT0DR &= ~bit0;
0021 4100FE and REG[ 0],-2
0024 .dbline -2
0024 .dbline 98
0024 ; }
0024 L2:
0024 .dbline 0 ; func end
0024 7F ret
0025 .dbend
0025 .dbfunc e InitDisplay _InitDisplay fV
0025 _InitDisplay::
0025 .dbline -1
0025 .dbline 103
0025 ;
0025 ;
0025 ;
0025 ; void InitDisplay ()
0025 ; {
0025 .dbline 104
0025 ; Data = Display_OFF;
0025 6208AE mov REG[0x8],-82
0028 .dbline 105
0028 ; write_instruction ();
0028 9058 xcall _write_instruction
002A .dbline 106
002A ; Data = DisplayStartLine;
002A 6208C0 mov REG[0x8],-64
002D .dbline 107
002D ; write_instruction ();
002D 9053 xcall _write_instruction
002F .dbline 108
002F ; Data = StaticDriveOFF;
002F 6208A4 mov REG[0x8],-92
0032 .dbline 109
0032 ; write_instruction ();
0032 904E xcall _write_instruction
0034 .dbline 110
0034 ; Data = ColumnAdressSet;
0034 620800 mov REG[0x8],0
0037 .dbline 111
0037 ; write_instruction ();
0037 9049 xcall _write_instruction
0039 .dbline 112
0039 ; Data = DutySelect32;
0039 6208A9 mov REG[0x8],-87
003C .dbline 113
003C ; write_instruction ();
003C 9044 xcall _write_instruction
003E .dbline 114
003E ; Data = ADC_Select_R;
003E 6208A0 mov REG[0x8],-96
0041 .dbline 115
0041 ; write_instruction ();
0041 903F xcall _write_instruction
0043 .dbline 116
0043 ; Data = OffReadModifyWrite; //Off
0043 6208EE mov REG[0x8],-18
0046 .dbline 117
0046 ; write_instruction ();
0046 903A xcall _write_instruction
0048 .dbline -2
0048 .dbline 118
0048 ; }
0048 L3:
0048 .dbline 0 ; func end
0048 7F ret
0049 .dbend
0049 .dbfunc e read_data _read_data fc
0049 ; dat -> X+0
0049 _read_data::
0049 .dbline -1
0049 10 push X
004A 4F mov X,SP
004B 3801 add SP,1
004D .dbline 124
004D ;
004D ;
004D ;
004D ; // Read data from a driver
004D ; BYTE read_data ()
004D ; {
004D .dbline 126
004D ; BYTE dat;
004D ; Data=5;
004D 620805 mov REG[0x8],5
0050 .dbline 128
0050 ;
0050 ; Ctrl |= A0;
0050 430404 or REG[0x4],4
0053 .dbline 130
0053 ;
0053 ; LCDEnable;
0053 4104BF and REG[0x4],-65
0056 .dbline 132
0056 ;
0056 ; Ctrl &= ~WR;
0056 41047F and REG[0x4],127
0059 .dbline 133
0059 ; Ctrl |= WR;
0059 430480 or REG[0x4],-128
005C .dbline 135
005C ;
005C ; PRT2_HZ ();
005C 9086 xcall _PRT2_HZ
005E .dbline 136
005E ; dat=Data;
005E 5D08 mov A,REG[0x8]
0060 5400 mov [X+0],A
0062 .dbline 137
0062 ; PRT2_PD ();
0062 9092 xcall _PRT2_PD
0064 .dbline 139
0064 ;
0064 ; LCDDisable;
0064 430440 or REG[0x4],64
0067 .dbline 141
0067 ;
0067 ; return dat;
0067 5200 mov A,[X+0]
0069 .dbline -2
0069 L4:
0069 38FF add SP,-1
006B 20 pop X
006C .dbline 0 ; func end
006C 7F ret
006D .dbsym l dat 0 c
006D .dbend
006D .dbfunc e write_data _write_data fV
006D _write_data::
006D .dbline -1
006D .dbline 148
006D ;
006D ; }
006D ;
006D ;
006D ; // Write data to a driver
006D ; void write_data ()
006D ; {
006D .dbline 149
006D ; LCD_Ready ();
006D 9028 xcall _LCD_Ready
006F .dbline 150
006F ; Ctrl &= ~A0;
006F 4104FB and REG[0x4],-5
0072 .dbline 151
0072 ; Ctrl |= A0;
0072 430404 or REG[0x4],4
0075 .dbline 152
0075 ; Ctrl |= WR;
0075 430480 or REG[0x4],-128
0078 .dbline 153
0078 ; Ctrl &= ~WR;
0078 41047F and REG[0x4],127
007B .dbline 154
007B ; LCDEnable;
007B 4104BF and REG[0x4],-65
007E .dbline 155
007E ; LCDDisable;
007E 430440 or REG[0x4],64
0081 .dbline -2
0081 .dbline 157
0081 ;
0081 ; }
0081 L5:
0081 .dbline 0 ; func end
0081 7F ret
0082 .dbend
0082 .dbfunc e write_instruction _write_instruction fV
0082 _write_instruction::
0082 .dbline -1
0082 .dbline 161
0082 ;
0082 ; // Write an instruction to a driver
0082 ; void write_instruction ()
0082 ; {
0082 .dbline 162
0082 ; LCD_Ready ();
0082 9013 xcall _LCD_Ready
0084 .dbline 163
0084 ; Ctrl |= A0;
0084 430404 or REG[0x4],4
0087 .dbline 164
0087 ; Ctrl &= ~A0;
0087 4104FB and REG[0x4],-5
008A .dbline 165
008A ; Ctrl |= WR;
008A 430480 or REG[0x4],-128
008D .dbline 166
008D ; Ctrl &= ~WR;
008D 41047F and REG[0x4],127
0090 .dbline 167
0090 ; LCDEnable;
0090 4104BF and REG[0x4],-65
0093 .dbline 168
0093 ; LCDDisable;
0093 430440 or REG[0x4],64
0096 .dbline -2
0096 .dbline 169
0096 ; }
0096 L6:
0096 .dbline 0 ; func end
0096 7F ret
0097 .dbend
0097 .dbfunc e LCD_Ready _LCD_Ready fV
0097 _LCD_Ready::
0097 .dbline -1
0097 .dbline 174
0097 ;
0097 ;
0097 ; // Read the current status of a driver
0097 ; void LCD_Ready ()
0097 ; {
0097 L8:
0097 .dbline 175
0097 ; do {
0097 .dbline 177
0097 ;
0097 ; Ctrl &= ~A0;
0097 4104FB and REG[0x4],-5
009A .dbline 179
009A ;
009A ; LCDEnable;
009A 4104BF and REG[0x4],-65
009D .dbline 180
009D ; Ctrl |= WR;
009D 430480 or REG[0x4],-128
00A0 .dbline 181
00A0 ; PRT2_HZ ();
00A0 9042 xcall _PRT2_HZ
00A2 .dbline 182
00A2 ; rl=Data;
00A2 5D08 mov A,REG[0x8]
00A4 530B mov [_rl],A
00A6 .dbline 183
00A6 ; PRT2_PD ();
00A6 904E xcall _PRT2_PD
00A8 .dbline 184
00A8 ; Ctrl &= ~WR;
00A8 41047F and REG[0x4],127
00AB .dbline 185
00AB ; LCDDisable;
00AB 430440 or REG[0x4],64
00AE .dbline 186
00AE L9:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -