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

📄 jhd12864.lis

📁 ds1302事实时钟+12864液晶显示 4094
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 02A2 8150              subi R24,1
 02A4 8983              std y+1,R24
 02A6                   .dbline 290
 02A6           ;               white_y = 0x90;
 02A6 80E9              ldi R24,144
 02A8 8A83              std y+2,R24
 02AA                   .dbline 291
 02AA           ;               clr_x = 0x80;
 02AA 40E8              ldi R20,128
 02AC                   .dbline 292
 02AC           ;               clr_y = 0x90;
 02AC A82E              mov R10,R24
 02AE                   .dbline 293
 02AE           ;       }
 02AE 17C0              rjmp L69
 02B0           L68:
 02B0                   .dbline 294
 02B0           ;       else if(y==3)
 02B0 8E2D              mov R24,R14
 02B2 8330              cpi R24,3
 02B4 49F4              brne L70
 02B6           X23:
 02B6                   .dbline 295
 02B6           ;       {
 02B6                   .dbline 296
 02B6           ;               white_x = (0x88+x-1);
 02B6 862F              mov R24,R22
 02B8 8857              subi R24,120    ; addi 136
 02BA 8150              subi R24,1
 02BC 8983              std y+1,R24
 02BE                   .dbline 297
 02BE           ;               white_y = 0x80;
 02BE 80E8              ldi R24,128
 02C0 8A83              std y+2,R24
 02C2                   .dbline 298
 02C2           ;               clr_x = 0x88;
 02C2 48E8              ldi R20,136
 02C4                   .dbline 299
 02C4           ;               clr_y = 0x80;
 02C4 A82E              mov R10,R24
 02C6                   .dbline 300
 02C6           ;       }
 02C6 0BC0              rjmp L71
 02C8           L70:
 02C8                   .dbline 301
 02C8           ;       else if(y==4)
 02C8 8E2D              mov R24,R14
 02CA 8430              cpi R24,4
 02CC 41F4              brne L72
 02CE           X24:
 02CE                   .dbline 302
 02CE           ;       {
 02CE                   .dbline 303
 02CE           ;               white_x = (0x88+x-1);
 02CE 862F              mov R24,R22
 02D0 8857              subi R24,120    ; addi 136
 02D2 8150              subi R24,1
 02D4 8983              std y+1,R24
 02D6                   .dbline 304
 02D6           ;               white_y = 0x90;
 02D6 80E9              ldi R24,144
 02D8 8A83              std y+2,R24
 02DA                   .dbline 305
 02DA           ;               clr_x = 0x88;
 02DA 48E8              ldi R20,136
 02DC                   .dbline 306
 02DC           ;               clr_y = 0x90;
 02DC A82E              mov R10,R24
 02DE                   .dbline 307
 02DE           ;       }
 02DE           L72:
 02DE           L71:
 02DE           L69:
 02DE           L67:
 02DE                   .dbline 308
 02DE           ;       if(clear==0)//要反白时,先将整行的液晶全部清成不反白(此处行指y)
 02DE 0F84              ldd R0,y+15
 02E0 0020              tst R0
 02E2 E9F4              brne L74
 02E4           X25:
 02E4                   .dbline 309
 02E4           ;       {
 02E4                   .dbline 310
 02E4           ;               for(i=0;i<16;i++ )                      //16行
 02E4 6627              clr R22
 02E6 19C0              rjmp L79
 02E8           L76:
 02E8                   .dbline 311
 02E8           ;               {
 02E8                   .dbline 312
 02E8           ;                       W_1byte(0,0,clr_y++);   //设置绘图区的Y地址坐标0
 02E8 2A2C              mov R2,R10
 02EA 822D              mov R24,R2
 02EC 8F5F              subi R24,255    ; addi 1
 02EE A82E              mov R10,R24
 02F0 2882              std y+0,R2
 02F2 2227              clr R18
 02F4 0027              clr R16
 02F6 9ADE              rcall _W_1byte
 02F8                   .dbline 313
 02F8           ;                       W_1byte(0,0,clr_x);             //设置绘图区的X地址坐标0
 02F8 4883              std y+0,R20
 02FA 2227              clr R18
 02FC 0027              clr R16
 02FE 96DE              rcall _W_1byte
 0300                   .dbline 314
 0300           ;                       for(j=0;j<16;j++)               //
 0300 EE24              clr R14
 0302 07C0              rjmp L83
 0304           L80:
 0304                   .dbline 315
 0304           ;                       {
 0304                   .dbline 316
 0304           ;                               W_1byte(0,1,0x00);      //清成不反白
 0304 2224              clr R2
 0306 2882              std y+0,R2
 0308 21E0              ldi R18,1
 030A 0027              clr R16
 030C 8FDE              rcall _W_1byte
 030E                   .dbline 317
 030E           ;                               asm("nop");
 030E 0000              nop
 0310                   .dbline 318
 0310           ;                       }
 0310           L81:
 0310                   .dbline 314
 0310 E394              inc R14
 0312           L83:
 0312                   .dbline 314
 0312 8E2D              mov R24,R14
 0314 8031              cpi R24,16
 0316 B0F3              brlo L80
 0318           X26:
 0318                   .dbline 319
 0318           ;               }
 0318           L77:
 0318                   .dbline 310
 0318 6395              inc R22
 031A           L79:
 031A                   .dbline 310
 031A 6031              cpi R22,16
 031C 28F3              brlo L76
 031E           X27:
 031E                   .dbline 320
 031E           ;       }
 031E           L74:
 031E                   .dbline 321
 031E           ;       asm("nop");
 031E 0000              nop
 0320                   .dbline 322
 0320           ;       for(i=0;i<16;i++ )                              //16行,因为是16*16汉字
 0320 6627              clr R22
 0322 22C0              rjmp L87
 0324           L84:
 0324                   .dbline 323
 0324           ;       {
 0324                   .dbline 324
 0324           ;               W_1byte(0,0,white_y++);         //设置绘图区的Y地址坐标0
 0324 2A80              ldd R2,y+2
 0326 822D              mov R24,R2
 0328 8F5F              subi R24,255    ; addi 1
 032A 8A83              std y+2,R24
 032C 2882              std y+0,R2
 032E 2227              clr R18
 0330 0027              clr R16
 0332 7CDE              rcall _W_1byte
 0334                   .dbline 325
 0334           ;               W_1byte(0,0,white_x);           //设置绘图区的X地址坐标0
 0334 0980              ldd R0,y+1
 0336 0882              std y+0,R0
 0338 2227              clr R18
 033A 0027              clr R16
 033C 77DE              rcall _W_1byte
 033E                   .dbline 326
 033E           ;               for(j=0;j<white_end_x;j++)      //
 033E EE24              clr R14
 0340 10C0              rjmp L91
 0342           L88:
 0342                   .dbline 327
 0342           ;               {
 0342                   .dbline 328
 0342           ;                        if(clear==1)
 0342 8F85              ldd R24,y+15
 0344 8130              cpi R24,1
 0346 31F4              brne L92
 0348           X28:
 0348                   .dbline 329
 0348           ;                        {
 0348                   .dbline 330
 0348           ;                               W_1byte(0,1,0x00); //取消这一行的8个点的反白,液晶地址自动加1
 0348 2224              clr R2
 034A 2882              std y+0,R2
 034C 21E0              ldi R18,1
 034E 0027              clr R16
 0350 6DDE              rcall _W_1byte
 0352                   .dbline 332
 0352           ;                                                                  //(此处行指一个一个液晶点所组成的行)
 0352           ;                        }
 0352 05C0              rjmp L93
 0354           L92:
 0354                   .dbline 334
 0354           ;                        else
 0354           ;                        {
 0354                   .dbline 335
 0354           ;                               W_1byte(0,1,0xff); //反白这一行的8个点,液晶地址自动加1
 0354 8FEF              ldi R24,255
 0356 8883              std y+0,R24
 0358 21E0              ldi R18,1
 035A 0027              clr R16
 035C 67DE              rcall _W_1byte
 035E                   .dbline 337
 035E           ;                                                                  //(此处行指一个一个液晶点所组成的行)
 035E           ;                        }
 035E           L93:
 035E                   .dbline 338
 035E           ;                       asm("nop");
 035E 0000              nop
 0360                   .dbline 339
 0360           ;               }
 0360           L89:
 0360                   .dbline 326
 0360 E394              inc R14
 0362           L91:
 0362                   .dbline 326
 0362 EC14              cp R14,R12
 0364 70F3              brlo L88
 0366           X29:
 0366                   .dbline 340
 0366           ;       }
 0366           L85:
 0366                   .dbline 322
 0366 6395              inc R22
 0368           L87:
 0368                   .dbline 322
 0368 6031              cpi R22,16
 036A E0F2              brlo L84
 036C           X30:
 036C                   .dbline -2
 036C           L65:
 036C                   .dbline 0 ; func end
 036C 2396              adiw R28,3
 036E 00C0              rjmp pop_xgsetF0FC
 0370                   .dbsym r clr_y 10 c
 0370                   .dbsym r clr_x 20 c
 0370                   .dbsym l white_y 2 c
 0370                   .dbsym l white_x 1 c
 0370                   .dbsym r i 22 c
 0370                   .dbsym r white_end_x 12 c
 0370                   .dbsym r j 14 c
 0370                   .dbsym l clear 15 c
 0370                   .dbsym l end_x 13 c
 0370                   .dbsym r y 14 c
 0370                   .dbsym r x 22 c
 0370                   .dbend
 0370                   .dbfunc e LCD_Init _LCD_Init fV
 0370           ;            cmd -> R20
                        .even
 0370           _LCD_Init::
 0370 4A93              st -y,R20
 0372 2197              sbiw R28,1
 0374                   .dbline -1
 0374                   .dbline 361
 0374           ; }
 0374           ; 
 0374           ; 
 0374           ; 
 0374           ; 
 0374           ; 
 0374           ; 
 0374           ; //上面是通用函数,与项目有关的函数在此
 0374           ; 
 0374           ; /*
 0374           ; void lcd_port_init(void)
 0374           ; {
 0374           ;       PORTB |=((1<<CS)|(1<<SID)|(1<<SCLK)|(1<<RST));                  //
 0374           ;       DDRB |= ((1<<CS)|(1<<SID)|(1<<SCLK)|(1<<PSB)|(1<<RST));                 //PB口全部设为输出模式
 0374           ; }
 0374           ; 
 0374           ; */
 0374           ; 
 0374           ; /******************************************************************/
 0374           ; void LCD_Init(void)
 0374           ; {
 0374                   .dbline 365
 0374           ;       uchar cmd;
 0374           ; 
 0374           ;       //Clr_PSB();
 0374           ;       Clr_CS();
 0374 AD98              cbi 0x15,5
 0376                   .dbline 366
 0376           ;       Clr_SID();
 0376 AE98              cbi 0x15,6
 0378                   .dbline 367
 0378           ;       Clr_SCLK();
 0378 AF98              cbi 0x15,7
 037A                   .dbline 369
 037A           ;       
 037A           ;       cmd=0x30;                       //功能设置 8位数据,基本指令
 037A 40E3              ldi R20,48
 037C                   .dbline 370
 037C           ;       W_1byte(0,0,cmd);
 037C 4883              std y+0,R20
 037E 2227              clr R18
 0380 0027              clr R16
 0382 54DE              rcall _W_1byte
 0384                   .dbline 371
 0384           ;       delay_1ms(2);
 0384 02E0              ldi R16,2
 0386 10E0              ldi R17,0
 0388 45DE              rcall _delay_1ms
 038A                   .dbline 372
 038A           ;       cmd=0x0C;                       //显示状态 ON,游标OFF,反白OFF
 038A 4CE0              ldi R20,12
 038C                   .dbline 373
 038C           ;       W_1byte(0,0,cmd);       //写指令
 038C 4883              std y+0,R20
 038E 2227              clr R18
 0390 0027              clr R16
 0392 4CDE              rcall _W_1byte
 0394                   .dbline 374
 0394           ;       delay_1ms(2);
 0394 02E0              ldi R16,2
 0396 10E0              ldi R17,0
 0398 3DDE              rcall _delay_1ms
 039A                   .dbline 375
 039A           ;       cmd=0x01;                       //清除显示
 039A 41E0              ldi R20,1
 039C                   .dbline 376
 039C           ;       W_1byte(0,0,cmd);       //写指令
 039C 4883              std y+0,R20

⌨️ 快捷键说明

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