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

📄 7920.lis

📁 7920中文液晶显示屏 程序一般 7920的优点是有个汉字库
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0078           ;       SETBIT(LCD_CONTROL_PORT,RS);
 0078 C09A              sbi 0x18,0
 007A                   .dbline 134
 007A           ;       Send(0xf8);
 007A 08EF              ldi R16,248
 007C E7DF              xcall _Send
 007E                   .dbline 135
 007E           ;       Send(scmd&0xf0);
 007E 042F              mov R16,R20
 0080 007F              andi R16,240
 0082 E4DF              xcall _Send
 0084                   .dbline 136
 0084           ;       Send(scmd<<4);  
 0084 042F              mov R16,R20
 0086 0F70              andi R16,#0x0F
 0088 0295              swap R16
 008A E0DF              xcall _Send
 008C                   .dbline 139
 008C           ;       
 008C           ;       //ST7920CS=0;
 008C           ;       SETBIT(LCD_CONTROL_PORT,RS);
 008C C09A              sbi 0x18,0
 008E                   .dbline 140
 008E           ;       delay_nus(20);
 008E 04E1              ldi R16,20
 0090 10E0              ldi R17,0
 0092 A7D0              xcall _delay_nus
 0094                   .dbline -2
 0094           L13:
 0094 0E940000          xcall pop_gset1
 0098                   .dbline 0 ; func end
 0098 0895              ret
 009A                   .dbsym r scmd 20 c
 009A                   .dbend
 009A                   .dbfunc e SdData _SdData fV
 009A           ;          DData -> R20
                        .even
 009A           _SdData::
 009A 0E940000          xcall push_gset1
 009E 402F              mov R20,R16
 00A0                   .dbline -1
 00A0                   .dbline 145
 00A0           ;       
 00A0           ; }
 00A0           ; 
 00A0           ; void SdData(unsigned char DData) 
 00A0           ; {
 00A0                   .dbline 147
 00A0           ;       //ST7920CS=1;
 00A0           ;       SETBIT(LCD_CONTROL_PORT,RS);
 00A0 C09A              sbi 0x18,0
 00A2                   .dbline 148
 00A2           ;       Send(0xfa);
 00A2 0AEF              ldi R16,250
 00A4 D3DF              xcall _Send
 00A6                   .dbline 149
 00A6           ;       Send(DData&0xf0);
 00A6 042F              mov R16,R20
 00A8 007F              andi R16,240
 00AA D0DF              xcall _Send
 00AC                   .dbline 150
 00AC           ;       Send(DData<<4); 
 00AC 042F              mov R16,R20
 00AE 0F70              andi R16,#0x0F
 00B0 0295              swap R16
 00B2 CCDF              xcall _Send
 00B4                   .dbline 153
 00B4           ;       
 00B4           ;       //ST7920CS=0;
 00B4           ;       SETBIT(LCD_CONTROL_PORT,RS);
 00B4 C09A              sbi 0x18,0
 00B6                   .dbline 154
 00B6           ;       delay_nus(20);
 00B6 04E1              ldi R16,20
 00B8 10E0              ldi R17,0
 00BA 93D0              xcall _delay_nus
 00BC                   .dbline -2
 00BC           L14:
 00BC 0E940000          xcall pop_gset1
 00C0                   .dbline 0 ; func end
 00C0 0895              ret
 00C2                   .dbsym r DData 20 c
 00C2                   .dbend
 00C2                   .dbfunc e main _main fV
                        .even
 00C2           _main::
 00C2                   .dbline -1
 00C2                   .dbline 159
 00C2           ;       
 00C2           ; }
 00C2           ; 
 00C2           ; void main(void)
 00C2           ; {
 00C2                   .dbline 161
 00C2           ;  
 00C2           ;       CLI();                 // disable interrupts
 00C2 F894              cli
 00C4                   .dbline 163
 00C4           ; 
 00C4           ;       initLCDM();
 00C4 9DDF              xcall _initLCDM
 00C6 13C0              xjmp L17
 00C8           L16:
 00C8                   .dbline 166
 00C8                   .dbline 167
 00C8 00E2              ldi R16,32
 00CA D3DF              xcall _SdCmd
 00CC                   .dbline 168
 00CC 01E0              ldi R16,1
 00CE D1DF              xcall _SdCmd
 00D0                   .dbline 169
 00D0 04E6              ldi R16,100
 00D2 10E0              ldi R17,0
 00D4 9FD0              xcall _delay_nms
 00D6                   .dbline 171
 00D6 00E0              ldi R16,<_TextLogo
 00D8 10E0              ldi R17,>_TextLogo
 00DA 35D0              xcall _WriteTextScreen2
 00DC                   .dbline 172
 00DC 0CED              ldi R16,1500
 00DE 15E0              ldi R17,5
 00E0 99D0              xcall _delay_nms
 00E2                   .dbline 174
 00E2 00E0              ldi R16,<L19
 00E4 10E0              ldi R17,>L19
 00E6 2FD0              xcall _WriteTextScreen2
 00E8                   .dbline 175
 00E8 0CED              ldi R16,1500
 00EA 15E0              ldi R17,5
 00EC 93D0              xcall _delay_nms
 00EE                   .dbline 178
 00EE           L17:
 00EE                   .dbline 165
 00EE ECCF              xjmp L16
 00F0           X0:
 00F0                   .dbline -2
 00F0           L15:
 00F0                   .dbline 0 ; func end
 00F0 0895              ret
 00F2                   .dbend
 00F2                   .dbfunc e DispSetCursor _DispSetCursor fV
 00F2           ;              i -> R20
 00F2           ;      ColumnNum -> R22
 00F2           ;        LineNum -> R10
                        .even
 00F2           _DispSetCursor::
 00F2 0E940000          xcall push_gset3
 00F6 622F              mov R22,R18
 00F8 A02E              mov R10,R16
 00FA                   .dbline -1
 00FA                   .dbline 184
 00FA           ;       
 00FA           ;       while(1)
 00FA           ;       {
 00FA           ;       SdCmd(0x20);          // 8bit I/F, basic command, graphic off
 00FA           ;       SdCmd(0x01);          // clr text screen
 00FA           ;       delay_nms(100);
 00FA           ;       
 00FA           ;     WriteTextScreen2(TextLogo);
 00FA           ;       delay_nms(1500);
 00FA           ; 
 00FA           ;     WriteTextScreen2("世界你好12345678901234567890");
 00FA           ;       delay_nms(1500);
 00FA           ; 
 00FA           ;       
 00FA           ;       }
 00FA           ;       
 00FA           ; 
 00FA           ; }
 00FA           ; 
 00FA           ; void DispSetCursor(unsigned char LineNum, unsigned char ColumnNum)
 00FA           ; {
 00FA                   .dbline 186
 00FA           ; 
 00FA           ;     unsigned char i=0x00;
 00FA 4427              clr R20
 00FC                   .dbline 187
 00FC           ;     switch(LineNum&0x0f)   //确定行号
 00FC 8A2D              mov R24,R10
 00FE 9927              clr R25
 0100 8F70              andi R24,15
 0102 9070              andi R25,0
 0104 5C01              movw R10,R24
 0106 8030              cpi R24,0
 0108 8907              cpc R24,R25
 010A 71F0              breq L24
 010C           X1:
 010C C501              movw R24,R10
 010E 8130              cpi R24,1
 0110 E0E0              ldi R30,0
 0112 9E07              cpc R25,R30
 0114 59F0              breq L25
 0116 8230              cpi R24,2
 0118 E0E0              ldi R30,0
 011A 9E07              cpc R25,R30
 011C 49F0              breq L26
 011E 8330              cpi R24,3
 0120 E0E0              ldi R30,0
 0122 9E07              cpc R25,R30
 0124 39F0              breq L27
 0126 07C0              xjmp L22
 0128           X2:
 0128                   .dbline 188
 0128           ;     {
 0128           L24:
 0128                   .dbline 190
 0128           ;       case 0x00:
 0128           ;               i=0x80;
 0128 40E8              ldi R20,128
 012A                   .dbline 191
 012A           ;               break;
 012A 05C0              xjmp L22
 012C           L25:
 012C                   .dbline 193
 012C           ;       case 0x01: 
 012C           ;               i=0x90; 
 012C 40E9              ldi R20,144
 012E                   .dbline 194
 012E           ;               break;
 012E 03C0              xjmp L22
 0130           L26:
 0130                   .dbline 196
 0130           ;       case 0x02: 
 0130           ;               i=0x88;
 0130 48E8              ldi R20,136
 0132                   .dbline 197
 0132           ;               break;
 0132 01C0              xjmp L22
 0134           L27:
 0134                   .dbline 199
 0134           ;       case 0x03:
 0134           ;               i=0x98;
 0134 48E9              ldi R20,152
 0136                   .dbline 200
 0136           ;               break;
 0136                   .dbline 202
 0136           ;       default : 
 0136           ;               break;
 0136           L22:
 0136                   .dbline 204
 0136           ;     }
 0136           ;     i = (ColumnNum&0x0f)|i; //确定列号
 0136 862F              mov R24,R22
 0138 8F70              andi R24,15
 013A 482B              or R20,R24
 013C                   .dbline 205
 013C           ;    SdCmd(i);
 013C 042F              mov R16,R20
 013E 99DF              xcall _SdCmd
 0140                   .dbline -2
 0140           L20:
 0140 0E940000          xcall pop_gset3
 0144                   .dbline 0 ; func end
 0144 0895              ret
 0146                   .dbsym r i 20 c
 0146                   .dbsym r ColumnNum 22 c
 0146                   .dbsym r LineNum 10 c
 0146                   .dbend
 0146                   .dbfunc e WriteTextScreen2 _WriteTextScreen2 fV
 0146           ;              i -> R20
 0146           ;              j -> R10
 0146           ;           pstr -> R22,R23
                        .even
 0146           _WriteTextScreen2::
 0146 0E940000          xcall push_gset3
 014A B801              movw R22,R16
 014C                   .dbline -1
 014C                   .dbline 210
 014C           ;       
 014C           ; }
 014C           ; 
 014C           ; void WriteTextScreen2(unsigned char *pstr)
 014C           ; {
 014C                   .dbline 214
 014C           ; unsigned char i;
 014C           ; unsigned char j;
 014C           ; 
 014C           ;       SdCmd(0x34);        // 8bit I/F, basic command
 014C 04E3              ldi R16,52
 014E 91DF              xcall _SdCmd
 0150                   .dbline 215
 0150           ;       SdCmd(0x30);        // 8bit I/F, basic command, graphic off
 0150 00E3              ldi R16,48
 0152 8FDF              xcall _SdCmd
 0154                   .dbline 217
 0154           ; 
 0154           ;        for(i=0;i<36;i++)       //清空屏幕
 0154 4427              clr R20

⌨️ 快捷键说明

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