📄 lcd_hg1286.lis
字号:
00CC ; void lcd_dis(uchar x,uchar y,uchar *datac)
00CC ; {
00CC .dbline 90
00CC ; switch (x){ //判断所要显示行
00CC BB24 clr R11
00CE C501 movw R24,R10
00D0 8130 cpi R24,1
00D2 E0E0 ldi R30,0
00D4 9E07 cpc R25,R30
00D6 69F0 breq L19
00D8 X5:
00D8 8230 cpi R24,2
00DA E0E0 ldi R30,0
00DC 9E07 cpc R25,R30
00DE 69F0 breq L20
00E0 X6:
00E0 8330 cpi R24,3
00E2 E0E0 ldi R30,0
00E4 9E07 cpc R25,R30
00E6 69F0 breq L21
00E8 X7:
00E8 8430 cpi R24,4
00EA E0E0 ldi R30,0
00EC 9E07 cpc R25,R30
00EE 69F0 breq L22
00F0 X8:
00F0 0FC0 rjmp L16
00F2 L19:
00F2 .dbline 91
00F2 ; case 1: wr_com(0x80+y);break; //所要显示行和列
00F2 062F mov R16,R22
00F4 0058 subi R16,128 ; addi 128
00F6 84DF rcall _wr_com
00F8 .dbline 91
00F8 0BC0 rjmp L17
00FA L20:
00FA .dbline 92
00FA ; case 2: wr_com(0x90+y);break;
00FA 062F mov R16,R22
00FC 0057 subi R16,112 ; addi 144
00FE 80DF rcall _wr_com
0100 .dbline 92
0100 07C0 rjmp L17
0102 L21:
0102 .dbline 93
0102 ; case 3: wr_com(0x88+y);break;
0102 062F mov R16,R22
0104 0857 subi R16,120 ; addi 136
0106 7CDF rcall _wr_com
0108 .dbline 93
0108 03C0 rjmp L17
010A L22:
010A .dbline 94
010A ; case 4: wr_com(0x98+y);break;
010A 062F mov R16,R22
010C 0856 subi R16,104 ; addi 152
010E 78DF rcall _wr_com
0110 .dbline 94
0110 L16:
0110 L17:
0110 .dbline 96
0110 ; }//end switch
0110 ; wr_date(datac); //定点显示数据第一个字节
0110 8A01 movw R16,R20
0112 82DF rcall _wr_date
0114 .dbline 97
0114 ; wr_date(&(*(datac+1))); //定点显示数据第二个字节
0114 8A01 movw R16,R20
0116 0F5F subi R16,255 ; offset = 1
0118 1F4F sbci R17,255
011A 7EDF rcall _wr_date
011C .dbline -2
011C L15:
011C .dbline 0 ; func end
011C 00C0 rjmp pop_xgsetF00C
011E .dbsym r datac 20 pc
011E .dbsym r y 22 c
011E .dbsym r x 10 c
011E .dbend
011E .dbfunc e clr _clr fV
011E ; a -> y+0
011E ; i -> R20
.even
011E _clr::
011E 4A93 st -y,R20
0120 2197 sbiw R28,1
0122 .dbline -1
0122 .dbline 107
0122 ; }
0122 ; /**********************清屏函数***********************
0122 ; *函 数:clr
0122 ; *函数功能:清屏
0122 ; *入口参数:无
0122 ; *返 回 值:无
0122 ; *备 注:
0122 ; ****************************************************/
0122 ; void clr(void)
0122 ; {
0122 .dbline 108
0122 ; uchar i,a=0x20;
0122 80E2 ldi R24,32
0124 8883 std y+0,R24
0126 .dbline 109
0126 ; wr_com(0x80); //显示命令
0126 00E8 ldi R16,128
0128 6BDF rcall _wr_com
012A .dbline 110
012A ; for(i=1;i<=64;i++)
012A 41E0 ldi R20,1
012C 03C0 rjmp L27
012E L24:
012E .dbline 111
012E ; wr_date(&a); //全部显示空格
012E 8E01 movw R16,R28
0130 73DF rcall _wr_date
0132 L25:
0132 .dbline 110
0132 4395 inc R20
0134 L27:
0134 .dbline 110
0134 80E4 ldi R24,64
0136 8417 cp R24,R20
0138 D0F7 brsh L24
013A X9:
013A .dbline -2
013A L23:
013A .dbline 0 ; func end
013A 2196 adiw R28,1
013C 4991 ld R20,y+
013E 0895 ret
0140 .dbsym l a 0 c
0140 .dbsym r i 20 c
0140 .dbend
0140 .dbfunc e page0 _page0 fV
.even
0140 _page0::
0140 2297 sbiw R28,2
0142 .dbline -1
0142 .dbline 121
0142 ; }
0142 ; /**********************欢迎界面*********************
0142 ; *函 数:page0
0142 ; *函数功能:显示欢迎界面
0142 ; *入口参数:无
0142 ; *返 回 值:无
0142 ; *备 注:
0142 ; ****************************************************/
0142 ; void page0(void)
0142 ; {
0142 .dbline 122
0142 ; dis(2,15,Welcome); //显示欢迎数组
0142 80E0 ldi R24,<_Welcome
0144 90E0 ldi R25,>_Welcome
0146 9983 std y+1,R25
0148 8883 std y+0,R24
014A 2FE0 ldi R18,15
014C 02E0 ldi R16,2
014E 86DF rcall _dis
0150 .dbline 123
0150 ; delay_nms(100); //延时
0150 04E6 ldi R16,100
0152 10E0 ldi R17,0
0154 73D1 rcall _delay_nms
0156 .dbline -2
0156 L28:
0156 .dbline 0 ; func end
0156 2296 adiw R28,2
0158 0895 ret
015A .dbend
015A .dbfunc e K_Symbol _K_Symbol fV
.even
015A _K_Symbol::
015A 2297 sbiw R28,2
015C .dbline -1
015C .dbline 133
015C ; }
015C ; /*************************动作界面******************
015C ; *函 数:K_Symbol
015C ; *函数功能:显示键符名称
015C ; *入口参数:无
015C ; *返 回 值:无
015C ; *备 注:
015C ; ****************************************************/
015C ; void K_Symbol(void)
015C ; {
015C .dbline 134
015C ; lcd_dis(1,0x7,Symbol); //第一行显示键值符号K1
015C 80E0 ldi R24,<_Symbol
015E 90E0 ldi R25,>_Symbol
0160 9983 std y+1,R25
0162 8883 std y+0,R24
0164 27E0 ldi R18,7
0166 01E0 ldi R16,1
0168 ACDF rcall _lcd_dis
016A .dbline 135
016A ; lcd_dis(2,0x7,Symbol+2); //第二行显示键值符号K2
016A 80E0 ldi R24,<_Symbol+2
016C 90E0 ldi R25,>_Symbol+2
016E 9983 std y+1,R25
0170 8883 std y+0,R24
0172 27E0 ldi R18,7
0174 02E0 ldi R16,2
0176 A5DF rcall _lcd_dis
0178 .dbline 136
0178 ; lcd_dis(3,0x7,Symbol+4);
0178 80E0 ldi R24,<_Symbol+4
017A 90E0 ldi R25,>_Symbol+4
017C 9983 std y+1,R25
017E 8883 std y+0,R24
0180 27E0 ldi R18,7
0182 03E0 ldi R16,3
0184 9EDF rcall _lcd_dis
0186 .dbline 137
0186 ; lcd_dis(4,0x7,Symbol+6);
0186 80E0 ldi R24,<_Symbol+6
0188 90E0 ldi R25,>_Symbol+6
018A 9983 std y+1,R25
018C 8883 std y+0,R24
018E 27E0 ldi R18,7
0190 04E0 ldi R16,4
0192 97DF rcall _lcd_dis
0194 .dbline -2
0194 L29:
0194 .dbline 0 ; func end
0194 2296 adiw R28,2
0196 0895 ret
0198 .dbend
0198 .dbfunc e page1 _page1 fV
.even
0198 _page1::
0198 2297 sbiw R28,2
019A .dbline -1
019A .dbline 147
019A ; }
019A ; /********************四种模式界面********************
019A ; *函 数:page1
019A ; *函数功能:显示模式名称
019A ; *入口参数:无
019A ; *返 回 值:无
019A ; *备 注:
019A ; ****************************************************/
019A ; void page1(void)
019A ; {
019A .dbline 148
019A ; clr(); //清屏
019A C1DF rcall _clr
019C .dbline 149
019C ; dis(1,8,mode1); //第一行显示模式1
019C 80E0 ldi R24,<_mode1
019E 90E0 ldi R25,>_mode1
01A0 9983 std y+1,R25
01A2 8883 std y+0,R24
01A4 28E0 ldi R18,8
01A6 01E0 ldi R16,1
01A8 59DF rcall _dis
01AA .dbline 150
01AA ; dis(2,8,mode2); //第二行显示模式2
01AA 80E0 ldi R24,<_mode2
01AC 90E0 ldi R25,>_mode2
01AE 9983 std y+1,R25
01B0 8883 std y+0,R24
01B2 28E0 ldi R18,8
01B4 02E0 ldi R16,2
01B6 52DF rcall _dis
01B8 .dbline 151
01B8 ; dis(3,8,mode3);
01B8 80E0 ldi R24,<_mode3
01BA 90E0 ldi R25,>_mode3
01BC 9983 std y+1,R25
01BE 8883 std y+0,R24
01C0 28E0 ldi R18,8
01C2 03E0 ldi R16,3
01C4 4BDF rcall _dis
01C6 .dbline 152
01C6 ; dis(4,8,mode4);
01C6 80E0 ldi R24,<_mode4
01C8 90E0 ldi R25,>_mode4
01CA 9983 std y+1,R25
01CC 8883 std y+0,R24
01CE 28E0 ldi R18,8
01D0 04E0 ldi R16,4
01D2 44DF rcall _dis
01D4 .dbline 153
01D4 ; K_Symbol(); //显示键盘符号
01D4 C2DF rcall _K_Symbol
01D6 .dbline -2
01D6 L33:
01D6 .dbline 0 ; func end
01D6 2296 adiw R28,2
01D8 0895 ret
01DA .dbend
01DA .dbfunc e page2 _page2 fV
.even
01DA _page2::
01DA 2297 sbiw R28,2
01DC .dbline -1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -