📄 ad.lst
字号:
00C1 E02A LDI R18,0xA
00C2 E030 LDI R19,0
00C3 2D0A MOV R16,R10
00C4 2711 CLR R17
00C5 D094 RCALL div16s
00C6 2FE0 MOV R30,R16
00C7 2FF1 MOV R31,R17
00C8 E680 LDI R24,0x60
00C9 E090 LDI R25,0
00CA 0FE8 ADD R30,R24
00CB 1FF9 ADC R31,R25
00CC 8100 LDD R16,0+Z
00CD DF95 RCALL _send_byte
(0080) send_byte(disp_table[buffer%10]);
00CE E02A LDI R18,0xA
00CF E030 LDI R19,0
00D0 2D0A MOV R16,R10
00D1 2711 CLR R17
00D2 D085 RCALL mod16s
00D3 2FE0 MOV R30,R16
00D4 2FF1 MOV R31,R17
00D5 E680 LDI R24,0x60
00D6 E090 LDI R25,0
00D7 0FE8 ADD R30,R24
00D8 1FF9 ADC R31,R25
00D9 8100 LDD R16,0+Z
00DA DF88 RCALL _send_byte
(0081) send_byte(0x00);
00DB 2700 CLR R16
00DC DF86 RCALL _send_byte
(0082) send_byte(0x00);
00DD 2700 CLR R16
00DE DF84 RCALL _send_byte
(0083) send_byte(0x00);
00DF 2700 CLR R16
00E0 DF82 RCALL _send_byte
(0084) for(i=0;i<6;i++)
00E1 2766 CLR R22
00E2 C01B RJMP 0x00FE
(0085) {
(0086) if(i==4)
00E3 3064 CPI R22,4
00E4 F419 BNE 0x00E8
(0087) dp=1; //小数点控制位
00E5 E081 LDI R24,1
00E6 93800070 STS R24,_dp
(0088) send_byte(disp_table[temp[5-i]]);
00E8 2E26 MOV R2,R22
00E9 2433 CLR R3
00EA E0E5 LDI R30,5
00EB E0F0 LDI R31,0
00EC 19E2 SUB R30,R2
00ED 09F3 SBC R31,R3
00EE 2F8C MOV R24,R28
00EF 2F9D MOV R25,R29
00F0 0FE8 ADD R30,R24
00F1 1FF9 ADC R31,R25
00F2 81E0 LDD R30,0+Z
00F3 27FF CLR R31
00F4 E680 LDI R24,0x60
00F5 E090 LDI R25,0
00F6 0FE8 ADD R30,R24
00F7 1FF9 ADC R31,R25
00F8 8100 LDD R16,0+Z
00F9 DF69 RCALL _send_byte
(0089) dp=0;
00FA 2422 CLR R2
00FB 92200070 STS R2,_dp
00FD 9563 INC R22
00FE 3066 CPI R22,6
00FF F318 BCS 0x00E3
(0090) }
(0091) break;
(0092) }
(0093) }
(0094) PORTC=1<<4;
0100 E180 LDI R24,0x10
0101 BB85 OUT P15,R24
(0095) }
0102 9626 ADIW R28,6
0103 D08F RCALL pop_gset3
0104 9508 RET
(0096) void delay_1ms(void)//1ms延时函数
(0097) {
(0098) unsigned int i;
(0099) for (i=0;i<150;i++);
_delay_1ms:
i --> R16
0105 2700 CLR R16
0106 2711 CLR R17
0107 C002 RJMP 0x010A
0108 5F0F SUBI R16,0xFF
0109 4F1F SBCI R17,0xFF
010A 3906 CPI R16,0x96
010B E0E0 LDI R30,0
010C 071E CPC R17,R30
010D F3D0 BCS 0x0108
(0100) WDR(); //清看门狗
010E 95A8 WDR
(0101) }
010F 9508 RET
_delay_nms:
i --> R20
n --> R22
0110 D07A RCALL push_gset2
0111 2F60 MOV R22,R16
0112 2F71 MOV R23,R17
(0102) void delay_nms(unsigned int n)//延时n毫秒
(0103) {
(0104) unsigned int i;
(0105) for (i=0;i<n;i++)//执行n次1毫秒延时
0113 2744 CLR R20
0114 2755 CLR R21
0115 C003 RJMP 0x0119
(0106) delay_1ms();
0116 DFEE RCALL _delay_1ms
0117 5F4F SUBI R20,0xFF
0118 4F5F SBCI R21,0xFF
0119 1746 CP R20,R22
011A 0757 CPC R21,R23
011B F3D0 BCS 0x0116
(0107) }
011C D074 RCALL pop_gset2
011D 9508 RET
_adc_isr:
011E 938A ST R24,-Y
011F B78F IN R24,P3F
0120 938A ST R24,-Y
(0108) //ADC完成中断
(0109) #pragma interrupt_handler adc_isr:iv_ADC
(0110) void adc_isr(void)
(0111) {
(0112) ADMUX =(1<<REFS0)|(1<<REFS1)|(1<<MUX1)|(1<<MUX0);
0121 EC83 LDI R24,0xC3
0122 B987 OUT P07,R24
(0113) ADCSRA|=(1<<ADSC);//启动AD转换
0123 9A36 SBI P06,6
(0114) }
FILE: <library>
0124 9189 LD R24,Y+
0125 BF8F OUT P3F,R24
0126 9189 LD R24,Y+
0127 9518 RETI
mpy16s:
0128 920A ST R0,-Y
0129 921A ST R1,-Y
012A 2400 CLR R0
012B 2411 CLR R1
012C 3000 CPI R16,0
012D 0701 CPC R16,R17
012E F041 BEQ 0x0137
012F 9516 LSR R17
0130 9507 ROR R16
0131 F410 BCC 0x0134
0132 0E02 ADD R0,R18
0133 1E13 ADC R1,R19
0134 0F22 LSL R18
0135 1F33 ROL R19
0136 CFF5 RJMP 0x012C
0137 2D00 MOV R16,R0
0138 2D11 MOV R17,R1
0139 9019 LD R1,Y+
013A 9009 LD R0,Y+
013B 9508 RET
mod16u:
013C 9468 BSET 6
013D C001 RJMP xdiv16u
div16u:
013E 94E8 BCLR 6
xdiv16u:
013F 92EA ST R14,-Y
0140 92FA ST R15,-Y
0141 938A ST R24,-Y
0142 24EE CLR R14
0143 24FF CLR R15
0144 E180 LDI R24,0x10
0145 0F00 LSL R16
0146 1F11 ROL R17
0147 1CEE ROL R14
0148 1CFF ROL R15
0149 16E2 CP R14,R18
014A 06F3 CPC R15,R19
014B F018 BCS 0x014F
014C 1AE2 SUB R14,R18
014D 0AF3 SBC R15,R19
014E 9503 INC R16
014F 958A DEC R24
0150 F7A1 BNE 0x0145
0151 F416 BRTC 0x0154
0152 2D0E MOV R16,R14
0153 2D1F MOV R17,R15
0154 9189 LD R24,Y+
0155 90F9 LD R15,Y+
0156 90E9 LD R14,Y+
0157 9508 RET
mod16s:
0158 9468 BSET 6
0159 C001 RJMP 0x015B
div16s:
015A 94E8 BCLR 6
015B 92DA ST R13,-Y
015C 2ED1 MOV R13,R17
015D 26D3 EOR R13,R19
015E FF17 SBRS R17,7
015F C004 RJMP 0x0164
0160 9510 COM R17
0161 9500 COM R16
0162 5F0F SUBI R16,0xFF
0163 4F1F SBCI R17,0xFF
0164 FF37 SBRS R19,7
0165 C004 RJMP 0x016A
0166 9530 COM R19
0167 9520 COM R18
0168 5F2F SUBI R18,0xFF
0169 4F3F SBCI R19,0xFF
016A DFD4 RCALL xdiv16u
016B F036 BRTS 0x0172
016C FED7 SBRS R13,7
016D C004 RJMP 0x0172
016E 9510 COM R17
016F 9500 COM R16
0170 5F0F SUBI R16,0xFF
0171 4F1F SBCI R17,0xFF
0172 90D9 LD R13,Y+
0173 9508 RET
push_gset1:
0174 935A ST R21,-Y
0175 934A ST R20,-Y
0176 9508 RET
pop_gset1:
0177 E0E1 LDI R30,1
pop:
0178 9149 LD R20,Y+
0179 9159 LD R21,Y+
017A FDE0 SBRC R30,0
017B 9508 RET
017C 9169 LD R22,Y+
017D 9179 LD R23,Y+
017E FDE1 SBRC R30,1
017F 9508 RET
0180 90A9 LD R10,Y+
0181 90B9 LD R11,Y+
0182 FDE2 SBRC R30,2
0183 9508 RET
0184 90C9 LD R12,Y+
0185 90D9 LD R13,Y+
0186 FDE3 SBRC R30,3
0187 9508 RET
0188 90E9 LD R14,Y+
0189 90F9 LD R15,Y+
018A 9508 RET
push_gset2:
018B 937A ST R23,-Y
018C 936A ST R22,-Y
018D CFE6 RJMP push_gset1
push_gset3:
018E 92BA ST R11,-Y
018F 92AA ST R10,-Y
0190 CFFA RJMP push_gset2
pop_gset2:
0191 E0E2 LDI R30,2
0192 CFE5 RJMP pop
pop_gset3:
0193 E0E4 LDI R30,4
0194 CFE3 RJMP pop
lsl8:
0195 2311 TST R17
0196 F019 BEQ 0x019A
0197 0F00 LSL R16
0198 951A DEC R17
0199 CFFB RJMP lsl8
019A 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -