📄 键盘.lis
字号:
00C4 C098 cbi 0x18,0
00C6 .dbline 66
00C6 ; ;;
00C6 .dbline 66
00C6 .dbline 67
00C6 ; req;
00C6 1E9A sbi 0x03,6
00C8 .dbline 68
00C8 ; ;;
00C8 .dbline 68
00C8 L38:
00C8 .dbline 69
00C8 L39:
00C8 .dbline 69
00C8 ; while((PINE&0x80)==0x00);
00C8 81B1 in R24,0x1
00CA 8078 andi R24,128
00CC E9F3 breq L38
00CE .dbline 70
00CE ; cl_req;
00CE 1E98 cbi 0x03,6
00D0 .dbline -2
00D0 L34:
00D0 0E940000 xcall pop_gset1
00D4 .dbline 0 ; func end
00D4 0895 ret
00D6 .dbsym r p 20 pc
00D6 .dbsym r data 16 c
00D6 .dbend
00D6 .dbfunc e lcd_init _lcd_init fV
.even
00D6 _lcd_init::
00D6 .dbline -1
00D6 .dbline 73
00D6 ; }
00D6 ; void lcd_init (void)
00D6 ; {
00D6 .dbline 74
00D6 ; MCUCR=MCUCR|0x80;
00D6 85B7 in R24,0x35
00D8 8068 ori R24,128
00DA 85BF out 0x35,R24
00DC .dbline 75
00DC ; DDRB|=0x01;
00DC B89A sbi 0x17,0
00DE .dbline 76
00DE ; PORTB&=0xfe;
00DE 88B3 in R24,0x18
00E0 8E7F andi R24,254
00E2 88BB out 0x18,R24
00E4 .dbline 77
00E4 ; DDRE=0x40;
00E4 80E4 ldi R24,64
00E6 82B9 out 0x2,R24
00E8 .dbline 78
00E8 ; PORTE=0xff;
00E8 8FEF ldi R24,255
00EA 83B9 out 0x3,R24
00EC .dbline 79
00EC ; cl_reset;
00EC AB98 cbi 0x15,3
00EE .dbline 80
00EE ; delay(10);
00EE 0AE0 ldi R16,10
00F0 10E0 ldi R17,0
00F2 86DF xcall _delay
00F4 .dbline 81
00F4 ; set_reset;
00F4 AB9A sbi 0x15,3
00F6 .dbline 82
00F6 ; delay(10);
00F6 0AE0 ldi R16,10
00F8 10E0 ldi R17,0
00FA 82DF xcall _delay
00FC .dbline 83
00FC ; cl_req;
00FC 1E98 cbi 0x03,6
00FE .dbline 84
00FE ; delay(10);
00FE 0AE0 ldi R16,10
0100 10E0 ldi R17,0
0102 7EDF xcall _delay
0104 .dbline -2
0104 L41:
0104 .dbline 0 ; func end
0104 0895 ret
0106 .dbend
0106 .dbfunc e lcd_clear _lcd_clear fV
.even
0106 _lcd_clear::
0106 .dbline -1
0106 .dbline 87
0106 ; }
0106 ; void lcd_clear (void)
0106 ; {
0106 .dbline 88
0106 ; lcd_w(0xf4);
0106 04EF ldi R16,244
0108 D3DF xcall _lcd_w
010A .dbline -2
010A L42:
010A .dbline 0 ; func end
010A 0895 ret
010C .dbend
010C .dbfunc e lcd_putsc _lcd_putsc fV
010C ; ch -> R20,R21
010C ; y -> R22
010C ; x -> R10
.even
010C _lcd_putsc::
010C 0E940000 xcall push_gset3
0110 622F mov R22,R18
0112 A02E mov R10,R16
0114 4E81 ldd R20,y+6
0116 5F81 ldd R21,y+7
0118 .dbline -1
0118 .dbline 93
0118 ; }
0118 ;
0118 ;
0118 ; void lcd_putsc (unsigned char x,unsigned char y,unsigned char *ch)
0118 ; {
0118 .dbline 94
0118 ; x+=2;
0118 8A2D mov R24,R10
011A 8E5F subi R24,254 ; addi 2
011C A82E mov R10,R24
011E 1AC0 xjmp L45
0120 L44:
0120 .dbline 96
0120 ; while (*ch!=0)
0120 ; {
0120 .dbline 97
0120 ; lcd_w(0xf0);
0120 00EF ldi R16,240
0122 C6DF xcall _lcd_w
0124 .dbline 98
0124 ; lcd_w(x);
0124 0A2D mov R16,R10
0126 C4DF xcall _lcd_w
0128 .dbline 99
0128 ; lcd_w(y);
0128 062F mov R16,R22
012A C2DF xcall _lcd_w
012C .dbline 100
012C ; lcd_w(*ch-0xa0);
012C FA01 movw R30,R20
012E 0081 ldd R16,z+0
0130 005A subi R16,160
0132 BEDF xcall _lcd_w
0134 .dbline 101
0134 ; ch++;
0134 4F5F subi R20,255 ; offset = 1
0136 5F4F sbci R21,255
0138 .dbline 102
0138 ; lcd_w(*ch-0xa0);
0138 FA01 movw R30,R20
013A 0081 ldd R16,z+0
013C 005A subi R16,160
013E B8DF xcall _lcd_w
0140 .dbline 103
0140 ; ch++;
0140 4F5F subi R20,255 ; offset = 1
0142 5F4F sbci R21,255
0144 .dbline 104
0144 ; if (x>=0x09)
0144 8A2D mov R24,R10
0146 8930 cpi R24,9
0148 20F0 brlo L47
014A .dbline 105
014A ; {
014A .dbline 106
014A ; x=2;
014A 82E0 ldi R24,2
014C A82E mov R10,R24
014E .dbline 107
014E ; y+=1;
014E 6395 inc R22
0150 .dbline 108
0150 ; }
0150 01C0 xjmp L48
0152 L47:
0152 .dbline 110
0152 ; else
0152 ; x++;
0152 A394 inc R10
0154 L48:
0154 .dbline 111
0154 L45:
0154 .dbline 95
0154 FA01 movw R30,R20
0156 2080 ldd R2,z+0
0158 2220 tst R2
015A 11F7 brne L44
015C .dbline -2
015C L43:
015C 0E940000 xcall pop_gset3
0160 .dbline 0 ; func end
0160 0895 ret
0162 .dbsym r ch 20 pc
0162 .dbsym r y 22 c
0162 .dbsym r x 10 c
0162 .dbend
0162 .dbfunc e lcd_putsm _lcd_putsm fV
0162 ; i -> R20,R21
0162 ; ch -> R22,R23
0162 ; y -> R10
0162 ; x -> R12
.even
0162 _lcd_putsm::
0162 0E940000 xcall push_gset4
0166 A22E mov R10,R18
0168 C02E mov R12,R16
016A 6885 ldd R22,y+8
016C 7985 ldd R23,y+9
016E .dbline -1
016E .dbline 115
016E ; }
016E ; }
016E ;
016E ; void lcd_putsm(unsigned char x,unsigned char y,unsigned char *ch)
016E ; {int i;
016E .dbline 116
016E ; x+=2;
016E 8C2D mov R24,R12
0170 8E5F subi R24,254 ; addi 2
0172 C82E mov R12,R24
0174 1FC0 xjmp L51
0176 L50:
0176 .dbline 118
0176 ; while (*ch!=0)
0176 ; {
0176 .dbline 119
0176 ; lcd_w(0xf0);
0176 00EF ldi R16,240
0178 9BDF xcall _lcd_w
017A .dbline 120
017A ; lcd_w(x);
017A 0C2D mov R16,R12
017C 99DF xcall _lcd_w
017E .dbline 121
017E ; lcd_w(y);
017E 0A2D mov R16,R10
0180 97DF xcall _lcd_w
0182 .dbline 122
0182 ; lcd_w(*ch-0xa0);
0182 FB01 movw R30,R22
0184 0081 ldd R16,z+0
0186 005A subi R16,160
0188 93DF xcall _lcd_w
018A .dbline 123
018A ; ch++;
018A 6F5F subi R22,255 ; offset = 1
018C 7F4F sbci R23,255
018E .dbline 124
018E ; lcd_w(*ch-0xa0);
018E FB01 movw R30,R22
0190 0081 ldd R16,z+0
0192 005A subi R16,160
0194 8DDF xcall _lcd_w
0196 .dbline 125
0196 ; ch++;
0196 6F5F subi R22,255 ; offset = 1
0198 7F4F sbci R23,255
019A .dbline 126
019A ; for(i=0;i<16;i++)
019A 4427 clr R20
019C 5527 clr R21
019E L53:
019E .dbline 127
019E .dbline 127
019E 08EF ldi R16,248
01A0 87DF xcall _lcd_w
01A2 .dbline 128
01A2 02E0 ldi R16,2
01A4 10E0 ldi R17,0
01A6 43DF xcall _delay_nms
01A8 .dbline 128
01A8 L54:
01A8 .dbline 126
01A8 4F5F subi R20,255 ; offset = 1
01AA 5F4F sbci R21,255
01AC .dbline 126
01AC 4031 cpi R20,16
01AE E0E0 ldi R30,0
01B0 5E07 cpc R21,R30
01B2 ACF3 brlt L53
01B4 .dbline 129
01B4 L51:
01B4 .dbline 117
01B4 FB01 movw R30,R22
01B6 2080 ldd R2,z+0
01B8 2220 tst R2
01BA E9F6 brne L50
01BC .dbline 130
01BC ; {lcd_w(0xf8);
01BC ; delay_nms(2);}
01BC ; }
01BC ; for(i=0;i<118;i++)
01BC 4427 clr R20
01BE 5527 clr R21
01C0 L57:
01C0 .dbline 131
01C0 .dbline 131
01C0 08EF ldi R16,248
01C2 76DF xcall _lcd_w
01C4 .dbline 132
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -