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

📄 lcd20x4.lis

📁 单片机应用 1.1602LCD 2.2004LCD源码 3.ATmega16 PWM源码 4.ATmega8 LED源码 5.无线影音Nrf2401源码 6.AVR串口源码
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0082 D5DF              rcall _Lcd_Busy
 0084 0023              tst R16
 0086 E9F7              brne L15
 0088           X3:
 0088                   .dbline 99
 0088           ;     E_L;RS_H;RW_L;     //E=0(致能),RS=1(数据),RW=0(写)
 0088 AF98              cbi 0x15,7
 008A                   .dbline 99
 008A AD9A              sbi 0x15,5
 008C                   .dbline 99
 008C AE98              cbi 0x15,6
 008E                   .dbline 100
 008E           ;     delay_us(2);       //液晶延时子程序
 008E 02E0              ldi R16,2
 0090 10E0              ldi R17,0
 0092 B6DF              rcall _delay_us
 0094                   .dbline 101
 0094           ;     E_H;
 0094 AF9A              sbi 0x15,7
 0096                   .dbline 102
 0096           ;     PORTB = Data;      //向lcd写入一个字符
 0096 A8BA              out 0x18,R10
 0098                   .dbline 103
 0098           ;     delay_us(2);       //液晶延时子程序
 0098 02E0              ldi R16,2
 009A 10E0              ldi R17,0
 009C B1DF              rcall _delay_us
 009E                   .dbline 104
 009E           ;     E_L;
 009E AF98              cbi 0x15,7
 00A0                   .dbline -2
 00A0           L14:
 00A0                   .dbline 0 ; func end
 00A0 A990              ld R10,y+
 00A2 0895              ret
 00A4                   .dbsym r Data 10 c
 00A4                   .dbend
 00A4                   .dbfunc e Lcd_Init _Lcd_Init fV
                        .even
 00A4           _Lcd_Init::
 00A4                   .dbline -1
 00A4                   .dbline 116
 00A4           ; }
 00A4           ; 
 00A4           ; 
 00A4           ; /*=======================================================
 00A4           ; LCD第1行显示地址1~20(0x80~0x93)
 00A4           ; LCD第2行显示地址1~20(0xc0~0xd3)
 00A4           ; LCD第3行显示地址1~20(0x94~0xa7)
 00A4           ; LCD第4行显示地址1~20(0xd4~0xe7)
 00A4           ; =======================================================*/
 00A4           ; //初始化LCD_8位接口,4行x20字符的工作方式
 00A4           ; void Lcd_Init()
 00A4           ; {
 00A4                   .dbline 117
 00A4           ;     DDRB = 0xff;       //端口B设为输出方式
 00A4 8FEF              ldi R24,255
 00A6 87BB              out 0x17,R24
 00A8                   .dbline 118
 00A8           ;     DDRD = 0xff;       //端口D设为输出方式
 00A8 81BB              out 0x11,R24
 00AA                   .dbline 119
 00AA           ;     Lcd_Command(0x38); //
 00AA 08E3              ldi R16,56
 00AC D5DF              rcall _Lcd_Command
 00AE                   .dbline 120
 00AE           ;     Lcd_Command(0x38); //
 00AE 08E3              ldi R16,56
 00B0 D3DF              rcall _Lcd_Command
 00B2                   .dbline 121
 00B2           ;     Lcd_Command(0x38); //
 00B2 08E3              ldi R16,56
 00B4 D1DF              rcall _Lcd_Command
 00B6                   .dbline 122
 00B6           ;     Lcd_Command(0x38); //
 00B6 08E3              ldi R16,56
 00B8 CFDF              rcall _Lcd_Command
 00BA                   .dbline 123
 00BA           ;     Lcd_Command(0x08); //令显示器off
 00BA 08E0              ldi R16,8
 00BC CDDF              rcall _Lcd_Command
 00BE                   .dbline 124
 00BE           ;     Lcd_Command(0x01); //清除显示器
 00BE 01E0              ldi R16,1
 00C0 CBDF              rcall _Lcd_Command
 00C2                   .dbline 125
 00C2           ;     Lcd_Command(0x06); //令LCD每接收到1Byte数据后,AC自动加1
 00C2 06E0              ldi R16,6
 00C4 C9DF              rcall _Lcd_Command
 00C6                   .dbline 126
 00C6           ;     Lcd_Command(0x0C); //令光标,0x0c=不显示,0x0d=显示闪动. 
 00C6 0CE0              ldi R16,12
 00C8 C7DF              rcall _Lcd_Command
 00CA                   .dbline -2
 00CA           L18:
 00CA                   .dbline 0 ; func end
 00CA 0895              ret
 00CC                   .dbend
 00CC                   .dbfunc e asc_tran _asc_tran fV
 00CC           ;            asc -> R20,R21
                        .even
 00CC           _asc_tran::
 00CC 4A93              st -y,R20
 00CE 5A93              st -y,R21
 00D0 A801              movw R20,R16
 00D2                   .dbline -1
 00D2                   .dbline 132
 00D2           ; }
 00D2           ; 
 00D2           ; //=======================================================
 00D2           ; //写ASCII字符串程序
 00D2           ; void asc_tran(unsigned char *asc)
 00D2           ; {
 00D2 05C0              rjmp L21
 00D4           L20:
 00D4                   .dbline 134
 00D4           ;     while((*asc) != 0)   //判断字是否结束
 00D4           ;     {
 00D4                   .dbline 135
 00D4           ;         Lcd_Write(*asc); //向lcd写入字符串
 00D4 FA01              movw R30,R20
 00D6 0081              ldd R16,z+0
 00D8 D2DF              rcall _Lcd_Write
 00DA                   .dbline 136
 00DA           ;         asc++;           //移下一个字符
 00DA 4F5F              subi R20,255  ; offset = 1
 00DC 5F4F              sbci R21,255
 00DE                   .dbline 137
 00DE           ;     }
 00DE           L21:
 00DE                   .dbline 133
 00DE FA01              movw R30,R20
 00E0 2080              ldd R2,z+0
 00E2 2220              tst R2
 00E4 B9F7              brne L20
 00E6           X4:
 00E6                   .dbline -2
 00E6           L19:
 00E6                   .dbline 0 ; func end
 00E6 5991              ld R21,y+
 00E8 4991              ld R20,y+
 00EA 0895              ret
 00EC                   .dbsym r asc 20 pc
 00EC                   .dbend
 00EC                   .dbfunc e main _main fV
                        .even
 00EC           _main::
 00EC                   .dbline -1
 00EC                   .dbline 143
 00EC           ; }
 00EC           ; 
 00EC           ; //=======================================================
 00EC           ; //测试主LCD主程序
 00EC           ; void main()
 00EC           ; {
 00EC                   .dbline 144
 00EC           ;     Lcd_Init(); //初始化LCD
 00EC DBDF              rcall _Lcd_Init
 00EE 1EC0              rjmp L25
 00F0           L24:
 00F0                   .dbline 146
 00F0           ;     while(1)
 00F0           ;     {
 00F0                   .dbline 147
 00F0           ;         Lcd_Command(0x83);               //设置显示位址
 00F0 03E8              ldi R16,131
 00F2 B2DF              rcall _Lcd_Command
 00F4                   .dbline 148
 00F4           ;         asc_tran("-----@_@------");      //显示字符串
 00F4 00E0              ldi R16,<L27
 00F6 10E0              ldi R17,>L27
 00F8 E9DF              rcall _asc_tran
 00FA                   .dbline 149
 00FA           ;         Lcd_Command(0x97);               //设置显示位址
 00FA 07E9              ldi R16,151
 00FC ADDF              rcall _Lcd_Command
 00FE                   .dbline 150
 00FE           ;         asc_tran("www.ouravr.com");      //显示字符串
 00FE 00E0              ldi R16,<L28
 0100 10E0              ldi R17,>L28
 0102 E4DF              rcall _asc_tran
 0104                   .dbline 151
 0104           ;         delay_ms(1000);                  //延迟1秒
 0104 08EE              ldi R16,1000
 0106 13E0              ldi R17,3
 0108 83DF              rcall _delay_ms
 010A                   .dbline 152
 010A           ;         Lcd_Command(0x01);               //清除显示器
 010A 01E0              ldi R16,1
 010C A5DF              rcall _Lcd_Command
 010E                   .dbline 154
 010E           ; 
 010E           ;         Lcd_Command(0x83);               //设置显示位址
 010E 03E8              ldi R16,131
 0110 A3DF              rcall _Lcd_Command
 0112                   .dbline 155
 0112           ;         asc_tran("-----^_^------");      //显示字符串
 0112 00E0              ldi R16,<L29
 0114 10E0              ldi R17,>L29
 0116 DADF              rcall _asc_tran
 0118                   .dbline 156
 0118           ;         Lcd_Command(0x94);               //设置显示位址
 0118 04E9              ldi R16,148
 011A 9EDF              rcall _Lcd_Command
 011C                   .dbline 157
 011C           ;         asc_tran("http://59.36.96.196"); //显示字符串
 011C 00E0              ldi R16,<L30
 011E 10E0              ldi R17,>L30
 0120 D5DF              rcall _asc_tran
 0122                   .dbline 158
 0122           ;         delay_ms(1000);                  //延迟
 0122 08EE              ldi R16,1000
 0124 13E0              ldi R17,3
 0126 74DF              rcall _delay_ms
 0128                   .dbline 159
 0128           ;         Lcd_Command(0x01);               //清除显示器
 0128 01E0              ldi R16,1
 012A 96DF              rcall _Lcd_Command
 012C                   .dbline 160
 012C           ;     }
 012C           L25:
 012C                   .dbline 145
 012C E1CF              rjmp L24
 012E           X5:
 012E                   .dbline -2
 012E           L23:
 012E                   .dbline 0 ; func end
 012E 0895              ret
 0130                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile F:\ouravr\M16LCD~1\LCD20x4.c
 0000           L30:
 0000                   .blkb 20
                        .area idata
 0000 687474703A2F2F35392E33362E39362E  .byte 'h,'t,'t,'p,58,47,47,53,57,46,51,54,46,57,54,46
 0010 31393600          .byte 49,57,54,0
                        .area data(ram, con, rel)
 0014                   .dbfile F:\ouravr\M16LCD~1\LCD20x4.c
 0014           L29:
 0014                   .blkb 15
                        .area idata
 0014 2D2D2D2D2D5E5F5E2D2D2D2D2D2D00    .byte 45,45,45,45,45,94,95,94,45,45,45,45,45,45,0
                        .area data(ram, con, rel)
 0023                   .dbfile F:\ouravr\M16LCD~1\LCD20x4.c
 0023           L28:
 0023                   .blkb 15
                        .area idata
 0023 7777772E6F75726176722E636F6D00    .byte 'w,'w,'w,46,'o,'u,'r,'a,'v,'r,46,'c,'o,'m,0
                        .area data(ram, con, rel)
 0032                   .dbfile F:\ouravr\M16LCD~1\LCD20x4.c
 0032           L27:
 0032                   .blkb 15
                        .area idata
 0032 2D2D2D2D2D405F402D2D2D2D2D2D00    .byte 45,45,45,45,45,64,95,64,45,45,45,45,45,45,0
                        .area data(ram, con, rel)
 0041                   .dbfile F:\ouravr\M16LCD~1\LCD20x4.c
 0041           ; }

⌨️ 快捷键说明

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