📄 测试.lst
字号:
5A6 9631 ADIW R30,1
5A7 0FEE LSL R30
5A8 1FFF ROL R31
5A9 0FE8 ADD R30,R24
5AA 1FF9 ADC R31,R25
5AB 8020 LDD R2,Z+0
5AC 8031 LDD R3,Z+1
5AD 81E8 LDD R30,Y+0
5AE 81F9 LDD R31,Y+1
5AF 8231 STD Z+1,R3
5B0 8220 STD Z+0,R2
5B1 9508 RET
(0079) }
(0080)
(0081) /**************************************************************************
(0082) * 函数原型: void ISD_PU(void);
(0083) * 功 能: 上电
(0084) **************************************************************************/
(0085) void ISD_PU(void){
(0086) ISD_SendData(PU);
_ISD_PU:
5B2 E101 LDI R16,0x11
5B3 E010 LDI R17,0
5B4 DFD3 RCALL _ISD_SendData
(0087) ISD_SendData(0x00);
5B5 2700 CLR R16
5B6 2711 CLR R17
5B7 DFD0 RCALL _ISD_SendData
(0088) SS_1;
5B8 9AC4 SBI 0x18,4
(0089) delay_ms(50);
5B9 E302 LDI R16,0x32
5BA E010 LDI R17,0
5BB DDD4 RCALL _delay_ms
5BC 9508 RET
(0090) }
(0091) /**************************************************************************
(0092) * 函数原型: void ISD_CHK_MEM(void);
(0093) * 功 能: 空间检查
(0094) **************************************************************************/
(0095) void ISD_CHK_MEM(void){
(0096) ISD_SendData(CHK_MEM);
_ISD_CHK_MEM:
5BD E509 LDI R16,0x59
5BE E010 LDI R17,0
5BF DFC8 RCALL _ISD_SendData
(0097) ISD_SendData(0x00);
5C0 2700 CLR R16
5C1 2711 CLR R17
5C2 DFC5 RCALL _ISD_SendData
(0098) SS_1;
5C3 9AC4 SBI 0x18,4
(0099) delay_ms(10);
5C4 E00A LDI R16,0xA
5C5 E010 LDI R17,0
5C6 DDC9 RCALL _delay_ms
5C7 9508 RET
(0100) }
(0101)
(0102) /**************************************************************************
(0103) * 函数原型: void ISD_Play(void);
(0104) * 功 能: 播放
(0105) **************************************************************************/
(0106) void ISD_Play(void){
(0107) ISD_SendData(PLAY);
_ISD_Play:
5C8 E500 LDI R16,0x50
5C9 E010 LDI R17,0
5CA DFBD RCALL _ISD_SendData
(0108) ISD_SendData(0x00);
5CB 2700 CLR R16
5CC 2711 CLR R17
5CD DFBA RCALL _ISD_SendData
(0109) SS_1;
5CE 9AC4 SBI 0x18,4
(0110) delay_ms(10);
5CF E00A LDI R16,0xA
5D0 E010 LDI R17,0
5D1 DDBE RCALL _delay_ms
5D2 9508 RET
(0111) }
(0112) /**************************************************************************
(0113) * 函数原型: void ISD_Stop(void);
(0114) * 功 能: 停止
(0115) **************************************************************************/
(0116)
(0117) void ISD_Stop(void){
(0118) ISD_SendData(STOP);
_ISD_Stop:
5D3 E102 LDI R16,0x12
5D4 E010 LDI R17,0
5D5 DFB2 RCALL _ISD_SendData
(0119) ISD_SendData(0x00);
5D6 2700 CLR R16
5D7 2711 CLR R17
5D8 DFAF RCALL _ISD_SendData
(0120) SS_1;
5D9 9AC4 SBI 0x18,4
(0121) delay_ms(50);
5DA E302 LDI R16,0x32
5DB E010 LDI R17,0
5DC DDB3 RCALL _delay_ms
5DD 9508 RET
(0122) }
(0123)
(0124) /**************************************************************************
(0125) * 函数原型: void ISD_FWD(void);
(0126) * 功 能: 下一曲
(0127) **************************************************************************/
(0128)
(0129) void ISD_FWD(void){
(0130) ISD_SendData(FWD);
_ISD_FWD:
5DE E508 LDI R16,0x58
5DF E010 LDI R17,0
5E0 DFA7 RCALL _ISD_SendData
(0131) ISD_SendData(0x00);
5E1 2700 CLR R16
5E2 2711 CLR R17
5E3 DFA4 RCALL _ISD_SendData
(0132) SS_1;
5E4 9AC4 SBI 0x18,4
(0133) delay_ms(50);
5E5 E302 LDI R16,0x32
5E6 E010 LDI R17,0
5E7 DDA8 RCALL _delay_ms
5E8 9508 RET
(0134) }
(0135) /**************************************************************************
(0136) * 函数原型: void ISD_Reset(void);
(0137) * 功 能: 复位
(0138) **************************************************************************/
(0139) void ISD_Reset(void){
(0140) ISD_SendData(RESET);
_ISD_Reset:
5E9 E103 LDI R16,0x13
5EA E010 LDI R17,0
5EB DF9C RCALL _ISD_SendData
(0141) ISD_SendData(0x00);
5EC 2700 CLR R16
5ED 2711 CLR R17
5EE DF99 RCALL _ISD_SendData
(0142) SS_1;
5EF 9AC4 SBI 0x18,4
(0143) delay_ms(50);
5F0 E302 LDI R16,0x32
5F1 E010 LDI R17,0
5F2 DD9D RCALL _delay_ms
5F3 9508 RET
(0144) }
(0145)
(0146) /**************************************************************************
(0147) * 函数原型: void ISD_PD(void);
(0148) * 功 能: 掉电
(0149) **************************************************************************/
(0150)
(0151) void ISD_PD(void){
(0152) ISD_SendData(PD);
_ISD_PD:
5F4 E107 LDI R16,0x17
5F5 E010 LDI R17,0
5F6 DF91 RCALL _ISD_SendData
(0153) ISD_SendData(0x00);
5F7 2700 CLR R16
5F8 2711 CLR R17
5F9 DF8E RCALL _ISD_SendData
(0154) SS_1;
5FA 9AC4 SBI 0x18,4
5FB 9508 RET
(0155) }
(0156)
(0157) /**************************************************************************
(0158) * 函数原型: void ClrInt(void);
(0159) * 功 能: 清除中断
(0160) **************************************************************************/
(0161) void ClrInt(void){
(0162) ISD_SendData(CLI_INT);
_ClrInt:
5FC E104 LDI R16,0x14
5FD E010 LDI R17,0
5FE DF89 RCALL _ISD_SendData
(0163) ISD_SendData(0x00);
5FF 2700 CLR R16
600 2711 CLR R17
601 DF86 RCALL _ISD_SendData
(0164) SS_1;
602 9AC4 SBI 0x18,4
(0165) delay_ms(10); //延迟10ms
603 E00A LDI R16,0xA
604 E010 LDI R17,0
605 DD8A RCALL _delay_ms
606 9508 RET
(0166) }
(0167) /**************************************************************************
(0168) * 函数原型: void ISD_WR_NVCFG(void);
(0169) * 功 能: 永久写入寄存器
(0170) **************************************************************************/
(0171) void ISD_WR_NVCFG(void)
(0172) {
(0173) ISD_SendData(WR_NVCFG);
_ISD_WR_NVCFG:
607 E506 LDI R16,0x56
608 E010 LDI R17,0
609 DF7E RCALL _ISD_SendData
(0174) ISD_SendData(0x00);
60A 2700 CLR R16
60B 2711 CLR R17
60C DF7B RCALL _ISD_SendData
(0175) SS_1;
60D 9AC4 SBI 0x18,4
(0176) delay_ms(10); //延迟10ms
60E E00A LDI R16,0xA
60F E010 LDI R17,0
610 DD7F RCALL _delay_ms
611 9508 RET
(0177) }
(0178)
(0179) /**************************************************************************
(0180) * 函数原型: ERASE(void);
(0181) * 功 能: 擦除当前曲目
(0182) **************************************************************************/
(0183) void ISD_ERASE(void){
(0184) ISD_SendData(ERASE);
_ISD_ERASE:
612 E502 LDI R16,0x52
613 E010 LDI R17,0
614 DF73 RCALL _ISD_SendData
(0185) ISD_SendData(0x00);
615 2700 CLR R16
616 2711 CLR R17
617 DF70 RCALL _ISD_SendData
(0186) SS_1;
618 9AC4 SBI 0x18,4
(0187) delay_ms(10);
619 E00A LDI R16,0xA
61A E010 LDI R17,0
61B DD74 RCALL _delay_ms
61C 9508 RET
(0188) }
(0189)
(0190) /**************************************************************************
(0191) * 函数原型: void Erase_All(void);
(0192) * 功 能: 全部删除
(0193) **************************************************************************/
(0194) void Erase_All(void){
(0195) ISD_SendData(G_ERASE);
_Erase_All:
61D E503 LDI R16,0x53
61E E010 LDI R17,0
61F DF68 RCALL _ISD_SendData
(0196) ISD_SendData(0x00);
620 2700 CLR R16
621 2711 CLR R17
622 DF65 RCALL _ISD_SendData
(0197) SS_1;
623 9AC4 SBI 0x18,4
(0198) delay_ms(100); //延迟10ms
624 E604 LDI R16,0x64
625 E010 LDI R17,0
626 DD69 RCALL _delay_ms
627 9508 RET
_RdStatus:
628 92AA ST R10,-Y
(0199) }
(0200)
(0201) /**************************************************************************
(0202) * 函数原型: void RdStatus(void);
(0203) * 功 能: 读取状态
(0204) **************************************************************************/
(0205) void RdStatus(void){
(0206) ISD_SendData(RD_STATUS);
629 E105 LDI R16,0x15
62A E010 LDI R17,0
62B DF5C RCALL _ISD_SendData
(0207) ISD_SendData(0x00);
62C 2700 CLR R16
62D 2711 CLR R17
62E DF59 RCALL _ISD_SendData
(0208) ISD_SendData(0x00);
62F 2700 CLR R16
630 2711 CLR R17
631 DF56 RCALL _ISD_SendData
(0209) SS_1;
632 9AC4 SBI 0x18,4
(0210) delay_ms(10); //延迟10ms
633 E00A LDI R16,0xA
634 E010 LDI R17,0
635 DD5A RCALL _delay_ms
(0211) SR0_L =ISD_SendData(RD_STATUS); //SR0低位
636 E105 LDI R16,0x15
637 E010 LDI R17,0
638 DF4F RCALL _ISD_SendData
639 9300 00D9 STS SR0_L,R16
(0212) SR0_H =ISD_SendData(0x00); //SRO高位
63B 2700 CLR R16
63C 2711 CLR R17
63D DF4A RCALL _ISD_SendData
63E 9300 00D8 STS SR0_H,R16
(0213) SR1 =ISD_SendData(0x00); //SR1
640 2700 CLR R16
641 2711 CLR R17
642 DF45 RCALL _ISD_SendData
643 2EA0 MOV R10,R16
644 92A0 00D7 STS SR1,R10
(0214) SS_1;
646 9AC4 SBI 0x18,4
(0215) delay_ms(10);
647 E00A LDI R16,0xA
648 E010 LDI R17,0
649 DD46 RCALL _delay_ms
64A 90A9 LD R10,Y+
64B 9508 RET
(0216) }
(0217)
(0218) /**************************************************************************
(0219) * 函数原型: void REC(void);
(0220) * 功 能: 录音
(0221) **************************************************************************/
(0222) void ISD_REC(void){
(0223) ISD_PU();
_ISD_REC:
64C DF65 RCALL _ISD_PU
(0224) Erase_All();
64D DFCF RCALL _Erase_All
(0225) do{
(0226) RdStatus();
64E DFD9 RCALL _RdStatus
(0227) }while(SR0_L&0x01);//检查CMD_ERR
64F 9020 00D9 LDS R2,SR0_L
651 FC20 SBRC R2,0
652 CFFB RJMP 0x064E
(0228) ClrInt();//清除中断
653 DFA8 RCALL _ClrInt
(0229) do{
(0230) RdStatus();
654 DFD3 RCALL _RdStatus
(0231) }while(!(SR1&0x01));//检查RDY
655 9020 00D7 LDS R2,SR1
657 FE20 SBRS R2,0
658 CFFB RJMP 0x0654
(0232)
(0233) ISD_SendData(REC);
659 E501 LDI R16,0x51
65A E010 LDI R17,0
65B DF2C RCALL _ISD_SendData
(0234) ISD_SendData(0x00);
65C 2700 CLR R16
65D 2711 CLR R17
65E DF29 RCALL _ISD_SendData
(0235) SS_1;
65F 9AC4 SBI 0x18,4
(0236) delay_ms(10);
660 E00A LDI R16,0xA
661 E010 LDI R17,0
662 DD2D RCALL _delay_ms
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -