📄 m128_alky_touch_con1.c
字号:
KEY_TEMP[5]=0;
KEY_TEMP[4]=0;
KEY_TEMP[3]=F_LDZQ_Value/1000;
KEY_TEMP[2]=(F_LDZQ_Value%1000)/100;
KEY_TEMP[1]=((F_LDZQ_Value%1000)%100)/10;
KEY_TEMP[0]=((F_LDZQ_Value%1000)%100)%10;
Set_TOUCH_KEY_DISP_F();
Display_TOUCH_KEY();
Display_TOUCH_Message(1);
break;
case 2: //温度周期修改
MENU_NUM=2;
KEY_TEMP[5]=0;
KEY_TEMP[4]=0;
KEY_TEMP[3]=0;
KEY_TEMP[2]=0;
KEY_TEMP[1]=F_WDZQ_Value/10;
KEY_TEMP[0]=F_WDZQ_Value%10;
Set_TOUCH_KEY_DISP_F();
Display_TOUCH_KEY();
Display_TOUCH_Message(2);
break;
case 3: //时间修改
MENU_NUM=3;
KEY_TEMP[5]=0;
KEY_TEMP[4]=0;
KEY_TEMP[3]=(Hour>>4)&0x03;
KEY_TEMP[2]=Hour&0x0F;
KEY_TEMP[1]=(Minute>>4)&0x07;
KEY_TEMP[0]=Minute&0x0F;
Set_TOUCH_KEY_DISP_F();
Display_TOUCH_KEY();
Display_TOUCH_Message(3);
break;
case 4: //浓度PID修改
MENU_NUM=4;
KEY_TEMP[5]=LD_PID.Proportion/10;
KEY_TEMP[4]=LD_PID.Proportion%10;
KEY_TEMP[3]=LD_PID.Integral/10;
KEY_TEMP[2]=LD_PID.Integral%10;
KEY_TEMP[1]=LD_PID.Derivative/10;
KEY_TEMP[0]=LD_PID.Derivative%10;
Set_TOUCH_KEY_DISP_F();
Display_TOUCH_KEY();
Display_TOUCH_Message(4);
break;
case 5: //温度PID修改
MENU_NUM=5;
KEY_TEMP[5]=WD_PID.Proportion/10;
KEY_TEMP[4]=WD_PID.Proportion%10;
KEY_TEMP[3]=WD_PID.Integral/10;
KEY_TEMP[2]=WD_PID.Integral%10;
KEY_TEMP[1]=WD_PID.Derivative/10;
KEY_TEMP[0]=WD_PID.Derivative%10;
Set_TOUCH_KEY_DISP_F();
Display_TOUCH_KEY();
Display_TOUCH_Message(5);
break;
case 6: //日期修改
MENU_NUM=6;
KEY_TEMP[5]=Year>>4;
KEY_TEMP[4]=Year&0x0F;
KEY_TEMP[3]=(Month>>4)&0x01;
KEY_TEMP[2]=Month&0x0F;
KEY_TEMP[1]=(Date>>4)&0x03;
KEY_TEMP[0]=Date&0x0F;
Set_TOUCH_KEY_DISP_F();
Display_TOUCH_KEY();
Display_TOUCH_Message(6);
break;
case 7: //标定52PPM
MENU_NUM=7;
KEY_TEMP[5]=0;
KEY_TEMP[4]=0;
KEY_TEMP[3]=0;
KEY_TEMP[2]=Set_LD_Value/100;
KEY_TEMP[1]=(Set_LD_Value%100)/10;
KEY_TEMP[0]=(Set_LD_Value%100)%10;
Set_TOUCH_KEY_DISP_F();
Display_TOUCH_KEY();
Display_TOUCH_Message(7);
Display_TOUCH_KEY_BD();
Disp_Set_LD111(12,BDLD_052);
break;
case 8: //标定130PPM
MENU_NUM=8;
KEY_TEMP[5]=0;
KEY_TEMP[4]=0;
KEY_TEMP[3]=0;
KEY_TEMP[2]=Set_LD_Value/100;
KEY_TEMP[1]=(Set_LD_Value%100)/10;
KEY_TEMP[0]=(Set_LD_Value%100)%10;
Set_TOUCH_KEY_DISP_F();
Display_TOUCH_KEY();
Display_TOUCH_Message(8);
Display_TOUCH_KEY_BD();
Disp_Set_LD111(12,BDLD_130);
break;
case 9: //标定208PPM
MENU_NUM=9;
KEY_TEMP[5]=0;
KEY_TEMP[4]=0;
KEY_TEMP[3]=0;
KEY_TEMP[2]=Set_LD_Value/100;
KEY_TEMP[1]=(Set_LD_Value%100)/10;
KEY_TEMP[0]=(Set_LD_Value%100)%10;
Set_TOUCH_KEY_DISP_F();
Display_TOUCH_KEY();
Display_TOUCH_Message(9);
Display_TOUCH_KEY_BD();
Disp_Set_LD111(12,BDLD_208);
break;
case 10: //标定300PPM
MENU_NUM=10;
KEY_TEMP[5]=0;
KEY_TEMP[4]=0;
KEY_TEMP[3]=0;
KEY_TEMP[2]=Set_LD_Value/100;
KEY_TEMP[1]=(Set_LD_Value%100)/10;
KEY_TEMP[0]=(Set_LD_Value%100)%10;
Set_TOUCH_KEY_DISP_F();
Display_TOUCH_KEY();
Display_TOUCH_Message(10);
Display_TOUCH_KEY_BD();
Disp_Set_LD111(12,BDLD_300);
break;
case 11: //标定0PPM
MENU_NUM=11;
KEY_TEMP[5]=0;
KEY_TEMP[4]=0;
KEY_TEMP[3]=0;
KEY_TEMP[2]=Set_LD_Value/100;
KEY_TEMP[1]=(Set_LD_Value%100)/10;
KEY_TEMP[0]=(Set_LD_Value%100)%10;
Set_TOUCH_KEY_DISP_F();
Display_TOUCH_KEY();
Display_TOUCH_Message(11);
Display_TOUCH_KEY_BD();
Disp_Set_LD111(12,LD_CLR_Value);
break;
case 12: //返回
Clr_TOUCH_MENU_DISP_F();
Clr_TOUCH_KEY_DISP_F();
Display_Time_CLR();
Display_CON320240();
break;
break;
case 13: //空
k=20;
break;
break;
case 14: //温度修改
MENU_NUM=14;
KEY_TEMP[5]=0;
KEY_TEMP[4]=0;
KEY_TEMP[3]=0;
KEY_TEMP[2]=0;
KEY_TEMP[1]=Set_WenDu_Value/10;
KEY_TEMP[0]=Set_WenDu_Value%10;
Set_TOUCH_KEY_DISP_F();
Display_TOUCH_KEY();
Display_TOUCH_Message(12);
break;
case 15: //风量修改
MENU_NUM=15;
KEY_TEMP[5]=0;
KEY_TEMP[4]=0;
KEY_TEMP[3]=Set_LiuLiang_Value/1000;
KEY_TEMP[2]=(Set_LiuLiang_Value%1000)/100;
KEY_TEMP[1]=((Set_LiuLiang_Value%1000)%100)/10;
KEY_TEMP[0]=((Set_LiuLiang_Value%1000)%100)%10;
Set_TOUCH_KEY_DISP_F();
Display_TOUCH_KEY();
Display_TOUCH_Message(13);
break;
}
}
if(!(k==20))
Sound_Nms(70);
}
//**************************************************
//**************************************************
if(YN_TOUCH_KEY_DISP_F)
{
Display_TOUCH_KEY_VAL();
}
CON_Value_XIANSHI();
Button_YN();
TIMSK = 0x45;
}
//******************************************
//UART0 initialize
// desired baud rate: 110
// actual: baud rate:110 (0.0%)
// char size: 8 bit
// parity: Disabled
void uart0_init(void)
{
UCSR0B = 0x00; //disable while setting baud rate
UCSR0A = 0x00;
UCSR0C = 0x06;
UBRR0L = 0xE0; //set baud rate lo
UBRR0H = 0x00; //set baud rate hi
UCSR0B = 0x98;
}
//******************************************
#pragma interrupt_handler uart0_rx_isr:iv_USART0_RXC
void uart0_rx_isr(void)
{
//uart has received a character in UDR
}
//******************************************
//ADC initialize
// Conversion time: 13uS
//右对齐,参考电压AREF
void adc_init(void)
{
ADCSRA = 0x00; //disable adc
ADMUX = 0x00; //select adc input 0
ACSR = 0x80; //模拟比较器禁用
ADCSRA = 0x82;
}
//******************************************
uint SYS_ADC(unsigned char n)
{
unsigned char i,j;
ADMUX = n; //select adc input
ADCSRA |= (1<<ADSC); //ADC 开始转换
while(ADCSRA & (1<<ADSC)) //等待转换结束
;
i=ADCL;
j=ADCH;
return(j*256+i);
}
//******************************************
float WENDU_TZ(uint ad_v)
{
if(ad_v<239) return 0;
else
{
if(ad_v<341) return ((ad_v-239)*0.1); //0-10
else
{
if(ad_v<567) return ((ad_v-341)*0.075+10); //10-27
else
{
if(ad_v<669) return ((ad_v-567)*0.1+27); //27-37
else
{
if(ad_v<753) return ((ad_v-669)*0.12+37);
else
{
if(ad_v<960) return ((ad_v-753)*0.242+47);
else return 99.9;
}
}
}
}
}
}
//******************************************
//call this routine to initialize all peripherals
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
//XDIV = 0x00; //xtal divider
XMCRA = 0x00; //external memory
port_init();
timer0_init();
timer1_init();
timer2_init();
// timer3_init();
uart0_init();
adc_init();
MCUCR = 0x00;
EICRA = 0x00; //extended ext ints
EICRB = 0x00; //extended ext ints
EIMSK = 0x00;
TIMSK = 0x45; //timer interrupt sources
// ETIMSK = 0x04; //extended timer interrupt sources
ETIMSK = 0x00; //extended timer interrupt sources
//SEI(); //re-enable interrupts
//all peripherals are now initialized
}
//******************************************
//******************************************
//******************************************
void XG_F_Set(unsigned char kkk)
{
unsigned char k,Temp,Temp1;
k=kkk;
switch(F_FLAG1)
{
case 1: //温控
if(k<10)
{
switch(F_FLAG2)
{
case 1:
if(k<2)
{
Temp=F_WDZQ_Value%10; //取低位
F_WDZQ_Value=k*10+Temp;
if(F_WDZQ_Value>16) F_WDZQ_Value=16;
F_FLAG2=2;
}
break;
case 2:
Temp=F_WDZQ_Value/10; //
F_WDZQ_Value=Temp*10+k;
if(F_WDZQ_Value>16) F_WDZQ_Value=16;
}
}
break;
case 2: //注样
if(k<10)
{
switch(F_FLAG2)
{
case 1:
Temp=F_LDZQ_Value%1000; //
F_LDZQ_Value=k*1000+Temp;
F_FLAG2=2;
break;
case 2:
Temp=F_LDZQ_Value/1000; //
Temp1=F_LDZQ_Value%100; //
F_LDZQ_Value=Temp*1000+k*100+Temp1;
F_FLAG2=3;
break;
case 3:
Temp=F_LDZQ_Value/100; //
Temp1=F_LDZQ_Value%10; //
F_LDZQ_Value=Temp*100+k*10+Temp1;
F_FLAG2=4;
break;
case 4:
Temp=F_LDZQ_Value/100; //
Temp1=(F_LDZQ_Value%100)/10; //
F_LDZQ_Value=Temp*100+Temp1*10+k;
}
if(F_LDZQ_Value>4000) F_LDZQ_Value=4000;
}
break;
case 3: //换算因子
if(k==11)
{
switch(F_FSYZ_FLAG)
{
case 0:
F_FSYZ_FLAG=1;
break;
case 1:
F_FSYZ_FLAG=2;
break;
case 2:
F_FSYZ_FLAG=0;
}
}
break;
case 4: //系统时间
if(k<10)
{
DS1302_Write(DS1302_CONTROL_Reg,0x00);//关闭写保护
switch(F_FLAG2)
{
case 1:
Year&=0x0F;
k=(k<<4)|Year;
DS1302_Write(DS1302_YEAR_Reg,k); //年
F_FLAG2=2;
break; //case 1
case 2:
Year&=0xF0;
k=k|Year;
DS1302_Write(DS1302_YEAR_Reg,k); //年
F_FLAG2=3;
break; //case 2
case 3:
if(k<2)
{
Month&=0x0F;
if(k==1 & Month>2) Month=2;
k=(k<<4)|Month;
DS1302_Write(DS1302_MONTH_Reg,k); //月
F_FLAG2=4;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -