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

📄 测试.lst

📁 ISD1720芯片实现录音,定点录音,播放,定点播放等.
💻 LST
📖 第 1 页 / 共 5 页
字号:
     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 + -