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

📄 main.c

📁 数字电话调试源代码
💻 C
字号:
#include<reg52.h>
#include<intrins.h> // 声明了void _nop_(void);
#define uchar unsigned char 
#define uint  unsigned int  
sbit CS = P3^2;

void Delay(uint t);
void Send_command(uchar addr,uchar dat);
uchar Read_command(uchar addr);
void Send_byte(uchar dat);
uchar Read_byte();

/*******************************************************
函数名称:Delay(uint t);
功    能:延时
参    数:无
返 回 值:无
********************************************************/
void Delay(uint t){
	while(t--);
	

}


/*******************************************************
函数名称:Send_byte(uchar dat);
功    能:发送一个字节
参    数:无符号字符型
返 回 值:无
********************************************************/
void Send_byte(uchar dat){
	TI = 0;
	SBUF = dat;
	while(!TI);

}

/*******************************************************
函数名称:Rend_byte();
功    能:接收一个字节
参    数:无
返 回 值:无符号字符型
********************************************************/
uchar Read_byte(){
	uchar dat = 0;
	RI = 0;
	dat = SBUF;
	while(!RI);
	return dat;
}

/*******************************************************
函数名称:Send_command(uchar addr,uchar dat);
功    能:发送一个命令
参    数:无符号字符型   地址   数据
返 回 值:无
********************************************************/
void Send_command(uchar addr,uchar dat){
	CS = 0;
	Delay(3);
	addr <<= 1;
	addr &= 0x7e;   		//写
	Send_byte(addr);
	CS = 1;
	Delay(30);
	Send_byte(dat);
	Delay(3);
	
	
}

/*******************************************************
函数名称:Rend_command(uchar addr);
功    能:接收一个命令
参    数:无符号字符型   地址
返 回 值:无符号字符型	 数据
********************************************************/
uchar Read_command(uchar addr){
	uchar dat = 0;
	CS = 0;
	Delay(3);
	addr <<= 1;
	addr &= 0x7e;   		
	addr += 1;				//读
	Send_byte(addr);
	CS = 1;
	Delay(30);
	dat = Read_byte();
	Delay(3);
	
	return dat;
}



//产生音调函数
void yindiao()
{
 Send_command(0x15,0x0c);//选择通道
 Send_command(0x1E,0x00);//复位DSP
 Send_command(0x1D,0x70);//设置接收增益
 Send_command(0x20,0x30);//设置发送增益
 Send_command(0x23,0x59);//写音调系数1
 Send_command(0x24,0xAB);//写音调系数2
 Send_command(0x26,0x10);//写颤音系数
 Send_command(0x1E,0x61);//开始音调编程
 Send_command(0x0E,0x82);//选择扬声器和滤波器
 Send_command(0x1E,0x61);//控制振铃节奏
}
//产生拨号音函数
void bohao()
{
 Send_command(0x15,0x04);//选择通道
 Send_command(0x1E,0x00);//复位DSP
 Send_command(0x1D,0x22);//设置DTMF接收增益
 Send_command(0x20,0x30);//设置音频发送增益
 Send_command(0x21,0x2E);//设置DTMF发送增益
 Send_command(0x23,0x59);//写音调系数1
 Send_command(0x24,0xAB);//写音调系数2
 Send_command(0x1E,0x41);//开始DTMF编程
 Send_command(0x0E,0x82);//选择扬声器和滤波器
 
}

//听筒通话
void tingtong()
{
 Send_command(0x15,0x04);//选择通道
 Send_command(0x1E,0x00);//复位DSP
 Send_command(0x1D,0x70);//设置接收增益
 Send_command(0x20,0x30);//设置发送增益
 Send_command(0x1E,0x21);//开始接收增益编程
 Send_command(0x0E,0x99);//选择通话设备和上电   ???不能读出
 Send_command(0x0B,0x04);//设置消侧音增益
}

//免提通话
void mianti()
{
 Send_command(0x15,0x0c);//选择通道    ???默认读出0x08
 Send_command(0x1E,0x00);//复位DSP
 Send_command(0x1D,0x38);//设置接收增益
 Send_command(0x20,0x30);//设置发送增益
 Send_command(0x1E,0x81);//开始免提编程
 Send_command(0x0E,0x1E);//设置消侧音增益
}



void main(){

 uchar dat = 0;
 SCON = 0x10;
 P0 = 0xf0;
 //yindiao();
 //bohao();
 //mianti();
 //tingtong();
 //Send_command(0x1E,0x00);//复位DSP
 //Send_command(0x15,0x0f);//临时调试命令

/****************************调试段*********************************/


/*
 Send_command(0x15,0x0c);//选择通道
 Send_command(0x1E,0x00);//复位DSP
 Send_command(0x1D,0x70);//设置接收增益
 Send_command(0x20,0x30);//设置发送增益
 Send_command(0x23,0x59);//写音调系数1
 Send_command(0x24,0xAB);//写音调系数2
 Send_command(0x26,0x16);//写颤音系数


 Send_command(0x1E,0x61);//开始音调编程
 Send_command(0x0E,0x8f);//选择扬声器和滤波器
 Send_command(0x1E,0x61);//控制振铃节奏
 Send_command(0x0B,0x00);//
 Send_command(0x0A,0x07);//
 Send_command(0x03,0x61);//
*/
 //Send_command(0x1E,0x00);//复位DSP

/*******************************************************************/





 while(1){
 	
 	//P0 = ~Read_command(0x15);
	P0 = 0xff;
	_nop_(); // 产生一条NOP指令
	P0 = 0x00;
	//Delay(4);
	//NOP();
	
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令
	_nop_(); // 产生一条NOP指令




 }
	

}

⌨️ 快捷键说明

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