⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pd3key.lst

📁 ATmega16应用例子
💻 LST
📖 第 1 页 / 共 2 页
字号:
(0099)     uint8 j;		
(0100)     for(;t>0;t--)			
    00AC C007      RJMP	0x00B4
(0101)         for(j=0;j<70;j++)	
    00AD 2744      CLR	R20
    00AE C001      RJMP	0x00B0
    00AF 9543      INC	R20
    00B0 3446      CPI	R20,0x46
    00B1 F3E8      BCS	0x00AF
    00B2 5001      SUBI	R16,1
    00B3 4010      SBCI	R17,0
    00B4 2422      CLR	R2
    00B5 2433      CLR	R3
    00B6 1620      CP	R2,R16
    00B7 0631      CPC	R3,R17
    00B8 F3A4      BLT	0x00AD
(0102)             ;
(0103) }
    00B9 940E018B  CALL	pop_gset1
    00BB 9508      RET
_delay50ms:
  i                    --> R20
  t                    --> R16
    00BC 940E0188  CALL	push_gset1
(0104) /*--------------------------------------------------------------------
(0105) 函数全称:50ms 延时
(0106) 函数功能:当然是 50ms延时 啦
(0107) 注意事项:基于7.3728M晶振,稍微有点误差
(0108) 提示说明:调用delay50ms(20),得到1s延时 
(0109) 输    入:
(0110) 返    回:无
(0111) --------------------------------------------------------------------*/
(0112) void delay50ms(sint16 t)
(0113) {
(0114) 	uint16 i; 
(0115) 	for(;t>0;t--)
    00BE C00B      RJMP	0x00CA
(0116) 		for(i=0;i<52642;i++)
    00BF 2744      CLR	R20
    00C0 2755      CLR	R21
    00C1 C002      RJMP	0x00C4
    00C2 5F4F      SUBI	R20,0xFF
    00C3 4F5F      SBCI	R21,0xFF
    00C4 3A42      CPI	R20,0xA2
    00C5 ECED      LDI	R30,0xCD
    00C6 075E      CPC	R21,R30
    00C7 F3D0      BCS	0x00C2
    00C8 5001      SUBI	R16,1
    00C9 4010      SBCI	R17,0
    00CA 2422      CLR	R2
    00CB 2433      CLR	R3
    00CC 1620      CP	R2,R16
    00CD 0631      CPC	R3,R17
    00CE F384      BLT	0x00BF
(0117) 			;								 
(0118) }
    00CF 940E018B  CALL	pop_gset1
    00D1 9508      RET
FILE: E:\ProductPro\M16SD\ICCAVR\PD3Key\PD3Key\PD3Key.c
(0001) #include <iom16v.h>
(0002) #include "E:\ICC_H\CmmICC.H"
(0003) 
(0004) #define IN_PD3  		cbi(DDRD,3)		//PD3
(0005) #define SET_PD3			sbi(PORTD,3)
(0006) #define GET_PD3			gbi(PIND,3)
(0007) 
(0008) #define OUT_BUZ			sbi(DDRB,3)	   //PB3
(0009) #define BUZ_ON  		sbi(PORTB,3)
(0010) #define BUZ_OFF 		cbi(PORTB,3)
(0011) 
(0012) void main(void)
(0013) {
(0014) 	IN_PD3;
_main:
    00D2 988B      CBI	0x11,3
(0015) 	OUT_BUZ;
    00D3 9ABB      SBI	0x17,3
    00D4 C008      RJMP	0x00DD
(0016) 	while(1)
(0017) 	{
(0018) 		SET_PD3;
    00D5 9A93      SBI	0x12,3
(0019) 		if(!GET_PD3)
    00D6 9983      SBIC	0x10,3
    00D7 C004      RJMP	0x00DC
(0020) 		{
(0021) 			BUZ_ON;
    00D8 9AC3      SBI	0x18,3
(0022) 			delay50ms(20);
    00D9 E104      LDI	R16,0x14
    00DA E010      LDI	R17,0
    00DB DFE0      RCALL	_delay50ms
(0023) 		}
(0024) 		BUZ_OFF;
    00DC 98C3      CBI	0x18,3
    00DD CFF7      RJMP	0x00D5
(0025) 	}  
(0026) }
FILE: <library>
    00DE 9508      RET
push_arg4:
    00DF 933A      ST	R19,-Y
    00E0 932A      ST	R18,-Y
push_arg2:
    00E1 931A      ST	R17,-Y
    00E2 930A      ST	R16,-Y
    00E3 9508      RET
div32u:
    00E4 94E8      BCLR	6
    00E5 C001      RJMP	0x00E7
mod32u:
    00E6 9468      BSET	6
    00E7 D02F      RCALL	long_div_prolog
    00E8 24CC      CLR	R12
    00E9 C008      RJMP	0x00F2
div32s:
    00EA 94E8      BCLR	6
    00EB C001      RJMP	0x00ED
