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

📄 lcm.lis

📁 8位液晶屏LCM0825的点亮源代码
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0138                   .dbline 83
 0138           ;    data_1(2);
 0138 02E0              ldi R16,2
 013A 10E0              ldi R17,0
 013C 98DF              rcall _data_1
 013E                   .dbline 84
 013E           ;    data_0(1);
 013E 01E0              ldi R16,1
 0140 10E0              ldi R17,0
 0142 7FDF              rcall _data_0
 0144                   .dbline 85
 0144           ;       for(j=0;j<8;j++)
 0144 4427              clr R20
 0146 13C0              rjmp L39
 0148           L36:
 0148                   .dbline 86
 0148                   .dbline 88
 0148 82B3              in R24,0x12
 014A 8F77              andi R24,127
 014C 82BB              out 0x12,R24
 014E                   .dbline 88
 014E 58DF              rcall _delay_1us
 0150                   .dbline 89
 0150 862F              mov R24,R22
 0152 8078              andi R24,128
 0154 22B2              in R2,0x12
 0156 282A              or R2,R24
 0158 22BA              out 0x12,R2
 015A                   .dbline 89
 015A 52DF              rcall _delay_1us
 015C                   .dbline 90
 015C 82B3              in R24,0x12
 015E 8F7B              andi R24,191
 0160 82BB              out 0x12,R24
 0162                   .dbline 90
 0162 4EDF              rcall _delay_1us
 0164                   .dbline 91
 0164 969A              sbi 0x12,6
 0166                   .dbline 91
 0166 4CDF              rcall _delay_1us
 0168                   .dbline 92
 0168 660F              lsl R22
 016A                   .dbline 92
 016A 4ADF              rcall _delay_1us
 016C                   .dbline 93
 016C           L37:
 016C                   .dbline 85
 016C 4395              inc R20
 016E           L39:
 016E                   .dbline 85
 016E 4830              cpi R20,8
 0170 58F3              brlo L36
 0172                   .dbline 94
 0172           ;     { 
 0172           ;       
 0172           ;      PORTD&=0x7f;  delay_1us();       
 0172           ;      PORTD|=(dat&0x80);delay_1us(); 
 0172           ;      PORTD&=0xbf; delay_1us(); 
 0172           ;        PORTD|=0x40;  delay_1us();             
 0172           ;      dat=(dat<<1); delay_1us(); 
 0172           ;     }
 0172           ;       PORTD|=0x10;delay_1us(); 
 0172 949A              sbi 0x12,4
 0174                   .dbline 94
 0174 45DF              rcall _delay_1us
 0176                   .dbline 96
 0176           ;       
 0176           ;       PORTD|=0xc0;delay_1us();
 0176 82B3              in R24,0x12
 0178 806C              ori R24,192
 017A 82BB              out 0x12,R24
 017C                   .dbline 96
 017C 41DF              rcall _delay_1us
 017E                   .dbline 100
 017E           ;       
 017E           ;       //return(read_lcd()==)  
 017E           ;       
 017E           ;          }break;
 017E                   .dbline 100
 017E 30C0              rjmp L28
 0180           L40:
 0180                   .dbline 102
 0180           ;    case 10://将高七位全部置零
 0180           ;    {
 0180                   .dbline 104
 0180           ;   
 0180           ;     dat=(dat<<3);
 0180 660F              lsl R22
 0182 660F              lsl R22
 0184 660F              lsl R22
 0186                   .dbline 105
 0186           ;     PORTD&=0xef;delay_1us(); 
 0186 82B3              in R24,0x12
 0188 8F7E              andi R24,239
 018A 82BB              out 0x12,R24
 018C                   .dbline 105
 018C 39DF              rcall _delay_1us
 018E                   .dbline 106
 018E           ;        data_1(1);
 018E 01E0              ldi R16,1
 0190 10E0              ldi R17,0
 0192 6DDF              rcall _data_1
 0194                   .dbline 107
 0194           ;    data_0(1);
 0194 01E0              ldi R16,1
 0196 10E0              ldi R17,0
 0198 54DF              rcall _data_0
 019A                   .dbline 108
 019A           ;    data_1(2);
 019A 02E0              ldi R16,2
 019C 10E0              ldi R17,0
 019E 67DF              rcall _data_1
 01A0                   .dbline 109
 01A0           ;       for(j=0;j<5;j++)
 01A0 4427              clr R20
 01A2 13C0              rjmp L44
 01A4           L41:
 01A4                   .dbline 110
 01A4                   .dbline 112
 01A4 82B3              in R24,0x12
 01A6 8F77              andi R24,127
 01A8 82BB              out 0x12,R24
 01AA                   .dbline 112
 01AA 2ADF              rcall _delay_1us
 01AC                   .dbline 113
 01AC 862F              mov R24,R22
 01AE 8078              andi R24,128
 01B0 22B2              in R2,0x12
 01B2 282A              or R2,R24
 01B4 22BA              out 0x12,R2
 01B6                   .dbline 113
 01B6 24DF              rcall _delay_1us
 01B8                   .dbline 114
 01B8 82B3              in R24,0x12
 01BA 8F7B              andi R24,191
 01BC 82BB              out 0x12,R24
 01BE                   .dbline 114
 01BE 20DF              rcall _delay_1us
 01C0                   .dbline 115
 01C0 969A              sbi 0x12,6
 01C2                   .dbline 115
 01C2 1EDF              rcall _delay_1us
 01C4                   .dbline 116
 01C4 660F              lsl R22
 01C6                   .dbline 116
 01C6 1CDF              rcall _delay_1us
 01C8                   .dbline 117
 01C8           L42:
 01C8                   .dbline 109
 01C8 4395              inc R20
 01CA           L44:
 01CA                   .dbline 109
 01CA 4530              cpi R20,5
 01CC 58F3              brlo L41
 01CE                   .dbline 118
 01CE           ;     { 
 01CE           ;       
 01CE           ;      PORTD&=0x7f;  delay_1us();       
 01CE           ;      PORTD|=(dat&0x80);delay_1us(); 
 01CE           ;      PORTD&=0xbf; delay_1us(); 
 01CE           ;        PORTD|=0x40;  delay_1us();             
 01CE           ;      dat=(dat<<1); delay_1us(); 
 01CE           ;     }
 01CE           ;       data_0(4);
 01CE 04E0              ldi R16,4
 01D0 10E0              ldi R17,0
 01D2 37DF              rcall _data_0
 01D4                   .dbline 119
 01D4           ;       PORTD|=0x10;delay_1us(); 
 01D4 949A              sbi 0x12,4
 01D6                   .dbline 119
 01D6 14DF              rcall _delay_1us
 01D8                   .dbline 121
 01D8           ;       
 01D8           ;       PORTD|=0xc0;delay_1us();
 01D8 82B3              in R24,0x12
 01DA 806C              ori R24,192
 01DC 82BB              out 0x12,R24
 01DE                   .dbline 121
 01DE 10DF              rcall _delay_1us
 01E0                   .dbline 125
 01E0           ;       
 01E0           ;       //return(read_lcd()==)  
 01E0           ;       
 01E0           ;          }break;
 01E0                   .dbline 125
 01E0           L27:
 01E0           L28:
 01E0                   .dbline -2
 01E0           L26:
 01E0 00D0              rcall pop_gset3
 01E2                   .dbline 0 ; func end
 01E2 0895              ret
 01E4                   .dbsym r j 20 c
 01E4                   .dbsym r dat 22 c
 01E4                   .dbsym r data 10 c
 01E4                   .dbsym r n 20 c
 01E4                   .dbend
                        .area lit(rom, con, rel)
 0000           L46:
 0000 2918              .byte 41,24
 0002 0103              .byte 1,3
 0004           L47:
 0004 0610              .byte 6,16
 0006 031E              .byte 3,30
 0008 071A              .byte 7,26
 000A 0613              .byte 6,19
 000C 051B              .byte 5,27
 000E 051F              .byte 5,31
 0010 0710              .byte 7,16
 0012 071F              .byte 7,31
 0014 071B              .byte 7,27
 0016 071D              .byte 7,29
                        .area text(rom, con, rel)
 01E4                   .dbfile G:\AVR系列\LCM0825\lcm.c
 01E4                   .dbfunc e main _main fV
 01E4           ;           init -> y+20
 01E4           ;            add -> R22
 01E4           ;        address -> y+0
 01E4           ;              j -> R22,R23
 01E4           ;              i -> R20
                        .even
 01E4           _main::
 01E4 6897              sbiw R28,24
 01E6                   .dbline -1
 01E6                   .dbline 130
 01E6           ;    
 01E6           ;  }
 01E6           ; }
 01E6           ;  void main(void)
 01E6           ; {
 01E6                   .dbline 131
 01E6           ; unsigned char init[4]={0x29,0x18,0x01,0x03}, address[20]={0x06,0x10,0x03,0x1e,0x07,0x1a,              
 01E6 80E0              ldi R24,<L46
 01E8 90E0              ldi R25,>L46
 01EA FE01              movw R30,R28
 01EC 7496              adiw R30,20
 01EE 04E0              ldi R16,4
 01F0 10E0              ldi R17,0
 01F2 FA93              st -y,R31
 01F4 EA93              st -y,R30
 01F6 9A93              st -y,R25
 01F8 8A93              st -y,R24
 01FA 00D0              rcall asgncblk
 01FC                   .dbline 131
 01FC 80E0              ldi R24,<L47
 01FE 90E0              ldi R25,>L47
 0200 FE01              movw R30,R28
 0202 04E1              ldi R16,20
 0204 10E0              ldi R17,0
 0206 FA93              st -y,R31
 0208 EA93              st -y,R30
 020A 9A93              st -y,R25
 020C 8A93              st -y,R24
 020E 00D0              rcall asgncblk
 0210                   .dbline 138
 0210           ;                                                                                0x06,0x13,0x05,0x1b,0x05,0x1f,
 0210           ;                                                                                                                                          0x07,0x10,0x07,0x1f,0x07,0x1b,
 0210           ;                                                                                                                                          0x07,0x1d};//初始化命令字表和0~9数字表
 0210           ;                                                                                                                                                                                                
 0210           ;  char i,add;    
 0210           ;  unsigned int j;                                                                                      
 0210           ;  DDRD|=0xf0;delay_1us();   
 0210 81B3              in R24,0x11
 0212 806F              ori R24,240
 0214 81BB              out 0x11,R24
 0216                   .dbline 138
 0216 F4DE              rcall _delay_1us
 0218                   .dbline 139
 0218           ;  PORTD|=0xf0;delay_1us();   
 0218 82B3              in R24,0x12
 021A 806F              ori R24,240
 021C 82BB              out 0x12,R24
 021E                   .dbline 139
 021E F0DE              rcall _delay_1us
 0220                   .dbline 140
 0220           ; for(i=0;i<10;i++)
 0220 4427              clr R20
 0222 0AC0              rjmp L51
 0224           L48:
 0224                   .dbline 141
 0224 6627              clr R22
 0226 7727              clr R23
 0228 02C0              rjmp L55
 022A           L52:
 022A                   .dbline 141
 022A           L53:
 022A                   .dbline 141
 022A 6F5F              subi R22,255  ; offset = 1
 022C 7F4F              sbci R23,255
 022E           L55:
 022E                   .dbline 141
 022E 6037              cpi R22,112
 0230 E7E1              ldi R30,23
 0232 7E07              cpc R23,R30
 0234 D0F3              brlo L52
 0236           L49:
 0236                   .dbline 140
 0236 4395              inc R20
 0238           L51:
 0238                   .dbline 140
 0238 4A30              cpi R20,10
 023A A0F3              brlo L48
 023C                   .dbline 142
 023C           ;          for(j=0;j<6000;j++);   
 023C           ;  for(i=0;i<4;i++)//初始化
 023C 4427              clr R20
 023E 0AC0              rjmp L59
 0240           L56:
 0240                   .dbline 143
 0240 CE01              movw R24,R28
 0242 4496              adiw R24,20
 0244 E42F              mov R30,R20
 0246 FF27              clr R31
 0248 E80F              add R30,R24
 024A F91F              adc R31,R25
 024C 2081              ldd R18,z+0
 024E 0CE0              ldi R16,12
 0250 25DF              rcall _write_lcd
 0252           L57:
 0252                   .dbline 142
 0252 4395              inc R20
 0254           L59:
 0254                   .dbline 142
 0254 4430              cpi R20,4
 0256 A0F3              brlo L56
 0258                   .dbline 144
 0258           ;   write_lcd(12,init[i]);
 0258           ;   for(add=2;add<16;add++)//将高七位置零
 0258 62E0              ldi R22,2
 025A 04C0              rjmp L63
 025C           L60:
 025C                   .dbline 145
 025C 262F              mov R18,R22
 025E 0AE0              ldi R16,10
 0260 1DDF              rcall _write_lcd
 0262           L61:
 0262                   .dbline 144
 0262 6395              inc R22
 0264           L63:
 0264                   .dbline 144
 0264 6031              cpi R22,16
 0266 D0F3              brlo L60
 0268 1BC0              rjmp L65
 026A           L64:
 026A                   .dbline 148
 026A           ;   write_lcd(10,add);
 026A           ;  //delay(300);
 026A           ;  while(1)
 026A           ;   {
 026A                   .dbline 149
 026A           ;   for(i=0;i<20;i++) //写一个数据延时一段时间
 026A 4427              clr R20
 026C 17C0              rjmp L70
 026E           L67:
 026E                   .dbline 150
 026E                   .dbline 151
 026E 242E              mov R2,R20
 0270 3324              clr R3
 0272 4F5F              subi R20,255    ; addi 1
 0274 CE01              movw R24,R28
 0276 E22D              mov R30,R2
 0278 FF27              clr R31
 027A E80F              add R30,R24
 027C F91F              adc R31,R25
 027E 2081              ldd R18,z+0
 0280 0DE0              ldi R16,13
 0282 0CDF              rcall _write_lcd
 0284                   .dbline 152
 0284 CE01              movw R24,R28
 0286 E42F              mov R30,R20
 0288 FF27              clr R31
 028A E80F              add R30,R24
 028C F91F              adc R31,R25
 028E 2081              ldd R18,z+0
 0290 0DE0              ldi R16,13
 0292 04DF              rcall _write_lcd
 0294                   .dbline 154
 0294 08EC              ldi R16,200
 0296 10E0              ldi R17,0
 0298 C7DE              rcall _delay
 029A                   .dbline 155
 029A           L68:
 029A                   .dbline 149
 029A 4395              inc R20
 029C           L70:
 029C                   .dbline 149
 029C 4431              cpi R20,20
 029E 38F3              brlo L67
 02A0                   .dbline 156
 02A0           L65:
 02A0                   .dbline 147
 02A0 E4CF              rjmp L64
 02A2           X2:
 02A2                   .dbline -2
 02A2           L45:
 02A2 6896              adiw R28,24
 02A4                   .dbline 0 ; func end
 02A4 0895              ret
 02A6                   .dbsym l init 20 A[4:4]c
 02A6                   .dbsym r add 22 c
 02A6                   .dbsym l address 0 A[20:20]c
 02A6                   .dbsym r j 22 i
 02A6                   .dbsym r i 20 c
 02A6                   .dbend

⌨️ 快捷键说明

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