📄 ac15-1.lst
字号:
022D 0000 NOP
022E 0000 NOP
022F 0000 NOP
(0234) start();
0230 DF04 RCALL _start
(0235) command=160;
0231 EA80 LDI R24,0xA0
0232 2EA8 MOV R10,R24
(0236) shift8(command);
0233 2F08 MOV R16,R24
0234 DF5A RCALL _shift8
(0237) ack();
0235 DF44 RCALL _ack
(0238) shift8(a);
0236 2F06 MOV R16,R22
0237 DF57 RCALL _shift8
(0239) ack();
0238 DF41 RCALL _ack
(0240) shift8(b);
0239 2F04 MOV R16,R20
023A DF54 RCALL _shift8
(0241) ack();
023B DF3E RCALL _ack
(0242) stop();
023C DF1F RCALL _stop
(0243) Some_NOP();
023D 0000 NOP
023E 0000 NOP
023F 0000 NOP
0240 0000 NOP
0241 0000 NOP
0242 0000 NOP
0243 0000 NOP
0244 0000 NOP
0245 940E033F CALL pop_gset3
0247 9508 RET
_delay_iic:
i --> R20
n --> R16
0248 940E034D CALL push_gset1
(0244) }
(0245) //**************延时子函数***********
(0246) void delay_iic(int n)
(0247) {
(0248) int i;
(0249) for(i=1;i<n;i++){;}
024A E041 LDI R20,1
024B E050 LDI R21,0
024C C002 RJMP 0x024F
024D 5F4F SUBI R20,0xFF
024E 4F5F SBCI R21,0xFF
024F 1740 CP R20,R16
0250 0751 CPC R21,R17
0251 F3DC BLT 0x024D
0252 940E0350 CALL pop_gset1
0254 9508 RET
_main:
key_val --> R10
rd_val --> R22
wr_val --> R20
0255 9722 SBIW R28,2
(0250) }
(0251) //******************************************
(0252) void main(void)
(0253) {
(0254) uchar key_val,wr_val=0,rd_val=0;
0256 2744 CLR R20
0257 2766 CLR R22
(0255) port_init();
0258 DEB7 RCALL _port_init
(0256) Delay_nms(400);
0259 E900 LDI R16,0x90
025A E011 LDI R17,1
025B DEA5 RCALL _Delay_nms
(0257) InitLcd();
025C DE42 RCALL _InitLcd
(0258) LcdWriteCommand(0x01,1);
025D E021 LDI R18,1
025E E001 LDI R16,1
025F DE61 RCALL _LcdWriteCommand
(0259) LcdWriteCommand(0x0c,1);
0260 E021 LDI R18,1
0261 E00C LDI R16,0xC
0262 DE5E RCALL _LcdWriteCommand
(0260) ePutstr(0,0,str0);
0263 E584 LDI R24,0x54
0264 E090 LDI R25,0
0265 8399 STD Y+1,R25
0266 8388 STD Y+0,R24
0267 2722 CLR R18
0268 2700 CLR R16
0269 DDEA RCALL _ePutstr
(0261) Delay_nms(10);
026A E00A LDI R16,0xA
026B E010 LDI R17,0
026C DE94 RCALL _Delay_nms
(0262) ePutstr(0,1,str1);
026D E58D LDI R24,0x5D
026E E090 LDI R25,0
026F 8399 STD Y+1,R25
0270 8388 STD Y+0,R24
0271 E021 LDI R18,1
0272 2700 CLR R16
0273 DDE0 RCALL _ePutstr
(0263) Delay_nms(10);
0274 E00A LDI R16,0xA
0275 E010 LDI R17,0
0276 DE8A RCALL _Delay_nms
0277 C0A9 RJMP 0x0321
(0264) /********************************************/
(0265) while(1)
(0266) {
(0267) DisplayOneChar(9,0,wr_val/100+0x30);
0278 E614 LDI R17,0x64
0279 2F04 MOV R16,R20
027A 940E0326 CALL div8u
027C 2F80 MOV R24,R16
027D 5D80 SUBI R24,0xD0
027E 8388 STD Y+0,R24
027F 2722 CLR R18
0280 E009 LDI R16,0x9
0281 DE11 RCALL _DisplayOneChar
(0268) Delay_nms(10);
0282 E00A LDI R16,0xA
0283 E010 LDI R17,0
0284 DE7C RCALL _Delay_nms
(0269) DisplayOneChar(10,0,(wr_val/10)%10+0x30);
0285 E01A LDI R17,0xA
0286 2F04 MOV R16,R20
0287 940E0326 CALL div8u
0289 E01A LDI R17,0xA
028A 940E0324 CALL mod8u
028C 2F80 MOV R24,R16
028D 5D80 SUBI R24,0xD0
028E 8388 STD Y+0,R24
028F 2722 CLR R18
0290 E00A LDI R16,0xA
0291 DE01 RCALL _DisplayOneChar
(0270) Delay_nms(10);
0292 E00A LDI R16,0xA
0293 E010 LDI R17,0
0294 DE6C RCALL _Delay_nms
(0271) DisplayOneChar(11,0,wr_val%10+0x30);
0295 E01A LDI R17,0xA
0296 2F04 MOV R16,R20
0297 940E0324 CALL mod8u
0299 2F80 MOV R24,R16
029A 5D80 SUBI R24,0xD0
029B 8388 STD Y+0,R24
029C 2722 CLR R18
029D E00B LDI R16,0xB
029E DDF4 RCALL _DisplayOneChar
(0272) Delay_nms(10);
029F E00A LDI R16,0xA
02A0 E010 LDI R17,0
02A1 DE5F RCALL _Delay_nms
(0273)
(0274) DisplayOneChar(8,1,rd_val/100+0x30);
02A2 E614 LDI R17,0x64
02A3 2F06 MOV R16,R22
02A4 940E0326 CALL div8u
02A6 2F80 MOV R24,R16
02A7 5D80 SUBI R24,0xD0
02A8 8388 STD Y+0,R24
02A9 E021 LDI R18,1
02AA E008 LDI R16,0x8
02AB DDE7 RCALL _DisplayOneChar
(0275) Delay_nms(10);
02AC E00A LDI R16,0xA
02AD E010 LDI R17,0
02AE DE52 RCALL _Delay_nms
(0276) DisplayOneChar(9,1,(rd_val/10%10)+0x30);
02AF E01A LDI R17,0xA
02B0 2F06 MOV R16,R22
02B1 940E0326 CALL div8u
02B3 E01A LDI R17,0xA
02B4 940E0324 CALL mod8u
02B6 2F80 MOV R24,R16
02B7 5D80 SUBI R24,0xD0
02B8 8388 STD Y+0,R24
02B9 E021 LDI R18,1
02BA E009 LDI R16,0x9
02BB DDD7 RCALL _DisplayOneChar
(0277) Delay_nms(10);
02BC E00A LDI R16,0xA
02BD E010 LDI R17,0
02BE DE42 RCALL _Delay_nms
(0278) DisplayOneChar(10,1,rd_val%10+0x30);
02BF E01A LDI R17,0xA
02C0 2F06 MOV R16,R22
02C1 940E0324 CALL mod8u
02C3 2F80 MOV R24,R16
02C4 5D80 SUBI R24,0xD0
02C5 8388 STD Y+0,R24
02C6 E021 LDI R18,1
02C7 E00A LDI R16,0xA
02C8 DDCA RCALL _DisplayOneChar
(0279) Delay_nms(10);
02C9 E00A LDI R16,0xA
02CA E010 LDI R17,0
02CB DE35 RCALL _Delay_nms
(0280)
(0281) key_val=scan_key();
02CC DE50 RCALL _scan_key
02CD 2EA0 MOV R10,R16
(0282) switch(key_val)
02CE 2CCA MOV R12,R10
02CF 24DD CLR R13
02D0 01C6 MOVW R24,R12
02D1 3B8F CPI R24,0xBF
02D2 E0E0 LDI R30,0
02D3 079E CPC R25,R30
02D4 F111 BEQ 0x02F7
02D5 EB8F LDI R24,0xBF
02D6 158C CP R24,R12
02D7 059D CPC R25,R13
02D8 F034 BLT 0x02DF
02D9 01C6 MOVW R24,R12
02DA 378F CPI R24,0x7F
02DB E0E0 LDI R30,0
02DC 079E CPC R25,R30
02DD F129 BEQ 0x0303
02DE C02F RJMP 0x030E
02DF 01C6 MOVW R24,R12
02E0 3D8F CPI R24,0xDF
02E1 E0E0 LDI R30,0
02E2 079E CPC R25,R30
02E3 F071 BEQ 0x02F2
02E4 3D8F CPI R24,0xDF
02E5 E0E0 LDI R30,0
02E6 079E CPC R25,R30
02E7 F134 BLT 0x030E
02E8 01C6 MOVW R24,R12
02E9 3E8F CPI R24,0xEF
02EA E0E0 LDI R30,0
02EB 079E CPC R25,R30
02EC F009 BEQ 0x02EE
02ED C020 RJMP 0x030E
(0283) {
(0284) case 0xef:if(wr_val<255)wr_val++;break;
02EE 3F4F CPI R20,0xFF
02EF F4F0 BCC 0x030E
02F0 9543 INC R20
02F1 C01C RJMP 0x030E
(0285) case 0xdf:if(wr_val>0)wr_val--;break;
02F2 2422 CLR R2
02F3 1624 CP R2,R20
02F4 F4C8 BCC 0x030E
02F5 954A DEC R20
02F6 C017 RJMP 0x030E
(0286) case 0xbf:wr_24c01(10,wr_val);delay_iic(2500);
02F7 2F24 MOV R18,R20
02F8 E00A LDI R16,0xA
02F9 DF1E RCALL _wr_24c01
02FA EC04 LDI R16,0xC4
02FB E019 LDI R17,0x9
02FC DF4B RCALL _delay_iic
(0287) DisplayOneChar(15,0,0xef);break;
02FD EE8F LDI R24,0xEF
02FE 8388 STD Y+0,R24
02FF 2722 CLR R18
0300 E00F LDI R16,0xF
0301 DD91 RCALL _DisplayOneChar
0302 C00B RJMP 0x030E
(0288) case 0x7f:rd_val=rd_24c01(10);delay_iic(2500);
0303 E00A LDI R16,0xA
0304 DEB6 RCALL _rd_24c01
0305 2F60 MOV R22,R16
0306 EC04 LDI R16,0xC4
0307 E019 LDI R17,0x9
0308 DF3F RCALL _delay_iic
(0289) DisplayOneChar(15,1,0xef);break;
0309 EE8F LDI R24,0xEF
030A 8388 STD Y+0,R24
030B E021 LDI R18,1
030C E00F LDI R16,0xF
030D DD85 RCALL _DisplayOneChar
(0290) default:break;
(0291) }
(0292) Delay_nms(200);
030E EC08 LDI R16,0xC8
030F E010 LDI R17,0
0310 DDF0 RCALL _Delay_nms
(0293) DisplayOneChar(15,0,0x20);Delay_nms(10);
0311 E280 LDI R24,0x20
0312 8388 STD Y+0,R24
0313 2722 CLR R18
0314 E00F LDI R16,0xF
0315 DD7D RCALL _DisplayOneChar
0316 E00A LDI R16,0xA
0317 E010 LDI R17,0
0318 DDE8 RCALL _Delay_nms
(0294) DisplayOneChar(15,1,0x20);Delay_nms(10);
FILE: <library>
0319 E280 LDI R24,0x20
031A 8388 STD Y+0,R24
031B E021 LDI R18,1
031C E00F LDI R16,0xF
031D DD75 RCALL _DisplayOneChar
031E E00A LDI R16,0xA
031F E010 LDI R17,0
0320 DDE0 RCALL _Delay_nms
0321 CF56 RJMP 0x0278
0322 9622 ADIW R28,2
0323 9508 RET
mod8u:
0324 9468 BSET 6
0325 C001 RJMP xdiv8u
div8u:
0326 94E8 BCLR 6
xdiv8u:
0327 932A ST R18,-Y
0328 92FA ST R15,-Y
0329 92EA ST R14,-Y
032A 24FF CLR R15
032B 24EE CLR R14
032C E120 LDI R18,0x10
032D 0F00 LSL R16
032E 1CFF ROL R15
032F 1CEE ROL R14
0330 16E1 CP R14,R17
0331 F010 BCS 0x0334
0332 1AE1 SUB R14,R17
0333 9503 INC R16
0334 952A DEC R18
0335 F7B9 BNE 0x032D
0336 F40E BRTC 0x0338
0337 2D0E MOV R16,R14
0338 90E9 LD R14,Y+
0339 90F9 LD R15,Y+
033A 9129 LD R18,Y+
033B 9508 RET
pop_gset2:
033C E0E2 LDI R30,2
033D 940C0351 JMP pop
pop_gset3:
033F E0E4 LDI R30,4
0340 940C0351 JMP pop
pop_gset5:
0342 27EE CLR R30
0343 940C0351 JMP pop
push_gset5:
0345 92FA ST R15,-Y
0346 92EA ST R14,-Y
push_gset4:
0347 92DA ST R13,-Y
0348 92CA ST R12,-Y
push_gset3:
0349 92BA ST R11,-Y
034A 92AA ST R10,-Y
push_gset2:
034B 937A ST R23,-Y
034C 936A ST R22,-Y
push_gset1:
034D 935A ST R21,-Y
034E 934A ST R20,-Y
034F 9508 RET
pop_gset1:
0350 E0E1 LDI R30,1
pop:
0351 9149 LD R20,Y+
0352 9159 LD R21,Y+
0353 FDE0 SBRC R30,0
0354 9508 RET
0355 9169 LD R22,Y+
0356 9179 LD R23,Y+
0357 FDE1 SBRC R30,1
0358 9508 RET
0359 90A9 LD R10,Y+
035A 90B9 LD R11,Y+
035B FDE2 SBRC R30,2
035C 9508 RET
035D 90C9 LD R12,Y+
035E 90D9 LD R13,Y+
035F FDE3 SBRC R30,3
0360 9508 RET
0361 90E9 LD R14,Y+
0362 90F9 LD R15,Y+
0363 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -