📄 jhd12864.lis
字号:
039E 2227 clr R18
03A0 0027 clr R16
03A2 44DE rcall _W_1byte
03A4 .dbline 377
03A4 ; delay_1ms(2);
03A4 02E0 ldi R16,2
03A6 10E0 ldi R17,0
03A8 35DE rcall _delay_1ms
03AA .dbline 378
03AA ; cmd=0x02; //地址归位
03AA 42E0 ldi R20,2
03AC .dbline 379
03AC ; W_1byte(0,0,cmd); //写指令
03AC 4883 std y+0,R20
03AE 2227 clr R18
03B0 0027 clr R16
03B2 3CDE rcall _W_1byte
03B4 .dbline 380
03B4 ; delay_1ms(2);
03B4 02E0 ldi R16,2
03B6 10E0 ldi R17,0
03B8 2DDE rcall _delay_1ms
03BA .dbline 381
03BA ; cmd=0x80; //设置DDRAM地址
03BA 40E8 ldi R20,128
03BC .dbline 382
03BC ; W_1byte(0,0,cmd); //写指令
03BC 4883 std y+0,R20
03BE 2227 clr R18
03C0 0027 clr R16
03C2 34DE rcall _W_1byte
03C4 .dbline 383
03C4 ; delay_1ms(2); //延时
03C4 02E0 ldi R16,2
03C6 10E0 ldi R17,0
03C8 25DE rcall _delay_1ms
03CA .dbline -2
03CA L94:
03CA .dbline 0 ; func end
03CA 2196 adiw R28,1
03CC 4991 ld R20,y+
03CE 0895 ret
03D0 .dbsym r cmd 20 c
03D0 .dbend
03D0 .dbfunc e variable_display _variable_display fV
03D0 ; word -> R20,R21
03D0 ; Y_position -> R12
03D0 ; X_position -> R10
.even
03D0 _variable_display::
03D0 00D0 rcall push_xgset303C
03D2 C22E mov R12,R18
03D4 A02E mov R10,R16
03D6 2297 sbiw R28,2
03D8 4885 ldd R20,y+8
03DA 5985 ldd R21,y+9
03DC .dbline -1
03DC .dbline 450
03DC ; }
03DC ;
03DC ; /*
03DC ; void main()
03DC ; {
03DC ;
03DC ; DDRC=0xFF;
03DC ; PORTC=0xFF;
03DC ; // port_init();
03DC ; LCD_Init();
03DC ; delay_1ms(50);
03DC ; LCD_Init(); //初始化两边是关键,否则液晶上电重起将不能显示
03DC ;
03DC ; while(1)
03DC ; {
03DC ;
03DC ;
03DC ; asm("nop");
03DC ; asm("nop");
03DC ; delay_1ms(500);
03DC ; Char_Set_XY(0,0,"ST7920_3_wires");
03DC ; Char_Set_XY(2,1,"反白练习");
03DC ; Char_Set_XY(0,2,"可以单字反白或不");
03DC ; Char_Set_XY(3,3,"反白");
03DC ; delay_1ms(1000);
03DC ;
03DC ; Set_Draw(); //不加此句将不能正常反白
03DC ; delay_1ms(100);
03DC ; Set_White(1,1,8,0); //第1行,第1个汉字位置到第8汉字位置反白
03DC ; Set_White(1,2,8,0); //第2行,第3个汉字位置到第6汉字位置反白
03DC ; Set_White(1,3,8,0); //第3行,第1个汉字位置到第8汉字位置反白
03DC ; Set_White(1,4,8,0); //第4行,第4个汉字位置到第5汉字位置反白
03DC ; delay_1ms(2000);
03DC ;
03DC ; Set_White(1,1,1,1); //第1行,第4个汉字位置等取消反白
03DC ; delay_1ms(1000);
03DC ; Set_White(2,2,2,1); //第2行,第5个汉字位置等取消反白
03DC ; delay_1ms(1000);
03DC ; Set_White(3,3,3,1); //第3行,第6个汉字位置等取消反白
03DC ; delay_1ms(1000);
03DC ; Set_White(4,4,4,1); //第4行,第4个汉字位置等取消反白
03DC ; delay_1ms(1000);
03DC ;
03DC ; //Set_White(1,1,1,1); //
03DC ; //Set_White(3,2,3,1); //
03DC ; //Set_White(2,3,2,1); //
03DC ; //Set_White(5,4,5,1); //
03DC ; //delay_1ms(1000);
03DC ;
03DC ; //Set_White(1,1,8,1); //第1行,第1个汉字位置到第8汉字位置取消反白
03DC ; //Set_White(1,2,8,1); //第2行,第1个汉字位置到第8汉字位置取消反白
03DC ; //Set_White(1,3,8,1); //第3行,第1个汉字位置到第8汉字位置取消反白
03DC ; //Set_White(1,4,8,1); //第4行,第1个汉字位置到第8汉字位置取消反白
03DC ; //Set_Char();
03DC ;
03DC ;
03DC ; }
03DC ;
03DC ; }
03DC ; */
03DC ;
03DC ;
03DC ; /*
03DC ; 在任一位置显示一数字变量
03DC ; */
03DC ; void variable_display(uchar X_position ,uchar Y_position , uint word )
03DC ; {
03DC .dbline 451
03DC ; switch(word)
03DC 4030 cpi R20,0
03DE 4507 cpc R20,R21
03E0 09F4 brne X41
03E2 2EC0 rjmp L98
03E4 X41:
03E4 X31:
03E4 4130 cpi R20,1
03E6 E0E0 ldi R30,0
03E8 5E07 cpc R21,R30
03EA 09F4 brne X42
03EC 31C0 rjmp L100
03EE X42:
03EE X32:
03EE 4230 cpi R20,2
03F0 E0E0 ldi R30,0
03F2 5E07 cpc R21,R30
03F4 09F4 brne X43
03F6 34C0 rjmp L102
03F8 X43:
03F8 X33:
03F8 4330 cpi R20,3
03FA E0E0 ldi R30,0
03FC 5E07 cpc R21,R30
03FE 09F4 brne X44
0400 37C0 rjmp L104
0402 X44:
0402 X34:
0402 4430 cpi R20,4
0404 E0E0 ldi R30,0
0406 5E07 cpc R21,R30
0408 09F4 brne X45
040A 3AC0 rjmp L106
040C X45:
040C X35:
040C 4530 cpi R20,5
040E E0E0 ldi R30,0
0410 5E07 cpc R21,R30
0412 09F4 brne X46
0414 3DC0 rjmp L108
0416 X46:
0416 X36:
0416 4630 cpi R20,6
0418 E0E0 ldi R30,0
041A 5E07 cpc R21,R30
041C 09F4 brne X47
041E 40C0 rjmp L110
0420 X47:
0420 X37:
0420 4730 cpi R20,7
0422 E0E0 ldi R30,0
0424 5E07 cpc R21,R30
0426 09F4 brne X48
0428 43C0 rjmp L112
042A X48:
042A X38:
042A 4830 cpi R20,8
042C E0E0 ldi R30,0
042E 5E07 cpc R21,R30
0430 09F4 brne X49
0432 46C0 rjmp L114
0434 X49:
0434 X39:
0434 4930 cpi R20,9
0436 E0E0 ldi R30,0
0438 5E07 cpc R21,R30
043A 09F4 brne X50
043C 49C0 rjmp L116
043E X50:
043E X40:
043E 4FC0 rjmp L97
0440 L98:
0440 .dbline 453
0440 ; {
0440 ; case 0 : Char_Set_XY(X_position,Y_position,"0");break;
0440 80E0 ldi R24,<L99
0442 90E0 ldi R25,>L99
0444 9983 std y+1,R25
0446 8883 std y+0,R24
0448 2C2D mov R18,R12
044A 0A2D mov R16,R10
044C 3DDE rcall _Char_Set_XY
044E .dbline 453
044E 47C0 rjmp L97
0450 L100:
0450 .dbline 454
0450 ; case 1 : Char_Set_XY(X_position,Y_position,"1");break;
0450 80E0 ldi R24,<L101
0452 90E0 ldi R25,>L101
0454 9983 std y+1,R25
0456 8883 std y+0,R24
0458 2C2D mov R18,R12
045A 0A2D mov R16,R10
045C 35DE rcall _Char_Set_XY
045E .dbline 454
045E 3FC0 rjmp L97
0460 L102:
0460 .dbline 455
0460 ; case 2 : Char_Set_XY(X_position,Y_position,"2");break;
0460 80E0 ldi R24,<L103
0462 90E0 ldi R25,>L103
0464 9983 std y+1,R25
0466 8883 std y+0,R24
0468 2C2D mov R18,R12
046A 0A2D mov R16,R10
046C 2DDE rcall _Char_Set_XY
046E .dbline 455
046E 37C0 rjmp L97
0470 L104:
0470 .dbline 456
0470 ; case 3 : Char_Set_XY(X_position,Y_position,"3");break;
0470 80E0 ldi R24,<L105
0472 90E0 ldi R25,>L105
0474 9983 std y+1,R25
0476 8883 std y+0,R24
0478 2C2D mov R18,R12
047A 0A2D mov R16,R10
047C 25DE rcall _Char_Set_XY
047E .dbline 456
047E 2FC0 rjmp L97
0480 L106:
0480 .dbline 457
0480 ; case 4 : Char_Set_XY(X_position,Y_position,"4");break;
0480 80E0 ldi R24,<L107
0482 90E0 ldi R25,>L107
0484 9983 std y+1,R25
0486 8883 std y+0,R24
0488 2C2D mov R18,R12
048A 0A2D mov R16,R10
048C 1DDE rcall _Char_Set_XY
048E .dbline 457
048E 27C0 rjmp L97
0490 L108:
0490 .dbline 458
0490 ; case 5 : Char_Set_XY(X_position,Y_position,"5");break;
0490 80E0 ldi R24,<L109
0492 90E0 ldi R25,>L109
0494 9983 std y+1,R25
0496 8883 std y+0,R24
0498 2C2D mov R18,R12
049A 0A2D mov R16,R10
049C 15DE rcall _Char_Set_XY
049E .dbline 458
049E 1FC0 rjmp L97
04A0 L110:
04A0 .dbline 459
04A0 ; case 6 : Char_Set_XY(X_position,Y_position,"6");break;
04A0 80E0 ldi R24,<L111
04A2 90E0 ldi R25,>L111
04A4 9983 std y+1,R25
04A6 8883 std y+0,R24
04A8 2C2D mov R18,R12
04AA 0A2D mov R16,R10
04AC 0DDE rcall _Char_Set_XY
04AE .dbline 459
04AE 17C0 rjmp L97
04B0 L112:
04B0 .dbline 460
04B0 ; case 7 : Char_Set_XY(X_position,Y_position,"7");break;
04B0 80E0 ldi R24,<L113
04B2 90E0 ldi R25,>L113
04B4 9983 std y+1,R25
04B6 8883 std y+0,R24
04B8 2C2D mov R18,R12
04BA 0A2D mov R16,R10
04BC 05DE rcall _Char_Set_XY
04BE .dbline 460
04BE 0FC0 rjmp L97
04C0 L114:
04C0 .dbline 461
04C0 ; case 8 : Char_Set_XY(X_position,Y_position,"8");break;
04C0 80E0 ldi R24,<L115
04C2 90E0 ldi R25,>L115
04C4 9983 std y+1,R25
04C6 8883 std y+0,R24
04C8 2C2D mov R18,R12
04CA 0A2D mov R16,R10
04CC FDDD rcall _Char_Set_XY
04CE .dbline 461
04CE 07C0 rjmp L97
04D0 L116:
04D0 .dbline 462
04D0 ; case 9 : Char_Set_XY(X_position,Y_position,"9");break;
04D0 80E0 ldi R24,<L117
04D2 90E0 ldi R25,>L117
04D4 9983 std y+1,R25
04D6 8883 std y+0,R24
04D8 2C2D mov R18,R12
04DA 0A2D mov R16,R10
04DC F5DD rcall _Char_Set_XY
04DE .dbline 462
04DE .dbline 463
04DE ; default: break;
04DE L97:
04DE .dbline -2
04DE L95:
04DE .dbline 0 ; func end
04DE 2296 adiw R28,2
04E0 00C0 rjmp pop_xgset303C
04E2 .dbsym r word 20 i
04E2 .dbsym r Y_position 12 c
04E2 .dbsym r X_position 10 c
04E2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -