?? lcd.lis
字號:
005E ; // Output : none
005E ; // Description : Write Command to LCD
005E ; //******************************************************************************
005E ; void LCD_Write_Command(INT8U command,INT8U status)
005E ; {
005E .dbline 125
005E ; if(status == 1)
005E 6130 cpi R22,1
0060 19F4 brne L13
0062 .dbline 126
0062 ; {
0062 L15:
0062 .dbline 127
0062 .dbline 127
0062 .dbline 127
0062 L16:
0062 .dbline 127
0062 ; while(LCD_Read_BF() != 0) {;}
0062 E2DF xcall _LCD_Read_BF
0064 0023 tst R16
0066 E9F7 brne L15
0068 .dbline 128
0068 ; }
0068 L13:
0068 .dbline 129
0068 ; Set_EN(0);
0068 0027 clr R16
006A D6DF xcall _Set_EN
006C .dbline 130
006C ; Set_RS(0);
006C 0027 clr R16
006E C8DF xcall _Set_RS
0070 .dbline 131
0070 ; Set_RW(0);
0070 0027 clr R16
0072 CCDF xcall _Set_RW
0074 .dbline 132
0074 ; Set_Data(command);
0074 042F mov R16,R20
0076 D6DF xcall _Set_Data
0078 .dbline 133
0078 ; Set_EN(1);
0078 01E0 ldi R16,1
007A CEDF xcall _Set_EN
007C .dbline 134
007C ; NOP();
007C 0000 nop
007E .dbline 135
007E ; NOP();
007E 0000 nop
0080 .dbline 136
0080 ; Set_EN(0);
0080 0027 clr R16
0082 CADF xcall _Set_EN
0084 .dbline -2
0084 .dbline 137
0084 ; }
0084 L12:
0084 0E940000 xcall pop_gset2
0088 .dbline 0 ; func end
0088 0895 ret
008A .dbsym r status 22 c
008A .dbsym r command 20 c
008A .dbend
008A .dbfunc e LCD_Write_Data _LCD_Write_Data fV
008A ; status -> R22
008A ; data -> R20
.even
008A _LCD_Write_Data::
008A 0E940000 xcall push_gset2
008E 622F mov R22,R18
0090 402F mov R20,R16
0092 .dbline -1
0092 .dbline 147
0092 ;
0092 ; //******************************************************************************
0092 ; // Function : LCD_Write_Data
0092 ; // Input : data - Data to be written to LCD
0092 ; // status - Detect LCD Status when 1
0092 ; // Output : none
0092 ; // Description : Write Data to LCD
0092 ; //******************************************************************************
0092 ; void LCD_Write_Data(INT8U data,INT8U status)
0092 ; {
0092 .dbline 148
0092 ; if(status == 1)
0092 6130 cpi R22,1
0094 19F4 brne L19
0096 .dbline 149
0096 ; {
0096 L21:
0096 .dbline 150
0096 .dbline 150
0096 .dbline 150
0096 L22:
0096 .dbline 150
0096 ; while(LCD_Read_BF() != 0) {;}
0096 C8DF xcall _LCD_Read_BF
0098 0023 tst R16
009A E9F7 brne L21
009C .dbline 151
009C ; }
009C L19:
009C .dbline 152
009C ; Set_EN(0);
009C 0027 clr R16
009E BCDF xcall _Set_EN
00A0 .dbline 153
00A0 ; Set_RS(1);
00A0 01E0 ldi R16,1
00A2 AEDF xcall _Set_RS
00A4 .dbline 154
00A4 ; Set_RW(0);
00A4 0027 clr R16
00A6 B2DF xcall _Set_RW
00A8 .dbline 155
00A8 ; Set_Data(data);
00A8 042F mov R16,R20
00AA BCDF xcall _Set_Data
00AC .dbline 156
00AC ; Set_EN(1);
00AC 01E0 ldi R16,1
00AE B4DF xcall _Set_EN
00B0 .dbline 157
00B0 ; NOP();
00B0 0000 nop
00B2 .dbline 158
00B2 ; NOP();
00B2 0000 nop
00B4 .dbline 159
00B4 ; Set_EN(0);
00B4 0027 clr R16
00B6 B0DF xcall _Set_EN
00B8 .dbline -2
00B8 .dbline 160
00B8 ; }
00B8 L18:
00B8 0E940000 xcall pop_gset2
00BC .dbline 0 ; func end
00BC 0895 ret
00BE .dbsym r status 22 c
00BE .dbsym r data 20 c
00BE .dbend
00BE .dbfunc e LCD_Read_Data _LCD_Read_Data fc
00BE ; data -> R20
00BE ; status -> R20
.even
00BE _LCD_Read_Data::
00BE 0E940000 xcall push_gset1
00C2 402F mov R20,R16
00C4 .dbline -1
00C4 .dbline 169
00C4 ;
00C4 ; //******************************************************************************
00C4 ; // Function : LCD_Read_Data
00C4 ; // Input : status - Detect LCD Status when 1
00C4 ; // Output : Data read from LCD
00C4 ; // Description : Read Data from LCD
00C4 ; //******************************************************************************
00C4 ; INT8U LCD_Read_Data(INT8U status)
00C4 ; {
00C4 .dbline 171
00C4 ; INT8U data;
00C4 ; if(status == 1)
00C4 4130 cpi R20,1
00C6 19F4 brne L25
00C8 .dbline 172
00C8 ; {
00C8 L27:
00C8 .dbline 173
00C8 .dbline 173
00C8 .dbline 173
00C8 L28:
00C8 .dbline 173
00C8 ; while(LCD_Read_BF() != 0) {;}
00C8 AFDF xcall _LCD_Read_BF
00CA 0023 tst R16
00CC E9F7 brne L27
00CE .dbline 174
00CE ; }
00CE L25:
00CE .dbline 175
00CE ; DDRA = 0x00;
00CE 2224 clr R2
00D0 2ABA out 0x1a,R2
00D2 .dbline 176
00D2 ; Set_EN(0);
00D2 0027 clr R16
00D4 A1DF xcall _Set_EN
00D6 .dbline 177
00D6 ; Set_RS(1);
00D6 01E0 ldi R16,1
00D8 93DF xcall _Set_RS
00DA .dbline 178
00DA ; Set_RW(1);
00DA 01E0 ldi R16,1
00DC 97DF xcall _Set_RW
00DE .dbline 179
00DE ; Set_EN(1);
00DE 01E0 ldi R16,1
00E0 9BDF xcall _Set_EN
00E2 .dbline 180
00E2 ; NOP();
00E2 0000 nop
00E4 .dbline 181
00E4 ; NOP();
00E4 0000 nop
00E6 .dbline 182
00E6 ; data = PINA;
00E6 49B3 in R20,0x19
00E8 .dbline 183
00E8 ; Set_EN(0);
00E8 0027 clr R16
00EA 96DF xcall _Set_EN
00EC .dbline 184
00EC ; DDRA = 0xFF;
00EC 8FEF ldi R24,255
00EE 8ABB out 0x1a,R24
00F0 .dbline 185
00F0 ; return(data);
00F0 042F mov R16,R20
00F2 .dbline -2
00F2 L24:
00F2 0E940000 xcall pop_gset1
00F6 .dbline 0 ; func end
00F6 0895 ret
00F8 .dbsym r data 20 c
00F8 .dbsym r status 20 c
00F8 .dbend
00F8 .dbfunc e LCD_Reset _LCD_Reset fV
.even
00F8 _LCD_Reset::
00F8 .dbline -1
00F8 .dbline 195
00F8 ; }
00F8 ;
00F8 ; //******************************************************************************
00F8 ; // Function : LCD_Reset
00F8 ; // Input : none
00F8 ; // Output : none
00F8 ; // Description : LCD software reset,must execute according to time sequence
00F8 ; //******************************************************************************
00F8 ; void LCD_Reset(void)
00F8 ; {
00F8 .dbline 196
00F8 ; Delay_ms(15);
00F8 0FE0 ldi R16,15
00FA 59D0 xcall _Delay_ms
00FC .dbline 197
00FC ; LCD_Write_Command(0x38,0);
00FC 2227 clr R18
00FE 08E3 ldi R16,56
0100 AADF xcall _LCD_Write_Command
0102 .dbline 198
0102 ; Delay_ms(5);
0102 05E0 ldi R16,5
0104 54D0 xcall _Delay_ms
0106 .dbline 199
0106 ; LCD_Write_Command(0x38,0);
0106 2227 clr R18
0108 08E3 ldi R16,56
010A A5DF xcall _LCD_Write_Command
010C .dbline 200
010C ; Delay_ms(5);
010C 05E0 ldi R16,5
010E 4FD0 xcall _Delay_ms
0110 .dbline 201
0110 ; LCD_Write_Command(0x38,0);
0110 2227 clr R18
0112 08E3 ldi R16,56
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -