📄 display.lis
字号:
0114 005D subi R16,208 ; offset = 48
0116 1F4F sbci R17,255
0118 00D0 rcall _lcd_write_data
011A .dbline 40
011A ; lcd_write_data(data/10%10+0x30);
011A 2AE0 ldi R18,10
011C 30E0 ldi R19,0
011E 042F mov R16,R20
0120 1127 clr R17
0122 00D0 rcall div16s
0124 2AE0 ldi R18,10
0126 30E0 ldi R19,0
0128 00D0 rcall mod16s
012A 005D subi R16,208 ; offset = 48
012C 1F4F sbci R17,255
012E 00D0 rcall _lcd_write_data
0130 .dbline 41
0130 ; lcd_write_data(data%10+0x30);
0130 2AE0 ldi R18,10
0132 30E0 ldi R19,0
0134 042F mov R16,R20
0136 1127 clr R17
0138 00D0 rcall mod16s
013A 005D subi R16,208 ; offset = 48
013C 1F4F sbci R17,255
013E 00D0 rcall _lcd_write_data
0140 .dbline -2
0140 L15:
0140 00D0 rcall pop_gset1
0142 .dbline 0 ; func end
0142 0895 ret
0144 .dbsym r data 20 c
0144 .dbend
0144 .dbfunc e displayint _displayint fV
0144 ; data -> R20
0144 ; address -> R22
.even
0144 _displayint::
0144 00D0 rcall push_gset2
0146 422F mov R20,R18
0148 602F mov R22,R16
014A .dbline -1
014A .dbline 44
014A ; }
014A ; void displayint(unsigned char address,unsigned char data)
014A ; { lcd_write_comm(0x30);
014A .dbline 44
014A 00E3 ldi R16,48
014C 10E0 ldi R17,0
014E 00D0 rcall _lcd_write_comm
0150 .dbline 45
0150 ; lcd_write_comm(address);
0150 062F mov R16,R22
0152 1127 clr R17
0154 00D0 rcall _lcd_write_comm
0156 .dbline 46
0156 ; displaybyte(data);
0156 042F mov R16,R20
0158 D3DF rcall _displaybyte
015A .dbline -2
015A L16:
015A 00D0 rcall pop_gset2
015C .dbline 0 ; func end
015C 0895 ret
015E .dbsym r data 20 c
015E .dbsym r address 22 c
015E .dbend
015E .dbfunc e displaybyte2 _displaybyte2 fV
015E ; data -> R20
.even
015E _displaybyte2::
015E 00D0 rcall push_gset1
0160 402F mov R20,R16
0162 .dbline -1
0162 .dbline 50
0162 ; }
0162 ;
0162 ; void displaybyte2(unsigned char data)
0162 ; {
0162 .dbline 51
0162 ; lcd_write_data(data/10%10+0x30);
0162 2AE0 ldi R18,10
0164 30E0 ldi R19,0
0166 042F mov R16,R20
0168 1127 clr R17
016A 00D0 rcall div16s
016C 2AE0 ldi R18,10
016E 30E0 ldi R19,0
0170 00D0 rcall mod16s
0172 005D subi R16,208 ; offset = 48
0174 1F4F sbci R17,255
0176 00D0 rcall _lcd_write_data
0178 .dbline 52
0178 ; lcd_write_data(data%10+0x30);
0178 2AE0 ldi R18,10
017A 30E0 ldi R19,0
017C 042F mov R16,R20
017E 1127 clr R17
0180 00D0 rcall mod16s
0182 005D subi R16,208 ; offset = 48
0184 1F4F sbci R17,255
0186 00D0 rcall _lcd_write_data
0188 .dbline -2
0188 L17:
0188 00D0 rcall pop_gset1
018A .dbline 0 ; func end
018A 0895 ret
018C .dbsym r data 20 c
018C .dbend
018C .dbfunc e display_char _display_char fV
018C ; i -> R20
018C ; len -> R22
018C ; address -> R20
018C ; Ptr -> R10,R11
.even
018C _display_char::
018C 00D0 rcall push_gset3
018E 422F mov R20,R18
0190 5801 movw R10,R16
0192 6E81 ldd R22,y+6
0194 .dbline -1
0194 .dbline 60
0194 ; }
0194 ; //////////////////////////////////////////////////////////////////////
0194 ; //*Ptr 字符串的首地址
0194 ; //address 液晶屏的地址0x80-0x8f,0x90-0x9f之间
0194 ; //len 显示的数据的长度,如果不够后面补空格
0194 ; /////////////////////////////////////////////////////////////////////
0194 ; void display_char(unsigned char *Ptr ,unsigned char address,unsigned char len)
0194 ; { unsigned char i;
0194 .dbline 62
0194 ;
0194 ; lcd_write_comm(0x30);
0194 00E3 ldi R16,48
0196 10E0 ldi R17,0
0198 00D0 rcall _lcd_write_comm
019A .dbline 63
019A ; lcd_write_comm(address);
019A 042F mov R16,R20
019C 1127 clr R17
019E 00D0 rcall _lcd_write_comm
01A0 .dbline 64
01A0 ; lcd_write_comm(0x0c);
01A0 0CE0 ldi R16,12
01A2 10E0 ldi R17,0
01A4 00D0 rcall _lcd_write_comm
01A6 .dbline 65
01A6 ; for(i=0;i<len;i++)
01A6 4427 clr R20
01A8 0DC0 rjmp L22
01AA L19:
01AA .dbline 66
01AA ; {
01AA .dbline 67
01AA ; if(*Ptr!='/0')
01AA F501 movw R30,R10
01AC 8081 ldd R24,z+0
01AE 8F32 cpi R24,47
01B0 29F0 breq L23
01B2 .dbline 68
01B2 ; lcd_write_data(*Ptr++);
01B2 0191 ld R16,Z+
01B4 5F01 movw R10,R30
01B6 1127 clr R17
01B8 00D0 rcall _lcd_write_data
01BA 03C0 rjmp L24
01BC L23:
01BC .dbline 70
01BC ; else
01BC ; lcd_write_data(' ');
01BC 00E2 ldi R16,32
01BE 10E0 ldi R17,0
01C0 00D0 rcall _lcd_write_data
01C2 L24:
01C2 .dbline 71
01C2 L20:
01C2 .dbline 65
01C2 4395 inc R20
01C4 L22:
01C4 .dbline 65
01C4 4617 cp R20,R22
01C6 88F3 brlo L19
01C8 .dbline -2
01C8 L18:
01C8 00D0 rcall pop_gset3
01CA .dbline 0 ; func end
01CA 0895 ret
01CC .dbsym r i 20 c
01CC .dbsym r len 22 c
01CC .dbsym r address 20 c
01CC .dbsym r Ptr 10 pc
01CC .dbend
01CC .dbfunc e display_int _display_int fV
01CC ; i -> R20
01CC ; len -> R22
01CC ; address -> R20
01CC ; Ptr -> R10,R11
.even
01CC _display_int::
01CC 00D0 rcall push_gset3
01CE 422F mov R20,R18
01D0 5801 movw R10,R16
01D2 6E81 ldd R22,y+6
01D4 .dbline -1
01D4 .dbline 80
01D4 ; }
01D4 ; }
01D4 ;
01D4 ; //////////////////////////////////////////////////////////////////////
01D4 ; //*Ptr 字符串的首地址
01D4 ; //address 液晶屏的地址0x80-0x8f,0x90-0x9f之间
01D4 ; //len 显示的数据的长度,如果不够后面补空格
01D4 ; /////////////////////////////////////////////////////////////////////
01D4 ; void display_int(unsigned char *Ptr ,unsigned char address,unsigned char len)
01D4 ; { unsigned char i;
01D4 .dbline 82
01D4 ;
01D4 ; lcd_write_comm(0x30);
01D4 00E3 ldi R16,48
01D6 10E0 ldi R17,0
01D8 00D0 rcall _lcd_write_comm
01DA .dbline 83
01DA ; lcd_write_comm(address);
01DA 042F mov R16,R20
01DC 1127 clr R17
01DE 00D0 rcall _lcd_write_comm
01E0 .dbline 84
01E0 ; lcd_write_comm(0x0c);
01E0 0CE0 ldi R16,12
01E2 10E0 ldi R17,0
01E4 00D0 rcall _lcd_write_comm
01E6 .dbline 85
01E6 ; for(i=0;i<len;i++)
01E6 4427 clr R20
01E8 0AC0 rjmp L29
01EA L26:
01EA .dbline 86
01EA .dbline 89
01EA .dbline 90
01EA F501 movw R30,R10
01EC 0081 ldd R16,z+0
01EE 88DF rcall _displaybyte
01F0 .dbline 91
01F0 C501 movw R24,R10
01F2 0196 adiw R24,1
01F4 5C01 movw R10,R24
01F6 .dbline 92
01F6 00E2 ldi R16,32
01F8 10E0 ldi R17,0
01FA 00D0 rcall _lcd_write_data
01FC .dbline 93
01FC .dbline 97
01FC L27:
01FC .dbline 85
01FC 4395 inc R20
01FE L29:
01FE .dbline 85
01FE 4617 cp R20,R22
0200 A0F3 brlo L26
0202 .dbline -2
0202 L25:
0202 00D0 rcall pop_gset3
0204 .dbline 0 ; func end
0204 0895 ret
0206 .dbsym r i 20 c
0206 .dbsym r len 22 c
0206 .dbsym r address 20 c
0206 .dbsym r Ptr 10 pc
0206 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -