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

📄 lcd1602new.lis

📁 作为LCD显示的 AVR开发学习源码
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0068           ; {                                                     //设定显示位置
 0068                   .dbline 101
 0068           ;       write_command(pos | 0x80);
 0068 042F              mov R16,R20
 006A 0068              ori R16,128
 006C ECDF              xcall _write_command
 006E                   .dbline -2
 006E           L14:
 006E 0E940000          xcall pop_gset1
 0072                   .dbline 0 ; func end
 0072 0895              ret
 0074                   .dbsym r pos 20 c
 0074                   .dbend
 0074                   .dbfunc e write_data _write_data fV
 0074           ;            dat -> R20
                        .even
 0074           _write_data::
 0074 0E940000          xcall push_gset1
 0078 402F              mov R20,R16
 007A                   .dbline -1
 007A                   .dbline 112
 007A           ; }
 007A           ; 
 007A           ; /****************************************************************************
 007A           ; 函数功能:写入显示数据到LCD
 007A           ; 作    者:沈建良
 007A           ; 时    间:2006年4月25日
 007A           ; 入口参数:dat
 007A           ; 出口参数:
 007A           ; ****************************************************************************/
 007A           ; void write_data(unsigned char dat)                            
 007A           ; {
 007A                   .dbline 113
 007A           ; LCD_wait();
 007A D9DF              xcall _LCD_wait
 007C                   .dbline 116
 007C           ; //delay(100);
 007C           ; //DDRC=0xff;
 007C           ; Dion;
 007C C59A              sbi 0x18,5
 007E                   .dbline 116
 007E                   .dbline 117
 007E           ; RWoff;
 007E C498              cbi 0x18,4
 0080                   .dbline 117
 0080                   .dbline 118
 0080           ; Enableoff;
 0080 C398              cbi 0x18,3
 0082                   .dbline 118
 0082                   .dbline 120
 0082           ; //delay(10);
 0082           ; NOP();
 0082 0000              nop
 0084                   .dbline 121
 0084           ; Enableon;
 0084 C39A              sbi 0x18,3
 0086                   .dbline 121
 0086                   .dbline 124
 0086           ; //delay(10);
 0086           ; 
 0086           ; PORTC=dat;
 0086 45BB              out 0x15,R20
 0088                   .dbline 128
 0088           ; //delay(10);
 0088           ; //Enableon;
 0088           ; //delay(10);
 0088           ; Enableoff;
 0088 C398              cbi 0x18,3
 008A                   .dbline 128
 008A                   .dbline -2
 008A           L15:
 008A 0E940000          xcall pop_gset1
 008E                   .dbline 0 ; func end
 008E 0895              ret
 0090                   .dbsym r dat 20 c
 0090                   .dbend
 0090                   .dbfunc e lcd_init _lcd_init fV
                        .even
 0090           _lcd_init::
 0090                   .dbline -1
 0090                   .dbline 139
 0090           ; }
 0090           ; 
 0090           ; /****************************************************************************
 0090           ; 函数功能:LCD初始化
 0090           ; 作    者:沈建良
 0090           ; 时    间:2006年4月25日
 0090           ; 入口参数:
 0090           ; 出口参数:
 0090           ; ****************************************************************************/
 0090           ; void lcd_init(void)
 0090           ; {             
 0090                   .dbline 140
 0090           ;       delay(15);                                      //LCD初始化设定
 0090 0FE0              ldi R16,15
 0092 B6DF              xcall _delay
 0094                   .dbline 141
 0094           ;       write_command(0x38);                    //
 0094 08E3              ldi R16,56
 0096 D7DF              xcall _write_command
 0098                   .dbline 142
 0098           ;       delay(100);
 0098 04E6              ldi R16,100
 009A B2DF              xcall _delay
 009C                   .dbline 143
 009C           ;       write_command(0x01);                    //清除LCD的显示内容
 009C 01E0              ldi R16,1
 009E D3DF              xcall _write_command
 00A0                   .dbline 144
 00A0           ;       write_command(0x06);                    //
 00A0 06E0              ldi R16,6
 00A2 D1DF              xcall _write_command
 00A4                   .dbline 145
 00A4           ;       write_command(0x0c);                    //
 00A4 0CE0              ldi R16,12
 00A6 CFDF              xcall _write_command
 00A8                   .dbline -2
 00A8           L16:
 00A8                   .dbline 0 ; func end
 00A8 0895              ret
 00AA                   .dbend
 00AA                   .dbfunc e main _main fV
 00AA           ;              i -> R20
                        .even
 00AA           _main::
 00AA                   .dbline -1
 00AA                   .dbline 156
 00AA           ; }
 00AA           ; 
 00AA           ; /****************************************************************************
 00AA           ; 函数功能:主程序
 00AA           ; 作    者:沈建良
 00AA           ; 时    间:2006年4月25日
 00AA           ; 入口参数:
 00AA           ; 出口参数:
 00AA           ; ****************************************************************************/
 00AA           ; void main(void)
 00AA           ; {
 00AA                   .dbline 158
 00AA           ;       char i;
 00AA           ;       DDRC=0xff;
 00AA 8FEF              ldi R24,255
 00AC 84BB              out 0x14,R24
 00AE                   .dbline 159
 00AE           ;       DDRB=0xff;
 00AE 87BB              out 0x17,R24
 00B0                   .dbline 160
 00B0           ;       lcd_init();                             // 初始化LCD                    
 00B0 EFDF              xcall _lcd_init
 00B2                   .dbline 161
 00B2           ;       delay(100);
 00B2 04E6              ldi R16,100
 00B4 A5DF              xcall _delay
 00B6                   .dbline 162
 00B6           ;       lcd_pos(1);                             // 设置显示位置为第一行的第5个字符
 00B6 01E0              ldi R16,1
 00B8 D4DF              xcall _lcd_pos
 00BA                   .dbline 163
 00BA           ;       i = 0;
 00BA 4427              clr R20
 00BC 28C0              xjmp L19
 00BE           X0:
 00BE                   .dbline 164
 00BE           ;       while(1){
 00BE           L21:
 00BE                   .dbline 167
 00BE                   .dbline 168
 00BE 80E0              ldi R24,<_dis1
 00C0 90E0              ldi R25,>_dis1
 00C2 E42F              mov R30,R20
 00C4 FF27              clr R31
 00C6 E80F              add R30,R24
 00C8 F91F              adc R31,R25
 00CA 0491              lpm R16,Z
 00CC D3DF              xcall _write_data
 00CE                   .dbline 169
 00CE 4395              inc R20
 00D0                   .dbline 170
 00D0           L22:
 00D0                   .dbline 166
 00D0           ;       
 00D0           ;       while(dis1[i] != '\0')
 00D0 80E0              ldi R24,<_dis1
 00D2 90E0              ldi R25,>_dis1
 00D4 E42F              mov R30,R20
 00D6 FF27              clr R31
 00D8 E80F              add R30,R24
 00DA F91F              adc R31,R25
 00DC E491              lpm R30,Z
 00DE EE23              tst R30
 00E0 71F7              brne L21
 00E2                   .dbline 171
 00E2           ;       {                                               // 显示字符hificat.com
 00E2           ;               write_data(dis1[i]);
 00E2           ;               i++;
 00E2           ;       }
 00E2           ;       lcd_pos(0x41);                  // 设置显示位置为第二行第二个字符
 00E2 01E4              ldi R16,65
 00E4 BEDF              xcall _lcd_pos
 00E6                   .dbline 172
 00E6           ;       i = 0;
 00E6 4427              clr R20
 00E8 09C0              xjmp L25
 00EA           L24:
 00EA                   .dbline 174
 00EA                   .dbline 175
 00EA 80E0              ldi R24,<_dis2
 00EC 90E0              ldi R25,>_dis2
 00EE E42F              mov R30,R20
 00F0 FF27              clr R31
 00F2 E80F              add R30,R24
 00F4 F91F              adc R31,R25
 00F6 0491              lpm R16,Z
 00F8 BDDF              xcall _write_data
 00FA                   .dbline 176
 00FA 4395              inc R20
 00FC                   .dbline 177
 00FC           L25:
 00FC                   .dbline 173
 00FC 80E0              ldi R24,<_dis2
 00FE 90E0              ldi R25,>_dis2
 0100 E42F              mov R30,R20
 0102 FF27              clr R31
 0104 E80F              add R30,R24
 0106 F91F              adc R31,R25
 0108 E491              lpm R30,Z
 010A EE23              tst R30
 010C 71F7              brne L24
 010E                   .dbline 178
 010E           L19:
 010E                   .dbline 164
 010E E0CF              xjmp L22
 0110           X1:
 0110                   .dbline -2
 0110           L17:
 0110                   .dbline 0 ; func end
 0110 0895              ret
 0112                   .dbsym r i 20 c
 0112                   .dbend

⌨️ 快捷键说明

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