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

📄 eeprom开机记忆存储实验.lst

📁 EEPROM开机记忆存储实验
💻 LST
📖 第 1 页 / 共 4 页
字号:
(0111)  else if(data>99)
    0181 E683      LDI	R24,0x63
    0182 E090      LDI	R25,0
    0183 1784      CP	R24,R20
    0184 0795      CPC	R25,R21
    0185 F510      BCC	0x01A8
(0112)  	{
(0113) 	 Seg7_Led_Buf[3]=16;
    0186 E180      LDI	R24,0x10
    0187 93800105  STS	Seg7_Led_Buf+3,R24
(0114)  	 Seg7_Led_Buf[2]=(data%1000)/100;
    0189 EE28      LDI	R18,0xE8
    018A E033      LDI	R19,3
    018B 018A      MOVW	R16,R20
    018C 940E03D8  CALL	mod16u
    018E E624      LDI	R18,0x64
    018F E030      LDI	R19,0
    0190 940E03DA  CALL	div16u
    0192 93000104  STS	Seg7_Led_Buf+2,R16
(0115)  	 Seg7_Led_Buf[1]=(data%100)/10;
    0194 E624      LDI	R18,0x64
    0195 E030      LDI	R19,0
    0196 018A      MOVW	R16,R20
    0197 940E03D8  CALL	mod16u
    0199 E02A      LDI	R18,0xA
    019A E030      LDI	R19,0
    019B 940E03DA  CALL	div16u
    019D 93000103  STS	Seg7_Led_Buf+1,R16
(0116)  	 Seg7_Led_Buf[0]=data%10;
    019F E02A      LDI	R18,0xA
    01A0 E030      LDI	R19,0
    01A1 018A      MOVW	R16,R20
    01A2 940E03D8  CALL	mod16u
    01A4 93000102  STS	Seg7_Led_Buf,R16
(0117) 	 Seg7_Led_Update();
    01A6 DF26      RCALL	_Seg7_Led_Update
(0118) 	}
    01A7 C02D      RJMP	0x01D5
(0119)  else if(data>9)
    01A8 E089      LDI	R24,0x9
    01A9 E090      LDI	R25,0
    01AA 1784      CP	R24,R20
    01AB 0795      CPC	R25,R21
    01AC F4C8      BCC	0x01C6
(0120)  	{
(0121) 	 Seg7_Led_Buf[3]=16;
    01AD E180      LDI	R24,0x10
    01AE 93800105  STS	Seg7_Led_Buf+3,R24
(0122)  	 Seg7_Led_Buf[2]=16;
    01B0 93800104  STS	Seg7_Led_Buf+2,R24
(0123)  	 Seg7_Led_Buf[1]=(data%100)/10;
    01B2 E624      LDI	R18,0x64
    01B3 E030      LDI	R19,0
    01B4 018A      MOVW	R16,R20
    01B5 940E03D8  CALL	mod16u
    01B7 E02A      LDI	R18,0xA
    01B8 E030      LDI	R19,0
    01B9 940E03DA  CALL	div16u
    01BB 93000103  STS	Seg7_Led_Buf+1,R16
(0124)  	 Seg7_Led_Buf[0]=data%10;
    01BD E02A      LDI	R18,0xA
    01BE E030      LDI	R19,0
    01BF 018A      MOVW	R16,R20
    01C0 940E03D8  CALL	mod16u
    01C2 93000102  STS	Seg7_Led_Buf,R16
(0125) 	 Seg7_Led_Update();
    01C4 DF08      RCALL	_Seg7_Led_Update
(0126) 	}
    01C5 C00F      RJMP	0x01D5
(0127)  else
(0128)  	{
(0129) 	 Seg7_Led_Buf[3]=16;
    01C6 E180      LDI	R24,0x10
    01C7 93800105  STS	Seg7_Led_Buf+3,R24
(0130)  	 Seg7_Led_Buf[2]=16;
    01C9 93800104  STS	Seg7_Led_Buf+2,R24
(0131)  	 Seg7_Led_Buf[1]=16;
    01CB 93800103  STS	Seg7_Led_Buf+1,R24
(0132)  	 Seg7_Led_Buf[0]=data%10;
    01CD E02A      LDI	R18,0xA
    01CE E030      LDI	R19,0
    01CF 018A      MOVW	R16,R20
    01D0 940E03D8  CALL	mod16u
    01D2 93000102  STS	Seg7_Led_Buf,R16
(0133) 	 Seg7_Led_Update();
    01D4 DEF8      RCALL	_Seg7_Led_Update
(0134) 	}
    01D5 940E0402  CALL	pop_gset1
    01D7 9508      RET
_Seg7_Led_float:
  temp                 --> R20
  data                 --> Y+8
    01D8 940E03D3  CALL	push_arg4
    01DA 940E03FD  CALL	push_gset2
    01DC 9724      SBIW	R28,4
