⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lis

📁 单片机控制122x32液晶。液晶内部芯片包含RAM(类似于显存)
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 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 + -