📄 240128.lis
字号:
00EC .dbline 61
00EC ; }
00EC ; /***********************************************************************************/
00EC ; void lcd_wc3(unsigned char lcd_code,unsigned char lcd_data1,unsigned char lcd_data2)
00EC ; {
00EC .dbline 62
00EC ; lcd_wd(lcd_data1);
00EC 062F mov R16,R22
00EE 9BDF rcall _lcd_wd
00F0 .dbline 63
00F0 ; lcd_wd(lcd_data2);
00F0 0C81 ldd R16,y+4
00F2 99DF rcall _lcd_wd
00F4 .dbline 64
00F4 ; lcd_wc(lcd_code);
00F4 042F mov R16,R20
00F6 C6DF rcall _lcd_wc
00F8 .dbline -2
00F8 L16:
00F8 00D0 rcall pop_gset2
00FA .dbline 0 ; func end
00FA 0895 ret
00FC .dbsym l lcd_data2 4 c
00FC .dbsym r lcd_data1 22 c
00FC .dbsym r lcd_code 20 c
00FC .dbend
00FC .dbfunc e lcd_init _lcd_init fV
.even
00FC _lcd_init::
00FC 2197 sbiw R28,1
00FE .dbline -1
00FE .dbline 68
00FE ; }
00FE ; /******************************************************************************/
00FE ; void lcd_init(void)
00FE ; {
00FE .dbline 69
00FE ; LCD_RES_H;
00FE 2C9A sbi 0x5,4
0100 .dbline 70
0100 ; LCD_RES_L;
0100 2C98 cbi 0x5,4
0102 .dbline 71
0102 ; lcd_delay(15);
0102 0FE0 ldi R16,15
0104 10E0 ldi R17,0
0106 7CDF rcall _lcd_delay
0108 .dbline 72
0108 ; LCD_RES_H;
0108 2C9A sbi 0x5,4
010A .dbline 73
010A ; lcd_wc(0x80); //设置显示模式为逻辑“或”模式
010A 00E8 ldi R16,128
010C BBDF rcall _lcd_wc
010E .dbline 74
010E ; lcd_wc(0x98); //开显示
010E 08E9 ldi R16,152
0110 B9DF rcall _lcd_wc
0112 .dbline 75
0112 ; lcd_wc3(0x40,0,0); //设置文本显示区首地址
0112 2224 clr R2
0114 2882 std y+0,R2
0116 2227 clr R18
0118 00E4 ldi R16,64
011A E5DF rcall _lcd_wc3
011C .dbline 76
011C ; lcd_wc3(0x41,30,0); //设置文本显示区宽度
011C 2224 clr R2
011E 2882 std y+0,R2
0120 2EE1 ldi R18,30
0122 01E4 ldi R16,65
0124 E0DF rcall _lcd_wc3
0126 .dbline 77
0126 ; lcd_wc3(0x42,0,0); //设置图形显示区首地址
0126 2224 clr R2
0128 2882 std y+0,R2
012A 2227 clr R18
012C 02E4 ldi R16,66
012E DBDF rcall _lcd_wc3
0130 .dbline 78
0130 ; lcd_wc3(0x43,30,0); //设置图形显示区宽度
0130 2224 clr R2
0132 2882 std y+0,R2
0134 2EE1 ldi R18,30
0136 03E4 ldi R16,67
0138 D6DF rcall _lcd_wc3
013A .dbline -2
013A L17:
013A 2196 adiw R28,1
013C .dbline 0 ; func end
013C 0895 ret
013E .dbend
013E .dbfunc e lcd_clear _lcd_clear fV
013E ; i -> R20
013E ; j -> R10
013E ; lcd_data -> R22
.even
013E _lcd_clear::
013E 00D0 rcall push_gset3
0140 602F mov R22,R16
0142 2197 sbiw R28,1
0144 .dbline -1
0144 .dbline 82
0144 ; }
0144 ; /******************************************************************************/
0144 ; void lcd_clear(unsigned char lcd_data)
0144 ; {
0144 .dbline 84
0144 ; unsigned char i,j;
0144 ; lcd_wc(0x98); //打开图形显示,关闭文本显示
0144 08E9 ldi R16,152
0146 9EDF rcall _lcd_wc
0148 .dbline 85
0148 ; lcd_wc3(0x24,0,0); //设置地址指针
0148 2224 clr R2
014A 2882 std y+0,R2
014C 2227 clr R18
014E 04E2 ldi R16,36
0150 CADF rcall _lcd_wc3
0152 .dbline 86
0152 ; lcd_wc(0xb0); //设置自动写数据
0152 00EB ldi R16,176
0154 97DF rcall _lcd_wc
0156 .dbline 87
0156 ; for(i=0;i<128;i++)
0156 4427 clr R20
0158 09C0 rjmp L22
015A L19:
015A .dbline 88
015A ; {
015A .dbline 89
015A ; for(j=0;j<30;j++)
015A AA24 clr R10
015C 03C0 rjmp L26
015E L23:
015E .dbline 90
015E .dbline 91
015E 062F mov R16,R22
0160 62DF rcall _lcd_wd
0162 .dbline 92
0162 L24:
0162 .dbline 89
0162 A394 inc R10
0164 L26:
0164 .dbline 89
0164 8A2D mov R24,R10
0166 8E31 cpi R24,30
0168 D0F3 brlo L23
016A .dbline 93
016A L20:
016A .dbline 87
016A 4395 inc R20
016C L22:
016C .dbline 87
016C 4038 cpi R20,128
016E A8F3 brlo L19
0170 .dbline 94
0170 ; {
0170 ; lcd_wd(lcd_data); //Write display data
0170 ; }
0170 ; }
0170 ; lcd_wc(0xb2); //Awroff (auto reset)
0170 02EB ldi R16,178
0172 88DF rcall _lcd_wc
0174 .dbline -2
0174 L18:
0174 2196 adiw R28,1
0176 00D0 rcall pop_gset3
0178 .dbline 0 ; func end
0178 0895 ret
017A .dbsym r i 20 c
017A .dbsym r j 10 c
017A .dbsym r lcd_data 22 c
017A .dbend
017A .dbfunc e lcd_print _lcd_print fV
017A ; lcd_data -> y+5
017A ; y -> R22
017A ; x -> R20
.even
017A _lcd_print::
017A 00D0 rcall push_gset2
017C 622F mov R22,R18
017E 402F mov R20,R16
0180 2197 sbiw R28,1
0182 .dbline -1
0182 .dbline 98
0182 ; }
0182 ; /******************************************************************************/
0182 ; void lcd_print(unsigned char x,unsigned char y,unsigned char lcd_data)
0182 ; {
0182 .dbline 99
0182 ; lcd_wc(0x98);
0182 08E9 ldi R16,152
0184 7FDF rcall _lcd_wc
0186 .dbline 100
0186 ; lcd_wc3(0x24,x,y);
0186 6883 std y+0,R22
0188 242F mov R18,R20
018A 04E2 ldi R16,36
018C ACDF rcall _lcd_wc3
018E .dbline 101
018E ; lcd_wc(0xb0);
018E 00EB ldi R16,176
0190 79DF rcall _lcd_wc
0192 .dbline 102
0192 ; lcd_wd(lcd_data);
0192 0D81 ldd R16,y+5
0194 48DF rcall _lcd_wd
0196 .dbline 103
0196 ; lcd_wc(0xb2);
0196 02EB ldi R16,178
0198 75DF rcall _lcd_wc
019A .dbline -2
019A L27:
019A 2196 adiw R28,1
019C 00D0 rcall pop_gset2
019E .dbline 0 ; func end
019E 0895 ret
01A0 .dbsym l lcd_data 5 c
01A0 .dbsym r y 22 c
01A0 .dbsym r x 20 c
01A0 .dbend
01A0 .dbfunc e lcd_print240128 _lcd_print240128 fV
01A0 ; i -> R20
01A0 ; j -> R10
01A0 ; str -> R22,R23
.even
01A0 _lcd_print240128::
01A0 00D0 rcall push_gset3
01A2 B801 movw R22,R16
01A4 2197 sbiw R28,1
01A6 .dbline -1
01A6 .dbline 107
01A6 ; }
01A6 ; /******************************************************************************/
01A6 ; void lcd_print240128(cchar *str)
01A6 ; {
01A6 .dbline 109
01A6 ; uchar i,j;
01A6 ; lcd_wc(0x98);
01A6 08E9 ldi R16,152
01A8 6DDF rcall _lcd_wc
01AA .dbline 110
01AA ; lcd_wc3(0x24,0,0);
01AA 2224 clr R2
01AC 2882 std y+0,R2
01AE 2227 clr R18
01B0 04E2 ldi R16,36
01B2 99DF rcall _lcd_wc3
01B4 .dbline 111
01B4 ; lcd_wc(0xb0);
01B4 00EB ldi R16,176
01B6 66DF rcall _lcd_wc
01B8 .dbline 112
01B8 ; for(i=0;i<128;i++)
01B8 4427 clr R20
01BA 0DC0 rjmp L32
01BC L29:
01BC .dbline 113
01BC ; {
01BC .dbline 114
01BC ; for(j=0;j<30;j++)
01BC AA24 clr R10
01BE 07C0 rjmp L36
01C0 L33:
01C0 .dbline 115
01C0 .dbline 116
01C0 1B01 movw R2,R22
01C2 6F5F subi R22,255 ; offset = 1
01C4 7F4F sbci R23,255
01C6 F101 movw R30,R2
01C8 0491 lpm R16,Z
01CA 2DDF rcall _lcd_wd
01CC .dbline 117
01CC L34:
01CC .dbline 114
01CC A394 inc R10
01CE L36:
01CE .dbline 114
01CE 8A2D mov R24,R10
01D0 8E31 cpi R24,30
01D2 B0F3 brlo L33
01D4 .dbline 118
01D4 L30:
01D4 .dbline 112
01D4 4395 inc R20
01D6 L32:
01D6 .dbline 112
01D6 4038 cpi R20,128
01D8 88F3 brlo L29
01DA .dbline 119
01DA ; {
01DA ; lcd_wd(*str++);
01DA ; }
01DA ; }
01DA ; lcd_wc(0xb2);
01DA 02EB ldi R16,178
01DC 53DF rcall _lcd_wc
01DE .dbline -2
01DE L28:
01DE 2196 adiw R28,1
01E0 00D0 rcall pop_gset3
01E2 .dbline 0 ; func end
01E2 0895 ret
01E4 .dbsym r i 20 c
01E4 .dbsym r j 10 c
01E4 .dbsym r str 22 pkc
01E4 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -