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

📄 3310.lis

📁 LED条屏显示程序,但是对初学者
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 01BA           ;              n -> R20
 01BA           ;           line -> R22
 01BA           ;              Y -> R10
 01BA           ;              X -> R20
                        .even
 01BA           _LCD_write_tubiao::
 01BA 0E940000          xcall push_gset3
 01BE A22E              mov R10,R18
 01C0 402F              mov R20,R16
 01C2 6E81              ldd R22,y+6
 01C4                   .dbline -1
 01C4                   .dbline 348
 01C4           ; 
 01C4           ; }
 01C4           ; 
 01C4           ; //=======================================================================
 01C4           ; void LCD_write_tubiao(uint8 X, uint8 Y, uint8 line)
 01C4           ; {
 01C4                   .dbline 351
 01C4           ;  uint8 n;
 01C4           ; 
 01C4           ;  LCD_set_XY(X,Y);//设置初始位置
 01C4 2A2D              mov R18,R10
 01C6 042F              mov R16,R20
 01C8 93DF              xcall _LCD_set_XY
 01CA                   .dbline 353
 01CA           ;  
 01CA           ;  for (n=0; n<6; n++)//画一个6*8的图标
 01CA 4427              clr R20
 01CC 0FC0              xjmp L26
 01CE           L23:
 01CE                   .dbline 354
 01CE                   .dbline 355
 01CE 21E0              ldi R18,1
 01D0 86E0              ldi R24,6
 01D2 869F              mul R24,R22
 01D4 1001              movw R2,R0
 01D6 80E0              ldi R24,<_Hzk3
 01D8 90E0              ldi R25,>_Hzk3
 01DA 280E              add R2,R24
 01DC 391E              adc R3,R25
 01DE E42F              mov R30,R20
 01E0 FF27              clr R31
 01E2 E20D              add R30,R2
 01E4 F31D              adc R31,R3
 01E6 0491              lpm R16,Z
 01E8 DDDF              xcall _LCD_write_byte
 01EA                   .dbline 357
 01EA           L24:
 01EA                   .dbline 353
 01EA 4395              inc R20
 01EC           L26:
 01EC                   .dbline 353
 01EC 4630              cpi R20,6
 01EE 78F3              brlo L23
 01F0                   .dbline -2
 01F0           L22:
 01F0 0E940000          xcall pop_gset3
 01F4                   .dbline 0 ; func end
 01F4 0895              ret
 01F6                   .dbsym r n 20 c
 01F6                   .dbsym r line 22 c
 01F6                   .dbsym r Y 10 c
 01F6                   .dbsym r X 20 c
 01F6                   .dbend
 01F6                   .dbfunc e JINGDU _JINGDU fV
 01F6           ;              i -> R20
                        .even
 01F6           _JINGDU::
 01F6 0E940000          xcall push_gset1
 01FA                   .dbline -1
 01FA                   .dbline 486
 01FA           ;      {
 01FA           ;         LCD_write_byte(Hzk3[line][n],1);
 01FA           ;             
 01FA           ;      }
 01FA           ; }
 01FA           ; 
 01FA           ; //=======================================================================
 01FA           ; //LCD_write_chi: 在LCD上显示汉字
 01FA           ; 
 01FA           ; //输入参数:X、Y:显示汉字的起始X、Y坐标;
 01FA           ; //ch_with :汉字点阵的宽度
 01FA           ; //num:显示汉字的个数;
 01FA           ; //line:汉字点阵数组中的起始行数
 01FA           ; //row:汉字显示的行间距
 01FA           ; 
 01FA           ; /*
 01FA           ; void LCD_write_chi(unsigned char X, unsigned char Y, 
 01FA           ; unsigned char ch_with,unsigned char num,
 01FA           ; unsigned char line,unsigned char row)
 01FA           ; 
 01FA           ; {
 01FA           ; 
 01FA           ; unsigned char i,n;
 01FA           ; 
 01FA           ; LCD_set_XY(X,Y);//设置初始位置
 01FA           ; 
 01FA           ; for (i=0;i<num;)
 01FA           ; 
 01FA           ; {
 01FA           ; for (n=0; n<ch_with*2; n++)//写一个汉字
 01FA           ; 
 01FA           ; { 
 01FA           ; 
 01FA           ; if (n==ch_with)//写汉字的下半部分
 01FA           ; 
 01FA           ; {
 01FA           ; 
 01FA           ; if (i==0) LCD_set_XY(X,Y+1);
 01FA           ; 
 01FA           ; else
 01FA           ; 
 01FA           ; LCD_set_XY((X+(ch_with+row)*i),Y+1);
 01FA           ; 
 01FA           ; }
 01FA           ; 
 01FA           ; LCD_write_byte(Hzk[line+i][n],1);
 01FA           ; 
 01FA           ; }
 01FA           ; 
 01FA           ; i++;
 01FA           ; 
 01FA           ; LCD_set_XY((X+(ch_with+row)*i),Y);
 01FA           ; 
 01FA           ; }
 01FA           ; 
 01FA           ; }
 01FA           ; */
 01FA           ; //=======================================================================
 01FA           ; 
 01FA           ; //LCD_write_chi: 汉字移动
 01FA           ; 
 01FA           ; //输入参数:X、Y:显示汉字的起始X、Y坐标;
 01FA           ; //T:移动速度;
 01FA           ; 
 01FA           ; /*
 01FA           ; void LCD_move_chi(void)
 01FA           ; 
 01FA           ; {
 01FA           ; 
 01FA           ; 
 01FA           ; unsigned char i,n,j=0;
 01FA           ; 
 01FA           ; unsigned char buffer_h[84]={0};
 01FA           ; 
 01FA           ; unsigned char buffer_l[84]={0};
 01FA           ; 
 01FA           ; for (i=0; i<172; i++)
 01FA           ; 
 01FA           ; {
 01FA           ; if((i/12)>5)
 01FA           ;      {
 01FA           ;         buffer_h[83]=0x00;
 01FA           ;         buffer_l[83]=0x00; 
 01FA           ;        }
 01FA           ; else 
 01FA           ;      {
 01FA           ; buffer_h[83]=Hzk[i/12][j];
 01FA           ; buffer_l[83]=Hzk[i/12][j+12];
 01FA           ;      }
 01FA           ; 
 01FA           ; j++;
 01FA           ; 
 01FA           ; if (j==12) j=0;
 01FA           ; 
 01FA           ; for (n=0; n<83; n++)
 01FA           ; 
 01FA           ; { 
 01FA           ; 
 01FA           ; buffer_h[n]=buffer_h[n+1];
 01FA           ; 
 01FA           ; buffer_l[n]=buffer_l[n+1];
 01FA           ; 
 01FA           ; } 
 01FA           ; 
 01FA           ; LCD_set_XY(0,0);
 01FA           ; 
 01FA           ; for (n=0; n<83; n++)
 01FA           ; 
 01FA           ; { 
 01FA           ; 
 01FA           ; LCD_write_byte(buffer_h[n],1);
 01FA           ; 
 01FA           ; } 
 01FA           ; 
 01FA           ; LCD_set_XY(0,1); 
 01FA           ; 
 01FA           ; for (n=0; n<83; n++)
 01FA           ; 
 01FA           ; { 
 01FA           ; 
 01FA           ; LCD_write_byte(buffer_l[n],1);
 01FA           ; 
 01FA           ; } 
 01FA           ; 
 01FA           ; Delay_ms(250);
 01FA           ; 
 01FA           ; }
 01FA           ; }
 01FA           ; */
 01FA           ; 
 01FA           ; //=======================================================================
 01FA           ; void JINGDU(void)
 01FA           ; {       uint8 i;
 01FA                   .dbline 487
 01FA           ;         LCD_set_XY(0,4);
 01FA 24E0              ldi R18,4
 01FC 0027              clr R16
 01FE 78DF              xcall _LCD_set_XY
 0200                   .dbline 488
 0200           ;               LCD_write_byte(0x7f,1);
 0200 21E0              ldi R18,1
 0202 0FE7              ldi R16,127
 0204 CFDF              xcall _LCD_write_byte
 0206                   .dbline 489
 0206           ;         i=82;
 0206 42E5              ldi R20,82
 0208 03C0              xjmp L29
 020A           L28:
 020A                   .dbline 491
 020A                   .dbline 492
 020A 21E0              ldi R18,1
 020C 01E4              ldi R16,65
 020E CADF              xcall _LCD_write_byte
 0210                   .dbline 493
 0210           L29:
 0210                   .dbline 490
 0210           ;         while(i--)
 0210 242E              mov R2,R20
 0212 3324              clr R3
 0214 4150              subi R20,1
 0216 2220              tst R2
 0218 C1F7              brne L28
 021A                   .dbline 494
 021A           ;         {
 021A           ;                LCD_write_byte(0x41,1);
 021A           ;         }
 021A           ;               LCD_write_byte(0x7f,1);
 021A 21E0              ldi R18,1
 021C 0FE7              ldi R16,127
 021E C2DF              xcall _LCD_write_byte
 0220                   .dbline -2
 0220           L27:
 0220 0E940000          xcall pop_gset1
 0224                   .dbline 0 ; func end
 0224 0895              ret
 0226                   .dbsym r i 20 c
 0226                   .dbend
 0226                   .dbfunc e GEPAI _GEPAI fV
 0226           ;              i -> R20
                        .even
 0226           _GEPAI::
 0226 0E940000          xcall push_gset1
 022A                   .dbline -1
 022A                   .dbline 499
 022A           ; }
 022A           ; 
 022A           ; //=======================================================================
 022A           ; void GEPAI(void)
 022A           ; {
 022A                   .dbline 501
 022A           ;  uint8 i;
 022A           ;  LCD_set_XY(6,2);
 022A 22E0              ldi R18,2
 022C 06E0              ldi R16,6
 022E 60DF              xcall _LCD_set_XY
 0230                   .dbline 502
 0230           ;  for(i=0;i<72;i++)
 0230 4427              clr R20
 0232 04C0              xjmp L35
 0234           L32:
 0234                   .dbline 503
 0234                   .dbline 504
 0234 21E0              ldi R18,1
 0236 0027              clr R16
 0238 B5DF              xcall _LCD_write_byte
 023A                   .dbline 505
 023A           L33:
 023A                   .dbline 502
 023A 4395              inc R20
 023C           L35:
 023C                   .dbline 502
 023C 4834              cpi R20,72
 023E D0F3              brlo L32
 0240                   .dbline 506
 0240           ;     {
 0240           ;        LCD_write_byte(0x00,1);
 0240           ;       }
 0240           ;   LCD_set_XY(6,3);
 0240 23E0              ldi R18,3
 0242 06E0              ldi R16,6
 0244 55DF              xcall _LCD_set_XY
 0246                   .dbline 507
 0246           ;  for(i=0;i<72;i++)
 0246 4427              clr R20
 0248 04C0              xjmp L39
 024A           L36:
 024A                   .dbline 508
 024A                   .dbline 509
 024A 21E0              ldi R18,1
 024C 0027              clr R16
 024E AADF              xcall _LCD_write_byte
 0250                   .dbline 510
 0250           L37:
 0250                   .dbline 507
 0250 4395              inc R20
 0252           L39:
 0252                   .dbline 507
 0252 4834              cpi R20,72
 0254 D0F3              brlo L36
 0256                   .dbline -2
 0256           L31:
 0256 0E940000          xcall pop_gset1
 025A                   .dbline 0 ; func end
 025A 0895              ret
 025C                   .dbsym r i 20 c
 025C                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile E:\MYWORK~1\开发设计\AVR-MP3\mp3开发板光盘\驱动程序\MP3BOA~1.8\3310.c
 0000           L3:
 0000                   .blkb 15
                        .area idata
 0000 202020202020202020202020202000    .byte 32,32,32,32,32,32,32,32,32,32,32,32,32,32,0
                        .area data(ram, con, rel)
 000F                   .dbfile E:\MYWORK~1\开发设计\AVR-MP3\mp3开发板光盘\驱动程序\MP3BOA~1.8\3310.c

⌨️ 快捷键说明

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