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

📄 11.c

📁 ISD4004程序的说明书及C语言驱动程序包
💻 C
字号:
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit SS=P1^0;
sbit MOSI=P1^1;
sbit MISO=P1^2;
sbit SCLK=P1^3;
sbit INT=P3^2;
sbit K5=P2^6;
sbit K6=P2^7;
sbit LED=P3^0;
void delayus(uint time)
{
	while(time--);
}
void delayms(uint time)
{
	TMOD=0X01;
	for(time;time>0;time--)
		{
			TH0=0xfc;
			TL0=0x18;
			TR0=1;
			while(!TF0);
			TF0=0;
			TR0=0;
				
		}
}
void spi_send(uchar isdx)
{
	uchar i;
	SS=0;
	SCLK=0;
	for(i=0;i<8;i++)
		{
			if(isdx&0x01)
				MOSI=1;	
			else
				MOSI=0;
			isdx=isdx>>1;
			SCLK=1;
			delayus(2);
			SCLK=0;
			delayus(2);
			
		}
}
//*******************************
//发送stop指令  
//*******************************
void isd_stop(void)
{   
	delayus(10);
	spi_send(0x30);
	SS=1;
	delayms(50);
}
//*******************************
//发送上电指令,并延迟50ms
//*******************************
void isd_pu(void)
{ 
	delayus(10);
	SS=0;
	spi_send(0x20);
	SS=1;
	delayms(50);
}
//*******************************
//发送掉电指令,并延迟50ms
//*******************************
void isd_pd(void)
{ 
	delayus(10);
	spi_send(0x10);
	SS=1;
	delayms(50);
}
//*******************************
//发送play指令  
//*******************************
void isd_play(void)
{
	
	spi_send(0xf0);
	SS=1;
}
//发送rec指令  
//*******************************
void isd_rec(void)
{
	spi_send(0xb0);
	SS=1;
} 
//发送setplay指令  
//*******************************
void isd_setplay(uchar adl,uchar adh)
{
	delayms(1);
	spi_send(adl);    //发送放音起始地址低位     
	delayus(2);
	spi_send(adh);   //发送放音起始地址高位     
	delayus(2);
	spi_send(0xe0);
	SS=1;
}
//*******************************
//发送setrec指令   
//*******************************
void isd_setrec(uchar adl,uchar adh)
{

	delayms(1);
	spi_send(adl);    //发送放音起始地址低位     
	delayus(2);
	spi_send(adh);   //发送放音起始地址高位     
	delayus(2);
	spi_send(0xa0);
	SS=1;
}
void main()
{
	P0=P1=P2=P3=0xff;
	while(1)
		{
			if(K5==0)
				{	
					delayms(10);
					if(K5==0)
					  	{	LED=0;
							isd_pu();     
							isd_pd();
							isd_pu();
							delayms(50);
							delayms(500);
							isd_setrec(0x00,0x00); 
							isd_rec();
							while(K5==0);
							LED=1;
						}
				}
			if(K6==0)
				{
					delayms(10);
					if(K6==0)
						{
							isd_pu();     
							isd_pd();
							isd_pu();
							isd_setplay(0xaa,0x00);
							isd_play();
							delayus(20);
							while(INT==1);
							isd_stop();
						}
				}
			isd_stop();
			isd_pd();
				
		}
}

⌨️ 快捷键说明

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