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

📄 megalcd.lis

📁 单片机开发资料光盘-双龙-686M.zip
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                       ;      adcval[5]=0;   
 00FC 2224              clr R2
 00FE 20920800          sts _adcval+5,R2
 0102                   .dbline 199
                       ;      char_p=adcval;
 0102 80E0              ldi R24,<_adcval
 0104 90E0              ldi R25,>_adcval
 0106 A82E              mov R10,R24
 0108 B92E              mov R11,R25
 010A                   .dbline 200
                       ;      return char_p;
 010A 0A2D              mov R16,R10
 010C 1B2D              mov R17,R11
 010E                   .dbline -2
 010E                 L10:
 010E 0E940000          xcall pop_gset5
 0112                   .dbline 0 ; func end
 0112 0895              ret
 0114                   .dbsym r char_p 10 pc
 0114                   .dbsym r i 12 c
 0114                   .dbsym r temp 14 i
 0114                   .dbsym r adc 10 i
 0114                   .dbfunc s ocmj_init _ocmj_init fI
                         .even
 0114                 _ocmj_init::
 0114                   .dbline -1
 0114                   .dbline 204
                       ;     }
                       ; /*     OCMJ4X8LCD初始化     */
                       ; void ocmj_init(void)
                       ;     {
 0114                   .dbline 205
                       ;      MCUCR=0;
 0114 2224              clr R2
 0116 25BE              out 0x35,R2
 0118                   .dbline 206
                       ;      DDRA=0xff;
 0118 8FEF              ldi R24,255
 011A 8ABB              out 0x1a,R24
 011C                   .dbline 207
                       ;      PORTA=0xff;
 011C 8BBB              out 0x1b,R24
 011E                   .dbline 208
                       ;      DDRE=0x80;
 011E 80E8              ldi R24,128
 0120 82B9              out 0x2,R24
 0122                   .dbline 209
                       ;      PORTE=0xff;
 0122 8FEF              ldi R24,255
 0124 83B9              out 0x3,R24
 0126                   .dbline 210
                       ;      PORTC=0xff; 
 0126 85BB              out 0x15,R24
 0128                   .dbline 211
                       ;      DDRD=0x00;
 0128 21BA              out 0x11,R2
 012A                   .dbline 212
                       ;      PORTD=0xff;
 012A 82BB              out 0x12,R24
 012C                   .dbline 213
                       ;      clr_reset;//LCD复位
 012C AB98              cbi 0x15,3
 012E                   .dbline 214
                       ;      delay_ms(10);
 012E 0AE0              ldi R16,10
 0130 10E0              ldi R17,0
 0132 0E940000          xcall _delay_ms
 0136                   .dbline 215
                       ;      set_reset;
 0136 AB9A              sbi 0x15,3
 0138                   .dbline 216
                       ;      clr_answer;
 0138 1F98              cbi 0x03,7
 013A                   .dbline 217
                       ;      delay_ms(10);
 013A 0AE0              ldi R16,10
 013C 10E0              ldi R17,0
 013E 0E940000          xcall _delay_ms
 0142                   .dbline -2
 0142                   .dbline 218
                       ;      }
 0142                 L20:
 0142                   .dbline 0 ; func end
 0142 0895              ret
 0144                   .dbfunc s ocmj_write _ocmj_write fI
                       ;           data -> R16
                         .even
 0144                 _ocmj_write::
 0144                   .dbline -1
 0144                   .dbline 221
                       ; /*            写数据到LCD        */
                       ; void ocmj_write(unsigned char data)
                       ;     {
 0144                 L22:
 0144                   .dbline 223
 0144                 L23:
 0144                   .dbline 222
                       ;      while(ask!=0)
 0144 0E99              sbic 0x1,6
 0146 FECF              rjmp L22
 0148                   .dbline 224
                       ;           ;
                       ;      data_port=data;
 0148 0BBB              out 0x1b,R16
 014A                   .dbline 225
                       ;      wait;
 014A 0000              nop
 014C 0000               nop
 014E                   .dbline 226
                       ;      set_answer;
 014E 1F9A              sbi 0x03,7
 0150                   .dbline 227
                       ;      wait;
 0150 0000              nop
 0152 0000               nop
 0154                 L25:
 0154                   .dbline 229
 0154                 L26:
 0154                   .dbline 228
                       ;      while(ask==0)
 0154 0E9B              sbis 0x1,6
 0156 FECF              rjmp L25
 0158                   .dbline 230
                       ;           ;       
                       ;      clr_answer; 
 0158 1F98              cbi 0x03,7
 015A                   .dbline -2
 015A                   .dbline 231
                       ;     }
 015A                 L21:
 015A                   .dbline 0 ; func end
 015A 0895              ret
 015C                   .dbsym r data 16 c
 015C                   .dbfunc s ico_tran _ico_tran fI
                       ;              j -> R20
                       ;              i -> R22
                       ;          ico_p -> R10,R11
                       ;              y -> R12
                       ;              x -> R14
                         .even
 015C                 _ico_tran::
 015C 0E940000          xcall push_gset5
 0160 C22E              mov R12,R18
 0162 E02E              mov R14,R16
 0164 AA84              ldd R10,y+10
 0166 BB84              ldd R11,y+11
 0168                   .dbline -1
 0168                   .dbline 236
                       ; /*         传送32*32ICO点阵数据到LCD       */
                       ; /*         x:0~15(字节为单位)  y:0~64      */
                       ; /*         ico_p:指向图形数据的指针        */   
                       ; void ico_tran(unsigned char x,unsigned char y,const unsigned char *ico_p)
                       ;      {
 0168                   .dbline 238
                       ;       unsigned char i,j;
                       ;       x+=4;
 0168 8E2D              mov R24,R14
 016A 8C5F              subi R24,252    ; addi 4
 016C E82E              mov R14,R24
 016E                   .dbline 239
                       ;       for(j=0;j<32;j++)
 016E 4427              clr R20
 0170 1BC0              xjmp L32
 0172                 L29:
 0172                   .dbline 240
                       ;          {
 0172                   .dbline 241
                       ;           for(i=0;i<4;i++)
 0172 6627              clr R22
 0174 12C0              xjmp L36
 0176                 L33:
 0176                   .dbline 242
 0176                   .dbline 243
 0176 03EF              ldi R16,243
 0178 E5DF              xcall _ocmj_write
 017A                   .dbline 244
 017A 0E2D              mov R16,R14
 017C E3DF              xcall _ocmj_write
 017E                   .dbline 245
 017E 0C2D              mov R16,R12
 0180 E1DF              xcall _ocmj_write
 0182                   .dbline 246
 0182 EA2D              mov R30,R10
 0184 FB2D              mov R31,R11
 0186 C895              lpm
 0188 002D              mov R16,R0
 018A DCDF              xcall _ocmj_write
 018C                   .dbline 247
 018C 8A2D              mov R24,R10
 018E 9B2D              mov R25,R11
 0190 0196              adiw R24,1
 0192 A82E              mov R10,R24
 0194 B92E              mov R11,R25
 0196                   .dbline 248
 0196 E394              inc R14
 0198                   .dbline 249
 0198                 L34:
 0198                   .dbline 241
 0198 6395              inc R22
 019A                 L36:
 019A                   .dbline 241
 019A 6430              cpi R22,4
 019C 60F3              brlo L33
 019E                   .dbline 250
 019E 8E2D              mov R24,R14
 01A0 8450              subi R24,4
 01A2 E82E              mov R14,R24
 01A4                   .dbline 251
 01A4 C394              inc R12
 01A6                   .dbline 252
 01A6                 L30:
 01A6                   .dbline 239
 01A6 4395              inc R20
 01A8                 L32:
 01A8                   .dbline 239
 01A8 4032              cpi R20,32
 01AA 18F3              brlo L29
 01AC                   .dbline -2
 01AC                   .dbline 253
                       ;             {
                       ;              ocmj_write(0xf3);
                       ;              ocmj_write(x);
                       ;              ocmj_write(y);
                       ;              ocmj_write(*ico_p);
                       ;              ico_p++;
                       ;              x++;
                       ;             }
                       ;           x-=4;
                       ;           y++;  
                       ;          }
                       ;      }
 01AC                 L28:
 01AC 0E940000          xcall pop_gset5
 01B0                   .dbline 0 ; func end
 01B0 0895              ret
 01B2                   .dbsym r j 20 c
 01B2                   .dbsym r i 22 c
 01B2                   .dbsym r ico_p 10 pc
 01B2                   .dbsym r y 12 c
 01B2                   .dbsym r x 14 c
 01B2                   .dbfunc s cls _cls fI
                       ;              j -> R20
                       ;              i -> R10
                       ;          width -> R12
                       ;           high -> R22
                       ;              y -> R14,R15
                       ;              x -> y+10
                         .even
 01B2                 _cls::
 01B2 0E940000          xcall push_arg4
 01B6 0E940000          xcall push_gset5
 01BA E22E              mov R14,R18
 01BC F32E              mov R15,R19
 01BE 6E85              ldd R22,y+14
 01C0 7F85              ldd R23,y+15
 01C2 C888              ldd R12,y+16
 01C4 D988              ldd R13,y+17
 01C6                   .dbline -1
 01C6                   .dbline 256
                       ; /*      清除屏幕区域      */     
                       ; void cls(unsigned x,unsigned y,unsigned char high,unsigned char width)
                       ;   {
 01C6                   .dbline 258
                       ;    unsigned char i,j;
                       ;    x+=2;
 01C6 8A85              ldd R24,y+10
 01C8 9B85              ldd R25,y+11
 01CA 0296              adiw R24,2
 01CC 8A87              std y+10,R24
 01CE 9B87              std y+11,R25
 01D0                   .dbline 259
                       ;    for(j=0;j<high;j++)
 01D0 4427              clr R20
 01D2 23C0              xjmp L41
 01D4                 L38:
 01D4                   .dbline 260
                       ;       {
 01D4                   .dbline 261
                       ;        for(i=0;i<width;i++)
 01D4 AA24              clr R10
 01D6 11C0              xjmp L45
 01D8                 L42:
 01D8                   .dbline 262
 01D8                   .dbline 263
 01D8 00EF              ldi R16,240
 01DA B4DF              xcall _ocmj_write
 01DC                   .dbline 264
 01DC 0A85              ldd R16,y+10
 01DE 1B85              ldd R17,y+11
 01E0 B1DF              xcall _ocmj_write
 01E2                   .dbline 265
 01E2 0E2D              mov R16,R14
 01E4 AFDF              xcall _ocmj_write
 01E6                   .dbline 266
 01E6 07E3              ldi R16,55
 01E8 ADDF              xcall _ocmj_write
 01EA                   .dbline 267
 01EA 0AE5              ldi R16,90
 01EC ABDF              xcall _ocmj_write
 01EE                   .db

⌨️ 快捷键说明

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