当前位置:首页 > 电加热炉温度控制系统设计
}
/**************键盘扫描子函数******************/ void keyscan(void) {
uchar xx; //局部变量 P1=0xff; if(P1!=0xff) {
delay_LCM(50);
if(P1!=0xff)
{
xx=P1; switch(xx) {
case 0xfe:set_adj(); break; case 0xfd:inc_key(); break; case 0xfb:dec_key(); break;
// 根据按键状态,调用不同的子函数
WriteCommandLCM(0x0f,1); //显示屏打开,光标显示,闪烁,检测忙信号 DisplayOneChar(4,1,K/10+0x30); DisplayOneChar(5,1,K+0x30);
DisplayOneChar(12,1,temp1+0x30); DisplayOneChar(14,1,temp2/10+0x30);
DisplayOneChar(11,1,temp1/10+0x30);
DisplayOneChar(9,0,seconde/10+0x30); DisplayOneChar(10,0,seconde+0x30);
case
0xf7:{delay_LCM(150);ON_OFF=!ON_OFF;while(!BLUE_ALARM);} break; }
} }
}
default:break;
20
/**************设定工作模式子函数****************/ void set_adj(void) { delay_LCM(100); set++;
if(set>=4)set=0;
while(!RED_ALARM);
}
/****************按键加法子函数******************/ void inc_key(void) { delay_LCM(150); switch(set) { case 0:if(P1==0xf7){delay_LCM(150);ON_OFF=!ON_OFF;} break; case 1:hour++; if(hour>=23)hour=23; break; case 2:minite++; if(minite>=59)minite=59;break; case 3:K++;if(K>=99)K=99;
break;
default:break;
}
while(!WRITE_ALARM);
}
/****************按键减法子函数*****************/ void dec_key(void) { delay_LCM(150); switch(set) {
case 0:if(P1==0xf7){delay_LCM(150);ON_OFF=!ON_OFF;} break; case 1:hour--; if(hour<=0)hour=0; break; case 2:minite--;if(minite<=0)minite=0;break; case 3:K--;if(K<=1)K=1;
break;
default:break;
}
while(!GREEN_ALARM);
}
/************24C02读写驱动程序**************/ void delay1(uchar x)
21
{ }
void flash() { ; ; }
void x24c02_init() //24c02初始化子程序 { }
void start() //启动I2C总线 { }
void stop() //停止I2C总线 { }
void writex(uchar j) //写一个字节 {
uchar i,temp; temp=j;
for (i=0;i<8;i++)
sda=0; flash(); scl=1; flash(); sda=1; flash(); sda=1; flash(); scl=1; flash(); sda=0; flash(); scl=0; flash(); scl=1; flash(); sda=1; flash(); uint i;
for(i=0;i 22 } { } temp=temp<<1; scl=0; flash(); sda=CY; flash(); scl=1; flash(); scl=0; flash(); sda=1; flash(); uchar readx() //读一个字节 { } void clock() //I2C总线时钟 { uchar i=0; scl=1; flash(); uchar i,j,k=0; scl=0; flash(); sda=1; { } flash(); scl=1; flash(); if (sda==1) j=1; else j=0; k=(k<<1)|j; scl=0; for (i=0;i<8;i++) flash(); return(k); 23
共分享92篇相关文档