mod32s:
    00EC 9468      BSET	6
    00ED D029      RCALL	long_div_prolog
    00EE FD37      SBRC	R19,7
    00EF D053      RCALL	neg_R16_R19
    00F0 FDB7      SBRC	R27,7
    00F1 D05A      RCALL	neg_R24_R27
    00F2 2477      CLR	R7
    00F3 2488      CLR	R8
    00F4 2499      CLR	R9
    00F5 24AA      CLR	R10
    00F6 24BB      CLR	R11
    00F7 D041      RCALL	tst_R16_R19
    00F8 F0C1      BEQ	0x0111
    00F9 D044      RCALL	tst_R24_R27
    00FA F0B1      BEQ	0x0111
    00FB E2E8      LDI	R30,0x28
    00FC 0F00      LSL	R16
    00FD 1F11      ROL	R17
    00FE 1F22      ROL	R18
    00FF 1F33      ROL	R19
    0100 1C77      ROL	R7
    0101 1C88      ROL	R8
    0102 1C99      ROL	R9
    0103 1CAA      ROL	R10
    0104 1CBB      ROL	R11
    0105 1688      CP	R8,R24
    0106 0699      CPC	R9,R25
    0107 06AA      CPC	R10,R26
    0108 06BB      CPC	R11,R27
    0109 F028      BCS	0x010F
    010A 1A88      SUB	R8,R24
    010B 0A99      SBC	R9,R25
    010C 0AAA      SBC	R10,R26
    010D 0ABB      SBC	R11,R27
    010E 9503      INC	R16
    010F 95EA      DEC	R30
    0110 F759      BNE	0x00FC
    0111 F426      BRTC	0x0116
    0112 2D08      MOV	R16,R8
    0113 2D19      MOV	R17,R9
    0114 2D2A      MOV	R18,R10
    0115 2D3B      MOV	R19,R11
    0116 C013      RJMP	long_div_epilog
long_div_prolog:
    0117 927A      ST	R7,-Y
    0118 928A      ST	R8,-Y
    0119 929A      ST	R9,-Y
    011A 92AA      ST	R10,-Y
    011B 92BA      ST	R11,-Y
    011C 92CA      ST	R12,-Y
    011D 93EA      ST	R30,-Y
    011E 938A      ST	R24,-Y
    011F 939A      ST	R25,-Y
    0120 93AA      ST	R26,-Y
    0121 93BA      ST	R27,-Y
    0122 858B      LDD	R24,Y+11
    0123 859C      LDD	R25,Y+12
    0124 85AD      LDD	R26,Y+13
    0125 85BE      LDD	R27,Y+14
    0126 2EC3      MOV	R12,R19
    0127 F00E      BRTS	0x0129
    0128 26CB      EOR	R12,R27
    0129 9508      RET
long_div_epilog:
    012A FCC7      SBRC	R12,7
    012B D017      RCALL	neg_R16_R19
    012C 91B9      LD	R27,Y+
    012D 91A9      LD	R26,Y+
    012E 9199      LD	R25,Y+
    012F 9189      LD	R24,Y+
    0130 91E9      LD	R30,Y+
    0131 90C9      LD	R12,Y+
    0132 90B9      LD	R11,Y+
    0133 90A9      LD	R10,Y+
    0134 9099      LD	R9,Y+
    0135 9089      LD	R8,Y+
    0136 9079      LD	R7,Y+
    0137 9624      ADIW	R28,4
    0138 9508      RET
tst_R16_R19:
    0139 2FE0      MOV	R30,R16
    013A 2BE1      OR	R30,R17
    013B 2BE2      OR	R30,R18
    013C 2BE3      OR	R30,R19
    013D 9508      RET
tst_R24_R27:
    013E 2FE8      MOV	R30,R24
    013F 2BE9      OR	R30,R25
    0140 2BEA      OR	R30,R26
    0141 2BEB      OR	R30,R27
    0142 9508      RET
neg_R16_R19:
    0143 9500      COM	R16
    0144 9510      COM	R17
    0145 9520      COM	R18
    0146 9530      COM	R19
    0147 5F0F      SUBI	R16,0xFF
    0148 4F1F      SBCI	R17,0xFF
    0149 4F2F      SBCI	R18,0xFF
    014A 4F3F      SBCI	R19,0xFF
    014B 9508      RET
neg_R24_R27:
    014C 9580      COM	R24
    014D 9590      COM	R25
    014E 95A0      COM	R26
    014F 95B0      COM	R27
    0150 5F8F      SUBI	R24,0xFF
    0151 4F9F      SBCI	R25,0xFF
    0152 4FAF      SBCI	R26,0xFF
    0153 4FBF      SBCI	R27,0xFF
    0154 9508      RET
