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

📄 st7920.lis

📁 ST7920液晶控制器的AVR程序
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 034A DBDF              xcall _ClearArea
 034C                   .dbline -2
 034C           L58:
 034C                   .dbline 0 ; func end
 034C 2596              adiw R28,5
 034E C990              ld R12,y+
 0350 A990              ld R10,y+
 0352 0895              ret
 0354                   .dbsym l y1 9 c
 0354                   .dbsym l x1 7 c
 0354                   .dbsym r y0 12 c
 0354                   .dbsym r x0 10 c
 0354                   .dbend
 0354                   .dbfunc e PicClear1 _PicClear1 fV
 0354           ;         COUNT3 -> R20
 0354           ;          LCD_X -> R22
 0354           ;          LCD_Y -> R10
 0354           ;         COUNT2 -> R12
 0354           ;         COUNT1 -> R14
                        .even
 0354           _PicClear1::
 0354 0E940000          xcall push_xgsetF0FC
 0358                   .dbline -1
 0358                   .dbline 205
 0358           ; }
 0358           ; 
 0358           ; /**********************液晶文字显示相关程序END*************/
 0358           ;                     
 0358           ; 
 0358           ; /**********************显示图形子程序START******************/
 0358           ; void PicClear1(void)
 0358           ; {
 0358                   .dbline 207
 0358           ;    uchar COUNT3,COUNT2,COUNT1,LCD_X,LCD_Y;
 0358           ;    COUNT3=0X02;
 0358 42E0              ldi R20,2
 035A                   .dbline 208
 035A           ;    LCD_X=0X80;
 035A 60E8              ldi R22,128
 035C                   .dbline 209
 035C           ;    for (;COUNT3!=0;COUNT3--)
 035C 16C0              xjmp L63
 035E           L60:
 035E                   .dbline 210
 035E           ;    {
 035E                   .dbline 211
 035E           ;        LCD_Y=0X80;
 035E 80E8              ldi R24,128
 0360 A82E              mov R10,R24
 0362                   .dbline 212
 0362           ;        COUNT2=0X20;//32
 0362 80E2              ldi R24,32
 0364 C82E              mov R12,R24
 0366                   .dbline 213
 0366           ;        for (;COUNT2!=0;COUNT2--)
 0366 0DC0              xjmp L67
 0368           L64:
 0368                   .dbline 214
 0368           ;        {
 0368                   .dbline 215
 0368           ;          COUNT1=0X10;//16
 0368 80E1              ldi R24,16
 036A E82E              mov R14,R24
 036C                   .dbline 216
 036C           ;          SetGraphicAddr(LCD_X,LCD_Y);
 036C 2A2D              mov R18,R10
 036E 062F              mov R16,R22
 0370 01DF              xcall _SetGraphicAddr
 0372                   .dbline 217
 0372           ;          for (;COUNT1!=0;COUNT1--)
 0372 03C0              xjmp L71
 0374           L68:
 0374                   .dbline 218
 0374           ;           {
 0374                   .dbline 219
 0374           ;             WriteData(0);
 0374 0027              clr R16
 0376 B9DE              xcall _WriteData
 0378                   .dbline 220
 0378           ;           }
 0378           L69:
 0378                   .dbline 217
 0378 EA94              dec R14
 037A           L71:
 037A                   .dbline 217
 037A EE20              tst R14
 037C D9F7              brne L68
 037E           X16:
 037E                   .dbline 221
 037E           ;          LCD_Y+=1;
 037E A394              inc R10
 0380                   .dbline 222
 0380           ;        }
 0380           L65:
 0380                   .dbline 213
 0380 CA94              dec R12
 0382           L67:
 0382                   .dbline 213
 0382 CC20              tst R12
 0384 89F7              brne L64
 0386           X17:
 0386                   .dbline 223
 0386           ;        LCD_X=0X88;
 0386 68E8              ldi R22,136
 0388                   .dbline 224
 0388           ;    }
 0388           L61:
 0388                   .dbline 209
 0388 4A95              dec R20
 038A           L63:
 038A                   .dbline 209
 038A 4423              tst R20
 038C 41F7              brne L60
 038E           X18:
 038E                   .dbline -2
 038E           L59:
 038E                   .dbline 0 ; func end
 038E 0C940000          xjmp pop_xgsetF0FC
 0392                   .dbsym r COUNT3 20 c
 0392                   .dbsym r LCD_X 22 c
 0392                   .dbsym r LCD_Y 10 c
 0392                   .dbsym r COUNT2 12 c
 0392                   .dbsym r COUNT1 14 c
 0392                   .dbend
 0392                   .dbfunc e Draw_Pic _Draw_Pic fV
 0392           ;         temp_y -> R20
 0392           ;         temp_x -> R22
 0392           ;              i -> R10
 0392           ;              j -> R14
 0392           ;           Draw -> y+10
 0392           ;              y -> R10
 0392           ;              x -> R12
                        .even
 0392           _Draw_Pic::
 0392 0E940000          xcall push_xgsetF0FC
 0396 A22E              mov R10,R18
 0398 C02E              mov R12,R16
 039A                   .dbline -1
 039A                   .dbline 241
 039A           ; //   send_com(0x36);
 039A           ; //   send_com(0x30);   //可省
 039A           ; }
 039A           ; 
 039A           ; /********************************************************************
 039A           ; 函 数 名:Draw_Pic  128*64
 039A           ; 入口参数:x,y,*Draw
 039A           ; 出口参数:无
 039A           ; 建立日期:2007年8月26日
 039A           ; 修改日期:
 039A           ; 函数作用:
 039A           ; 说    明:
 039A           ; ********************************************************************/
 039A           ; /*************************************************/
 039A           ; 
 039A           ; void Draw_Pic(uchar x, uchar y, const uchar *Draw)
 039A           ; {
 039A                   .dbline 243
 039A           ;       uchar i, j, temp_x, temp_y;             //
 039A           ;       temp_x = x;                                             //
 039A 6C2D              mov R22,R12
 039C                   .dbline 244
 039C           ;       temp_y = y;                                             //
 039C 4A2D              mov R20,R10
 039E                   .dbline 245
 039E           ;       temp_x |= 0x80;                                 //
 039E 6068              ori R22,128
 03A0                   .dbline 246
 03A0           ;       temp_y |= 0x80;                                 //
 03A0 4068              ori R20,128
 03A2                   .dbline 247
 03A2           ;       WriteCommand(0x01);//清屏
 03A2 01E0              ldi R16,1
 03A4 8EDE              xcall _WriteCommand
 03A6                   .dbline 248
 03A6           ;       Delayus(200);   //清屏需要时间  1ms左右
 03A6 08EC              ldi R16,200
 03A8 10E0              ldi R17,0
 03AA 20E0              ldi R18,0
 03AC 30E0              ldi R19,0
 03AE 28DE              xcall _Delayus
 03B0                   .dbline 249
 03B0           ;       WriteCommand(0x36);
 03B0 06E3              ldi R16,54
 03B2 87DE              xcall _WriteCommand
 03B4                   .dbline 250
 03B4           ;       for(i=0;i<32;i++ )                              //上半屏32行
 03B4 AA24              clr R10
 03B6 16C0              xjmp L76
 03B8           L73:
 03B8                   .dbline 251
 03B8           ;       {
 03B8                   .dbline 252
 03B8           ;               WriteCommand(temp_y++); //设置绘图区的Y地址坐标0
 03B8 242E              mov R2,R20
 03BA 4F5F              subi R20,255    ; addi 1
 03BC 022D              mov R16,R2
 03BE 81DE              xcall _WriteCommand
 03C0                   .dbline 253
 03C0           ;               WriteCommand(temp_x);  //设置绘图区的X地址坐标0
 03C0 062F              mov R16,R22
 03C2 7FDE              xcall _WriteCommand
 03C4                   .dbline 254
 03C4           ;               for(j=0;j<16;j++)                       //
 03C4 EE24              clr R14
 03C6 0AC0              xjmp L80
 03C8           L77:
 03C8                   .dbline 255
 03C8           ;               {
 03C8                   .dbline 256
 03C8           ;                        WriteData(*Draw++);
 03C8 2A84              ldd R2,y+10
 03CA 3B84              ldd R3,y+11
 03CC C101              movw R24,R2
 03CE 0196              adiw R24,1
 03D0 9B87              std y+11,R25
 03D2 8A87              std y+10,R24
 03D4 F101              movw R30,R2
 03D6 0491              lpm R16,Z
 03D8 88DE              xcall _WriteData
 03DA                   .dbline 257
 03DA           ;               }
 03DA           L78:
 03DA                   .dbline 254
 03DA E394              inc R14
 03DC           L80:
 03DC                   .dbline 254
 03DC 8E2D              mov R24,R14
 03DE 8031              cpi R24,16
 03E0 98F3              brlo L77
 03E2           X19:
 03E2                   .dbline 258
 03E2           ;       }
 03E2           L74:
 03E2                   .dbline 250
 03E2 A394              inc R10
 03E4           L76:
 03E4                   .dbline 250
 03E4 8A2D              mov R24,R10
 03E6 8032              cpi R24,32
 03E8 38F3              brlo L73
 03EA           X20:
 03EA                   .dbline 260
 03EA           ;       
 03EA           ;       temp_x = 0x88;                                  //
 03EA 68E8              ldi R22,136
 03EC                   .dbline 261
 03EC           ;       temp_y = 0x80;                                  //
 03EC 40E8              ldi R20,128
 03EE                   .dbline 262
 03EE           ;       j = 0;                                                  //
 03EE EE24              clr R14
 03F0                   .dbline 263
 03F0           ;       for(;i<64;i++ )
 03F0 16C0              xjmp L84
 03F2           L81:
 03F2                   .dbline 264
 03F2           ;       {
 03F2                   .dbline 266
 03F2           ;               
 03F2           ;               WriteCommand(temp_y++); //设置绘图区的Y地址坐标0
 03F2 C42E              mov R12,R20
 03F4 4F5F              subi R20,255    ; addi 1
 03F6 0C2D              mov R16,R12
 03F8 64DE              xcall _WriteCommand
 03FA                   .dbline 267
 03FA           ;               WriteCommand(temp_x);  //设置绘图区的X地址坐标0
 03FA 062F              mov R16,R22
 03FC 62DE              xcall _WriteCommand
 03FE                   .dbline 268
 03FE           ;               for(j=0;j<16;j++)
 03FE EE24              clr R14
 0400 0AC0              xjmp L88
 0402           L85:
 0402                   .dbline 269
 0402           ;               {
 0402                   .dbline 270
 0402           ;                       WriteData(*Draw++);
 0402 CA84              ldd R12,y+10
 0404 DB84              ldd R13,y+11
 0406 C601              movw R24,R12
 0408 0196              adiw R24,1
 040A 9B87              std y+11,R25
 040C 8A87              std y+10,R24
 040E F601              movw R30,R12
 0410 0491              lpm R16,Z
 0412 6BDE              xcall _WriteData
 0414                   .dbline 271
 0414           ;               }
 0414           L86:
 0414                   .dbline 268
 0414 E394              inc R14
 0416           L88:
 0416                   .dbline 268
 0416 8E2D              mov R24,R14
 0418 8031              cpi R24,16
 041A 98F3              brlo L85
 041C           X21:
 041C                   .dbline 272
 041C           ;       }
 041C           L82:
 041C                   .dbline 263
 041C A394              inc R10
 041E           L84:
 041E                   .dbline 263
 041E 8A2D              mov R24,R10
 0420 8034              cpi R24,64
 0422 38F3              brlo L81
 0424           X22:
 0424                   .dbline 273
 0424           ;       WriteCommand(0x30);//基本指令集,,绘图显示OFF    
 0424 00E3              ldi R16,48
 0426 4DDE              xcall _WriteCommand
 0428                   .dbline -2
 0428           L72:
 0428                   .dbline 0 ; func end
 0428 0C940000          xjmp pop_xgsetF0FC
 042C                   .dbsym r temp_y 20 c
 042C                   .dbsym r temp_x 22 c
 042C                   .dbsym r i 10 c
 042C                   .dbsym r j 14 c
 042C                   .dbsym l Draw 10 pkc
 042C                   .dbsym r y 10 c
 042C                   .dbsym r x 12 c
 042C                   .dbend
 042C           ; }
 042C           ; /**********************显示图形子程序END******************/
 042C           ; 

⌨️ 快捷键说明

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