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

📄 broad_band_amplifier.c

📁 这是我参加大学生电子设计竞赛时的程序
💻 C
📖 第 1 页 / 共 2 页
字号:
0x27,0xFF,0x3C,0x90,0xE4,0x90,0x24,0x90,
0x24,0x90,0x24,0x92,0x24,0x91,0x2F,0xFE,
0x24,0x00,0x60,0x00,0x20,0x00,0x00,0x00,

/*效   CD0A7 */
0x11,0x02,0x12,0x04,0x1D,0x18,0x90,0xA0,
0x50,0x40,0x19,0xB0,0x34,0x0C,0x12,0x01,
0x04,0x01,0x0B,0x82,0xF8,0x6C,0x08,0x10,
0x08,0xEC,0x1F,0x03,0x08,0x02,0x00,0x00,

/*值   CD6B5 */
0x01,0x00,0x02,0x00,0x04,0x00,0x1F,0xFF,
0xE0,0x02,0x20,0x02,0x27,0xFE,0x25,0x52,
0x25,0x52,0xFD,0x52,0x25,0x52,0x25,0x52,
0x6F,0xFE,0x24,0x02,0x00,0x02,0x00,0x00,

/*:    */
0x00,0x00,0x03,0x0C,0x03,0x08,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};

uchar code num[]={
/*0    */
0x1F,0xE0,0x3F,0xF0,0x20,0x90,0x23,0x10,
0x24,0x10,0x3F,0xF0,0x1F,0xE0,0x00,0x00,

/*1    */
0x00,0x00,0x08,0x10,0x18,0x10,0x3F,0xF0,
0x3F,0xF0,0x00,0x10,0x00,0x10,0x00,0x00,

/*2    */
0x10,0x70,0x30,0xF0,0x21,0x90,0x23,0x10,
0x26,0x10,0x3C,0x30,0x18,0x30,0x00,0x00,

/*3    */
0x10,0x20,0x30,0x30,0x22,0x10,0x22,0x10,
0x22,0x10,0x3F,0xF0,0x1D,0xE0,0x00,0x00,

/*4    */
0x03,0x00,0x07,0x00,0x0D,0x00,0x19,0x10,
0x3F,0xF0,0x3F,0xF0,0x01,0x10,0x00,0x00,

/*5    */
0x3E,0x20,0x3E,0x30,0x22,0x10,0x22,0x10,
0x23,0x10,0x23,0xF0,0x21,0xE0,0x00,0x00,

/*6    */
0x0F,0xE0,0x1F,0xF0,0x32,0x10,0x22,0x10,
0x22,0x10,0x03,0xF0,0x01,0xE0,0x00,0x00,

/*7    */
0x30,0x00,0x30,0x00,0x20,0xF0,0x21,0xF0,
0x23,0x00,0x3E,0x00,0x3C,0x00,0x00,0x00,

/*8    */
0x1D,0xE0,0x3F,0xF0,0x22,0x10,0x22,0x10,
0x22,0x10,0x3F,0xF0,0x1D,0xE0,0x00,0x00,

/*9    */
0x1C,0x00,0x3E,0x10,0x22,0x10,0x22,0x10,
0x22,0x30,0x3F,0xE0,0x1F,0xC0,0x00,0x00,

/*     */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    };

uchar code point[]={
/*.    */
0x00,0x00,0x00,0x0C,0x00,0x0C,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

};
uchar code wrong[]={
/*超   CB3AC */
0x02,0x02,0x12,0xFC,0x12,0x08,0xFF,0xF8,
0x12,0x44,0x12,0x42,0x41,0x02,0x42,0xFA,
0x7C,0x8A,0x40,0x8A,0x44,0x8A,0x42,0x8A,
0xFC,0xFA,0x40,0x06,0x00,0x04,0x00,0x00,

/*范   CB7B6 */
0x20,0x20,0x22,0x20,0x29,0xBF,0x24,0x20,
0xF6,0x40,0x20,0x00,0x27,0xFC,0x24,0x02,
0x24,0x02,0x24,0x42,0xF4,0x22,0x2F,0xC2,
0x24,0x02,0x60,0x02,0x20,0x0E,0x00,0x00,

/*围   CCEA7 */
0x00,0x00,0x7F,0xFF,0x40,0x02,0x48,0x82,
0x4A,0x82,0x4A,0x82,0x4A,0x82,0x7F,0xFE,
0x4A,0x82,0x4A,0x92,0x5A,0x8A,0x48,0xF2,
0x40,0x02,0xFF,0xFF,0x40,0x00,0x00,0x00,

/*或   CBBF2 */
0x10,0x00,0x10,0x04,0x13,0xF4,0x12,0x24,
0x12,0x24,0x12,0x28,0x17,0xE9,0x12,0x09,
0x10,0x02,0xFF,0xE4,0x10,0x18,0x90,0x64,
0x53,0x82,0x10,0x01,0x10,0x0E,0x00,0x00,

/*出   CB3F6 */
0x00,0x00,0x00,0x7F,0x3F,0x02,0x02,0x02,
0x02,0x02,0x02,0x02,0x02,0x02,0xFF,0xFE,
0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
0x3F,0x02,0x00,0x7F,0x00,0x00,0x00,0x00,

/*错   CB4ED */
0x01,0x00,0x02,0x40,0x0E,0x40,0xF3,0xFE,
0x12,0x44,0x12,0x48,0x12,0x00,0x12,0xFF,
0xFE,0x92,0x12,0x92,0x12,0x92,0xFE,0x92,
0x13,0xFF,0x16,0x80,0x02,0x00,0x00,0x00,

/*!   CA3A1 */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x3E,0x08,0x7F,0xDC,
0x7F,0xDC,0x3E,0x08,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

};

uchar code set_again[]={
/*请   CC7EB */
0x04,0x00,0x44,0x00,0x37,0xFE,0x00,0x04,
0x04,0x08,0x44,0x00,0x55,0xFF,0x55,0x50,
0x55,0x50,0xFD,0x50,0x55,0x52,0x55,0x51,
0xD7,0xFE,0x45,0x00,0x04,0x00,0x00,0x00,

/*重   CD6D8 */
0x10,0x02,0x10,0x02,0x50,0x12,0x57,0xD2,
0x55,0x52,0x55,0x52,0x55,0x52,0x7F,0xFE,
0x55,0x52,0x55,0x52,0x95,0x52,0x9F,0xD2,
0x94,0x12,0x30,0x06,0x10,0x02,0x00,0x00,

/*新   CD0C2 */
0x02,0x04,0x22,0x88,0x2A,0x92,0xA6,0x81,
0x63,0xFE,0x26,0x80,0x6B,0xA0,0x22,0x94,
0x02,0x18,0x3F,0xE0,0x22,0x00,0x42,0x00,
0xC3,0xFF,0x46,0x00,0x02,0x00,0x00,0x00,

/*设   CC9E8 */
0x02,0x00,0x02,0x00,0x42,0x00,0x33,0xFE,
0x00,0x05,0x02,0x09,0x05,0x02,0xF9,0xC2,
0x81,0x34,0x81,0x08,0x81,0x14,0xF9,0x64,
0x05,0x82,0x04,0x03,0x04,0x02,0x00,0x00,

/*定   CB6A8 */
0x08,0x01,0x30,0x02,0x20,0x04,0x24,0xF8,
0x24,0x04,0x24,0x02,0xA4,0x02,0x67,0xFE,
0x24,0x42,0x24,0x42,0x2C,0xC2,0x24,0x42,
0x20,0x02,0x28,0x06,0x30,0x04,0x00,0x00

};

/*************************************/
void delay(unsigned char x)
{
	unsigned int i,j,k=200;
	for(i=0;i<x;i++)
		for(j=0;j<=1000;j++)
		    k--;
}

/*************************************/
unsigned char get_key_num(void)
{
	static unsigned char buff,keynum;//check_knum;
    keynum=0;
  
	P1_6=0;
	P1_7=1;
	buff=jianpan;								/**/
	if(buff!=255)
	{
		keynum=buff;
		delay(10);                
		P1_6=0;
		P1_7=1;
		buff=jianpan;
		if(buff==keynum)
		{
			//do{buff=jianpan;}while(buff!=0xff);	/**/
			//check_knum=knum;
			keynum=255-keynum;
			goto aaa;
		};
	};
	P1_6=1;
	P1_7=0;
	buff=jianpan;								/**/
	if(buff!=255)
	{
		keynum=buff;
		delay(10);
		P1_6=1;
		P1_7=0;
		buff=jianpan;							/**/
		if(buff==keynum)
		{
			//do{buff=jianpan;}while(buff!=0xff);	/**/
			keynum=255-keynum+5;
			goto aaa;
		}
		else
			return 'e';
	};
aaa:switch(keynum)
	{	case 1:return 1;break;
		case 2:return 2;break;
		case 4:return 3;break;
		case 8:return 4;break;
		case 16:return 5;break;
		case 32:return 6;break;
		case 64:return 7;break;
		case 128:return 8;break;
		case 6:return 9;break;
		case 7:return 0;break;
		case 9:return '.';break;
		case 13:return '+';break;
		case 21:return '-';break;
		case 37:return 'c';break;
		case 69:return 't';break;
		case 133:return 's';break;
		default: return 'e'; 
    };
}
/****************************************/
void display_gain()
{
   uchar a,b;
   a=gain/10;
   b=gain%10;
   DrawUp(-12,8,a*16+num);
   DrawUp(-20,8,b*16+num);
}

