📄 broad_band_amplifier.c
字号:
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 + -