(0135) }
(0136) /*************************************************************************
(0137) ** 函数名称:HC595显示浮点数据
(0138) ** 功能描述:
(0139) ** 输 入:
(0140) ** 输出	 :
(0141) ** 全局变量:
(0142) ** 调用模块: 
(0143) ** 说明:
(0144) ** 注意:
(0145) **************************************************************************/
(0146) void Seg7_Led_float(float data)
(0147) {
(0148)  unsigned int temp;
(0149)  /*
(0150)  重要说明:data+=0.00001;其中0.00001为容错值
(0151)  解决float数据类型在计算机内部存储的误差问题,可以解决显示问题
(0152)  但是会引入新的计算误差,如果精度要求大于0.00001建议更改容错值或者将此处注释掉 
(0153)  */
(0154)  data+=0.00001;
    01DD 01FE      MOVW	R30,R28
    01DE 8420      LDD	R2,Z+8
    01DF 8431      LDD	R3,Z+9
    01E0 8442      LDD	R4,Z+10
    01E1 8453      LDD	R5,Z+11
    01E2 925A      ST	R5,-Y
    01E3 924A      ST	R4,-Y
    01E4 923A      ST	R3,-Y
    01E5 922A      ST	R2,-Y
    01E6 EB09      LDI	R16,0xB9
    01E7 E010      LDI	R17,0
    01E8 940E041F  CALL	lpm32
    01EA 933A      ST	R19,-Y
    01EB 932A      ST	R18,-Y
    01EC 931A      ST	R17,-Y
    01ED 930A      ST	R16,-Y
    01EE 940E04A8  CALL	add32f
    01F0 01FE      MOVW	R30,R28
    01F1 8700      STD	Z+8,R16
    01F2 8711      STD	Z+9,R17
    01F3 8722      STD	Z+10,R18
    01F4 8733      STD	Z+11,R19
(0155)  point=1;
    01F5 E081      LDI	R24,1
    01F6 93800100  STS	point,R24
(0156)  if(data>999) //错误处理,超出显示范围则全亮
    01F8 EB05      LDI	R16,0xB5
    01F9 E010      LDI	R17,0
    01FA 940E041F  CALL	lpm32
    01FC 933A      ST	R19,-Y
    01FD 932A      ST	R18,-Y
    01FE 931A      ST	R17,-Y
    01FF 930A      ST	R16,-Y
    0200 01FE      MOVW	R30,R28
    0201 8424      LDD	R2,Z+12
    0202 8435      LDD	R3,Z+13
    0203 8446      LDD	R4,Z+14
    0204 8457      LDD	R5,Z+15
    0205 925A      ST	R5,-Y
    0206 924A      ST	R4,-Y
    0207 923A      ST	R3,-Y
    0208 922A      ST	R2,-Y
    0209 940E0506  CALL	cmp32f
    020B F434      BGE	0x0212
(0157)  	{
(0158) 	 HC_595_OUT(0xFF);
    020C EF0F      LDI	R16,0xFF
    020D DEB4      RCALL	_HC_595_OUT
(0159) 	 Seg7_Bitselect_PORT|=((1<<Seg7_Bit0)|(1<<Seg7_Bit1)|(1<<Seg7_Bit2)|(1<<Seg7_Bit3));
    020E B388      IN	R24,0x18
    020F 6F80      ORI	R24,0xF0
    0210 BB88      OUT	0x18,R24
(0160) 	}
    0211 C18E      RJMP	0x03A0
(0161)  else if(data>99)
    0212 EB01      LDI	R16,0xB1
    0213 E010      LDI	R17,0
    0214 940E041F  CALL	lpm32
    0216 933A      ST	R19,-Y
    0217 932A      ST	R18,-Y
    0218 931A      ST	R17,-Y
    0219 930A      ST	R16,-Y
    021A 01FE      MOVW	R30,R28
    021B 8424      LDD	R2,Z+12
    021C 8435      LDD	R3,Z+13
    021D 8446      LDD	R4,Z+14
    021E 8457      LDD	R5,Z+15
    021F 925A      ST	R5,-Y
    0220 924A      ST	R4,-Y
    0221 923A      ST	R3,-Y
    0222 922A      ST	R2,-Y
    0223 940E0506  CALL	cmp32f
    0225 F00C      BLT	0x0227
    0226 C077      RJMP	0x029E
(0162)  	{
(0163) 	 temp=data*10;
    0227 EA0D      LDI	R16,0xAD
    0228 E010      LDI	R17,0
    0229 940E041F  CALL	lpm32
    022B 933A      ST	R19,-Y
    022C 932A      ST	R18,-Y
    022D 931A      ST	R17,-Y
    022E 930A      ST	R16,-Y
    022F 01FE      MOVW	R30,R28
    0230 8424      LDD	R2,Z+12
    0231 8435      LDD	R3,Z+13
    0232 8446      LDD	R4,Z+14
    0233 8457      LDD	R5,Z+15
    0234 925A      ST	R5,-Y
    0235 924A      ST	R4,-Y
    0236 923A      ST	R3,-Y
    0237 922A      ST	R2,-Y
    0238 940E053A  CALL	empy32f
    023A 01FE      MOVW	R30,R28
    023B 8300      STD	Z+0,R16
    023C 8311      STD	Z+1,R17
    023D 8322      STD	Z+2,R18
    023E 8333      STD	Z+3,R19
    023F 01FE      MOVW	R30,R28
    0240 8020      LDD	R2,Z+0
    0241 8031      LDD	R3,Z+1
    0242 8042      LDD	R4,Z+2
    0243 8053      LDD	R5,Z+3
    0244 925A      ST	R5,-Y
    0245 924A      ST	R4,-Y
    0246 923A      ST	R3,-Y
    0247 922A      ST	R2,-Y
    0248 EA09      LDI	R16,0xA9
    0249 E010      LDI	R17,0
    024A 940E041F  CALL	lpm32
    024C 933A      ST	R19,-Y
    024D 932A      ST	R18,-Y
    024E 931A      ST	R17,-Y
    024F 930A      ST	R16,-Y
    0250 940E0506  CALL	cmp32f
    0252 F0CC      BLT	0x026C
    0253 01FE      MOVW	R30,R28
    0254 8020      LDD	R2,Z+0
    0255 8031      LDD	R3,Z+1
    0256 8042      LDD	R4,Z+2
    0257 8053      LDD	R5,Z+3
    0258 925A      ST	R5,-Y
    0259 924A      ST	R4,-Y
    025A 923A      ST	R3,-Y
    025B 922A      ST	R2,-Y
    025C EA09      LDI	R16,0xA9
    025D E010      LDI	R17,0
    025E 940E041F  CALL	lpm32
    0260 933A      ST	R19,-Y
    0261 932A      ST	R18,-Y
    0262 931A      ST	R17,-Y
    0263 930A      ST	R16,-Y
    0264 940E04B0  CALL	sub32f
    0266 940E0433  CALL	fp2int
    0268 01B8      MOVW	R22,R16
    0269 5060      SUBI	R22,0
    026A 4870      SBCI	R23,0x80
    026B C008      RJMP	0x0274
    026C 01FE      MOVW	R30,R28
    026D 8100      LDD	R16,Z+0
    026E 8111      LDD	R17,Z+1
    026F 8122      LDD	R18,Z+2
    0270 8133      LDD	R19,Z+3
    0271 940E0433  CALL	fp2int
    0273 01B8      MOVW	R22,R16
    0274 01AB      MOVW	R20,R22
(0164) 	 point_pos=1;
    0275 E081      LDI	R24,1
    0276 93800101  STS	point_pos,R24
(0165) 	 Seg7_Led_Buf[3]=temp/1000;
    0278 EE28      LDI	R18,0xE8
    0279 E033      LDI	R19,3
    027A 018A      MOVW	R16,R20
    027B 940E03DA  CALL	div16u
    027D 93000105  STS	Seg7_Led_Buf+3,R16
(0166)  	 Seg7_Led_Buf[2]=(temp%1000)/100;
    027F EE28      LDI	R18,0xE8
    0280 E033      LDI	R19,3
    0281 018A      MOVW	R16,R20
    0282 940E03D8  CALL	mod16u
    0284 E624      LDI	R18,0x64
    0285 E030      LDI	R19,0
    0286 940E03DA  CALL	div16u
    0288 93000104  STS	Seg7_Led_Buf+2,R16
(0167)  	 Seg7_Led_Buf[1]=(temp%100)/10;
    028A E624      LDI	R18,0x64
    028B E030      LDI	R19,0
    028C 018A      MOVW	R16,R20
    028D 940E03D8  CALL	mod16u
    028F E02A      LDI	R18,0xA
    0290 E030      LDI	R19,0
    0291 940E03DA  CALL	div16u
    0293 93000103  STS	Seg7_Led_Buf+1,R16
(0168)  	 Seg7_Led_Buf[0]=temp%10;
    0295 E02A      LDI	R18,0xA
    0296 E030      LDI	R19,0
    0297 018A      MOVW	R16,R20
    0298 940E03D8  CALL	mod16u
    029A 93000102  STS	Seg7_Led_Buf,R16
(0169) 	 Seg7_Led_Update();
    029C DE30      RCALL	_Seg7_Led_Update
(0170) 	}
    029D C102      RJMP	0x03A0
(0171)  else if(data>9)
    029E EA05      LDI	R16,0xA5
    029F E010      LDI	R17,0
    02A0 940E041F  CALL	lpm32
    02A2 933A      ST	R19,-Y
    02A3 932A      ST	R18,-Y
    02A4 931A      ST	R17,-Y
    02A5 930A      ST	R16,-Y
    02A6 01FE      MOVW	R30,R28
    02A7 8424      LDD	R2,Z+12
    02A8 8435      LDD	R3,Z+13
    02A9 8446      LDD	R4,Z+14
    02AA 8457      LDD	R5,Z+15
    02AB 925A      ST	R5,-Y
    02AC 924A      ST	R4,-Y
    02AD 923A      ST	R3,-Y
    02AE 922A      ST	R2,-Y
    02AF 940E0506  CALL	cmp32f
    02B1 F00C      BLT	0x02B3
    02B2 C077      RJMP	0x032A
(0172)  	{
(0173) 	 temp=data*100;
    02B3 EA01      LDI	R16,0xA1
    02B4 E010      LDI	R17,0
    02B5 940E041F  CALL	lpm32
    02B7 933A      ST	R19,-Y
    02B8 932A      ST	R18,-Y
    02B9 931A      ST	R17,-Y
    02BA 930A      ST	R16,-Y
    02BB 01FE      MOVW	R30,R28
    02BC 8424      LDD	R2,Z+12
    02BD 8435      LDD	R3,Z+13
    02BE 8446      LDD	R4,Z+14
    02BF 8457      LDD	R5,Z+15
    02C0 925A      ST	R5,-Y
    02C1 924A      ST	R4,-Y
    02C2 923A      ST	R3,-Y
    02C3 922A      ST	R2,-Y
    02C4 940E053A  CALL	empy32f
    02C6 01FE      MOVW	R30,R28
    02C7 8300      STD	Z+0,R16
    02C8 8311      STD	Z+1,R17
    02C9 8322      STD	Z+2,R18
    02CA 8333      STD	Z+3,R19
    02CB 01FE      MOVW	R30,R28
    02CC 8020      LDD	R2,Z+0
    02CD 8031      LDD	R3,Z+1
    02CE 8042      LDD	R4,Z+2
    02CF 8053      LDD	R5,Z+3
    02D0 925A      ST	R5,-Y
    02D1 924A      ST	R4,-Y
    02D2 923A      ST	R3,-Y
    02D3 922A      ST	R2,-Y
    02D4 EA09      LDI	R16,0xA9
    02D5 E010      LDI	R17,0
    02D6 940E041F  CALL	lpm32
    02D8 933A      ST	R19,-Y
    02D9 932A      ST	R18,-Y
    02DA 931A      ST	R17,-Y
    02DB 930A      ST	R16,-Y
    02DC 940E0506  CALL	cmp32f
    02DE F0CC      BLT	0x02F8
    02DF 01FE      MOVW	R30,R28
    02E0 8020      LDD	R2,Z+0
    02E1 8031      LDD	R3,Z+1
    02E2 8042      LDD	R4,Z+2
    02E3 8053      LDD	R5,Z+3
    02E4 925A      ST	R5,-Y
    02E5 924A      ST	R4,-Y
    02E6 923A      ST	R3,-Y
    02E7 922A      ST	R2,-Y
    02E8 EA09      LDI	R16,0xA9
    02E9 E010      LDI	R17,0
    02EA 940E041F  CALL	lpm32
    02EC 933A      ST	R19,-Y
    02ED 932A      ST	R18,-Y
    02EE 931A      ST	R17,-Y
    02EF 930A      ST	R16,-Y
    02F0 940E04B0  CALL	sub32f
    02F2 940E0433  CALL	fp2int
    02F4 01B8      MOVW	R22,R16
    02F5 5060      SUBI	R22,0
    02F6 4870      SBCI	R23,0x80
    02F7 C008      RJMP	0x0300
    02F8 01FE      MOVW	R30,R28
    02F9 8100      LDD	R16,Z+0
    02FA 8111      LDD	R17,Z+1
    02FB 8122      LDD	R18,Z+2
    02FC 8133      LDD	R19,Z+3
    02FD 940E0433  CALL	fp2int
    02FF 01B8      MOVW	R22,R16
    0300 01AB      MOVW	R20,R22
(0174) 	 point_pos=2;
    0301 E082      LDI	R24,2
    0302 93800101  STS	point_pos,R24
(0175) 	 Seg7_Led_Buf[3]=temp/1000;
    0304 EE28      LDI	R18,0xE8
    0305 E033      LDI	R19,3
    0306 018A      MOVW	R16,R20
    0307 940E03DA  CALL	div16u
    0309 93000105  STS	Seg7_Led_Buf+3,R16
(0176)  	 Seg7_Led_Buf[2]=(temp%1000)/100;
    030B EE28      LDI	R18,0xE8
    030C E033      LDI	R19,3

⌨️ 快捷键说明

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