empy32s:
empy32u:
    0155 940E01AB  CALL	long_prolog
    0157 927F      PUSH	R7
    0158 940E01C4  CALL	tstzero1
    015A F139      BEQ	0x0182
    015B 2477      CLR	R7
    015C 940E01CA  CALL	tstzero2
    015E F419      BNE	0x0162
    015F 018C      MOVW	R16,R24
    0160 019D      MOVW	R18,R26
    0161 C020      RJMP	0x0182
    0162 9F08      MUL	R16,R24
    0163 2CB0      MOV	R11,R0
    0164 2CA1      MOV	R10,R1
    0165 9F28      MUL	R18,R24
    0166 2C90      MOV	R9,R0
    0167 2C81      MOV	R8,R1
    0168 9F18      MUL	R17,R24
    0169 0CA0      ADD	R10,R0
    016A 1C91      ADC	R9,R1
    016B 1C87      ADC	R8,R7
    016C 9F09      MUL	R16,R25
    016D 0CA0      ADD	R10,R0
    016E 1C91      ADC	R9,R1
    016F 1C87      ADC	R8,R7
    0170 9F19      MUL	R17,R25
    0171 0C90      ADD	R9,R0
    0172 1C81      ADC	R8,R1
    0173 9F0A      MUL	R16,R26
    0174 0C90      ADD	R9,R0
    0175 1C81      ADC	R8,R1
    0176 9F38      MUL	R19,R24
    0177 0C80      ADD	R8,R0
    0178 9F29      MUL	R18,R25
    0179 0C80      ADD	R8,R0
    017A 9F1A      MUL	R17,R26
    017B 0C80      ADD	R8,R0
    017C 9F0B      MUL	R16,R27
    017D 0C80      ADD	R8,R0
    017E 2D0B      MOV	R16,R11
    017F 2D1A      MOV	R17,R10
    0180 2D29      MOV	R18,R9
    0181 2D38      MOV	R19,R8
    0182 907F      POP	R7
    0183 940C01B9  JMP	long_epilog
pop_gset4:
    0185 E0E8      LDI	R30,0x8
    0186 940C018C  JMP	pop
push_gset1:
    0188 935A      ST	R21,-Y
    0189 934A      ST	R20,-Y
    018A 9508      RET
pop_gset1:
    018B E0E1      LDI	R30,1
pop:
    018C 9149      LD	R20,Y+
    018D 9159      LD	R21,Y+
    018E FDE0      SBRC	R30,0
    018F 9508      RET
    0190 9169      LD	R22,Y+
    0191 9179      LD	R23,Y+
    0192 FDE1      SBRC	R30,1
    0193 9508      RET
    0194 90A9      LD	R10,Y+
    0195 90B9      LD	R11,Y+
    0196 FDE2      SBRC	R30,2
    0197 9508      RET
    0198 90C9      LD	R12,Y+
    0199 90D9      LD	R13,Y+
    019A FDE3      SBRC	R30,3
    019B 9508      RET
    019C 90E9      LD	R14,Y+
    019D 90F9      LD	R15,Y+
    019E 9508      RET
push_gset2:
    019F 937A      ST	R23,-Y
    01A0 936A      ST	R22,-Y
    01A1 940C0188  JMP	push_gset1
push_gset3:
    01A3 92BA      ST	R11,-Y
    01A4 92AA      ST	R10,-Y
    01A5 940C019F  JMP	push_gset2
push_gset4:
    01A7 92DA      ST	R13,-Y
    01A8 92CA      ST	R12,-Y
    01A9 940C01A3  JMP	push_gset3
long_prolog:
    01AB 928A      ST	R8,-Y
    01AC 929A      ST	R9,-Y
    01AD 92AA      ST	R10,-Y
    01AE 92BA      ST	R11,-Y
    01AF 93EA      ST	R30,-Y
    01B0 938A      ST	R24,-Y
    01B1 939A      ST	R25,-Y
    01B2 93AA      ST	R26,-Y
    01B3 93BA      ST	R27,-Y
    01B4 8589      LDD	R24,Y+9
    01B5 859A      LDD	R25,Y+10
    01B6 85AB      LDD	R26,Y+11
    01B7 85BC      LDD	R27,Y+12
    01B8 9508      RET
long_epilog:
    01B9 91B9      LD	R27,Y+
    01BA 91A9      LD	R26,Y+
    01BB 9199      LD	R25,Y+
    01BC 9189      LD	R24,Y+
    01BD 91E9      LD	R30,Y+
    01BE 90B9      LD	R11,Y+
    01BF 90A9      LD	R10,Y+
    01C0 9099      LD	R9,Y+
    01C1 9089      LD	R8,Y+
    01C2 9624      ADIW	R28,4
    01C3 9508      RET
tstzero1:
    01C4 27EE      CLR	R30
    01C5 2BE0      OR	R30,R16
    01C6 2BE1      OR	R30,R17
    01C7 2BE2      OR	R30,R18
    01C8 2BE3      OR	R30,R19
    01C9 9508      RET
tstzero2:
    01CA 27EE      CLR	R30
    01CB 2BE8      OR	R30,R24
    01CC 2BE9      OR	R30,R25
    01CD 2BEA      OR	R30,R26
    01CE 2BEB      OR	R30,R27
    01CF 9508      RET

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -