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

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

📁 EEPROM开机记忆存储实验
💻 LST
📖 第 1 页 / 共 4 页
字号:
    030D 018A      MOVW	R16,R20
    030E 940E03D8  CALL	mod16u
    0310 E624      LDI	R18,0x64
    0311 E030      LDI	R19,0
    0312 940E03DA  CALL	div16u
    0314 93000104  STS	Seg7_Led_Buf+2,R16
(0177)  	 Seg7_Led_Buf[1]=(temp%100)/10;
    0316 E624      LDI	R18,0x64
    0317 E030      LDI	R19,0
    0318 018A      MOVW	R16,R20
    0319 940E03D8  CALL	mod16u
    031B E02A      LDI	R18,0xA
    031C E030      LDI	R19,0
    031D 940E03DA  CALL	div16u
    031F 93000103  STS	Seg7_Led_Buf+1,R16
(0178)  	 Seg7_Led_Buf[0]=temp%10;
    0321 E02A      LDI	R18,0xA
    0322 E030      LDI	R19,0
    0323 018A      MOVW	R16,R20
    0324 940E03D8  CALL	mod16u
    0326 93000102  STS	Seg7_Led_Buf,R16
(0179) 	 Seg7_Led_Update();
    0328 DDA4      RCALL	_Seg7_Led_Update
(0180) 	}
    0329 C076      RJMP	0x03A0
(0181)  else
(0182)  	{
(0183) 	 temp=data*1000;
    032A E90D      LDI	R16,0x9D
    032B E010      LDI	R17,0
    032C 940E041F  CALL	lpm32
    032E 933A      ST	R19,-Y
    032F 932A      ST	R18,-Y
    0330 931A      ST	R17,-Y
    0331 930A      ST	R16,-Y
    0332 01FE      MOVW	R30,R28
    0333 8424      LDD	R2,Z+12
    0334 8435      LDD	R3,Z+13
    0335 8446      LDD	R4,Z+14
    0336 8457      LDD	R5,Z+15
    0337 925A      ST	R5,-Y
    0338 924A      ST	R4,-Y
    0339 923A      ST	R3,-Y
    033A 922A      ST	R2,-Y
    033B 940E053A  CALL	empy32f
    033D 01FE      MOVW	R30,R28
    033E 8300      STD	Z+0,R16
    033F 8311      STD	Z+1,R17
    0340 8322      STD	Z+2,R18
    0341 8333      STD	Z+3,R19
    0342 01FE      MOVW	R30,R28
    0343 8020      LDD	R2,Z+0
    0344 8031      LDD	R3,Z+1
    0345 8042      LDD	R4,Z+2
    0346 8053      LDD	R5,Z+3
    0347 925A      ST	R5,-Y
    0348 924A      ST	R4,-Y
    0349 923A      ST	R3,-Y
    034A 922A      ST	R2,-Y
    034B EA09      LDI	R16,0xA9
    034C E010      LDI	R17,0
    034D 940E041F  CALL	lpm32
    034F 933A      ST	R19,-Y
    0350 932A      ST	R18,-Y
    0351 931A      ST	R17,-Y
    0352 930A      ST	R16,-Y
    0353 940E0506  CALL	cmp32f
    0355 F0CC      BLT	0x036F
    0356 01FE      MOVW	R30,R28
    0357 8020      LDD	R2,Z+0
    0358 8031      LDD	R3,Z+1
    0359 8042      LDD	R4,Z+2
    035A 8053      LDD	R5,Z+3
    035B 925A      ST	R5,-Y
    035C 924A      ST	R4,-Y
    035D 923A      ST	R3,-Y
    035E 922A      ST	R2,-Y
    035F EA09      LDI	R16,0xA9
    0360 E010      LDI	R17,0
    0361 940E041F  CALL	lpm32
    0363 933A      ST	R19,-Y
    0364 932A      ST	R18,-Y
    0365 931A      ST	R17,-Y
    0366 930A      ST	R16,-Y
    0367 940E04B0  CALL	sub32f
    0369 940E0433  CALL	fp2int
    036B 01B8      MOVW	R22,R16
    036C 5060      SUBI	R22,0
    036D 4870      SBCI	R23,0x80
    036E C008      RJMP	0x0377
    036F 01FE      MOVW	R30,R28
    0370 8100      LDD	R16,Z+0
    0371 8111      LDD	R17,Z+1
    0372 8122      LDD	R18,Z+2
    0373 8133      LDD	R19,Z+3
    0374 940E0433  CALL	fp2int
    0376 01B8      MOVW	R22,R16
    0377 01AB      MOVW	R20,R22
(0184) 	 point_pos=3;
    0378 E083      LDI	R24,3
    0379 93800101  STS	point_pos,R24
(0185) 	 Seg7_Led_Buf[3]=temp/1000;
    037B EE28      LDI	R18,0xE8
    037C E033      LDI	R19,3
    037D 018A      MOVW	R16,R20
    037E 940E03DA  CALL	div16u
    0380 93000105  STS	Seg7_Led_Buf+3,R16
(0186)  	 Seg7_Led_Buf[2]=(temp%1000)/100;
    0382 EE28      LDI	R18,0xE8
    0383 E033      LDI	R19,3
    0384 018A      MOVW	R16,R20
    0385 940E03D8  CALL	mod16u
    0387 E624      LDI	R18,0x64
    0388 E030      LDI	R19,0
    0389 940E03DA  CALL	div16u
    038B 93000104  STS	Seg7_Led_Buf+2,R16
(0187)  	 Seg7_Led_Buf[1]=(temp%100)/10;
    038D E624      LDI	R18,0x64
    038E E030      LDI	R19,0
    038F 018A      MOVW	R16,R20
    0390 940E03D8  CALL	mod16u
    0392 E02A      LDI	R18,0xA
    0393 E030      LDI	R19,0
    0394 940E03DA  CALL	div16u
    0396 93000103  STS	Seg7_Led_Buf+1,R16
(0188)  	 Seg7_Led_Buf[0]=temp%10;
    0398 E02A      LDI	R18,0xA
    0399 E030      LDI	R19,0
    039A 018A      MOVW	R16,R20
    039B 940E03D8  CALL	mod16u
    039D 93000102  STS	Seg7_Led_Buf,R16
(0189) 	 Seg7_Led_Update();
    039F DD2D      RCALL	_Seg7_Led_Update
(0190) 	}
(0191)  point=0;
    03A0 2422      CLR	R2
    03A1 92200100  STS	point,R2
    03A3 9624      ADIW	R28,4
    03A4 940E03F4  CALL	pop_gset2
    03A6 9624      ADIW	R28,4
    03A7 9508      RET
FILE: H:\MEGA128开发板\TS8900-M128\EEPROM开机记忆存储实验\EEPROM开机记忆存储实验\main.c
(0001) /************************************************
(0002) 文件:main.c
(0003) 用途:
(0004) 注意:内部8M晶振
(0005) ************************************************/
(0006) 
(0007) #include "config.h"
(0008) 
(0009) void EEPROM_write(unsigned int uiAddress,unsigned char ucData)
(0010) {
(0011)  while(EECR&(1<<EEWE));
_EEPROM_write:
  ucData               --> R18
  uiAddress            --> R16
    03A8 99E1      SBIC	0x1C,1
    03A9 CFFE      RJMP	_EEPROM_write
(0012)  EEAR = uiAddress;
    03AA BB1F      OUT	0x1F,R17
    03AB BB0E      OUT	0x1E,R16
(0013)  EEDR = ucData;
    03AC BB2D      OUT	0x1D,R18
(0014)  EECR |=(1<<EEMWE);
    03AD 9AE2      SBI	0x1C,2
(0015)  EECR |=(1<<EEWE);
    03AE 9AE1      SBI	0x1C,1
    03AF 9508      RET
(0016) }
(0017) 
(0018) unsigned char EEPROM_read(unsigned int uiAddress)
(0019) {
(0020)  while(EECR&(1<<EEWE));
_EEPROM_read:
  uiAddress            --> R16
    03B0 99E1      SBIC	0x1C,1
    03B1 CFFE      RJMP	_EEPROM_read
(0021)  EEAR = uiAddress;
    03B2 BB1F      OUT	0x1F,R17
    03B3 BB0E      OUT	0x1E,R16
(0022)  EECR |=(1<<EERE);
    03B4 9AE0      SBI	0x1C,0
(0023)  return EEDR;
    03B5 B30D      IN	R16,0x1D
    03B6 9508      RET
(0024) }
(0025) 
(0026) void main(void)
(0027) {
(0028)  unsigned char temp;
(0029)  HC_595_init();
_main:
  temp                 --> R20
    03B7 940E00B0  CALL	_HC_595_init
(0030)  
(0031)  temp=EEPROM_read(0x01);
    03B9 E001      LDI	R16,1
    03BA E010      LDI	R17,0
    03BB DFF4      RCALL	_EEPROM_read
    03BC 2F40      MOV	R20,R16
(0032)  temp++;
    03BD 9543      INC	R20
(0033)  EEPROM_write(0x01,temp);
    03BE 2F24      MOV	R18,R20
    03BF E001      LDI	R16,1
    03C0 E010      LDI	R17,0
    03C1 DFE6      RCALL	_EEPROM_write
    03C2 C004      RJMP	0x03C7
(0034)  
(0035)  while(1)
(0036)  	{
(0037) 		 Seg7_Led_display(temp);
    03C3 2F04      MOV	R16,R20
    03C4 2711      CLR	R17
    03C5 940E0148  CALL	_Seg7_Led_display
    03C7 CFFB      RJMP	0x03C3
    03C8 9508      RET
FILE: H:\MEGA128开发板\TS8900-M128\EEPROM开机记忆存储实验\EEPROM开机记忆存储实验\spi.c
(0001) /************************************************
(0002) 文件:spi.c
(0003) 用途:SPI驱动
(0004) 注意:
(0005) ************************************************/
(0006) #include "config.h"
(0007) /*************************************************************************
(0008) ** 函数名称: spi_init(void)
(0009) ** 功能描述: SPI初始化
(0010) ** 输 入: 
(0011) ** 输出	 : 
(0012) ** 全局变量: 无
(0013) ** 调用模块: 
(0014) ** 说明:
(0015) ** 注意:
(0016) **************************************************************************/
(0017) void spi_init(void)
(0018) {
(0019)  	 DDRB |= (1<<MOSI)|(1<<SCK)|(1<<SS);//设置MOSI,SCK输出
_spi_init:
    03C9 B387      IN	R24,0x17
    03CA 6087      ORI	R24,7
    03CB BB87      OUT	0x17,R24
(0020)  	 SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0)|(1<<SPR1);//使能SPI,主机模式
    03CC E583      LDI	R24,0x53
    03CD B98D      OUT	0x0D,R24
    03CE 9508      RET
(0021) }
(0022) /*************************************************************************
(0023) ** 函数名称: SPI_MasterTransmit(char Data)
(0024) ** 功能描述: SPI主机发送数据
(0025) ** 输 入: Data 需要通过SPI传输的数据
(0026) ** 输出	 : 
(0027) ** 全局变量: 无
(0028) ** 调用模块: 
(0029) ** 说明:
(0030) ** 注意:
(0031) **************************************************************************/
(0032) void SPI_MasterTransmit(char Data)
(0033) {
(0034)  	 /* 启动数据传输 */
(0035)  	 SPDR = Data;
_SPI_MasterTransmit:
  Data                 --> R16
    03CF B90F      OUT	0x0F,R16
(0036)  	 /* 等待传输结束 */
(0037)  	 while(!(SPSR & (1<<SPIF)))
FILE: <library>
    03D0 9B77      SBIS	0x0E,7
    03D1 CFFE      RJMP	0x03D0
    03D2 9508      RET
push_arg4:
    03D3 933A      ST	R19,-Y
    03D4 932A      ST	R18,-Y
push_arg2:
    03D5 931A      ST	R17,-Y
    03D6 930A      ST	R16,-Y
    03D7 9508      RET
mod16u:
    03D8 9468      BSET	6
    03D9 C001      RJMP	xdiv16u
div16u:
    03DA 94E8      BCLR	6
xdiv16u:
    03DB 92EA      ST	R14,-Y
    03DC 92FA      ST	R15,-Y
    03DD 938A      ST	R24,-Y
    03DE 24EE      CLR	R14
    03DF 24FF      CLR	R15
    03E0 E180      LDI	R24,0x10
    03E1 0F00      LSL	R16
    03E2 1F11      ROL	R17
    03E3 1CEE      ROL	R14
    03E4 1CFF      ROL	R15
    03E5 16E2      CP	R14,R18
    03E6 06F3      CPC	R15,R19
    03E7 F018      BCS	0x03EB
    03E8 1AE2      SUB	R14,R18
    03E9 0AF3      SBC	R15,R19
    03EA 9503      INC	R16
    03EB 958A      DEC	R24
    03EC F7A1      BNE	0x03E1
    03ED F416      BRTC	0x03F0
    03EE 2D0E      MOV	R16,R14
    03EF 2D1F      MOV	R17,R15
    03F0 9189      LD	R24,Y+
    03F1 90F9      LD	R15,Y+
    03F2 90E9      LD	R14,Y+
    03F3 9508      RET
pop_gset2:
    03F4 E0E2      LDI	R30,2
    03F5 940C0403  JMP	pop
push_gset5:
    03F7 92FA      ST	R15,-Y
    03F8 92EA      ST	R14,-Y
push_gset4:
    03F9 92DA      ST	R13,-Y
    03FA 92CA      ST	R12,-Y
push_gset3:
    03FB 92BA      ST	R11,-Y
    03FC 92AA      ST	R10,-Y
push_gset2:
    03FD 937A      ST	R23,-Y
    03FE 936A      ST	R22,-Y
push_gset1:
    03FF 935A      ST	R21,-Y
    0400 934A      ST	R20,-Y
    0401 9508      RET
pop_gset1:
    0402 E0E1      LDI	R30,1
pop:
    0403 9149      LD	R20,Y+
    0404 9159      LD	R21,Y+
    0405 FDE0      SBRC	R30,0
    0406 9508      RET
    0407 9169      LD	R22,Y+
    0408 9179      LD	R23,Y+
    0409 FDE1      SBRC	R30,1
    040A 9508      RET
    040B 90A9      LD	R10,Y+
    040C 90B9      LD	R11,Y+
    040D FDE2      SBRC	R30,2
    040E 9508      RET
    040F 90C9      LD	R12,Y+
    0410 90D9      LD	R13,Y+
    0411 FDE3      SBRC	R30,3
    0412 9508      RET
    0413 90E9      LD	R14,Y+
    0414 90F9      LD	R15,Y+
    0415 9508      RET
neg32:
    0416 9500      COM	R16
    0417 9510      COM	R17
    0418 9520      COM	R18
    0419 9530      COM	R19
    041A 5F0F      SUBI	R16,0xFF
    041B 4F1F      SBCI	R17,0xFF
    041C 4F2F      SBCI	R18,0xFF
    041D 4F3F      SBCI	R19,0xFF
    041E 9508      RET
lpm32:
    041F 93EA      ST	R30,-Y
    0420 93FA      ST	R31,-Y
    0421 920A      ST	R0,-Y
    0422 2FE0      MOV	R30,R16
    0423 2FF1      MOV	R31,R17
    0424 95C8      LPM
    0425 2D00      MOV	R16,R0
    0426 9631      ADIW	R30,1
    0427 95C8      LPM
    0428 2D10      MOV	R17,R0
    0429 9631      ADIW	R30,1
    042A 95C8      LPM
    042B 2D20      MOV	R18,R0
    042C 9631      ADIW	R30,1
    042D 95C8      LPM
    042E 2D30      MOV	R19,R0
    042F 9009      LD	R0,Y+
    0430 91F9      LD	R31,Y+
    0431 91E9      LD	R30,Y+
    0432 9508      RET
fp2int:
    0433 940E0584  CALL	savfacc1
    0435 D014      RCALL	FTOI
    0436 2F02      MOV	R16,R18
    0437 2F13      MOV	R17,R19
    0438 FD87      SBRC	R24,7
    0439 C002      RJMP	nojump1
    043A 940C0587  JMP	restorefacc1
nojump1:
    043C 9510      COM	R17
    043D 9501      NEG	R16
    043E 4F1F      SBCI	R17,0xFF
    043F 940C0587  JMP	restorefacc1
fp2long:
    0441 940E0584  CALL	savfacc1
    0443 D008      RCALL	FTOL
    0444 FF87      SBRS	R24,7
    0445 C002      RJMP	nojump2
    0446 940E0416  CALL	neg32
nojump2:
    0448 940C0587  JMP	restorefacc1
FTOI:
    044A E0BE      LDI	R27,0xE

⌨️ 快捷键说明

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