/****************************************/
void display_vertual()
{
   float x;
   uchar a,b,c;
   x=6.0/255*buf;
   a=x;
   b=(x-a)*10;
   c=(x-a-b*0.1)*100;
   DrawDw(0,8,a*16+num);
   DrawDw(-8,8,point);   
   DrawDw(-16,8,b*16+num);
   DrawDw(-24,8,c*16+num);
}
/*************************************/
void glint()
{
      clrscr();
      delay(10);    
      DrawUp(60,72,up);
      DrawDw(60,56,down);
	  display_gain();
	  display_vertual();
}
/***************************************/
void display_wrong()
{
    clrscr();
	DrawUp(60,112,wrong);
	DrawDw(40,80,set_again);
	delay(50);
	glint();
 }
/*****************************/
void reset()
{  
   uchar gain_control;
   gain_control=3.2*gain-19.2;

   dac0832=gain_control;
}
/****************************************/
void timer0(void) interrupt 1 using 0
{

   TH0=0X41;
   TL0=0X01;
   TR0=0;

   buf=tlc0820;

   TR0=1;
}

/*****************************************/
void step_increase()
{
   gain++;
   if(gain>60)
      gain=60;
}
/***************************************/
void step_decrease()
{
   gain--;
   if(gain<6)
      gain=6;
}
/*****************************************/
void set_num()
{
  uchar j,m=1;
  gain_buf[0]=gain_buf[1]=0;
    while(1)
   {
    j=get_key_num();
      if(j>=0&&j<=9&&m<=2)
         { 
		   m++;
		   gain_buf[1]=gain_buf[0];
		   gain_buf[0]=j;
		   gain=gain_buf[1]*10+gain_buf[0];
		   display_gain();
		    	 
		  }	   
     else if(j=='s')
		  {
 		     if(gain>60||gain<6)
		       {
			   gain=6;
			   display_wrong();
			   return;}
		    reset();
			display_vertual();
            glint();			
			c64=gain;
		    return;
		  }
	     
     else if(j=='c')
           {
 		    gain_buf[0]=gain_buf[1]=0;
            gain=gain_buf[1]*10+gain_buf[0];
			display_gain();
			}
   }
}
/***************************************/
main()
{
  uchar i;
  long k;
  LcdIni();             //初始显示
  clrscr();
  DrawUp(40,96,up_start1);
  delay(200);
  clrscr();
  DrawUp(60,72,up_start2);
  DrawDw(60,96,down_start1);
  delay(200);
  clrscr();
  DrawUp(40,80,up_start3);
  delay(200);
  clrscr();
   DrawUp(60,72,up);
   DrawDw(60,56,down);

  gain=c64;
  display_gain();
  reset();

   TMOD=0X01;
   TH0=0X41;
   TL0=0X01;         
   TF0=0;
   ET0=1;
   EA=1;
   TR0=1;                

  while(1)
  {
   k++;
   if(k>=1000)
     {display_vertual();   k=0;}

      i=get_key_num();
	    
	    if(i=='+')                 
	      {step_increase();      //递增子程序
           display_gain();
		   reset();
		   c64=gain;
		  }
	    else if(i=='-')
	      {step_decrease();      //递减子程序
           display_gain();
		   reset();
		   c64=gain;
		  }
		else if(i=='c')
		  {
		   gain=6;
		   display_gain();       //清除子程序
		   reset();
		   c64=gain;
		  }
		else if(i=='t')
	      {
		    glint();
	        set_num();           //置数子程序
			}
		 
  }

}

⌨️ 快捷键说明

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