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

📄 function.c

📁 12864显示屏C源程序单片机为AVRD单片机
💻 C
字号:



/*#define C全 0x00
#define C数 0x01
#define C字 0x02
#define C电 0x03
#define C力 0x04
#define C载 0x05
#define C波 0x06
#define C机 0x07
#define C发 0x08
#define C送 0x09
#define C接 0x0a
#define C收 0x0b
#define C频 0x0c
#define C率 0x0d
*/
/*const Byte hzstr[]={
0x80, 0x80, 0x40, 0x20, 0x50, 0x48, 0x44, 0xC3, 0x44, 0x48, 0x50, 0x20, 0x40, 0xC0, 0x40, 0x00, 0x00, 0x40, 0x40, 0x40, 0x44, 0x44, 0x44, 0x7F, 0x44, 0x44, 0x44, 0x40, 0x40, 0x40, 0x00, 0x00,
0x10, 0x92, 0x54, 0x30, 0xFF, 0x50, 0x94, 0x32, 0xD8, 0x17, 0x10, 0x10, 0xF0, 0x18, 0x10, 0x00, 0x02, 0x82, 0x4E, 0x33, 0x22, 0x52, 0x8E, 0x40, 0x23, 0x14, 0x08, 0x16, 0x61, 0xC0, 0x40, 0x00,
0x00, 0x10, 0x0C, 0x24, 0x24, 0x24, 0x25, 0x26, 0xA4, 0x74, 0x24, 0x04, 0x14, 0x0C, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x42, 0x82, 0x7F, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x02, 0x00,
0x00, 0xF0, 0x90, 0x90, 0x90, 0x90, 0xFF, 0x90, 0x90, 0x90, 0x90, 0xF8, 0x10, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x04, 0x04, 0x04, 0x04, 0x7F, 0x84, 0x84, 0x84, 0x84, 0x8F, 0x80, 0xF0, 0x00, 0x00,
0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0x10, 0x10, 0xF8, 0x10, 0x00, 0x00, 0x80, 0x80, 0x40, 0x20, 0x10, 0x0C, 0x03, 0x00, 0x20, 0x40, 0x80, 0x40, 0x3F, 0x00, 0x00, 0x00,
0xA0, 0xA4, 0xA4, 0xE4, 0xBF, 0xA4, 0xA4, 0xA4, 0x20, 0xFF, 0x20, 0x22, 0x2C, 0x20, 0x20, 0x00, 0x20, 0x24, 0x27, 0x24, 0xFE, 0x14, 0x94, 0x50, 0x20, 0x13, 0x1C, 0x24, 0x43, 0x80, 0xE0, 0x00,
0x20, 0x42, 0xC4, 0x0C, 0x80, 0xF8, 0x88, 0x88, 0x88, 0xFF, 0x88, 0x88, 0xA8, 0x1C, 0x08, 0x00, 0x00, 0x04, 0xFC, 0x43, 0x30, 0x8F, 0x80, 0x43, 0x2C, 0x10, 0x28, 0x26, 0x41, 0xC0, 0x40, 0x00,
0x10, 0x10, 0xD0, 0xFF, 0x90, 0x10, 0x00, 0xFC, 0x04, 0x04, 0x04, 0xFE, 0x04, 0x00, 0x00, 0x00, 0x04, 0x03, 0x00, 0xFF, 0x80, 0x41, 0x20, 0x1F, 0x00, 0x00, 0x00, 0x3F, 0x40, 0x40, 0x70, 0x00,
0x00, 0x00, 0x18, 0x16, 0x10, 0x90, 0xF0, 0x9F, 0x90, 0x90, 0x92, 0x94, 0x10, 0x10, 0x00, 0x00, 0x00, 0x20, 0x10, 0x88, 0x86, 0x41, 0x46, 0x28, 0x10, 0x18, 0x26, 0x41, 0xC0, 0x40, 0x40, 0x00,
0x40, 0x42, 0x44, 0xCC, 0x00, 0x88, 0x89, 0x8A, 0x8C, 0xF8, 0x8C, 0x8A, 0x89, 0xC8, 0x80, 0x00, 0x00, 0x40, 0x20, 0x1F, 0x20, 0x40, 0xA0, 0x90, 0x8C, 0x83, 0x88, 0x90, 0xB0, 0x80, 0x80, 0x00,
0x10, 0x10, 0x10, 0xFF, 0x90, 0x54, 0x44, 0x54, 0xE5, 0x46, 0x64, 0x54, 0x46, 0x44, 0x00, 0x00, 0x02, 0x42, 0x81, 0x7F, 0x02, 0x02, 0x82, 0x8A, 0x57, 0x22, 0x32, 0x4E, 0xC2, 0x03, 0x02, 0x00,
0x00, 0xF8, 0x00, 0x00, 0xFF, 0x00, 0x80, 0x60, 0xDF, 0x10, 0x10, 0x10, 0xF0, 0x18, 0x10, 0x00, 0x00, 0x0F, 0x04, 0x02, 0xFF, 0x80, 0x80, 0x40, 0x21, 0x16, 0x08, 0x16, 0x61, 0xC0, 0x40, 0x00,
0x40, 0x7C, 0x40, 0xFF, 0x48, 0x48, 0x42, 0xF2, 0x12, 0x1A, 0xD6, 0x12, 0x12, 0xF3, 0x02, 0x00, 0x08, 0x87, 0x40, 0x27, 0x18, 0x06, 0x80, 0x8F, 0x40, 0x20, 0x1F, 0x20, 0x40, 0xCF, 0x00, 0x00,
0x00, 0x14, 0xA4, 0x44, 0x04, 0x24, 0xB5, 0x6E, 0x24, 0x94, 0x04, 0x44, 0xA6, 0x14, 0x00, 0x00, 0x08, 0x09, 0x08, 0x08, 0x09, 0x0B, 0x09, 0xFF, 0x09, 0x09, 0x0B, 0x08, 0x08, 0x0D, 0x08, 0x00};*/

