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

📄 count.lst

📁 AVR mega16系列单片机开发程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
    0109 91900062  LDS	R25,i+1
    010B 9601      ADIW	R24,1
    010C 93900062  STS	i+1,R25
    010E 93800061  STS	i,R24
(0031) 	  flag=0;	 
    0110 2422      CLR	R2
    0111 92200060  STS	flag,R2
(0032)       delay_ms(1);
    0113 E001      LDI	R16,1
    0114 E010      LDI	R17,0
    0115 940E0161  CALL	_delay_ms
(0033)       display(i);           
    0117 91000061  LDS	R16,i
    0119 91100062  LDS	R17,i+1
    011B 940E007D  CALL	_display
    011D CFE5      RJMP	0x0103
    011E 9508      RET
FILE: C:\DOCUME~1\Administrator\桌面\count\delay.c
(0001) 
(0002) #include "config.h"
(0003) 
(0004) void delay_1us(void)
(0005) {
(0006)  asm("nop");
_delay_1us:
    011F 0000      NOP
    0120 9508      RET
(0007) }
(0008) 
(0009) void delay_1ms(void)
(0010) {
(0011)  unsigned int i;
(0012)  for(i=(xtal*143-2);i>0;i--);
_delay_1ms:
  i                    --> R16
    0121 E706      LDI	R16,0x76
    0122 E014      LDI	R17,4
    0123 C002      RJMP	0x0126
    0124 5001      SUBI	R16,1
    0125 4010      SBCI	R17,0
    0126 3000      CPI	R16,0
    0127 0701      CPC	R16,R17
    0128 F7D9      BNE	0x0124
    0129 9508      RET
_delay_1s:
  i                    --> R20
    012A 940E01C7  CALL	push_gset1
(0013) }
(0014) 
(0015) /***********************
(0016) ** 1S延时,误差可能稍大
(0017) ** 250ms*4=1000ms
(0018) ************************/
(0019) void delay_1s(void)
(0020) {
(0021)  unsigned int i;
(0022)    for(i=250;i>0;i--)   //250ms*4=1000ms
    012C EF4A      LDI	R20,0xFA
    012D E050      LDI	R21,0
    012E C003      RJMP	0x0132
(0023)    delay_1ms();
    012F DFF1      RCALL	_delay_1ms
    0130 5041      SUBI	R20,1
    0131 4050      SBCI	R21,0
    0132 3040      CPI	R20,0
    0133 0745      CPC	R20,R21
    0134 F7D1      BNE	0x012F
(0024)    for(i=250;i>0;i--)
    0135 EF4A      LDI	R20,0xFA
    0136 E050      LDI	R21,0
    0137 C003      RJMP	0x013B
(0025)    delay_1ms();
    0138 DFE8      RCALL	_delay_1ms
    0139 5041      SUBI	R20,1
    013A 4050      SBCI	R21,0
    013B 3040      CPI	R20,0
    013C 0745      CPC	R20,R21
    013D F7D1      BNE	0x0138
(0026)    for(i=250;i>0;i--)
    013E EF4A      LDI	R20,0xFA
    013F E050      LDI	R21,0
    0140 C003      RJMP	0x0144
(0027)    delay_1ms();
    0141 DFDF      RCALL	_delay_1ms
    0142 5041      SUBI	R20,1
    0143 4050      SBCI	R21,0
    0144 3040      CPI	R20,0
    0145 0745      CPC	R20,R21
    0146 F7D1      BNE	0x0141
(0028)    for(i=250;i>0;i--)
    0147 EF4A      LDI	R20,0xFA
    0148 E050      LDI	R21,0
    0149 C003      RJMP	0x014D
(0029)    delay_1ms();
    014A DFD6      RCALL	_delay_1ms
    014B 5041      SUBI	R20,1
    014C 4050      SBCI	R21,0
    014D 3040      CPI	R20,0
    014E 0745      CPC	R20,R21
    014F F7D1      BNE	0x014A
    0150 940E01CA  CALL	pop_gset1
    0152 9508      RET
_delay_us:
  i                    --> R20
  n                    --> R22
    0153 940E01C5  CALL	push_gset2
    0155 01B8      MOVW	R22,R16
(0030) }
(0031) 
(0032) /***********************
(0033) **微秒级延时
(0034) ************************/
(0035) void delay_us(unsigned int n)
(0036) {
(0037)  unsigned int i;
(0038)  for(i=n;i>0;i--)
    0156 01AB      MOVW	R20,R22
    0157 C003      RJMP	0x015B
(0039)  delay_1us();
    0158 DFC6      RCALL	_delay_1us
    0159 5041      SUBI	R20,1
    015A 4050      SBCI	R21,0
    015B 3040      CPI	R20,0
    015C 0745      CPC	R20,R21
    015D F7D1      BNE	0x0158
    015E 940E01BC  CALL	pop_gset2
    0160 9508      RET
_delay_ms:
  i                    --> R20
  n                    --> R22
    0161 940E01C5  CALL	push_gset2
    0163 01B8      MOVW	R22,R16
(0040) }
(0041) 
(0042) /***********************
(0043) **毫秒级延时
(0044) ************************/
(0045) void delay_ms(unsigned int n)
(0046) {
(0047)  unsigned int i;
(0048)  for(i=n;i>0;i--)
    0164 01AB      MOVW	R20,R22
    0165 C003      RJMP	0x0169
(0049)  delay_1ms();
    0166 DFBA      RCALL	_delay_1ms
    0167 5041      SUBI	R20,1
    0168 4050      SBCI	R21,0
    0169 3040      CPI	R20,0
    016A 0745      CPC	R20,R21
    016B F7D1      BNE	0x0166
    016C 940E01BC  CALL	pop_gset2
    016E 9508      RET
_delay_s:
  j                    --> R20
  i                    --> R22
  n                    --> R22
    016F 940E01C5  CALL	push_gset2
    0171 01B8      MOVW	R22,R16
(0050) }
(0051) 
(0052) /***********************
(0053) **秒级延时,太浪费资源,不建议使用
(0054) ************************/
(0055) void delay_s(unsigned int n)
(0056) {
(0057)  unsigned int i,j;
(0058)  for(j=n;j>0;j--)
    0172 01AB      MOVW	R20,R22
    0173 C026      RJMP	0x019A
(0059)   {
(0060)    for(i=250;i>0;i--)   //250ms*4=1000ms
    0174 EF6A      LDI	R22,0xFA
    0175 E070      LDI	R23,0
    0176 C003      RJMP	0x017A
(0061)    delay_1ms();
    0177 DFA9      RCALL	_delay_1ms
    0178 5061      SUBI	R22,1
    0179 4070      SBCI	R23,0
    017A 3060      CPI	R22,0
    017B 0767      CPC	R22,R23
    017C F7D1      BNE	0x0177
(0062)    for(i=250;i>0;i--)
    017D EF6A      LDI	R22,0xFA
    017E E070      LDI	R23,0
    017F C003      RJMP	0x0183
(0063)    delay_1ms();
    0180 DFA0      RCALL	_delay_1ms
    0181 5061      SUBI	R22,1
    0182 4070      SBCI	R23,0
    0183 3060      CPI	R22,0
    0184 0767      CPC	R22,R23
    0185 F7D1      BNE	0x0180
(0064)    for(i=250;i>0;i--)
    0186 EF6A      LDI	R22,0xFA
    0187 E070      LDI	R23,0
    0188 C003      RJMP	0x018C
(0065)    delay_1ms();
    0189 DF97      RCALL	_delay_1ms
    018A 5061      SUBI	R22,1
    018B 4070      SBCI	R23,0
    018C 3060      CPI	R22,0
    018D 0767      CPC	R22,R23
    018E F7D1      BNE	0x0189
(0066)    for(i=250;i>0;i--)
    018F EF6A      LDI	R22,0xFA
    0190 E070      LDI	R23,0
    0191 C003      RJMP	0x0195
(0067)    delay_1ms();
FILE: <library>
    0192 DF8E      RCALL	_delay_1ms
    0193 5061      SUBI	R22,1
    0194 4070      SBCI	R23,0
    0195 3060      CPI	R22,0
    0196 0767      CPC	R22,R23
    0197 F7D1      BNE	0x0192
    0198 5041      SUBI	R20,1
    0199 4050      SBCI	R21,0
    019A 3040      CPI	R20,0
    019B 0745      CPC	R20,R21
    019C F6B9      BNE	0x0174
    019D 940E01BC  CALL	pop_gset2
    019F 9508      RET
mod16u:
    01A0 9468      BSET	6
    01A1 C001      RJMP	xdiv16u
div16u:
    01A2 94E8      BCLR	6
xdiv16u:
    01A3 92EA      ST	R14,-Y
    01A4 92FA      ST	R15,-Y
    01A5 938A      ST	R24,-Y
    01A6 24EE      CLR	R14
    01A7 24FF      CLR	R15
    01A8 E180      LDI	R24,0x10
    01A9 0F00      LSL	R16
    01AA 1F11      ROL	R17
    01AB 1CEE      ROL	R14
    01AC 1CFF      ROL	R15
    01AD 16E2      CP	R14,R18
    01AE 06F3      CPC	R15,R19
    01AF F018      BCS	0x01B3
    01B0 1AE2      SUB	R14,R18
    01B1 0AF3      SBC	R15,R19
    01B2 9503      INC	R16
    01B3 958A      DEC	R24
    01B4 F7A1      BNE	0x01A9
    01B5 F416      BRTC	0x01B8
    01B6 2D0E      MOV	R16,R14
    01B7 2D1F      MOV	R17,R15
    01B8 9189      LD	R24,Y+
    01B9 90F9      LD	R15,Y+
    01BA 90E9      LD	R14,Y+
    01BB 9508      RET
pop_gset2:
    01BC E0E2      LDI	R30,2
    01BD 940C01CB  JMP	pop
push_gset5:
    01BF 92FA      ST	R15,-Y
    01C0 92EA      ST	R14,-Y
push_gset4:
    01C1 92DA      ST	R13,-Y
    01C2 92CA      ST	R12,-Y
push_gset3:
    01C3 92BA      ST	R11,-Y
    01C4 92AA      ST	R10,-Y
push_gset2:
    01C5 937A      ST	R23,-Y
    01C6 936A      ST	R22,-Y
push_gset1:
    01C7 935A      ST	R21,-Y
    01C8 934A      ST	R20,-Y
    01C9 9508      RET
pop_gset1:
    01CA E0E1      LDI	R30,1
pop:
    01CB 9149      LD	R20,Y+
    01CC 9159      LD	R21,Y+
    01CD FDE0      SBRC	R30,0
    01CE 9508      RET
    01CF 9169      LD	R22,Y+
    01D0 9179      LD	R23,Y+
    01D1 FDE1      SBRC	R30,1
    01D2 9508      RET
    01D3 90A9      LD	R10,Y+
    01D4 90B9      LD	R11,Y+
    01D5 FDE2      SBRC	R30,2
    01D6 9508      RET
    01D7 90C9      LD	R12,Y+
    01D8 90D9      LD	R13,Y+
    01D9 FDE3      SBRC	R30,3
    01DA 9508      RET
    01DB 90E9      LD	R14,Y+
    01DC 90F9      LD	R15,Y+
    01DD 9508      RET
lsl8:
    01DE 2311      TST	R17
    01DF F019      BEQ	0x01E3
    01E0 0F00      LSL	R16
    01E1 951A      DEC	R17
    01E2 CFFB      RJMP	lsl8
    01E3 9508      RET

⌨️ 快捷键说明

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