📄 m128.lst
字号:
(0119) {
(0120) int x=0,a=0,i=0;
0626 24CC CLR R12
0627 24DD CLR R13
0628 2766 CLR R22
0629 2777 CLR R23
062A 24AA CLR R10
062B 24BB CLR R11
(0121) char j=0;
062C 2744 CLR R20
(0122) char code[]={'0','1','2','3','4','5','6','7','8','9','-','+',};
062D EF85 LDI R24,0xF5
062E E096 LDI R25,6
062F 01FE MOVW R30,R28
0630 9632 ADIW R30,2
0631 E00C LDI R16,0xC
0632 E010 LDI R17,0
0633 93FA ST R31,-Y
0634 93EA ST R30,-Y
0635 939A ST R25,-Y
0636 938A ST R24,-Y
0637 940E0752 CALL asgncblk
(0123) DDRD=0x00;
0639 2422 CLR R2
063A BA21 OUT 0x11,R2
(0124) PORTD=0x03;
063B E083 LDI R24,3
063C BB82 OUT 0x12,R24
(0125)
(0126) //while(1);
(0127) init_devices();
063D DF74 RCALL _init_devices
(0128)
(0129) ocmj_init();//初始化
063E 940E03A8 CALL _ocmj_init
(0130) ocmj_write(0xf4);//清屏
0640 EF04 LDI R16,0xF4
0641 E010 LDI R17,0
0642 940E03BB CALL _ocmj_write
(0131) hz_tran(3,0,"数模转换");//传送内部汉字
0644 E084 LDI R24,4
0645 E091 LDI R25,1
0646 8399 STD Y+1,R25
0647 8388 STD Y+0,R24
0648 2722 CLR R18
0649 2733 CLR R19
064A E003 LDI R16,3
064B E010 LDI R17,0
064C 940E0418 CALL _hz_tran
(0132)
(0133)
(0134)
(0135) DDRB=0x03;
064E E083 LDI R24,3
064F BB87 OUT 0x17,R24
(0136) PORTB=0xfc;
0650 EF8C LDI R24,0xFC
0651 BB88 OUT 0x18,R24
0652 C05B RJMP 0x06AE
(0137) //while(1);
(0138) while(1)
(0139) { for(j=0;j<128;j++)
0653 2744 CLR R20
0654 C052 RJMP 0x06A7
(0140) { x=v;
0655 90C00100 LDS R12,v
0657 90D00101 LDS R13,v+1
(0141) pset(j,x/17);
0659 E121 LDI R18,0x11
065A E030 LDI R19,0
065B 0186 MOVW R16,R12
065C 940E06E4 CALL div16s
065E 0198 MOVW R18,R16
065F 2F04 MOV R16,R20
0660 2711 CLR R17
0661 940E0467 CALL _pset
(0142) for(i=0;i<7;i++)
0663 24AA CLR R10
0664 24BB CLR R11
(0143) {
(0144) if (x<0)
0665 01C6 MOVW R24,R12
0666 3080 CPI R24,0
0667 E0E0 LDI R30,0
0668 079E CPC R25,R30
0669 F464 BGE 0x0676
(0145) {x=-x;asc_tran1(9-7,50,& code[10]);}
066A 9580 COM R24
066B 9590 COM R25
066C 5F8F SUBI R24,0xFF
066D 4F9F SBCI R25,0xFF
066E 016C MOVW R12,R24
066F 01CE MOVW R24,R28
0670 960C ADIW R24,0xC
0671 8399 STD Y+1,R25
0672 8388 STD Y+0,R24
0673 E322 LDI R18,0x32
0674 E002 LDI R16,2
0675 DF8A RCALL _asc_tran1
(0146) a=x%10;
0676 E02A LDI R18,0xA
0677 E030 LDI R19,0
0678 0186 MOVW R16,R12
0679 940E06E0 CALL mod16s
067B 01B8 MOVW R22,R16
(0147) asc_tran1(10-i,50,& code[a]);
067C 01CE MOVW R24,R28
067D 9602 ADIW R24,2
067E 011B MOVW R2,R22
067F 0E28 ADD R2,R24
0680 1E39 ADC R3,R25
0681 8239 STD Y+1,R3
0682 8228 STD Y+0,R2
0683 E322 LDI R18,0x32
0684 E00A LDI R16,0xA
0685 190A SUB R16,R10
0686 091B SBC R17,R11
0687 DF78 RCALL _asc_tran1
(0148) x=x/10;
0688 E02A LDI R18,0xA
0689 E030 LDI R19,0
068A 0186 MOVW R16,R12
068B 940E06E4 CALL div16s
068D 0168 MOVW R12,R16
068E 01C5 MOVW R24,R10
068F 9601 ADIW R24,1
0690 015C MOVW R10,R24
0691 3087 CPI R24,7
0692 E0E0 LDI R30,0
0693 079E CPC R25,R30
0694 F284 BLT 0x0665
(0149) } //for
(0150) delay_ms(1);
0695 E001 LDI R16,1
0696 E010 LDI R17,0
0697 940E06CC CALL _delay_ms
(0151) if (time>100)
0699 E684 LDI R24,0x64
069A E090 LDI R25,0
069B 90200102 LDS R2,time
069D 90300103 LDS R3,time+1
069F 1582 CP R24,R2
06A0 0593 CPC R25,R3
06A1 F420 BCC 0x06A6
(0152) { EIMSK = 0x03;
06A2 E083 LDI R24,3
06A3 BF89 OUT 0x39,R24
(0153) PORTB=0xfc;
06A4 EF8C LDI R24,0xFC
06A5 BB88 OUT 0x18,R24
06A6 9543 INC R20
06A7 3840 CPI R20,0x80
06A8 F408 BCC 0x06AA
06A9 CFAB RJMP 0x0655
(0154) }
(0155) //asm("cbi 0x03,0");
(0156) //asm("cbi 0x03,1");
(0157) }//for
(0158) ocmj_write(0xf4);//清屏
06AA EF04 LDI R16,0xF4
06AB E010 LDI R17,0
06AC 940E03BB CALL _ocmj_write
06AE CFA4 RJMP 0x0653
06AF 962E ADIW R28,0xE
06B0 9508 RET
FILE: D:\PROTEU~1.7\PROTEU~1.7\JOHU\a___EWTS82\delay.c
(0001) /*-----------------------------------------------------------------------
(0002) 延时函数
(0003) 系统时钟:8M
(0004) -----------------------------------------------------------------------*/
(0005) void delay_1us(void) //1us延时函数
(0006) {
(0007) asm("nop");
_delay_1us:
06B1 0000 NOP
06B2 9508 RET
_delay_nus:
i --> R20
n --> R22
06B3 940E0739 CALL push_gset2
06B5 01B8 MOVW R22,R16
(0008) }
(0009)
(0010) void delay_nus(unsigned int n) //N us延时函数
(0011) {
(0012) unsigned int i=0;
06B6 2744 CLR R20
06B7 2755 CLR R21
(0013) for (i=0;i<n;i++)
06B8 C003 RJMP 0x06BC
(0014) delay_1us();
06B9 DFF7 RCALL _delay_1us
06BA 5F4F SUBI R20,0xFF
06BB 4F5F SBCI R21,0xFF
06BC 1746 CP R20,R22
06BD 0757 CPC R21,R23
06BE F3D0 BCS 0x06B9
06BF 940E072A CALL pop_gset2
06C1 9508 RET
(0015) }
(0016)
(0017) void delay_1ms(void) //1ms延时函数
(0018) {
(0019) unsigned int i;
(0020) for (i=0;i<1140;i++);
_delay_1ms:
i --> R16
06C2 2700 CLR R16
06C3 2711 CLR R17
06C4 C002 RJMP 0x06C7
06C5 5F0F SUBI R16,0xFF
06C6 4F1F SBCI R17,0xFF
06C7 3704 CPI R16,0x74
06C8 E0E4 LDI R30,4
06C9 071E CPC R17,R30
06CA F3D0 BCS 0x06C5
06CB 9508 RET
_delay_ms:
i --> R20
n --> R22
06CC 940E0739 CALL push_gset2
06CE 01B8 MOVW R22,R16
(0021) }
(0022)
(0023) void delay_ms(unsigned int n) //N ms延时函数
(0024) {
(0025) unsigned int i=0;
06CF 2744 CLR R20
06D0 2755 CLR R21
(0026) for (i=0;i<n;i++)
06D1 C003 RJMP 0x06D5
(0027) delay_1ms();
FILE: <library>
06D2 DFEF RCALL _delay_1ms
06D3 5F4F SUBI R20,0xFF
06D4 4F5F SBCI R21,0xFF
06D5 1746 CP R20,R22
06D6 0757 CPC R21,R23
06D7 F3D0 BCS 0x06D2
06D8 940E072A CALL pop_gset2
06DA 9508 RET
push_arg4:
06DB 933A ST R19,-Y
06DC 932A ST R18,-Y
push_arg2:
06DD 931A ST R17,-Y
06DE 930A ST R16,-Y
06DF 9508 RET
mod16s:
06E0 9468 BSET 6
06E1 92DA ST R13,-Y
06E2 2ED1 MOV R13,R17
06E3 C004 RJMP 0x06E8
div16s:
06E4 94E8 BCLR 6
06E5 92DA ST R13,-Y
06E6 2ED1 MOV R13,R17
06E7 26D3 EOR R13,R19
06E8 FF17 SBRS R17,7
06E9 C004 RJMP 0x06EE
06EA 9510 COM R17
06EB 9500 COM R16
06EC 5F0F SUBI R16,0xFF
06ED 4F1F SBCI R17,0xFF
06EE FF37 SBRS R19,7
06EF C004 RJMP 0x06F4
06F0 9530 COM R19
06F1 9520 COM R18
06F2 5F2F SUBI R18,0xFF
06F3 4F3F SBCI R19,0xFF
06F4 940E0701 CALL xdiv16u
06F6 FED7 SBRS R13,7
06F7 C004 RJMP 0x06FC
06F8 9510 COM R17
06F9 9500 COM R16
06FA 5F0F SUBI R16,0xFF
06FB 4F1F SBCI R17,0xFF
06FC 90D9 LD R13,Y+
06FD 9508 RET
mod16u:
06FE 9468 BSET 6
06FF C001 RJMP xdiv16u
div16u:
0700 94E8 BCLR 6
xdiv16u:
0701 92EA ST R14,-Y
0702 92FA ST R15,-Y
0703 938A ST R24,-Y
0704 24EE CLR R14
0705 24FF CLR R15
0706 E180 LDI R24,0x10
0707 0F00 LSL R16
0708 1F11 ROL R17
0709 1CEE ROL R14
070A 1CFF ROL R15
070B 16E2 CP R14,R18
070C 06F3 CPC R15,R19
070D F018 BCS 0x0711
070E 1AE2 SUB R14,R18
070F 0AF3 SBC R15,R19
0710 9503 INC R16
0711 958A DEC R24
0712 F7A1 BNE 0x0707
0713 F416 BRTC 0x0716
0714 2D0E MOV R16,R14
0715 2D1F MOV R17,R15
0716 9189 LD R24,Y+
0717 90F9 LD R15,Y+
0718 90E9 LD R14,Y+
0719 9508 RET
empy16s:
071A 920A ST R0,-Y
071B 921A ST R1,-Y
071C 938A ST R24,-Y
071D 939A ST R25,-Y
071E 9F02 MUL R16,R18
071F 01C0 MOVW R24,R0
0720 9F12 MUL R17,R18
0721 0D90 ADD R25,R0
0722 9F03 MUL R16,R19
0723 0D90 ADD R25,R0
0724 018C MOVW R16,R24
0725 9199 LD R25,Y+
0726 9189 LD R24,Y+
0727 9019 LD R1,Y+
0728 9009 LD R0,Y+
0729 9508 RET
pop_gset2:
072A E0E2 LDI R30,2
072B 940C073F JMP pop
pop_gset3:
072D E0E4 LDI R30,4
072E 940C073F JMP pop
pop_gset5:
0730 27EE CLR R30
0731 940C073F JMP pop
push_gset5:
0733 92FA ST R15,-Y
0734 92EA ST R14,-Y
push_gset4:
0735 92DA ST R13,-Y
0736 92CA ST R12,-Y
push_gset3:
0737 92BA ST R11,-Y
0738 92AA ST R10,-Y
push_gset2:
0739 937A ST R23,-Y
073A 936A ST R22,-Y
push_gset1:
073B 935A ST R21,-Y
073C 934A ST R20,-Y
073D 9508 RET
pop_gset1:
073E E0E1 LDI R30,1
pop:
073F 9149 LD R20,Y+
0740 9159 LD R21,Y+
0741 FDE0 SBRC R30,0
0742 9508 RET
0743 9169 LD R22,Y+
0744 9179 LD R23,Y+
0745 FDE1 SBRC R30,1
0746 9508 RET
0747 90A9 LD R10,Y+
0748 90B9 LD R11,Y+
0749 FDE2 SBRC R30,2
074A 9508 RET
074B 90C9 LD R12,Y+
074C 90D9 LD R13,Y+
074D FDE3 SBRC R30,3
074E 9508 RET
074F 90E9 LD R14,Y+
0750 90F9 LD R15,Y+
0751 9508 RET
asgncblk:
0752 93AA ST R26,-Y
0753 93BA ST R27,-Y
0754 93EA ST R30,-Y
0755 93FA ST R31,-Y
0756 920A ST R0,-Y
0757 81AF LDD R26,Y+7
0758 85B8 LDD R27,Y+8
0759 81ED LDD R30,Y+5
075A 81FE LDD R31,Y+6
075B 3000 CPI R16,0
075C 0701 CPC R16,R17
075D F031 BEQ 0x0764
075E 95C8 LPM
075F 920D ST R0,X+
0760 9631 ADIW R30,1
0761 5001 SUBI R16,1
0762 4010 SBCI R17,0
0763 CFF7 RJMP 0x075B
0764 9009 LD R0,Y+
0765 91F9 LD R31,Y+
0766 91E9 LD R30,Y+
0767 91B9 LD R27,Y+
0768 91A9 LD R26,Y+
0769 9624 ADIW R28,4
076A 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -