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

📄 1602.lis

📁 l602的读写
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00A8                   .dbend
 00A8                   .dbfunc e locate _locate fV
 00A8           ;              x -> R20
 00A8           ;              b -> R22
 00A8           ;              a -> R10
                        .even
 00A8           _locate::
 00A8 00D0              rcall push_xgsetF00C
 00AA 622F              mov R22,R18
 00AC A02E              mov R10,R16
 00AE                   .dbline -1
 00AE                   .dbline 97
 00AE           ;  }
 00AE           ; 
 00AE           ; //定位指令函数
 00AE           ; void locate(uchar a,uchar b)
 00AE           ;     {
 00AE                   .dbline 99
 00AE           ;  uchar x;
 00AE           ;  if(a==1)
 00AE 8A2D              mov R24,R10
 00B0 8130              cpi R24,1
 00B2 19F4              brne L19
 00B4           X3:
 00B4                   .dbline 100
 00B4           ;      x=0x80+b-1;
 00B4 462F              mov R20,R22
 00B6 4058              subi R20,128    ; addi 128
 00B8 4150              subi R20,1
 00BA           L19:
 00BA                   .dbline 101
 00BA           ;  if(a==2)
 00BA 8A2D              mov R24,R10
 00BC 8230              cpi R24,2
 00BE 19F4              brne L21
 00C0           X4:
 00C0                   .dbline 102
 00C0           ;      x=0xC0+b-1;
 00C0 462F              mov R20,R22
 00C2 4054              subi R20,64    ; addi 192
 00C4 4150              subi R20,1
 00C6           L21:
 00C6                   .dbline 103
 00C6           ;  lcd_comm(x);
 00C6 042F              mov R16,R20
 00C8 C8DF              rcall _lcd_comm
 00CA                   .dbline 104
 00CA           ;  delay_ms(1);
 00CA 01E0              ldi R16,1
 00CC 10E0              ldi R17,0
 00CE A1DF              rcall _delay_ms
 00D0                   .dbline -2
 00D0           L18:
 00D0                   .dbline 0 ; func end
 00D0 00C0              rjmp pop_xgsetF00C
 00D2                   .dbsym r x 20 c
 00D2                   .dbsym r b 22 c
 00D2                   .dbsym r a 10 c
 00D2                   .dbend
 00D2                   .dbfunc e lcd_init _lcd_init fV
                        .even
 00D2           _lcd_init::
 00D2                   .dbline -1
 00D2                   .dbline 109
 00D2           ;  }
 00D2           ; 
 00D2           ; //LCD初始化函数
 00D2           ; void lcd_init(void)
 00D2           ;  {
 00D2                   .dbline 110
 00D2           ;  lcd_comm(0x38);    //写指令:8位数据、2行显示、5*8点阵
 00D2 08E3              ldi R16,56
 00D4 C2DF              rcall _lcd_comm
 00D6                   .dbline 111
 00D6           ;  delay_ms(5);
 00D6 05E0              ldi R16,5
 00D8 10E0              ldi R17,0
 00DA 9BDF              rcall _delay_ms
 00DC                   .dbline 112
 00DC           ;  lcd_comm(0x06);    //写指令:自左向右显示
 00DC 06E0              ldi R16,6
 00DE BDDF              rcall _lcd_comm
 00E0                   .dbline 113
 00E0           ;  delay_ms(5);
 00E0 05E0              ldi R16,5
 00E2 10E0              ldi R17,0
 00E4 96DF              rcall _delay_ms
 00E6                   .dbline 114
 00E6           ;  lcd_comm(0x0C);    //写指令:显示开
 00E6 0CE0              ldi R16,12
 00E8 B8DF              rcall _lcd_comm
 00EA                   .dbline 115
 00EA           ;  delay_ms(5);
 00EA 05E0              ldi R16,5
 00EC 10E0              ldi R17,0
 00EE 91DF              rcall _delay_ms
 00F0                   .dbline 118
 00F0           ; // lcd_comm(0x80);    //写指令:第1行地址
 00F0           ; // delay_ms(5);  
 00F0           ;  lcd_comm(0x01);    //写指令:CLS
 00F0 01E0              ldi R16,1
 00F2 B3DF              rcall _lcd_comm
 00F4                   .dbline -2
 00F4           L23:
 00F4                   .dbline 0 ; func end
 00F4 0895              ret
 00F6                   .dbend
 00F6                   .dbfunc e main _main fV
 00F6           ;              i -> R20
                        .even
 00F6           _main::
 00F6                   .dbline -1
 00F6                   .dbline 123
 00F6           ;  }
 00F6           ;  
 00F6           ; //主函数
 00F6           ; void main(void)
 00F6           ;     {
 00F6                   .dbline 126
 00F6           ;  uchar i;
 00F6           ; 
 00F6           ;  port_init();    //端口初始化
 00F6 84DF              rcall _port_init
 00F8                   .dbline 127
 00F8           ;  delay_ms(50);    //延时500ms
 00F8 02E3              ldi R16,50
 00FA 10E0              ldi R17,0
 00FC 8ADF              rcall _delay_ms
 00FE                   .dbline 128
 00FE           ;  lcd_init();     //LCD初始化
 00FE E9DF              rcall _lcd_init
 0100                   .dbline 130
 0100           ;  
 0100           ;  delay_ms(50);
 0100 02E3              ldi R16,50
 0102 10E0              ldi R17,0
 0104 86DF              rcall _delay_ms
 0106                   .dbline 131
 0106           ;  locate(1,5);     //第一行显示位置
 0106 25E0              ldi R18,5
 0108 01E0              ldi R16,1
 010A CEDF              rcall _locate
 010C                   .dbline 132
 010C           ;  lcd("Velcome!");   //第一行显示内容
 010C 00E0              ldi R16,<L25
 010E 10E0              ldi R17,>L25
 0110 B5DF              rcall _lcd
 0112                   .dbline 133
 0112           ;  locate(2,2);    //第二行显示位置
 0112 22E0              ldi R18,2
 0114 02E0              ldi R16,2
 0116 C8DF              rcall _locate
 0118                   .dbline 134
 0118           ;  lcd("www.iccavr.com");  //第二行显示内容
 0118 00E0              ldi R16,<L26
 011A 10E0              ldi R17,>L26
 011C AFDF              rcall _lcd
 011E                   .dbline 136
 011E           ; 
 011E           ;  for(i=5;i;i--)    //先右移5位
 011E 45E0              ldi R20,5
 0120 06C0              rjmp L30
 0122           L27:
 0122                   .dbline 137
 0122           ;   {
 0122                   .dbline 138
 0122           ;   lcd_comm(0x1C);
 0122 0CE1              ldi R16,28
 0124 9ADF              rcall _lcd_comm
 0126                   .dbline 139
 0126           ;   delay_ms(100);
 0126 04E6              ldi R16,100
 0128 10E0              ldi R17,0
 012A 73DF              rcall _delay_ms
 012C                   .dbline 140
 012C           ;   }
 012C           L28:
 012C                   .dbline 136
 012C 4A95              dec R20
 012E           L30:
 012E                   .dbline 136
 012E 4423              tst R20
 0130 C1F7              brne L27
 0132           X5:
 0132 1EC0              rjmp L32
 0134           L31:
 0134                   .dbline 143
 0134           ;     
 0134           ;  while (1)
 0134           ;         {
 0134                   .dbline 144
 0134           ;   for(i=10;i;i--)   //左移10位
 0134 4AE0              ldi R20,10
 0136 0BC0              rjmp L37
 0138           L34:
 0138                   .dbline 145
 0138           ;    {
 0138                   .dbline 146
 0138           ;    lcd_comm(0x18);
 0138 08E1              ldi R16,24
 013A 8FDF              rcall _lcd_comm
 013C                   .dbline 147
 013C           ;    if(i==6)delay_ms(2000);  //移到中间暂停2秒
 013C 4630              cpi R20,6
 013E 19F4              brne L38
 0140           X6:
 0140                   .dbline 147
 0140 00ED              ldi R16,2000
 0142 17E0              ldi R17,7
 0144 66DF              rcall _delay_ms
 0146           L38:
 0146                   .dbline 148
 0146           ;    delay_ms(400);
 0146 00E9              ldi R16,400
 0148 11E0              ldi R17,1
 014A 63DF              rcall _delay_ms
 014C                   .dbline 149
 014C           ;    }
 014C           L35:
 014C                   .dbline 144
 014C 4A95              dec R20
 014E           L37:
 014E                   .dbline 144
 014E 4423              tst R20
 0150 99F7              brne L34
 0152           X7:
 0152                   .dbline 150
 0152           ;   for(i=10;i;i--)      //右移10位
 0152 4AE0              ldi R20,10
 0154 0BC0              rjmp L43
 0156           L40:
 0156                   .dbline 151
 0156           ;    {
 0156                   .dbline 152
 0156           ;    lcd_comm(0x1C);
 0156 0CE1              ldi R16,28
 0158 80DF              rcall _lcd_comm
 015A                   .dbline 153
 015A           ;    if(i==6)delay_ms(2000);
 015A 4630              cpi R20,6
 015C 19F4              brne L44
 015E           X8:
 015E                   .dbline 153
 015E 00ED              ldi R16,2000
 0160 17E0              ldi R17,7
 0162 57DF              rcall _delay_ms
 0164           L44:
 0164                   .dbline 154
 0164           ;    delay_ms(400);
 0164 00E9              ldi R16,400
 0166 11E0              ldi R17,1
 0168 54DF              rcall _delay_ms
 016A                   .dbline 155
 016A           ;    }
 016A           L41:
 016A                   .dbline 150
 016A 4A95              dec R20
 016C           L43:
 016C                   .dbline 150
 016C 4423              tst R20
 016E 99F7              brne L40
 0170           X9:
 0170                   .dbline 156
 0170           ;   }
 0170           L32:
 0170                   .dbline 142
 0170 E1CF              rjmp L31
 0172           X10:
 0172                   .dbline -2
 0172           L24:
 0172                   .dbline 0 ; func end
 0172 0895              ret
 0174                   .dbsym r i 20 c
 0174                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile D:\我的文档\MYDESI~1\1602\1602.c
 0000           L26:
 0000                   .blkb 15
                        .area idata
 0000 7777772E6963636176722E636F6D00    .byte 'w,'w,'w,46,'i,'c,'c,'a,'v,'r,46,'c,'o,'m,0
                        .area data(ram, con, rel)
 000F                   .dbfile D:\我的文档\MYDESI~1\1602\1602.c
 000F           L25:
 000F                   .blkb 9
                        .area idata
 000F 56656C636F6D652100        .byte 'V,'e,'l,'c,'o,'m,'e,33,0
                        .area data(ram, con, rel)
 0018                   .dbfile D:\我的文档\MYDESI~1\1602\1602.c
 0018           ;     }

⌨️ 快捷键说明

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