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

📄 pt2313.c

📁 PT2313音调电路驱动程序
💻 C
字号:
#include <reg52.h> 
#include <VIIC_C51.H>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x00
};
uchar data s[3];
uchar keys,plag=0,m1,m2,m3;
uchar keyscan();

sbit sda=P2^7;
sbit scl=P2^6;
sbit ADDvol=P1^0;
sbit SUBvol=P1^1;
sbit ADDbass=P1^2;
sbit SUBbass=P1^3;
sbit ADDtreb=P1^4;
sbit SUBtreb=P1^5;
sbit mute=P1^6;



void delay(uint x)
{
	uchar y;
	for(;x>0;x--)
		for(y=100;y>0;y--);
}

void main()
{

ISendByte(0x88,0x9f);/*----------------------初始化--------------------*/
delay(1);
ISendByte(0x88,0xbf);
delay(1);
ISendByte(0x88,0xdf);
delay(1);
ISendByte(0x88,0xff);
delay(10);

ISendByte(0x88,0x51);
delay(1);
ISendByte(0x88,0x52);
delay(1);
ISendByte(0x88,0x53);
delay(1);
ISendByte(0x88,0x54);
delay(10);

ISendByte(0x88,0x80);
delay(1);
ISendByte(0x88,0xa0);
delay(1);
ISendByte(0x88,0xc0);
delay(1);
ISendByte(0x88,0xe0);
delay(10);




ISendByte(0x88,0x00);/*-----------------测试段-----------------*/
delay(1);
ISendByte(0x88,0x6f);
delay(1);
ISendByte(0x88,0x7f);
delay(10);



IRcvStr(0xa0,0x00,&s,3);
delay(10);


ISendByte(0x88,s[0]);
delay(1);
ISendByte(0x88,s[1]);
delay(1);
ISendByte(0x88,s[2]);
delay(10);					/*-----------------初始化结束-------------*/

m1=s[0]&&0x3f;
m2=s[1]&&0x68;
m3=s[2]&&0x78;                                
                                                 
while(1)
	{
		switch (keyscan())
			{
				case 1:m1--;if(m1==0xff)m1=0x00;ISendByte(0x88,m1);delay(1);
										ISendStr(0x00,0x00,&m1,1);							 delay(1);break;
				case 2:m1++;if(m1==0x40)m1=0x3f;ISendByte(0x88,m1);delay(1);
										ISendStr(0x00,0x00,&m1,1);							 delay(1);break;
				case 3:m2--;if(m2==0x67)m2=0x68;ISendByte(0x88,m2);delay(1);
										ISendStr(0x00,0x00,&m2,1);							 delay(1);break;
				case 4:m2++;if(m2==0x70)m2=0x6f;ISendByte(0x88,m2);delay(1);
										ISendStr(0x00,0x00,&m2,1);							 delay(1);break;
				case 5:m3--;if(m3==0x77)m3=0x78;ISendByte(0x88,m3);delay(1);
										ISendStr(0x00,0x00,&m3,1);							 delay(1);break;
				case 6:m3++;if(m3==0x80)m3=0x7f;ISendByte(0x88,m3);delay(1);
										ISendStr(0x00,0x00,&m3,1);							 delay(1);break;
				case 7:			ISendByte(0x88,0x80);
										delay(1);
										ISendByte(0x88,0xa0);
										delay(1);
										ISendByte(0x88,0xc0);
										delay(1);
										ISendByte(0x88,0xe0);
										delay(1);break;
				case 8:			ISendByte(0x88,0x9f);
										delay(1);
										ISendByte(0x88,0xbf);
										delay(1);
										ISendByte(0x88,0xdf);
										delay(1);
										ISendByte(0x88,0xff);
										delay(1);break;
			}
	}	
}
uchar keyscan()  
		{		  uchar a=0;	
					P1=0xff;
					keys=P1;
					while(keys!=0xff)
							{
								delay(5);
								keys=P1;
								while(keys==0xfe)
									{
											plag=1;
										keys=0xff;
									}
								while(keys==0xfd)
									{
											plag=2;
										keys=0xff;
									}	
								while(keys==0xfb)
									{
											plag=3;
										keys=0xff;
									}
								while(keys==0xf7)
									{
											plag=4;
										keys=0xff;
									}
								while(keys==0xef)
									{
											plag=5;
										keys=0xff;
									}
								while(keys==0xdf)
									{
											plag=6;
										keys=0xff;
									}
								while(keys==0xbf)
									{		a++;
											if(a==2)a=0;
											if(a==0)
											plag=7;
											if(a==1)
											plag=8;
										while(!P1)
										keys=0xff;
									}
		}							
return plag;		
}

⌨️ 快捷键说明

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