📄 lcm.lst
字号:
00E9 B222 IN R2,0x12
00EA 2A28 OR R2,R24
00EB BA22 OUT 0x12,R2
00EC DF52 RCALL _delay_1us
(0090) PORTD&=0xbf; delay_1us();
00ED B382 IN R24,0x12
00EE 7B8F ANDI R24,0xBF
00EF BB82 OUT 0x12,R24
00F0 DF4E RCALL _delay_1us
(0091) PORTD|=0x40; delay_1us();
00F1 9A96 SBI 0x12,6
00F2 DF4C RCALL _delay_1us
(0092) dat=(dat<<1); delay_1us();
00F3 0F66 LSL R22
00F4 DF4A RCALL _delay_1us
00F5 9543 INC R20
00F6 3048 CPI R20,0x8
00F7 F358 BCS 0x00E3
(0093) }
(0094) PORTD|=0x10;delay_1us();
00F8 9A94 SBI 0x12,4
00F9 DF45 RCALL _delay_1us
(0095)
(0096) PORTD|=0xc0;delay_1us();
00FA B382 IN R24,0x12
00FB 6C80 ORI R24,0xC0
00FC BB82 OUT 0x12,R24
00FD DF41 RCALL _delay_1us
(0097)
(0098) //return(read_lcd()==)
(0099)
(0100) }break;
00FE C030 RJMP 0x012F
(0101) case 10://将高七位全部置零
(0102) {
(0103)
(0104) dat=(dat<<3);
00FF 0F66 LSL R22
0100 0F66 LSL R22
0101 0F66 LSL R22
(0105) PORTD&=0xef;delay_1us();
0102 B382 IN R24,0x12
0103 7E8F ANDI R24,0xEF
0104 BB82 OUT 0x12,R24
0105 DF39 RCALL _delay_1us
(0106) data_1(1);
0106 E001 LDI R16,1
0107 E010 LDI R17,0
0108 DF6D RCALL _data_1
(0107) data_0(1);
0109 E001 LDI R16,1
010A E010 LDI R17,0
010B DF54 RCALL _data_0
(0108) data_1(2);
010C E002 LDI R16,2
010D E010 LDI R17,0
010E DF67 RCALL _data_1
(0109) for(j=0;j<5;j++)
010F 2744 CLR R20
0110 C013 RJMP 0x0124
(0110) {
(0111)
(0112) PORTD&=0x7f; delay_1us();
0111 B382 IN R24,0x12
0112 778F ANDI R24,0x7F
0113 BB82 OUT 0x12,R24
0114 DF2A RCALL _delay_1us
(0113) PORTD|=(dat&0x80);delay_1us();
0115 2F86 MOV R24,R22
0116 7880 ANDI R24,0x80
0117 B222 IN R2,0x12
0118 2A28 OR R2,R24
0119 BA22 OUT 0x12,R2
011A DF24 RCALL _delay_1us
(0114) PORTD&=0xbf; delay_1us();
011B B382 IN R24,0x12
011C 7B8F ANDI R24,0xBF
011D BB82 OUT 0x12,R24
011E DF20 RCALL _delay_1us
(0115) PORTD|=0x40; delay_1us();
011F 9A96 SBI 0x12,6
0120 DF1E RCALL _delay_1us
(0116) dat=(dat<<1); delay_1us();
0121 0F66 LSL R22
0122 DF1C RCALL _delay_1us
0123 9543 INC R20
0124 3045 CPI R20,5
0125 F358 BCS 0x0111
(0117) }
(0118) data_0(4);
0126 E004 LDI R16,4
0127 E010 LDI R17,0
0128 DF37 RCALL _data_0
(0119) PORTD|=0x10;delay_1us();
0129 9A94 SBI 0x12,4
012A DF14 RCALL _delay_1us
(0120)
(0121) PORTD|=0xc0;delay_1us();
012B B382 IN R24,0x12
012C 6C80 ORI R24,0xC0
012D BB82 OUT 0x12,R24
012E DF10 RCALL _delay_1us
(0122)
(0123) //return(read_lcd()==)
(0124)
(0125) }break;
012F D064 RCALL pop_gset3
0130 9508 RET
_main:
init --> Y+20
add --> R22
address --> Y+0
j --> R22
i --> R20
0131 9768 SBIW R28,0x18
(0126)
(0127) }
(0128) }
(0129) void main(void)
(0130) {
(0131) unsigned char init[4]={0x29,0x18,0x01,0x03}, address[20]={0x06,0x10,0x03,0x1e,0x07,0x1a,
0132 E286 LDI R24,0x26
0133 E090 LDI R25,0
0134 01FE MOVW R30,R28
0135 9674 ADIW R30,0x14
0136 E004 LDI R16,4
0137 E010 LDI R17,0
0138 93FA ST R31,-Y
0139 93EA ST R30,-Y
013A 939A ST R25,-Y
013B 938A ST R24,-Y
013C D078 RCALL asgncblk
013D E28A LDI R24,0x2A
013E E090 LDI R25,0
013F 01FE MOVW R30,R28
0140 E104 LDI R16,0x14
0141 E010 LDI R17,0
0142 93FA ST R31,-Y
0143 93EA ST R30,-Y
0144 939A ST R25,-Y
0145 938A ST R24,-Y
0146 D06E RCALL asgncblk
(0132) 0x06,0x13,0x05,0x1b,0x05,0x1f,
(0133) 0x07,0x10,0x07,0x1f,0x07,0x1b,
(0134) 0x07,0x1d};//初始化命令字表和0~9数字表
(0135)
(0136) char i,add;
(0137) unsigned int j;
(0138) DDRD|=0xf0;delay_1us();
0147 B381 IN R24,0x11
0148 6F80 ORI R24,0xF0
0149 BB81 OUT 0x11,R24
014A DEF4 RCALL _delay_1us
(0139) PORTD|=0xf0;delay_1us();
014B B382 IN R24,0x12
014C 6F80 ORI R24,0xF0
014D BB82 OUT 0x12,R24
014E DEF0 RCALL _delay_1us
(0140) for(i=0;i<10;i++)
014F 2744 CLR R20
0150 C00A RJMP 0x015B
(0141) for(j=0;j<6000;j++);
0151 2766 CLR R22
0152 2777 CLR R23
0153 C002 RJMP 0x0156
0154 5F6F SUBI R22,0xFF
0155 4F7F SBCI R23,0xFF
0156 3760 CPI R22,0x70
0157 E1E7 LDI R30,0x17
0158 077E CPC R23,R30
0159 F3D0 BCS 0x0154
015A 9543 INC R20
015B 304A CPI R20,0xA
015C F3A0 BCS 0x0151
(0142) for(i=0;i<4;i++)//初始化
015D 2744 CLR R20
015E C00A RJMP 0x0169
(0143) write_lcd(12,init[i]);
015F 01CE MOVW R24,R28
0160 9644 ADIW R24,0x14
0161 2FE4 MOV R30,R20
0162 27FF CLR R31
0163 0FE8 ADD R30,R24
0164 1FF9 ADC R31,R25
0165 8120 LDD R18,Z+0
0166 E00C LDI R16,0xC
0167 DF25 RCALL _write_lcd
0168 9543 INC R20
0169 3044 CPI R20,4
016A F3A0 BCS 0x015F
(0144) for(add=2;add<16;add++)//将高七位置零
016B E062 LDI R22,2
016C C004 RJMP 0x0171
(0145) write_lcd(10,add);
016D 2F26 MOV R18,R22
016E E00A LDI R16,0xA
016F DF1D RCALL _write_lcd
0170 9563 INC R22
0171 3160 CPI R22,0x10
0172 F3D0 BCS 0x016D
0173 C01B RJMP 0x018F
(0146) //delay(300);
(0147) while(1)
(0148) {
(0149) for(i=0;i<20;i++) //写一个数据延时一段时间
0174 2744 CLR R20
0175 C017 RJMP 0x018D
(0150) {
(0151) write_lcd(13,address[i++]);
0176 2E24 MOV R2,R20
0177 2433 CLR R3
0178 5F4F SUBI R20,0xFF
0179 01CE MOVW R24,R28
017A 2DE2 MOV R30,R2
017B 27FF CLR R31
017C 0FE8 ADD R30,R24
017D 1FF9 ADC R31,R25
017E 8120 LDD R18,Z+0
017F E00D LDI R16,0xD
0180 DF0C RCALL _write_lcd
(0152) write_lcd(13,address[i]);
0181 01CE MOVW R24,R28
0182 2FE4 MOV R30,R20
0183 27FF CLR R31
0184 0FE8 ADD R30,R24
0185 1FF9 ADC R31,R25
0186 8120 LDD R18,Z+0
0187 E00D LDI R16,0xD
0188 DF04 RCALL _write_lcd
(0153)
(0154) delay(200);
FILE: <library>
0189 EC08 LDI R16,0xC8
018A E010 LDI R17,0
018B DEC7 RCALL _delay
018C 9543 INC R20
018D 3144 CPI R20,0x14
018E F338 BCS 0x0176
018F CFE4 RJMP 0x0174
0190 9668 ADIW R28,0x18
0191 9508 RET
pop_gset2:
0192 E0E2 LDI R30,2
0193 C00E RJMP pop
pop_gset3:
0194 E0E4 LDI R30,4
0195 C00C RJMP pop
push_gset5:
0196 92FA ST R15,-Y
0197 92EA ST R14,-Y
push_gset4:
0198 92DA ST R13,-Y
0199 92CA ST R12,-Y
push_gset3:
019A 92BA ST R11,-Y
019B 92AA ST R10,-Y
push_gset2:
019C 937A ST R23,-Y
019D 936A ST R22,-Y
push_gset1:
019E 935A ST R21,-Y
019F 934A ST R20,-Y
01A0 9508 RET
pop_gset1:
01A1 E0E1 LDI R30,1
pop:
01A2 9149 LD R20,Y+
01A3 9159 LD R21,Y+
01A4 FDE0 SBRC R30,0
01A5 9508 RET
01A6 9169 LD R22,Y+
01A7 9179 LD R23,Y+
01A8 FDE1 SBRC R30,1
01A9 9508 RET
01AA 90A9 LD R10,Y+
01AB 90B9 LD R11,Y+
01AC FDE2 SBRC R30,2
01AD 9508 RET
01AE 90C9 LD R12,Y+
01AF 90D9 LD R13,Y+
01B0 FDE3 SBRC R30,3
01B1 9508 RET
01B2 90E9 LD R14,Y+
01B3 90F9 LD R15,Y+
01B4 9508 RET
asgncblk:
01B5 93AA ST R26,-Y
01B6 93BA ST R27,-Y
01B7 93EA ST R30,-Y
01B8 93FA ST R31,-Y
01B9 920A ST R0,-Y
01BA 81AF LDD R26,Y+7
01BB 85B8 LDD R27,Y+8
01BC 81ED LDD R30,Y+5
01BD 81FE LDD R31,Y+6
01BE 3000 CPI R16,0
01BF 0701 CPC R16,R17
01C0 F031 BEQ 0x01C7
01C1 95C8 LPM
01C2 920D ST R0,X+
01C3 9631 ADIW R30,1
01C4 5001 SUBI R16,1
01C5 4010 SBCI R17,0
01C6 CFF7 RJMP 0x01BE
01C7 9009 LD R0,Y+
01C8 91F9 LD R31,Y+
01C9 91E9 LD R30,Y+
01CA 91B9 LD R27,Y+
01CB 91A9 LD R26,Y+
01CC 9624 ADIW R28,4
01CD 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -