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

📄 lcd_back.lis

📁 AVR单片机C语言程序设计实例精粹
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0068                   .dbend
 0068                   .dbfunc e Set_Data _Set_Data fV
 0068           ;           data -> R16
                        .even
 0068           _Set_Data::
 0068                   .dbline -1
 0068                   .dbline 183
 0068           ;  
 0068           ; //******************************************************************************
 0068           ; // Function    : Set_Data
 0068           ; // Input       : data - Data Line Level
 0068           ; // Output      : none
 0068           ; // Description : Low Level Interface Function
 0068           ; //******************************************************************************
 0068           ; void Set_Data(INT8U data)
 0068           ; {
 0068                   .dbline 184
 0068           ;       PORTA  = data;
 0068 0BBB              out 0x1b,R16
 006A                   .dbline -2
 006A                   .dbline 185
 006A           ; }
 006A           L24:
 006A                   .dbline 0 ; func end
 006A 0895              ret
 006C                   .dbsym r data 16 c
 006C                   .dbend
 006C                   .dbfunc e DisplayOnOff _DisplayOnOff fV
 006C           ;          onoff -> R20
                        .even
 006C           _DisplayOnOff::
 006C 0E940000          xcall push_gset1
 0070 402F              mov R20,R16
 0072                   .dbline -1
 0072                   .dbline 189
 0072           ; 
 0072           ; //显示开关控制命令,i=0开显示,i=1关显示//
 0072           ; void DisplayOnOff(INT8U onoff)
 0072           ; {
 0072                   .dbline 190
 0072           ;       Set_RW(0);
 0072 0027              clr R16
 0074 DBDF              xcall _Set_RW
 0076                   .dbline 191
 0076           ;       Set_DI(0);
 0076 0027              clr R16
 0078 D3DF              xcall _Set_DI
 007A                   .dbline 192
 007A           ;       Set_EN(0);
 007A 0027              clr R16
 007C DDDF              xcall _Set_EN
 007E                   .dbline 193
 007E           ;       Set_Data(0x3E + onoff);
 007E 042F              mov R16,R20
 0080 025C              subi R16,194    ; addi 62
 0082 F2DF              xcall _Set_Data
 0084                   .dbline 194
 0084           ;       nop(10);
 0084                   .dbline 194
 0084                   .dbline 194
 0084                   .dbline 194
 0084                   .dbline 195
 0084           ;       Set_EN(1);
 0084 01E0              ldi R16,1
 0086 D8DF              xcall _Set_EN
 0088                   .dbline 196
 0088           ;       nop(10);
 0088                   .dbline 196
 0088                   .dbline 196
 0088                   .dbline 196
 0088                   .dbline 197
 0088           ;       Set_EN(0);
 0088 0027              clr R16
 008A D6DF              xcall _Set_EN
 008C                   .dbline -2
 008C                   .dbline 198
 008C           ; }
 008C           L25:
 008C 0E940000          xcall pop_gset1
 0090                   .dbline 0 ; func end
 0090 0895              ret
 0092                   .dbsym r onoff 20 c
 0092                   .dbend
 0092                   .dbfunc e SetStartLine _SetStartLine fV
 0092           ;           line -> R20
                        .even
 0092           _SetStartLine::
 0092 0E940000          xcall push_gset1
 0096 402F              mov R20,R16
 0098                   .dbline -1
 0098                   .dbline 202
 0098           ; 
 0098           ; //设置显示起始行,i=0~63//
 0098           ; void SetStartLine(INT8U line)
 0098           ; {
 0098                   .dbline 203
 0098           ;       Set_RW(0);
 0098 0027              clr R16
 009A C8DF              xcall _Set_RW
 009C                   .dbline 204
 009C           ;       Set_DI(0);                                                                                                                              
 009C 0027              clr R16
 009E C0DF              xcall _Set_DI
 00A0                   .dbline 205
 00A0           ;       Set_EN(0);                                                                                                                              
 00A0 0027              clr R16
 00A2 CADF              xcall _Set_EN
 00A4                   .dbline 206
 00A4           ;       Set_Data(0xC0 + line);
 00A4 042F              mov R16,R20
 00A6 0054              subi R16,64    ; addi 192
 00A8 DFDF              xcall _Set_Data
 00AA                   .dbline 207
 00AA           ;       nop(10);                                                                                                                                
 00AA                   .dbline 207
 00AA                   .dbline 207
 00AA                   .dbline 207
 00AA                   .dbline 208
 00AA           ;       Set_EN(1);                                                                                                                              
 00AA 01E0              ldi R16,1
 00AC C5DF              xcall _Set_EN
 00AE                   .dbline 209
 00AE           ;       nop(10);                                                                                                                                                                                                                                                                
 00AE                   .dbline 209
 00AE                   .dbline 209
 00AE                   .dbline 209
 00AE                   .dbline 210
 00AE           ;       Set_EN(0);                                                                                                                              
 00AE 0027              clr R16
 00B0 C3DF              xcall _Set_EN
 00B2                   .dbline -2
 00B2                   .dbline 211
 00B2           ; }
 00B2           L26:
 00B2 0E940000          xcall pop_gset1
 00B6                   .dbline 0 ; func end
 00B6 0895              ret
 00B8                   .dbsym r line 20 c
 00B8                   .dbend
 00B8                   .dbfunc e LCD_Command_Set_X _LCD_Command_Set_X fV
 00B8           ;            row -> R20
                        .even
 00B8           _LCD_Command_Set_X::
 00B8 0E940000          xcall push_gset1
 00BC 402F              mov R20,R16
 00BE                   .dbline -1
 00BE                   .dbline 215
 00BE           ; 
 00BE           ; //设置页(行)地址,i=0~7//
 00BE           ; void LCD_Command_Set_X(INT8U row)
 00BE           ; {
 00BE                   .dbline 216
 00BE           ;       Set_RW(0);
 00BE 0027              clr R16
 00C0 B5DF              xcall _Set_RW
 00C2                   .dbline 217
 00C2           ;       Set_DI(0);
 00C2 0027              clr R16
 00C4 ADDF              xcall _Set_DI
 00C6                   .dbline 218
 00C6           ;       Set_EN(0);
 00C6 0027              clr R16
 00C8 B7DF              xcall _Set_EN
 00CA                   .dbline 219
 00CA           ;       Set_Data(0xB8 + row);
 00CA 042F              mov R16,R20
 00CC 0854              subi R16,72    ; addi 184
 00CE CCDF              xcall _Set_Data
 00D0                   .dbline 220
 00D0           ;       nop(10);
 00D0                   .dbline 220
 00D0                   .dbline 220
 00D0                   .dbline 220
 00D0                   .dbline 221
 00D0           ;       Set_EN(1);
 00D0 01E0              ldi R16,1
 00D2 B2DF              xcall _Set_EN
 00D4                   .dbline 222
 00D4           ;       nop(10);
 00D4                   .dbline 222
 00D4                   .dbline 222
 00D4                   .dbline 222
 00D4                   .dbline 223
 00D4           ;       Set_EN(0);
 00D4 0027              clr R16
 00D6 B0DF              xcall _Set_EN
 00D8                   .dbline -2
 00D8                   .dbline 224
 00D8           ; }
 00D8           L27:
 00D8 0E940000          xcall pop_gset1
 00DC                   .dbline 0 ; func end
 00DC 0895              ret
 00DE                   .dbsym r row 20 c
 00DE                   .dbend
 00DE                   .dbfunc e LCD_Command_Set_Y _LCD_Command_Set_Y fV
 00DE           ;         column -> R20
                        .even
 00DE           _LCD_Command_Set_Y::
 00DE 0E940000          xcall push_gset1
 00E2 402F              mov R20,R16
 00E4                   .dbline -1
 00E4                   .dbline 228
 00E4           ; 
 00E4           ; //设置Y(列)地址,i=0~127//
 00E4           ; void LCD_Command_Set_Y(INT8U column)
 00E4           ; {
 00E4                   .dbline 229
 00E4           ;       Set_RW(0);
 00E4 0027              clr R16
 00E6 A2DF              xcall _Set_RW
 00E8                   .dbline 230
 00E8           ;       Set_DI(0);
 00E8 0027              clr R16
 00EA 9ADF              xcall _Set_DI
 00EC                   .dbline 231
 00EC           ;       Set_EN(0);
 00EC 0027              clr R16
 00EE A4DF              xcall _Set_EN
 00F0                   .dbline 232
 00F0           ;       Set_Data(0x40 + column);
 00F0 042F              mov R16,R20
 00F2 005C              subi R16,192    ; addi 64
 00F4 B9DF              xcall _Set_Data
 00F6                   .dbline 233
 00F6           ;       nop(10);
 00F6                   .dbline 233
 00F6                   .dbline 233
 00F6                   .dbline 233
 00F6                   .dbline 234
 00F6           ;       Set_EN(1);
 00F6 01E0              ldi R16,1
 00F8 9FDF              xcall _Set_EN
 00FA                   .dbline 235
 00FA           ;       nop(10);
 00FA                   .dbline 235
 00FA                   .dbline 235
 00FA                   .dbline 235
 00FA                   .dbline 236
 00FA           ;       Set_EN(0);
 00FA 0027              clr R16
 00FC 9DDF              xcall _Set_EN
 00FE                   .dbline -2
 00FE                   .dbline 237
 00FE           ; }
 00FE           L28:
 00FE 0E940000          xcall pop_gset1
 0102                   .dbline 0 ; func end
 0102 0895              ret
 0104                   .dbsym r column 20 c
 0104                   .dbend
 0104                   .dbfunc e LCD_Command_WriteByte _LCD_Command_WriteByte fV
 0104           ;           data -> R20
                        .even
 0104           _LCD_Command_WriteByte::
 0104 0E940000          xcall push_gset1
 0108 402F              mov R20,R16
 010A                   .dbline -1
 010A                   .dbline 241
 010A           ; 
 010A           ; //写显示数据,i为送DDRAM的数据
 010A           ; void LCD_Command_WriteByte(INT8U data)
 010A           ; {
 010A                   .dbline 242
 010A           ;       Set_RW(0);
 010A 0027              clr R16
 010C 8FDF              xcall _Set_RW
 010E                   .dbline 243
 010E           ;       Set_DI(1);
 010E 01E0              ldi R16,1
 0110 87DF              xcall _Set_DI
 0112                   .dbline 244
 0112           ;       Set_EN(0);
 0112 0027              clr R16
 0114 91DF              xcall _Set_EN
 0116                   .dbline 245
 0116           ;       Set_Data(data);
 0116 042F              mov R16,R20
 0118 A7DF              xcall _Set_Data
 011A                   .dbline 246
 011A           ;       nop(10);
 011A                   .dbline 246
 011A                   .dbline 246
 011A                   .dbline 246
 011A                   .dbline 247
 011A           ;       Set_EN(1);
 011A 01E0              ldi R16,1
 011C 8DDF              xcall _Set_EN
 011E                   .dbline 248
 011E           ;       nop(10);
 011E                   .dbline 248
 011E                   .dbline 248
 011E                   .dbline 248
 011E                   .dbline 249
 011E           ;       Set_EN(0);
 011E 0027              clr R16
 0120 8BDF              xcall _Set_EN
 0122                   .dbline -2
 0122                   .dbline 250
 0122           ; }
 0122           L29:
 0122 0E940000          xcall pop_gset1
 0126                   .dbline 0 ; func end
 0126 0895              ret
 0128                   .dbsym r data 20 c
 0128                   .dbend
 0128                   .dbfunc e Read_Byte _Read_Byte fc
 0128           ;           data -> R20
                        .even
 0128           _Read_Byte::
 0128 0E940000          xcall push_gset1
 012C                   .dbline -1
 012C                   .dbline 253
 012C           ; 
 012C           ; INT8U Read_Byte(void)
 012C           ; {
 012C                   .dbline 255
 012C           ;       INT8U data;
 012C           ;       DDRA = 0x00;
 012C 2224              clr R2
 012E 2ABA              out 0x1a,R2
 0130                   .dbline 256
 0130           ;       PORTA = 0x00;
 0130 2BBA              out 0x1b,R2
 0132                   .dbline 257
 0132           ;       Set_EN(0);
 0132 0027              clr R16
 0134 81DF              xcall _Set_EN
 0136                   .dbline 258
 0136           ;       Set_RW(1);
 0136 01E0              ldi R16,1
 0138 79DF              xcall _Set_RW
 013A                   .dbline 259
 013A           ;       Set_DI(1);
 013A 01E0              ldi R16,1
 013C 71DF              xcall _Set_DI
 013E                   .dbline 261
 013E           ; //    Set_EN(0);
 013E           ;       nop(100);
 013E                   .dbline 261
 013E                   .dbline 261
 013E                   .dbline 261
 013E                   .dbline 262
 013E           ;       Set_EN(1);
 013E 01E0              ldi R16,1
 0140 7BDF              xcall _Set_EN
 0142                   .dbline 263
 0142           ;       nop(100);
 0142                   .dbline 263
 0142                   .dbline 263
 0142                   .dbline 263
 0142                   .dbline 265
 0142           ;       //data = Get_Data();
 0142           ;       data = PINA;
 0142 49B3              in R20,0x19
 0144                   .dbline 266
 0144           ;       Set_EN(0);
 0144 0027              clr R16
 0146 78DF              xcall _Set_EN
 0148                   .dbline 267
 0148           ;       return(data);
 0148 042F              mov R16,R20
 014A                   .dbline -2
 014A           L30:
 014A 0E940000          xcall pop_gset1
 014E                   .dbline 0 ; func end
 014E 0895              ret
 0150                   .dbsym r data 20 c
 0150                   .dbend
 0150                   .dbfunc e LCD_Reset _LCD_Reset fV
                        .even
 0150           _LCD_Reset::
 0150                   .dbline -1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -