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

📄 serial_lcd.lis

📁 一个有关st7920控制器的测试程序和驱动程序的12864LCD的例程
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 00C6           ; **               row 起始列  row1 图片列数
 00C6           ; **         *bmp:图片字型码指针
 00C6           ; ** 输 出: 
 00C6           ; **         
 00C6           ; ** 全局变量: 无
 00C6           ; ** 调用模块: wr_lcd();
 00C6           ; ** 说明:
 00C6           ; ** 注意:
 00C6           ; ********************************************************************************************************/
 00C6           ; 
 00C6           ; void Lcd_drawbmp(const unsigned char *bmp)
 00C6           ; {
 00C6                   .dbline 152
 00C6           ;        unsigned char i,j;
 00C6           ;        Lcd_clrbmp();
 00C6 67D0              xcall _Lcd_clrbmp
 00C8                   .dbline 153
 00C8           ;        wr_lcd(Lcd_Set_Function_Basic+2,1);
 00C8 21E0              ldi R18,1
 00CA 02E3              ldi R16,50
 00CC A5DF              xcall _wr_lcd
 00CE                   .dbline 154
 00CE           ;        wr_lcd(Lcd_Set_Function_Extend,1);
 00CE 21E0              ldi R18,1
 00D0 04E3              ldi R16,52
 00D2 A2DF              xcall _wr_lcd
 00D4                   .dbline 155
 00D4           ;        for(i=0;i<32;i++)
 00D4 4427              clr R20
 00D6 27C0              xjmp L39
 00D8           L36:
 00D8                   .dbline 156
 00D8           ;        {
 00D8                   .dbline 157
 00D8           ;         for(j=0;j<8;j++)
 00D8 6627              clr R22
 00DA 22C0              xjmp L43
 00DC           L40:
 00DC                   .dbline 158
 00DC                   .dbline 159
 00DC 21E0              ldi R18,1
 00DE 02E3              ldi R16,50
 00E0 9BDF              xcall _wr_lcd
 00E2                   .dbline 160
 00E2 21E0              ldi R18,1
 00E4 06E3              ldi R16,54
 00E6 98DF              xcall _wr_lcd
 00E8                   .dbline 162
 00E8 21E0              ldi R18,1
 00EA 042F              mov R16,R20
 00EC 0058              subi R16,128    ; addi 128
 00EE 94DF              xcall _wr_lcd
 00F0                   .dbline 163
 00F0 21E0              ldi R18,1
 00F2 062F              mov R16,R22
 00F4 0058              subi R16,128    ; addi 128
 00F6 90DF              xcall _wr_lcd
 00F8                   .dbline 165
 00F8 21E0              ldi R18,1
 00FA 02E3              ldi R16,50
 00FC 8DDF              xcall _wr_lcd
 00FE                   .dbline 166
 00FE 2227              clr R18
 0100 1501              movw R2,R10
 0102 C101              movw R24,R2
 0104 0196              adiw R24,1
 0106 5C01              movw R10,R24
 0108 F101              movw R30,R2
 010A 0491              lpm R16,Z
 010C 85DF              xcall _wr_lcd
 010E                   .dbline 167
 010E 2227              clr R18
 0110 1501              movw R2,R10
 0112 C101              movw R24,R2
 0114 0196              adiw R24,1
 0116 5C01              movw R10,R24
 0118 F101              movw R30,R2
 011A 0491              lpm R16,Z
 011C 7DDF              xcall _wr_lcd
 011E                   .dbline 168
 011E           L41:
 011E                   .dbline 157
 011E 6395              inc R22
 0120           L43:
 0120                   .dbline 157
 0120 6830              cpi R22,8
 0122 E0F2              brlo L40
 0124                   .dbline 169
 0124           L37:
 0124                   .dbline 155
 0124 4395              inc R20
 0126           L39:
 0126                   .dbline 155
 0126 4032              cpi R20,32
 0128 08F4              brsh X1
 012A D6CF              xjmp L36
 012C           X1:
 012C                   .dbline 170
 012C           ;               {
 012C           ;                  wr_lcd(Lcd_Set_Function_Basic+2,1);
 012C           ;              wr_lcd(Lcd_Set_Function_Extend+2,1);
 012C           ;                  
 012C           ;                  wr_lcd(0x80+i,1);
 012C           ;                  wr_lcd(0x80+j,1);
 012C           ;                  
 012C           ;                  wr_lcd(Lcd_Set_Function_Basic+2,1);
 012C           ;                  wr_lcd(*bmp++,0);
 012C           ;                  wr_lcd(*bmp++,0);
 012C           ;               }
 012C           ;        }
 012C           ;        for(i=0;i<32;i++)
 012C 4427              clr R20
 012E 27C0              xjmp L47
 0130           L44:
 0130                   .dbline 171
 0130           ;        {
 0130                   .dbline 172
 0130           ;         for(j=8;j<16;j++)
 0130 68E0              ldi R22,8
 0132 22C0              xjmp L51
 0134           L48:
 0134                   .dbline 173
 0134                   .dbline 174
 0134 21E0              ldi R18,1
 0136 02E3              ldi R16,50
 0138 6FDF              xcall _wr_lcd
 013A                   .dbline 175
 013A 21E0              ldi R18,1
 013C 06E3              ldi R16,54
 013E 6CDF              xcall _wr_lcd
 0140                   .dbline 177
 0140 21E0              ldi R18,1
 0142 042F              mov R16,R20
 0144 0058              subi R16,128    ; addi 128
 0146 68DF              xcall _wr_lcd
 0148                   .dbline 178
 0148 21E0              ldi R18,1
 014A 062F              mov R16,R22
 014C 0058              subi R16,128    ; addi 128
 014E 64DF              xcall _wr_lcd
 0150                   .dbline 180
 0150 21E0              ldi R18,1
 0152 02E3              ldi R16,50
 0154 61DF              xcall _wr_lcd
 0156                   .dbline 181
 0156 2227              clr R18
 0158 1501              movw R2,R10
 015A C101              movw R24,R2
 015C 0196              adiw R24,1
 015E 5C01              movw R10,R24
 0160 F101              movw R30,R2
 0162 0491              lpm R16,Z
 0164 59DF              xcall _wr_lcd
 0166                   .dbline 182
 0166 2227              clr R18
 0168 1501              movw R2,R10
 016A C101              movw R24,R2
 016C 0196              adiw R24,1
 016E 5C01              movw R10,R24
 0170 F101              movw R30,R2
 0172 0491              lpm R16,Z
 0174 51DF              xcall _wr_lcd
 0176                   .dbline 183
 0176           L49:
 0176                   .dbline 172
 0176 6395              inc R22
 0178           L51:
 0178                   .dbline 172
 0178 6031              cpi R22,16
 017A E0F2              brlo L48
 017C                   .dbline 184
 017C           L45:
 017C                   .dbline 170
 017C 4395              inc R20
 017E           L47:
 017E                   .dbline 170
 017E 4032              cpi R20,32
 0180 08F4              brsh X2
 0182 D6CF              xjmp L44
 0184           X2:
 0184                   .dbline 185
 0184           ;               {
 0184           ;                  wr_lcd(Lcd_Set_Function_Basic+2,1);
 0184           ;              wr_lcd(Lcd_Set_Function_Extend+2,1);
 0184           ;                  
 0184           ;                  wr_lcd(0x80+i,1);
 0184           ;                  wr_lcd(0x80+j,1);
 0184           ;                  
 0184           ;                  wr_lcd(Lcd_Set_Function_Basic+2,1);
 0184           ;                  wr_lcd(*bmp++,0);
 0184           ;                  wr_lcd(*bmp++,0);
 0184           ;               }
 0184           ;        }
 0184           ;        wr_lcd(0x36,1);
 0184 21E0              ldi R18,1
 0186 06E3              ldi R16,54
 0188 47DF              xcall _wr_lcd
 018A                   .dbline 186
 018A           ;        wr_lcd(Lcd_Set_Function_Basic,1); //30H--基本指令操作
 018A 21E0              ldi R18,1
 018C 00E3              ldi R16,48
 018E 44DF              xcall _wr_lcd
 0190                   .dbline -2
 0190           L35:
 0190 0E940000          xcall pop_gset3
 0194                   .dbline 0 ; func end
 0194 0895              ret
 0196                   .dbsym r i 20 c
 0196                   .dbsym r j 22 c
 0196                   .dbsym r bmp 10 pkc
 0196                   .dbend
 0196                   .dbfunc e Lcd_clrbmp _Lcd_clrbmp fV
 0196           ;              i -> R20
 0196           ;              j -> R22
                        .even
 0196           _Lcd_clrbmp::
 0196 0E940000          xcall push_gset2
 019A                   .dbline -1
 019A                   .dbline 202
 019A           ; }
 019A           ; 
 019A           ; 
 019A           ; 
 019A           ; /*********************************************************************************************************
 019A           ; ** 函数名称: void Lcd_clrbmp(void)
 019A           ; ** 功能描述: 清除bmp图片
 019A           ; ** 输 入:     
 019A           ; ** 输 出:        
 019A           ; ** 全局变量: 无
 019A           ; ** 调用模块: Lcd_scomm() Lcd_sdata()
 019A           ; ** 说明:
 019A           ; ** 注意:
 019A           ; ********************************************************************************************************/
 019A           ; void Lcd_clrbmp(void)
 019A           ; {
 019A                   .dbline 205
 019A           ;        unsigned char i,j;
 019A           ;       // wr_lcd(Lcd_Clear,1);
 019A           ;        wr_lcd(Lcd_Set_Function_Basic+2,1);
 019A 21E0              ldi R18,1
 019C 02E3              ldi R16,50
 019E 3CDF              xcall _wr_lcd
 01A0                   .dbline 206
 01A0           ;        wr_lcd(Lcd_Set_Function_Extend,1);
 01A0 21E0              ldi R18,1
 01A2 04E3              ldi R16,52
 01A4 39DF              xcall _wr_lcd
 01A6                   .dbline 207
 01A6           ;        for(i=0;i<32;i++)
 01A6 4427              clr R20
 01A8 1DC0              xjmp L56
 01AA           L53:
 01AA                   .dbline 208
 01AA           ;        {
 01AA                   .dbline 209
 01AA           ;         for(j=0;j<16;j++)
 01AA 6627              clr R22
 01AC 18C0              xjmp L60
 01AE           L57:
 01AE                   .dbline 210
 01AE                   .dbline 211
 01AE 21E0              ldi R18,1
 01B0 02E3              ldi R16,50
 01B2 32DF              xcall _wr_lcd
 01B4                   .dbline 212
 01B4 21E0              ldi R18,1
 01B6 06E3              ldi R16,54
 01B8 2FDF              xcall _wr_lcd
 01BA                   .dbline 214
 01BA 21E0              ldi R18,1
 01BC 042F              mov R16,R20
 01BE 0058              subi R16,128    ; addi 128
 01C0 2BDF              xcall _wr_lcd
 01C2                   .dbline 215
 01C2 21E0              ldi R18,1
 01C4 062F              mov R16,R22
 01C6 0058              subi R16,128    ; addi 128
 01C8 27DF              xcall _wr_lcd
 01CA                   .dbline 217
 01CA 21E0              ldi R18,1
 01CC 02E3              ldi R16,50
 01CE 24DF              xcall _wr_lcd
 01D0                   .dbline 218
 01D0 2227              clr R18
 01D2 0027              clr R16
 01D4 21DF              xcall _wr_lcd
 01D6                   .dbline 219
 01D6 2227              clr R18
 01D8 0027              clr R16
 01DA 1EDF              xcall _wr_lcd
 01DC                   .dbline 220
 01DC           L58:
 01DC                   .dbline 209
 01DC 6395              inc R22
 01DE           L60:
 01DE                   .dbline 209
 01DE 6031              cpi R22,16
 01E0 30F3              brlo L57
 01E2                   .dbline 221
 01E2           L54:
 01E2                   .dbline 207
 01E2 4395              inc R20
 01E4           L56:
 01E4                   .dbline 207
 01E4 4032              cpi R20,32
 01E6 08F3              brlo L53
 01E8                   .dbline 222
 01E8           ;               {
 01E8           ;                  wr_lcd(Lcd_Set_Function_Basic+2,1);
 01E8           ;              wr_lcd(Lcd_Set_Function_Extend+2,1);
 01E8           ;                  
 01E8           ;                  wr_lcd(0x80+i,1);
 01E8           ;                  wr_lcd(0x80+j,1);
 01E8           ;                  
 01E8           ;                  wr_lcd(Lcd_Set_Function_Basic+2,1);
 01E8           ;                  wr_lcd(0x00,0);
 01E8           ;                  wr_lcd(0x00,0);
 01E8           ;               }
 01E8           ;        }
 01E8           ;        wr_lcd(0x36,1);
 01E8 21E0              ldi R18,1
 01EA 06E3              ldi R16,54
 01EC 15DF              xcall _wr_lcd
 01EE                   .dbline 223
 01EE           ;        wr_lcd(Lcd_Set_Function_Basic,1); //30H--基本指令操作
 01EE 21E0              ldi R18,1
 01F0 00E3              ldi R16,48
 01F2 12DF              xcall _wr_lcd
 01F4                   .dbline -2
 01F4           L52:
 01F4 0E940000          xcall pop_gset2
 01F8                   .dbline 0 ; func end
 01F8 0895              ret
 01FA                   .dbsym r i 20 c
 01FA                   .dbsym r j 22 c
 01FA                   .dbend
 01FA                   .dbfunc e Lcd_lineclr _Lcd_lineclr fV
 01FA           ;              i -> R20
 01FA           ;            row -> R20
                        .even
 01FA           _Lcd_lineclr::
 01FA 0E940000          xcall push_gset1
 01FE 402F              mov R20,R16
 0200                   .dbline -1
 0200                   .dbline 238
 0200           ; }
 0200           ; 
 0200           ; 
 0200           ; /*********************************************************************************************************
 0200           ; ** 函数名称: Lcd_lineclr()
 0200           ; ** 功能描述: 清除一行的显示
 0200           ; ** 输 入: unsigned char row 要清除显示的行
 0200           ; ** 输 出: 
 0200           ; ** 全局变量: 无
 0200           ; ** 调用模块: 无
 0200           ; ** 说明:
 0200           ; ** 注意:
 0200           ; *******************************************************************************************************/
 0200           ; void Lcd_lineclr(unsigned char row)
 0200           ; {
 0200                   .dbline 240
 0200           ;     unsigned char i;
 0200           ;       switch(row)
 0200 5527              clr R21
 0202 4130              cpi R20,1
 0204 E0E0              ldi R30,0
 0206 5E07              cpc R21,R30
 0208 69F0              breq L65
 020A 4230              cpi R20,2
 020C E0E0              ldi R30,0
 020E 5E07              cpc R21,R30
 0210 A9F0              breq L70
 0212 4330              cpi R20,3
 0214 E0E0              ldi R30,0
 0216 5E07              cpc R21,R30
 0218 E9F0              breq L75
 021A 4430              cpi R20,4
 021C E0E0              ldi R30,0
 021E 5E07              cpc R21,R30
 0220 29F1              breq L80
 0222 2FC0              xjmp L63
 0224           X3:
 0224                   .dbline 241
 0224           ;       {
 0224           L65:
 0224                   .dbline 243

⌨️ 快捷键说明

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