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

📄 mt8880.h

📁 光电池LED自动照明控制系统的设计与实现
💻 H
字号:
#ifndef	__MT8880_h__
#define	__MT8880_h__
//本程序用到了bit.h头文件,
/******MT8880与MCU接口声明**********************
************************************************/
//D0,D1,D2,D3-->P0.4,P0.5,P0.6,P0.7	(数据反了)
#define DQ1 P0_4
#define DQ2 P0_5
#define DQ3 P0_6
#define DQ4 P0_7
#define CP_8880  P0_3 //模式选择端口
#define CLK_8880 P0_2 //MT8880控制时钟
#define RS0_8880 P1_4 //寄存器选择,与RW_8880配合选择
#define RW_8880  P1_5  //对MT8880读写操作
#define CS_8880  P1_6  //对MT8880读写操作
/******函数声明*******************************
***********************************************/
void initialize(void);     //MT8880初始化
void tran_init(void);      //MT8880发送DTMF初始化
void transmit(unsigned char data0);//MT8880发送数据程序
//void auto_show(uchar show_data);

//*************delay_ms******************************** 
void delay_10usMT8880(unsigned char x)  
{  
  while(x--)
  {
  //	 ClearWatchDog();
  *P_Watchdog_Clear=C_WDTCLR;
  } 
}  

void delay_msMT8880(unsigned char cnt) 
{ 
    unsigned char i; 
do { 
  i = 4; 
  do { 
   delay_10usMT8880(39); 
  } while(--i); 
} while(--cnt); 
} 

/******MT8880初始化************************
******************************************/
void initialize(void)
{
 CS_8880=0;
 RS0_8880=1; 
 RW_8880=1;
 CLK_8880=1;
 delay_msMT8880(10);

 CLK_8880=0;
 delay_msMT8880(10);// P1=0x3f;/* 读SR */
 RW_8880=0;
 CLK_8880=1;
 delay_msMT8880(10);

//P1=0x00;// CRA=0000  
DQ1=0;DQ2=0;DQ3=0;DQ4=0;
 delay_msMT8880(10);
 CLK_8880=0;
 delay_msMT8880(10);
 CLK_8880=1;
delay_msMT8880(10);
//P1=0x00;/* CRA=0000  
DQ1=0;DQ2=0;DQ3=0;DQ4=0;
 delay_msMT8880(10);
 CLK_8880=0;
 delay_msMT8880(10);
 CLK_8880=1;
 delay_msMT8880(10);
//P1=0x08;/* CRA=1000  
 DQ4=1;DQ3=0;DQ2=0;DQ1=0;
 delay_msMT8880(10);
 CLK_8880=0;
delay_msMT8880(10);
  CLK_8880=1;
delay_msMT8880(10);
//P1=0x00;/* CRB=0000  
DQ4=0;DQ3=0;DQ2=0;DQ1=0;
 delay_msMT8880(10);
CLK_8880=0;
delay_msMT8880(10);
 RW_8880=1;
 CLK_8880=1;
 delay_msMT8880(10);
 CLK_8880=0;
 delay_msMT8880(10);// P1=0x3f;/* 读SR */

 CS_8880=1;
 
	
	
/*	
	
	
	CS_8880=0;
	//P3=0xff;
	//P0=0XFF;
//	DQ1=1;DQ2=1;DQ3=1;DQ4=1;
	RS0_8880=1;RW_8880=1;
	CLK_8880=1;
	delay_msMT8880(2);
	CLK_8880=0;
	delay_msMT8880(20);

	//P3=0x70;    // CRA=0000  
	DQ1=0;DQ2=0;DQ3=0;DQ4=0;
	CP_8880=1;CLK_8880=1;RW_8880=0;RS0_8880=1;

	CLK_8880=1;
	delay_msMT8880(2);
	CLK_8880=0;
	delay_msMT8880(20);

	//P3=0x70;   //* CRA=0000  
	DQ1=0;DQ2=0;DQ3=0;DQ4=0;
	CP_8880=1;CLK_8880=1;RW_8880=0;RS0_8880=1;

	CLK_8880=1;
	delay_msMT8880(2);
	CLK_8880=0;
	delay_msMT8880(20);

	//P3=0x71;   // CRA=1000  
	DQ1=0;DQ2=0;DQ3=0;DQ4=1;
	CP_8880=1;CLK_8880=1;RW_8880=0;RS0_8880=1;

	CLK_8880=1;
	delay_msMT8880(2);
	CLK_8880=0;
	delay_msMT8880(20);

	//P3=0x71;  //* CRB=0000  
	DQ1=0;DQ2=0;DQ3=0;DQ4=1;
	CP_8880=1;CLK_8880=1;RW_8880=0;RS0_8880=1;
	CLK_8880=1;
	delay_msMT8880(2);
	CLK_8880=0;
	delay_msMT8880(20);

	//P3=0xff;   //* 读SR  
	DQ1=1;DQ2=1;DQ3=1;DQ4=1;
	RS0_8880=1;RW_8880=1;

	CLK_8880=1;
    delay_msMT8880(2);
	CLK_8880=0;
	delay_msMT8880(20);

	CS_8880=1;
	*/
 }


/******MT8880发送DTMF初始化****************
******************************************/
void tran_init(void)
{/*
	CS_8880=0;
	//P3=0x79;   /* CRA=1001 
	DQ1=1;DQ2=0;DQ3=0;DQ4=1;
	CP_8880=1;CLK_8880=1;RW_8880=0;RS0_8880=1;
	CLK_8880=1;
	delay_10usMT8880(10);
	CLK_8880=0;
	delay_10usMT8880(100); 

	//P3=0x78;   //* CRB=0000 普通双音频模式*/ /*注意:0001突发模式 
	DQ1=1;DQ2=0;DQ3=0;DQ4=0;
	CP_8880=1;CLK_8880=1;RW_8880=0;RS0_8880=1;
	CLK_8880=1;
	delay_10usMT8880(10);
	CLK_8880=0;

	delay_msMT8880(200);		
	CS_8880=1;
	*/
 CS_8880=0; 
 RS0_8880=1; 
 RW_8880=0; 

 CLK_8880=1;
 delay_msMT8880(10);
//P1=0x09;/* CRA=1001 */
  DQ4=1;DQ3=0;DQ2=0;DQ1=1;
 delay_msMT8880(10);
 CLK_8880=0;

 delay_msMT8880(10);

 CLK_8880=1;
 delay_msMT8880(10);
 //P1=0x01; //* CRB=0001  	 //-----------------
 DQ4=0;DQ3=0;DQ2=0;DQ1=0;    //0000为突发方式,0001为一直发方式(不改变他就一直自动发),
 delay_msMT8880(10);
 CLK_8880=0;

 CS_8880=1;
	
	
}
 
/******MT8880发送数据程序******************
******************************************/
 /*
void transmit(unsigned char data0)
{
	CS_8880=0;
	//P3=data0; //* 发送数码  
	DQ1=data0&0x01;
	DQ2=(data0>>1)&0x01;
	DQ3=(data0>>2)&0x01;
	DQ4=(data0>>3)&0x01;
	RS0_8880=0; 
	RW_8880=0; 	
	CLK_8880=1; 
	delay_msMT8880(10);  // 延时 
	CLK_8880=0;

	delay_msMT8880(50); 

	//P3=0xff;
//	DQ1=1;DQ2=1;DQ3=1;DQ4=1;
	
	RS0_8880=1;RW_8880=1;

	CLK_8880=1;
	delay_10usMT8880(10);
	CLK_8880=0;
	delay_msMT8880(1); 

	CS_8880=1;
}
 */

/* 发送操作子函数 */

void transmit(unsigned char data0)
{
 CS_8880=0;
 RS0_8880=0; 
 RW_8880=0;
CLK_8880=1;  
delay_msMT8880(10);
//P1=data0; //* 发送数码  
 switch(data0)
 {
 	case 1: 
			DQ1=1; 
			DQ2=0;
			DQ3=0; 
			DQ4=0; 
			break;
 	case 2: 
			DQ1=0; 
			DQ2=1;
			DQ3=0; 
			DQ4=0; 
			break;
 	case 3: 
			DQ1=1; 
			DQ2=1;
			DQ3=0; 
			DQ4=0; 
			break;			
 	case 4: 
			DQ1=0; 
			DQ2=0;
			DQ3=1; 
			DQ4=0; 
			break;					
 	case 5: 
			DQ1=1; 
			DQ2=0;
			DQ3=1; 
			DQ4=0; 
			break;
 	case 6: 
			DQ1=0; 
			DQ2=1;
			DQ3=1; 
			DQ4=0; 
			break;
 	case 7: 
			DQ1=1; 
			DQ2=1;
			DQ3=1; 
			DQ4=0; 
			break;			
 	case 8: 
			DQ1=0; 
			DQ2=0;
			DQ3=0; 
			DQ4=1; 
			break;				
 	case 9: 
			DQ1=1; 
			DQ2=0;
			DQ3=0; 
			DQ4=1; 
			break;
 	case 10: 
			DQ1=0; 
			DQ2=1;
			DQ3=0; 
			DQ4=1; 
			break;
 	case 11: 
			DQ1=1; 
			DQ2=1;
			DQ3=0; 
			DQ4=1; 
			break;			
 	case 12: 
			DQ1=0; 
			DQ2=0;
			DQ3=1; 
			DQ4=1; 
			break;	
	default:break;								
 }
/*
			DQ1=data0&0x01;
			DQ2=(data0>>1)&0x01;
			DQ3=(data0>>2)&0x01;
			DQ4=(data0>>3)&0x01;
*/
delay_msMT8880(10); //* 延时 
CLK_8880=0;
//P1=0x3f;//* 读SR  
delay_msMT8880(50);
CS_8880=1; 
}




#endif

⌨️ 快捷键说明

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