📄 m64.lst
字号:
(0203) else if (all==0)//(johu!=3)&&(johu!=5) //5:7-bit 3:8-bit
368 9020 0116 LDS R2,all
36A 2022 TST R2
36B F009 BEQ 0x036D
36C C04D RJMP 0x03BA
(0204) {
(0205) a=b;
36D 9020 0118 LDS R2,b
36F 9220 0117 STS a,R2
(0206) b=c;
371 9020 0119 LDS R2,c
373 9220 0118 STS b,R2
(0207) c=d;
375 9020 011A LDS R2,d
377 9220 0119 STS c,R2
(0208) d=UDR1;
379 9020 009C LDS R2,0x009C
37B 9220 011A STS d,R2
(0209) if ((a=='c')&&(b=='i')&&(c=='r'))
37D 9180 0117 LDS R24,a
37F 3683 CPI R24,0x63
380 F4C9 BNE 0x039A
381 9180 0118 LDS R24,b
383 3689 CPI R24,0x69
384 F4A9 BNE 0x039A
385 9180 0119 LDS R24,c
387 3782 CPI R24,0x72
388 F489 BNE 0x039A
(0210) {
(0211) all=CIR;
389 E081 LDI R24,1
38A 9380 0116 STS all,R24
(0212) a=0;b=0;c=0;d=0;e=0;f=0;
38C 2422 CLR R2
38D 9220 0117 STS a,R2
38F 9220 0118 STS b,R2
391 9220 0119 STS c,R2
393 9220 011A STS d,R2
395 9220 011B STS e,R2
397 9220 011C STS f,R2
(0213) return; }//RXlen=4;{johu=3;RXlen=3;return;}
399 C020 RJMP 0x03BA
(0214) else if ((a=='l')&&(b=='i')&&(c=='n')&&(d=='e'))
39A 9180 0117 LDS R24,a
39C 368C CPI R24,0x6C
39D F4E1 BNE 0x03BA
39E 9180 0118 LDS R24,b
3A0 3689 CPI R24,0x69
3A1 F4C1 BNE 0x03BA
3A2 9180 0119 LDS R24,c
3A4 368E CPI R24,0x6E
3A5 F4A1 BNE 0x03BA
3A6 9180 011A LDS R24,d
3A8 3685 CPI R24,0x65
3A9 F481 BNE 0x03BA
(0215) {
(0216) all=LINE;
3AA E082 LDI R24,2
3AB 9380 0116 STS all,R24
(0217) a=0;b=0;c=0;d=0;e=0;f=0;
3AD 2422 CLR R2
3AE 9220 0117 STS a,R2
3B0 9220 0118 STS b,R2
3B2 9220 0119 STS c,R2
3B4 9220 011A STS d,R2
3B6 9220 011B STS e,R2
3B8 9220 011C STS f,R2
(0218) return; }//RXlen=4;{johu=5;RXlen=3;return;}
(0219) ////////////////////////////////////////////////////////////////////
(0220) }
3BA 9009 LD R0,Y+
3BB BE0F OUT 0x3F,R0
3BC 91F9 LD R31,Y+
3BD 91E9 LD R30,Y+
3BE 9199 LD R25,Y+
3BF 9189 LD R24,Y+
3C0 9139 LD R19,Y+
3C1 9129 LD R18,Y+
3C2 9119 LD R17,Y+
3C3 9109 LD R16,Y+
3C4 9059 LD R5,Y+
3C5 9049 LD R4,Y+
3C6 9039 LD R3,Y+
3C7 9029 LD R2,Y+
3C8 9019 LD R1,Y+
3C9 9009 LD R0,Y+
3CA 9518 RETI
_number_uart1:
n --> Y,+0
huanhang --> Y,+8
NUM --> Y,+4
3CB 940E 076C CALL push_arg4
3CD 9724 SBIW R28,4
(0221) }
(0222)
(0223)
(0224)
(0225) /*void number(unsigned char X,unsigned char Y,unsigned char LEN,int NUM,unsigned char BLACK)
(0226) {
(0227) char code[]={'0','1','2','3','4','5','6','7','8','9',};
(0228) if (NUM<0)
(0229) {LCD_write_String1(X,Y,"-");NUM=-NUM;}
(0230) else
(0231) {LCD_write_String1(X,Y,"+");}
(0232) X=X+6;
(0233) while(LEN--)
(0234) {
(0235) LCD_write_String1(X+LEN*6,Y,& code[NUM%10]);
(0236) NUM=NUM/10;
(0237) }
(0238) }*/
(0239) void number_uart1(long NUM,char huanhang)
(0240) {long n=0;
3CE E080 LDI R24,0
3CF E090 LDI R25,0
3D0 E0A0 LDI R26,0
3D1 E0B0 LDI R27,0
3D2 8388 STD Y+0,R24
3D3 8399 STD Y+1,R25
3D4 83AA STD Y+2,R26
3D5 83BB STD Y+3,R27
(0241) if (NUM<0){n=-NUM; while(!(UCSR1A&(1<<UDRE1))); UDR1='-';}
3D6 E080 LDI R24,0
3D7 E090 LDI R25,0
3D8 E0A0 LDI R26,0
3D9 E0B0 LDI R27,0
3DA 802C LDD R2,Y+4
3DB 803D LDD R3,Y+5
3DC 804E LDD R4,Y+6
3DD 805F LDD R5,Y+7
3DE 1628 CP R2,R24
3DF 0639 CPC R3,R25
3E0 064A CPC R4,R26
3E1 065B CPC R5,R27
3E2 F484 BGE 0x03F3
3E3 0181 MOVW R16,R2
3E4 0192 MOVW R18,R4
3E5 940E 07F9 CALL neg32
3E7 8308 STD Y+0,R16
3E8 8319 STD Y+1,R17
3E9 832A STD Y+2,R18
3EA 833B STD Y+3,R19
3EB 9020 009B LDS R2,0x009B
3ED FE25 SBRS R2,5
3EE CFFC RJMP 0x03EB
3EF E28D LDI R24,0x2D
3F0 9380 009C STS 0x009C,R24
3F2 C00F RJMP 0x0402
(0242) else {n=NUM;while(!(UCSR1A&(1<<UDRE1))); UDR1='+';}
3F3 802C LDD R2,Y+4
3F4 803D LDD R3,Y+5
3F5 804E LDD R4,Y+6
3F6 805F LDD R5,Y+7
3F7 8228 STD Y+0,R2
3F8 8239 STD Y+1,R3
3F9 824A STD Y+2,R4
3FA 825B STD Y+3,R5
3FB 9020 009B LDS R2,0x009B
3FD FE25 SBRS R2,5
3FE CFFC RJMP 0x03FB
3FF E28B LDI R24,0x2B
400 9380 009C STS 0x009C,R24
(0243) while(!(UCSR1A&(1<<UDRE1)));
402 9020 009B LDS R2,0x009B
404 FE25 SBRS R2,5
405 CFFC RJMP 0x0402
(0244) UDR1=(n/10000)%10+48;
406 E180 LDI R24,0x10
407 E297 LDI R25,0x27
408 E0A0 LDI R26,0
409 E0B0 LDI R27,0
40A 8108 LDD R16,Y+0
40B 8119 LDD R17,Y+1
40C 812A LDD R18,Y+2
40D 813B LDD R19,Y+3
40E 93BA ST R27,-Y
40F 93AA ST R26,-Y
410 939A ST R25,-Y
411 938A ST R24,-Y
412 940E 0777 CALL div32s
414 E08A LDI R24,0xA
415 E090 LDI R25,0
416 E0A0 LDI R26,0
417 E0B0 LDI R27,0
418 93BA ST R27,-Y
419 93AA ST R26,-Y
41A 939A ST R25,-Y
41B 938A ST R24,-Y
41C 940E 0779 CALL mod32s
41E 0118 MOVW R2,R16
41F 0129 MOVW R4,R18
420 E380 LDI R24,0x30
421 E090 LDI R25,0
422 E0A0 LDI R26,0
423 E0B0 LDI R27,0
424 0E28 ADD R2,R24
425 1E39 ADC R3,R25
426 1E4A ADC R4,R26
427 1E5B ADC R5,R27
428 9220 009C STS 0x009C,R2
(0245) while(!(UCSR1A&(1<<UDRE1)));
42A 9020 009B LDS R2,0x009B
42C FE25 SBRS R2,5
42D CFFC RJMP 0x042A
(0246) UDR1=(n/1000)%10+48;
42E EE88 LDI R24,0xE8
42F E093 LDI R25,3
430 E0A0 LDI R26,0
431 E0B0 LDI R27,0
432 8108 LDD R16,Y+0
433 8119 LDD R17,Y+1
434 812A LDD R18,Y+2
435 813B LDD R19,Y+3
436 93BA ST R27,-Y
437 93AA ST R26,-Y
438 939A ST R25,-Y
439 938A ST R24,-Y
43A 940E 0777 CALL div32s
43C E08A LDI R24,0xA
43D E090 LDI R25,0
43E E0A0 LDI R26,0
43F E0B0 LDI R27,0
440 93BA ST R27,-Y
441 93AA ST R26,-Y
442 939A ST R25,-Y
443 938A ST R24,-Y
444 940E 0779 CALL mod32s
446 0118 MOVW R2,R16
447 0129 MOVW R4,R18
448 E380 LDI R24,0x30
449 E090 LDI R25,0
44A E0A0 LDI R26,0
44B E0B0 LDI R27,0
44C 0E28 ADD R2,R24
44D 1E39 ADC R3,R25
44E 1E4A ADC R4,R26
44F 1E5B ADC R5,R27
450 9220 009C STS 0x009C,R2
(0247) while(!(UCSR1A&(1<<UDRE1)));
452 9020 009B LDS R2,0x009B
454 FE25 SBRS R2,5
455 CFFC RJMP 0x0452
(0248) UDR1=(n/100)%10+48;
456 E684 LDI R24,0x64
457 E090 LDI R25,0
458 E0A0 LDI R26,0
459 E0B0 LDI R27,0
45A 8108 LDD R16,Y+0
45B 8119 LDD R17,Y+1
45C 812A LDD R18,Y+2
45D 813B LDD R19,Y+3
45E 93BA ST R27,-Y
45F 93AA ST R26,-Y
460 939A ST R25,-Y
461 938A ST R24,-Y
462 940E 0777 CALL div32s
464 E08A LDI R24,0xA
465 E090 LDI R25,0
466 E0A0 LDI R26,0
467 E0B0 LDI R27,0
468 93BA ST R27,-Y
469 93AA ST R26,-Y
46A 939A ST R25,-Y
46B 938A ST R24,-Y
46C 940E 0779 CALL mod32s
46E 0118 MOVW R2,R16
46F 0129 MOVW R4,R18
470 E380 LDI R24,0x30
471 E090 LDI R25,0
472 E0A0 LDI R26,0
473 E0B0 LDI R27,0
474 0E28 ADD R2,R24
475 1E39 ADC R3,R25
476 1E4A ADC R4,R26
477 1E5B ADC R5,R27
478 9220 009C STS 0x009C,R2
(0249) while(!(UCSR1A&(1<<UDRE1)));
47A 9020 009B LDS R2,0x009B
47C FE25 SBRS R2,5
47D CFFC RJMP 0x047A
(0250) UDR1=(n/10)%10+48;
47E E08A LDI R24,0xA
47F E090 LDI R25,0
480 E0A0 LDI R26,0
481 E0B0 LDI R27,0
482 8108 LDD R16,Y+0
483 8119 LDD R17,Y+1
484 812A LDD R18,Y+2
485 813B LDD R19,Y+3
486 93BA ST R27,-Y
487 93AA ST R26,-Y
488 939A ST R25,-Y
489 938A ST R24,-Y
48A 940E 0777 CALL div32s
48C E08A LDI R24,0xA
48D E090 LDI R25,0
48E E0A0 LDI R26,0
48F E0B0 LDI R27,0
490 93BA ST R27,-Y
491 93AA ST R26,-Y
492 939A ST R25,-Y
493 938A ST R24,-Y
494 940E 0779 CALL mod32s
496 0118 MOVW R2,R16
497 0129 MOVW R4,R18
498 E380 LDI R24,0x30
499 E090 LDI R25,0
49A E0A0 LDI R26,0
49B E0B0 LDI R27,0
49C 0E28 ADD R2,R24
49D 1E39 ADC R3,R25
49E 1E4A ADC R4,R26
49F 1E5B ADC R5,R27
4A0 9220 009C STS 0x009C,R2
(0251) while(!(UCSR1A&(1<<UDRE1)));
4A2 9020 009B LDS R2,0x009B
4A4 FE25 SBRS R2,5
4A5 CFFC RJMP 0x04A2
(0252) UDR1=n%10+48;
4A6 E08A LDI R24,0xA
4A7 E090 LDI R25,0
4A8 E0A0 LDI R26,0
4A9 E0B0 LDI R27,0
4AA 8108 LDD R16,Y+0
4AB 8119 LDD R17,Y+1
4AC 812A LDD R18,Y+2
4AD 813B LDD R19,Y+3
4AE 93BA ST R27,-Y
4AF 93AA ST R26,-Y
4B0 939A ST R25,-Y
4B1 938A ST R24,-Y
4B2 940E 0779 CALL mod32s
4B4 0118 MOVW R2,R16
4B5 0129 MOVW R4,R18
4B6 E380 LDI R24,0x30
4B7 E090 LDI R25,0
4B8 E0A0 LDI R26,0
4B9 E0B0 LDI R27,0
4BA 0E28 ADD R2,R24
4BB 1E39 ADC R3,R25
4BC 1E4A ADC R4,R26
4BD 1E5B ADC R5,R27
4BE 9220 009C STS 0x009C,R2
(0253) if (huanhang)
4C0 8408 LDD R0,Y+8
4C1 2000 TST R0
4C2 F079 BEQ 0x04D2
(0254) {
(0255) while(!(UCSR1A&(1<<UDRE1)));
4C3 9020 009B LDS R2,0x009B
4C5 FE25 SBRS R2,5
4C6 CFFC RJMP 0x04C3
(0256) UDR1=0x0d;
4C7 E08D LDI R24,0xD
4C8 9380 009C STS 0x009C,R24
(0257) while(!(UCSR1A&(1<<UDRE1)));
4CA 9020 009B LDS R2,0x009B
4CC FE25 SBRS R2,5
4CD CFFC RJMP 0x04CA
(0258) UDR1=0x0a;
4CE E08A LDI R24,0xA
4CF 9380 009C STS 0x009C,R24
(0259) }
4D1 C00E RJMP 0x04E0
(0260) else
(0261) {
(0262) while(!(UCSR1A&(1<<UDRE1)));
4D2 9020 009B LDS R2,0x009B
4D4 FE25 SBRS R2,5
4D5 CFFC RJMP 0x04D2
(0263) UDR1=0x20;
4D6 E280 LDI R24,0x20
4D7 9380 009C STS 0x009C,R24
(0264) while(!(UCSR1A&(1<<UDRE1)));
4D9 9020 009B LDS R2,0x009B
4DB FE25 SBRS R2,5
4DC CFFC RJMP 0x04D9
(0265) UDR1=0x20;
4DD E280 LDI R24,0x20
4DE 9380 009C STS 0x009C,R24
(0266) }
4E0 9628 ADIW R28,0x8
4E1 9508 RET
(0267) }
(0268)
(0269)
(0270)
(0271) //TIMER0 initialize - prescale:64
(0272) // WGM: PWM Fast
(0273) // desired value: 1KHz
(0274) // actual value: 0.488KHz (-104.8%)
(0275) void timer0_init(void)
(0276) {
(0277) TCCR0 = 0x00; //stop
_timer0_init:
4E2 2422 CLR R2
4E3 BE23 OUT 0x33,R2
(0278) ASSR = 0x00; //set async mode
4E4 BE20 OUT 0x30,R2
(0279) TCNT0 = 0x01; //set count
4E5 E081 LDI R24,1
4E6 BF82 OUT 0x32,R24
(0280) OCR0 = 0x0f;
4E7 E08F LDI R24,0xF
4E8 BF81 OUT 0x31,R24
(0281) TCCR0 = 0x6C; //start timer
4E9 E68C LDI R24,0x6C
4EA BF83 OUT 0x33,R24
4EB 9508 RET
(0282) }
(0283)
(0284) //TIMER1 initialize - prescale:64
(0285) // WGM: 5) PWM 8bit fast, TOP=0x00FF
(0286) // desired value: 1KHz
(0287) // actual value: 0.488KHz (104.8%)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -