📄 12864.lis
字号:
00BC 4058 subi R20,128 ; addi 128
00BE .dbline 95
00BE ; break;
00BE 0BC0 xjmp L7
00C0 L10:
00C0 .dbline 97
00C0 ; case 1:
00C0 ; address = 0x90 + x;
00C0 462F mov R20,R22
00C2 4057 subi R20,112 ; addi 144
00C4 .dbline 98
00C4 ; break;
00C4 08C0 xjmp L7
00C6 L11:
00C6 .dbline 100
00C6 ; case 2:
00C6 ; address = 0x88 + x;
00C6 462F mov R20,R22
00C8 4857 subi R20,120 ; addi 136
00CA .dbline 101
00CA ; break;
00CA 05C0 xjmp L7
00CC L12:
00CC .dbline 103
00CC ; case 3:
00CC ; address = 0x98 + x;
00CC 462F mov R20,R22
00CE 4856 subi R20,104 ; addi 152
00D0 .dbline 104
00D0 ; break;
00D0 02C0 xjmp L7
00D2 L6:
00D2 .dbline 105
00D2 ; default:address = 0x80 + x;}
00D2 462F mov R20,R22
00D4 4058 subi R20,128 ; addi 128
00D6 .dbline 105
00D6 L7:
00D6 .dbline 106
00D6 ; LCD_write_char( address, 0 );
00D6 2227 clr R18
00D8 3327 clr R19
00DA 042F mov R16,R20
00DC 1127 clr R17
00DE B5DF xcall _LCD_write_char
00E0 .dbline -2
00E0 L5:
00E0 0E940000 xcall pop_gset2
00E4 .dbline 0 ; func end
00E4 0895 ret
00E6 .dbsym r address 20 c
00E6 .dbsym r y 20 c
00E6 .dbsym r x 22 c
00E6 .dbend
00E6 .dbfunc e LCD_write_string _LCD_write_string fV
00E6 ; s -> R20,R21
00E6 ; Y -> R10
00E6 ; X -> R22
.even
00E6 _LCD_write_string::
00E6 0E940000 xcall push_gset3
00EA A22E mov R10,R18
00EC 602F mov R22,R16
00EE 4E81 ldd R20,y+6
00F0 5F81 ldd R21,y+7
00F2 .dbline -1
00F2 .dbline 119
00F2 ;
00F2 ; }
00F2 ; /*-----------------------------------------------------------------------
00F2 ; LCD_write_string : 中英文字符串显示函数
00F2 ;
00F2 ; 输入参数:*s :英文字符串指针;
00F2 ; X、Y : 显示字符串的位置
00F2 ;
00F2 ; 编写日期 :2005
00F2 ; 最后修改日期 :2005
00F2 ; -----------------------------------------------------------------------*/
00F2 ; void LCD_write_string(unsigned char X,unsigned char Y,unsigned char *s)
00F2 ; {
00F2 .dbline 120
00F2 ; LCD_set_xy( X, Y );
00F2 2A2D mov R18,R10
00F4 062F mov R16,R22
00F6 CCDF xcall _LCD_set_xy
00F8 0BC0 xjmp L15
00FA L14:
00FA .dbline 123
00FA .dbline 124
00FA FA01 movw R30,R20
00FC 2081 ldd R18,z+0
00FE 3327 clr R19
0100 0027 clr R16
0102 1127 clr R17
0104 A2DF xcall _LCD_write_char
0106 .dbline 125
0106 4F5F subi R20,255 ; offset = 1
0108 5F4F sbci R21,255
010A .dbline 126
010A 05E0 ldi R16,5
010C 10E0 ldi R17,0
010E 22D0 xcall _delay_nms
0110 .dbline 127
0110 L15:
0110 .dbline 122
0110 ;
0110 ; while (*s)
0110 FA01 movw R30,R20
0112 2080 ldd R2,z+0
0114 2220 tst R2
0116 89F7 brne L14
0118 .dbline -2
0118 L13:
0118 0E940000 xcall pop_gset3
011C .dbline 0 ; func end
011C 0895 ret
011E .dbsym r s 20 pc
011E .dbsym r Y 10 c
011E .dbsym r X 22 c
011E .dbend
011E .dbfunc e delay_1us _delay_1us fV
.even
011E _delay_1us::
011E .dbline -1
011E .dbline 135
011E ; {
011E ; LCD_write_char( 0, *s );
011E ; s ++;
011E ; delay_nms(5);
011E ; }
011E ; }
011E ;
011E ; /*-----------------------------------------------------------------------
011E ; 延时函数
011E ; 系统时钟:8M
011E ; -----------------------------------------------------------------------*/
011E ; void delay_1us(void) //1us延时函数
011E ; {
011E .dbline 136
011E ; asm("nop");
011E 0000 nop
0120 .dbline -2
0120 L17:
0120 .dbline 0 ; func end
0120 0895 ret
0122 .dbend
0122 .dbfunc e delay_nus _delay_nus fV
0122 ; i -> R20,R21
0122 ; n -> R22,R23
.even
0122 _delay_nus::
0122 0E940000 xcall push_gset2
0126 B801 movw R22,R16
0128 .dbline -1
0128 .dbline 140
0128 ; }
0128 ;
0128 ; void delay_nus(unsigned int n) //N us延时函数
0128 ; {
0128 .dbline 141
0128 ; unsigned int i=0;
0128 4427 clr R20
012A 5527 clr R21
012C .dbline 142
012C ; for (i=0;i<n;i++)
012C 03C0 xjmp L22
012E L19:
012E .dbline 143
012E F7DF xcall _delay_1us
0130 L20:
0130 .dbline 142
0130 4F5F subi R20,255 ; offset = 1
0132 5F4F sbci R21,255
0134 L22:
0134 .dbline 142
0134 4617 cp R20,R22
0136 5707 cpc R21,R23
0138 D0F3 brlo L19
013A .dbline -2
013A L18:
013A 0E940000 xcall pop_gset2
013E .dbline 0 ; func end
013E 0895 ret
0140 .dbsym r i 20 i
0140 .dbsym r n 22 i
0140 .dbend
0140 .dbfunc e delay_1ms _delay_1ms fV
0140 ; i -> R16,R17
.even
0140 _delay_1ms::
0140 .dbline -1
0140 .dbline 147
0140 ; delay_1us();
0140 ; }
0140 ;
0140 ; void delay_1ms(void) //1ms延时函数
0140 ; {
0140 .dbline 149
0140 0027 clr R16
0142 1127 clr R17
0144 02C0 xjmp L27
0146 L24:
0146 .dbline 149
0146 L25:
0146 .dbline 149
0146 0F5F subi R16,255 ; offset = 1
0148 1F4F sbci R17,255
014A L27:
014A .dbline 149
014A ; unsigned int i;
014A ; for (i=0;i<1140;i++);
014A 0437 cpi R16,116
014C E4E0 ldi R30,4
014E 1E07 cpc R17,R30
0150 D0F3 brlo L24
0152 .dbline -2
0152 L23:
0152 .dbline 0 ; func end
0152 0895 ret
0154 .dbsym r i 16 i
0154 .dbend
0154 .dbfunc e delay_nms _delay_nms fV
0154 ; i -> R20,R21
0154 ; n -> R22,R23
.even
0154 _delay_nms::
0154 0E940000 xcall push_gset2
0158 B801 movw R22,R16
015A .dbline -1
015A .dbline 153
015A ; }
015A ;
015A ; void delay_nms(unsigned int n) //N ms延时函数
015A ; {
015A .dbline 154
015A ; unsigned int i=0;
015A 4427 clr R20
015C 5527 clr R21
015E .dbline 155
015E ; for (i=0;i<n;i++)
015E 03C0 xjmp L32
0160 L29:
0160 .dbline 156
0160 EFDF xcall _delay_1ms
0162 L30:
0162 .dbline 155
0162 4F5F subi R20,255 ; offset = 1
0164 5F4F sbci R21,255
0166 L32:
0166 .dbline 155
0166 4617 cp R20,R22
0168 5707 cpc R21,R23
016A D0F3 brlo L29
016C .dbline -2
016C L28:
016C 0E940000 xcall pop_gset2
0170 .dbline 0 ; func end
0170 0895 ret
0172 .dbsym r i 20 i
0172 .dbsym r n 22 i
0172 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -