//继电器1点动 主进程中放:JDQ1_DianDong(0) 执行:JDQ1_DianDong(1)
sbit JDQ1=P1^2;//继电器IO
unsigned int JDQ1delay=0; //继电器点动控制用
void JDQ1_DianDong(bit TT){
if(JDQ1delay>0){JDQ1delay--;return;}
if(TT==1) {JDQ1delay=10000;JDQ1=on;return;}
JDQ1=off;
}
//继电器2点动 主进程中放:JDQ2_DianDong(0) 执行:JDQ2_DianDong(1)
sbit JDQ2=P1^3; // 继电器IO
unsigned int JDQ2delay=0; //继电器点动控制用
void JDQ2_DianDong(bit TT){
if(JDQ2delay>0){JDQ2delay--;return;}
if(TT==1) {JDQ2delay=10000;JDQ2=on;return;}
JDQ2=off;
}
//IO口 按键截获函数 (按下马上返回1,之后需弹起再按才有效) 执行示例:if(p17_Press()==1)
sbit p17=P1^7;
unsigned int p17_Dn=0; //按键截获函数用
bit p17_Press(){
if((p17==0)&(p17_Dn==0)){p17_Dn=1111;return 1;} //p17_Dn=1111倒计防接触不好的误触
if((p17_Dn>0)&(p17==0)) {p17_Dn--;} return 0;
}
//指示灯闪烁次数控制
sbit LED1=P3^7;
unsigned int LED_delay=0,LED_sleep=0; unsigned char LED_num=0;
void LED_Fun(unsigned char SetNum){
if(SetNum>0){if((LED_num==0)&&(LED_sleep==0)&&(LED1==1)) LED_num=SetNum;return;} //设置指示灯
//闪烁指示灯
if(LED_sleep>0) {LED_sleep--;return;}//控制每次闪完后的停留时间
if(LED_delay>0) LED_delay--;
if(LED_num>0){
if(LED_delay==0) {
LED_delay=1000;LED1=~LED1; //晶振12M时1500相当于250毫秒,但指示灯是500毫秒亮一次,因为LED1变量是取换算法
if(LED1==0)LED_num--;
}
}else{
if(LED1==0){
if((LED_num==0)&(LED_delay==0)){LED1=1;LED_sleep=5000;} //闪够次数后关闭 // LED_sleep每次闪完后的停留时间
}
}
}
sbit JDQ1=P1^2;//继电器IO
unsigned int JDQ1delay=0; //继电器点动控制用
void JDQ1_DianDong(bit TT){
if(JDQ1delay>0){JDQ1delay--;return;}
if(TT==1) {JDQ1delay=10000;JDQ1=on;return;}
JDQ1=off;
}
//继电器2点动 主进程中放:JDQ2_DianDong(0) 执行:JDQ2_DianDong(1)
sbit JDQ2=P1^3; // 继电器IO
unsigned int JDQ2delay=0; //继电器点动控制用
void JDQ2_DianDong(bit TT){
if(JDQ2delay>0){JDQ2delay--;return;}
if(TT==1) {JDQ2delay=10000;JDQ2=on;return;}
JDQ2=off;
}
//IO口 按键截获函数 (按下马上返回1,之后需弹起再按才有效) 执行示例:if(p17_Press()==1)
sbit p17=P1^7;
unsigned int p17_Dn=0; //按键截获函数用
bit p17_Press(){
if((p17==0)&(p17_Dn==0)){p17_Dn=1111;return 1;} //p17_Dn=1111倒计防接触不好的误触
if((p17_Dn>0)&(p17==0)) {p17_Dn--;} return 0;
}
//指示灯闪烁次数控制
sbit LED1=P3^7;
unsigned int LED_delay=0,LED_sleep=0; unsigned char LED_num=0;
void LED_Fun(unsigned char SetNum){
if(SetNum>0){if((LED_num==0)&&(LED_sleep==0)&&(LED1==1)) LED_num=SetNum;return;} //设置指示灯
//闪烁指示灯
if(LED_sleep>0) {LED_sleep--;return;}//控制每次闪完后的停留时间
if(LED_delay>0) LED_delay--;
if(LED_num>0){
if(LED_delay==0) {
LED_delay=1000;LED1=~LED1; //晶振12M时1500相当于250毫秒,但指示灯是500毫秒亮一次,因为LED1变量是取换算法
if(LED1==0)LED_num--;
}
}else{
if(LED1==0){
if((LED_num==0)&(LED_delay==0)){LED1=1;LED_sleep=5000;} //闪够次数后关闭 // LED_sleep每次闪完后的停留时间
}
}
}