// 0 #00H   1 #01H   2 #02H   3 #03H   4 #04H   5 #05H   6 #06H   7 #07H
// 8 #08H   9 #09H   - #0AH   : #0BH   K #0CH   H #0DH   z #0EH   / #0FH
//   #10H
const Byte numstr[]={
0x00, 0xE0, 0x10, 0x08, 0x08, 0x08, 0x10, 0xE0, 0x00, 0x0F, 0x10, 0x20, 0x20, 0x20, 0x10, 0x0F,
0x00, 0x20, 0x30, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x60, 0x10, 0x08, 0x08, 0x10, 0xE0, 0x00, 0x00, 0x30, 0x28, 0x24, 0x22, 0x21, 0x20, 0x00,
0x00, 0x30, 0x08, 0x08, 0x08, 0x08, 0xF0, 0x00, 0x00, 0x18, 0x20, 0x20, 0x21, 0x21, 0x1E, 0x00,
0x00, 0x00, 0x00, 0xC0, 0x20, 0x10, 0xF8, 0x00, 0x00, 0x06, 0x05, 0x04, 0x04, 0x04, 0x3F, 0x04,
0x00, 0xF8, 0x48, 0x48, 0x48, 0x48, 0x88, 0x00, 0x00, 0x18, 0x20, 0x20, 0x20, 0x20, 0x1F, 0x00,
0x00, 0xE0, 0x10, 0x88, 0x88, 0x88, 0x30, 0x00, 0x00, 0x0F, 0x11, 0x20, 0x20, 0x20, 0x1F, 0x00,
0x00, 0x08, 0x08, 0x08, 0x08, 0xC8, 0x38, 0x00, 0x00, 0x00, 0x00, 0x30, 0x0E, 0x01, 0x00, 0x00,
0x00, 0x60, 0x90, 0x08, 0x08, 0x08, 0x90, 0x60, 0x00, 0x0C, 0x12, 0x21, 0x21, 0x21, 0x12, 0x0C,
0x00, 0xF0, 0x08, 0x08, 0x08, 0x10, 0xE0, 0x00, 0x00, 0x19, 0x22, 0x22, 0x22, 0x11, 0x0F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00,
0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF8, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x00, 0x3F, 0x01, 0x00, 0x03, 0x04, 0x18, 0x20,
0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x3F, 0x01, 0x01, 0x01, 0x01, 0x3F, 0x00,
0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x30, 0x28, 0x24, 0x22, 0x21, 0x20, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x18, 0x04, 0x00, 0x40, 0x30, 0x0C, 0x03, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

const Byte slen[]={48,32,16,36,6,24};
const Byte hlen[]={24,16,8,12,6,12};
const Word in[]={44,48,52,56,60,64,68,72,76,80,84,88,92,96};



void setscr(Byte wdat)
{
	Byte i;
	Byte dat;
	Byte j;


	for(i=0;i<8;i++)
	{
		dat=0xb8+i;
		write_scr(0,0,dat);
		write_scr(1,0,dat);
		write_scr(0,0,0x40);
		write_scr(1,0,0x40);
		for(j=0;j<64;j++)
		{
			write_scr(0,1,wdat);
			write_scr(1,1,wdat);
		}
	}
	write_scr(0,0,0xc0);
	write_scr(1,0,0xc0);
	_delay_ms(1);
}

void write_scr(Byte lr,Byte cd,Byte dat)
{
	if(lr==0)
	{
		Set_CSA();//		CSA=1;
		Clr_CSB();//		CSB=0;
	}
	else
	{
		Set_CSB();//		CSB=1;
		Clr_CSA();//		CSA=0;
	}
	if(cd==0)
	{
		Clr_DI();
	}
	else
	{
		Set_DI();
	}
    Clr_ENABLE();
    Clr_RW();
    PORTD=dat;
	PORTD=dat;
    Set_ENABLE();
	Set_ENABLE();
    Clr_ENABLE();
	Clr_ENABLE();
    Set_RW();
    Set_DI();
	if(lr==0)
	{
		Clr_CSA();
	}
	else
		Clr_CSB();
}

void initscr()
{
	write_scr(0,0,0x3f);  //3F-开显示,3E-关显示
	write_scr(1,0,0x3f);
	write_scr(0,0,0xc0);  //设起始行为0
	write_scr(1,0,0xc0);
	setscr(0x00);
}

// type 0-2424点阵字符  1-1616点阵字符 2-816点阵数字 3-1224点阵数字  4-68点阵数字  5-1216点阵数字
// page 行号
// colume 列号
// ch 
const Byte hzstr[]={
0x80, 0x80, 0x40, 0x20, 0x50, 0x48, 0x44, 0xC3, 0x44, 0x48, 0x50, 0x20, 0x40, 0xC0, 0x40, 0x00, 0x00, 0x40, 0x40, 0x40, 0x44, 0x44, 0x44, 0x7F, 0x44, 0x44, 0x44, 0x40, 0x40, 0x40, 0x00, 0x00,
0x10, 0x92, 0x54, 0x30, 0xFF, 0x50, 0x94, 0x32, 0xD8, 0x17, 0x10, 0x10, 0xF0, 0x18, 0x10, 0x00, 0x02, 0x82, 0x4E, 0x33, 0x22, 0x52, 0x8E, 0x40, 0x23, 0x14, 0x08, 0x16, 0x61, 0xC0, 0x40, 0x00,
0x00, 0x10, 0x0C, 0x24, 0x24, 0x24, 0x25, 0x26, 0xA4, 0x74, 0x24, 0x04, 0x14, 0x0C, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x42, 0x82, 0x7F, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x02, 0x00,
0x00, 0xF0, 0x90, 0x90, 0x90, 0x90, 0xFF, 0x90, 0x90, 0x90, 0x90, 0xF8, 0x10, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x04, 0x04, 0x04, 0x04, 0x7F, 0x84, 0x84, 0x84, 0x84, 0x8F, 0x80, 0xF0, 0x00, 0x00,
0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0x10, 0x10, 0xF8, 0x10, 0x00, 0x00, 0x80, 0x80, 0x40, 0x20, 0x10, 0x0C, 0x03, 0x00, 0x20, 0x40, 0x80, 0x40, 0x3F, 0x00, 0x00, 0x00,
0xA0, 0xA4, 0xA4, 0xE4, 0xBF, 0xA4, 0xA4, 0xA4, 0x20, 0xFF, 0x20, 0x22, 0x2C, 0x20, 0x20, 0x00, 0x20, 0x24, 0x27, 0x24, 0xFE, 0x14, 0x94, 0x50, 0x20, 0x13, 0x1C, 0x24, 0x43, 0x80, 0xE0, 0x00,
0x20, 0x42, 0xC4, 0x0C, 0x80, 0xF8, 0x88, 0x88, 0x88, 0xFF, 0x88, 0x88, 0xA8, 0x1C, 0x08, 0x00, 0x00, 0x04, 0xFC, 0x43, 0x30, 0x8F, 0x80, 0x43, 0x2C, 0x10, 0x28, 0x26, 0x41, 0xC0, 0x40, 0x00,
0x10, 0x10, 0xD0, 0xFF, 0x90, 0x10, 0x00, 0xFC, 0x04, 0x04, 0x04, 0xFE, 0x04, 0x00, 0x00, 0x00, 0x04, 0x03, 0x00, 0xFF, 0x80, 0x41, 0x20, 0x1F, 0x00, 0x00, 0x00, 0x3F, 0x40, 0x40, 0x70, 0x00,
0x00, 0x00, 0x18, 0x16, 0x10, 0x90, 0xF0, 0x9F, 0x90, 0x90, 0x92, 0x94, 0x10, 0x10, 0x00, 0x00, 0x00, 0x20, 0x10, 0x88, 0x86, 0x41, 0x46, 0x28, 0x10, 0x18, 0x26, 0x41, 0xC0, 0x40, 0x40, 0x00,
0x40, 0x42, 0x44, 0xCC, 0x00, 0x88, 0x89, 0x8A, 0x8C, 0xF8, 0x8C, 0x8A, 0x89, 0xC8, 0x80, 0x00, 0x00, 0x40, 0x20, 0x1F, 0x20, 0x40, 0xA0, 0x90, 0x8C, 0x83, 0x88, 0x90, 0xB0, 0x80, 0x80, 0x00,
0x10, 0x10, 0x10, 0xFF, 0x90, 0x54, 0x44, 0x54, 0xE5, 0x46, 0x64, 0x54, 0x46, 0x44, 0x00, 0x00, 0x02, 0x42, 0x81, 0x7F, 0x02, 0x02, 0x82, 0x8A, 0x57, 0x22, 0x32, 0x4E, 0xC2, 0x03, 0x02, 0x00,
0x00, 0xF8, 0x00, 0x00, 0xFF, 0x00, 0x80, 0x60, 0xDF, 0x10, 0x10, 0x10, 0xF0, 0x18, 0x10, 0x00, 0x00, 0x0F, 0x04, 0x02, 0xFF, 0x80, 0x80, 0x40, 0x21, 0x16, 0x08, 0x16, 0x61, 0xC0, 0x40, 0x00,
0x40, 0x7C, 0x40, 0xFF, 0x48, 0x48, 0x42, 0xF2, 0x12, 0x1A, 0xD6, 0x12, 0x12, 0xF3, 0x02, 0x00, 0x08, 0x87, 0x40, 0x27, 0x18, 0x06, 0x80, 0x8F, 0x40, 0x20, 0x1F, 0x20, 0x40, 0xCF, 0x00, 0x00,
0x00, 0x14, 0xA4, 0x44, 0x04, 0x24, 0xB5, 0x6E, 0x24, 0x94, 0x04, 0x44, 0xA6, 0x14, 0x00, 0x00, 0x08, 0x09, 0x08, 0x08, 0x09, 0x0B, 0x09, 0xFF, 0x09, 0x09, 0x0B, 0x08, 0x08, 0x0D, 0x08, 0x00};

void showstr(Byte type,Byte page,Byte column,Byte ch)
{
    Byte i,j,w;
    for(i=0;i<slen[type];i++)
    {
		w=((column+i%hlen[type])&0x3f)+64;
		j=((column+i%hlen[type])>>6);

		write_scr(j,0,(page&0x7)+i/hlen[type]+0xb8);
		write_scr(j,0,w);

		switch(type)
		{
		case 1:
			w=hzstr[ch*32+i];
			break;
		case 2:
			w=numstr[ch*16+i];
			break;
		}
		if((page&0xf8)>0)
			w=~w;
		write_scr(j,1,w);
    }    
}

void shownum(Byte row,Byte col,Byte len,Byte value)
{
	if(len==3)
	{
		if(value/100==0)
			showstr(2,row,col,0x10);
		else
			showstr(2,row,col,value/100);
		showstr(2,row,col+8,(value/10)%10);
		showstr(2,row,col+16,value%10);
	}
	else if(len==2)
	{
		showstr(2,row,col,value/10);
		showstr(2,row,col+8,value%10);
	}
	else if(len==1)
		showstr(2,row,col,value%10);
}

void show()
{
	signed int cposi;
    Byte i,j,k,w;
	for(j=0;j<8;j++)
	{
		for(i=0;i<16;i++)
		{
			for(k=0;k<2;k++)
			{
				cposi=posi+j*16+i;
				if(cposi<0)
					continue;
				if(cposi>127)
					return;
				cposi>>=6;
				w=((posi+j*16+i)&0x3f)+64;

				write_scr(cposi,0,k+0xb8);
				write_scr(cposi,0,w);
				w=hzstr[j*32+i+k*16];
				write_scr(cposi,1,w);
			}
		}
	}
}
/***********************************************************************/


void init()//初始化
 {
	DDRB =(1<<DDB2)|(1<<DDB1)|(1<<DDB0)|(1<<DDB3)|(1<<DDB4)|(1<<DDB5);
	PORTB=(1<<PB0)|(1<<PB1)|(1<<PB2)|(1<<PB3)|(1<<PB4)|(1<<PB5);
	DDRC =(1<<DDC0)|(1<<DDC3)|(1<<DDC4)|(1<<DDC5)|(1<<DDC6);
    PORTC=(1<<PC1)|(1<<PC2);//(1<<PC0)|(1<<PC1)|(1<<PC2)|(1<<PC3)|(1<<PC4)|(1<<PC5)|(1<<PC6);

	DDRD =0xff;
	PORTD=0XFF;

	sei();//置位全局中断
	//TCNT2=156;   //初始值	
	//TCCR2=0x01; //选择分频
    //TIMSK=0x40; //允许T/C2中断 b7-OCIE2   b6-TOIE2   b5-TICIE1   b4-OCIE1A   b3-OCIE1B   b2-TOIE1    -    b0-TOIE0
	initscr();
}

void Initial_value()//初始值
{
	flg=0;
	fl=0;
	a=3;
	a1=44;
	b=3;
	b1=48;
	c=6;
	c1=48;
	d=6;
	d1=48;
}




void roll()//滚动显示
{
    Word us;

		for(posi=127;posi>-128;posi--)
		{
			if(fl)
			{
		     switch(flg)
			 {
		      case 1: Static_state();//静态显示
			           break;
		      case 2: a=19;//反显1,在44处反显
                       Static_state();
					   break;
		      case 3: a=3;
				       b=19;
				       Static_state();//反显2
			           break;
		      case 4:  b=3;
				       c=14;
				       Static_state();
			           break;
		      case 5: c=6;
				       d=14;
				       Static_state();//反显4,在52处反显
			           break;
			  case 6:   d=6;
				        Static_state();
						flg=0;
						break;
			  //default ://break;
				       
			 }
			 fl=0;
			}

			 switch(flg)
			 {
		 
		      case 2: Butt();
				  if(flg2==1)
				  {
					  a1=in[flg1];
                      Static_state();
			          if(flg1>=14)
					  {
				        flg1=0;
					  }
					  flg2=0;
				  }
		              
					   break;
		      case 3: Butt();
				  if(flg2==1)
				  {
		              b1=in[flg1];
                      Static_state();
			          if(flg1>=14)
					  {
				       flg1=0;
					  }
					  flg2=0;
				  }
					  break;
		      case 4:  flg1=0;
				       Butt();
				     if(flg2==1)
					 {
		               c1=in[flg1];
                       Static_state();
			         if(flg1>=14)
					  {
				        flg1=0;
					  }
					  flg2=0;
				  }
			           break;
		      case 5: Butt();
				  if(flg2==1)
				  {
		              d1=in[flg1];
                      Static_state();
					  if(flg1>=14)
					  {
				        flg1=0;
					  }
					  flg2=0;
				  }
			       
					  break;
			  case 6:   
						break;
			 }


			/*if(flg==2)
			{
			  Butt();
		      a1=in[flg1];
              Static_state();
			  if(flg1>=14)
			  {
				  flg1=0;
			  }
			}*/
			
			show();
			_delay_ms(200);
			_delay_ms(200);
			if(posi>0)
				us=posi*2;
			else 
				us=-posi*2;

			_delay_us(us);
			_delay_us(us);
			_delay_us(us);
			if(posi==0)
			{
				_delay_ms(200);
				_delay_ms(200);
				_delay_ms(200);
				_delay_ms(200);
				_delay_ms(200);
			}
			Button();
		
		}
	
}

void Static_state()//静态显示
{
	showstr(1,3,0,8);
	showstr(1,3,16,9);//发送
	shownum(a,40,3,a1);
	showstr(2,3,64,0x0a);
	shownum(b,72,3,b1);//6处+8就在48处反显
	showstr(2,3,96,0x0c);
	showstr(2,3,104,0x0d);
	showstr(2,3,112,0x0e);//44-48KHz


	showstr(1,6,0,0x0a);
	showstr(1,6,16,0x0b);//接收
	shownum(c,48,2,c1);
	shownum(d,80,2,d1);
	showstr(2,6,64,0x0a);
	showstr(2,6,96,0x0c);
	showstr(2,6,104,0x0d);
	showstr(2,6,112,0x0e);//48-52KHz*/
}

void  value1()//反显1,在44处反显
{
	shownum(3,40,3,44);
	showstr(2,3,64,0x0a);
	shownum(3,72,3,48);//6处+8就在48处反显
	showstr(2,3,96,0x0c);
	showstr(2,3,104,0x0d);
	showstr(2,3,112,0x0e);//44-48KHz
}

void  value2()//反显2,在48处反显
{
	shownum(3,40,3,44);
	showstr(2,3,64,0x0a);
	shownum(3,72,3,48);//6处+8就在48处反显
	showstr(2,3,96,0x0c);
	showstr(2,3,104,0x0d);
	showstr(2,3,112,0x0e);//44-48KHz
}

void  value3()//反显3,在48处反显
{
	shownum(6+8,48,2,48);
	shownum(6,80,2,52);
	showstr(2,6,64,0x0a);
	showstr(2,6,96,0x0c);
	showstr(2,6,104,0x0d);
	showstr(2,6,112,0x0e);//48-52KHz*/
}

void  value4()//反显4,在52处反显
{
	shownum(6,48,2,48);
	shownum(6+8,80,2,52);
	showstr(2,6,64,0x0a);
	showstr(2,6,96,0x0c);
	showstr(2,6,104,0x0d);
	showstr(2,6,112,0x0e);//48-52KHz*/
}

void Button()//检测有无按键
{
     Byte i;
	if((PINC&0x04)==0)
		   {
			   for(i=0;i<30;i++)
			   {
				   if(((PINC>>PINC2)&1)==1)//去抖动
				   {
					   return;
					 
				   }
			   }

			   while(((PINC>>PINC2)&1)==0)   //等待松开按键
				         ;
				  
					   flg++;
					   fl=1;
					   

		         


		   }
}

void Butt()//检测有无按键
{
     Byte i;
	if((PINC&0x02)==0)
		   {
			   for(i=0;i<30;i++)
			   {
				   if(((PINC>>PINC1)&1)==1)//去抖动
				   {
					   return;
					 
				   }
			   }

			   while(((PINC>>PINC1)&1)==0)   //等待松开按键
				         ;
				  
					   flg1++;
					   flg2=1;
					 
					   

		         


		   }
}

⌨️ 快捷键说明

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