📄 io_check.c
字号:
/**************************************************************************************/
#include "config.h"
/**************************************************************************************/
uint8 demp; //定时0时间
uint8 demp1; //定时1时间
/**************************************************************************************/
bit X0=1,X1=1,X2=1,X3=1,X4=1,X5=1,X6=1,X7=1; //输入
bit X10=1,X11=1,X12=1,X13=1,X14=1,X15=1,X16=1,X17=1; //输入
bit X20=1,X21=1,X22=1,X23=1,X24=1,X25=1; //输入
/**************************************************************************************/
/*********消抖时间******************/
extern uint8 TSS1;
//判断X0消抖值
uint8 xdata InP0=0,InP1=0,InP2=0,InP3=0,InP4=0,InP5=0,InP6=0,InP7=0;
uint8 xdata InP10=0,InP11=0,InP12=0,InP13=0,InP14=0,InP15=0,InP16=0,InP17=0;
uint8 xdata InP20=0,InP21=0,InP22=0,InP23=0,InP24=0,InP25=0;
/**************************************************************************************/
bit M0=1,M1=1,M2=1,M3=1,M4=1,M5=1,M6=1,M7=1; //
bit M10=1,M11=1,M12=1,M13=1,M14=1,M15=1,M16=1,M17=1;
bit M20=1,M21=1,M22=1,M23=1,M24=1,M25=1,M26=1,M27=1;
bit M30=1,M31=1,M32=1,M33=1,M34=1,M35=1,M36=1,M37=1;
/**************************************************************************************/
bit T0_K=1,T1_K=1,T2_K=1,T3_K=1,T4_K=1,T5_K=1,T6_K=1,T7_K=1;
bit T10_K=1,T11_K=1;//,TK12_bit=1,TK13_bit=1,TK14_bit=1,TK15_bit=1,TK16_bit=1,TK17_bit=1;
/**************************************************************************************/
bit T0_bit=1,T1_bit=1,T2_bit=1,T3_bit=1,T4_bit=1,T5_bit=1,T6_bit=1,T7_bit=1;
//bit TC10_bit=1,TC11_bit=1,TC12_bit=1,TC13_bit=1,TC14_bit1,TC15_bit=1,TC16_bit=1,TC17_bit=1;
/**************************************************************************************/
uint16 xdata T0K =0;
uint16 xdata T1K =0;
uint16 xdata T2K =0;
uint16 xdata T3K =0;
uint16 xdata T4K =0;
uint16 xdata T5K =0;
uint16 xdata T6K =0;
uint16 xdata T7K =0;
uint16 xdata T10K=0;
uint16 xdata T11K=0;
/* P2 */
sbit XX17 = 0xA0;
sbit XX20 = 0xA1;
sbit XX21 = 0xA2;
sbit XX22 = 0xA3;
sbit XX23 = 0xA4;
sbit XX24 = 0xA5;
sbit XX25 = 0xA6;
/********P1*********/
sbit XX0 = 0x90;
sbit XX1 = 0x91;
sbit XX2 = 0x92;
sbit XX3 = 0x93;
sbit XX4 = 0x94;
sbit XX5 = 0x95;
sbit XX6 = 0x96;
sbit XX7 = 0x97;
/********P3*********/
sbit XX11 = 0xB0;
sbit XX10 = 0xB1;
sbit XX14 = 0xB2;
sbit XX12 = 0xB4;
sbit XX13 = 0xB5;
sbit XX15 = 0xB6;
sbit XX16 = 0xB7;
/***************************************************************/
//PLC输入消抖
void check_IO(void)
{
//**********X0******************
if( XX0==0)
{
if(InP0>=TSS1){if( XX0==0){ X0=0;InP0=0;}}else InP0++;
}else (X0 = 1,InP0=0);
//**********X1******************
if( XX1==0)
{
if(InP1>=TSS1){if( XX1==0){ X1=0;InP1=0;}}else InP1++;
}else (X1 = 1,InP1=0);
//**********X2******************
if( XX2==0)
{
if(InP2>=TSS1){if( XX2==0){ X2=0;InP2=0;}}else InP2++;
}else (X2 = 1,InP2=0);
//**********X3******************
if( XX3==0)
{
if(InP3>=TSS1){if( XX3==0){ X3=0;InP3=0;}}else InP3++;
}else (X3 = 1,InP3=0);
//**********X4******************
if( XX4==0)
{
if(InP4>=TSS1){if( XX4==0){ X4=0;InP4=0;}}else InP4++;
}else (X4 = 1,InP4=0);
//**********X5******************
if( XX5==0)
{
if(InP5>=TSS1){if( XX5==0){ X5=0;InP5=0;}}else InP5++;
}else (X5 = 1,InP5=0);
//**********X6******************
if( XX6==0)
{
if(InP6>=TSS1){if( XX6==0){ X6=0;InP6=0;}}else InP6++;
}else (X6 = 1,InP6=0);
//**********X7******************
if( XX7==0)
{
if(InP7>=TSS1){if( XX7==0){ X7=0;InP7=0;}}else InP7++;
}else (X7 = 1,InP7=0);
//
//**********X10******************
if( XX10==0)
{
if(InP10>=TSS1){if( XX10==0){ X10=0;InP10=0;}}else InP10++;
}else (X10 = 1,InP10=0);
//**********X11******************
if( XX11==0)
{
if(InP11>=TSS1){if( XX11==0){ X11=0;InP11=0;}}else InP11++;
}else (X11 = 1,InP11=0);
//**********X12******************
if( XX12==0)
{
if(InP12>=TSS1){if( XX12==0){ X12=0;InP12=0;}}else InP12++;
}else (X12 = 1,InP12=0);
//**********X13******************
if( XX13==0)
{
if(InP13>=TSS1){if( XX13==0){ X13=0;InP13=0;}}else InP13++;
}else (X13 = 1,InP13=0);
//**********X14******************
if( XX14==0)
{
if(InP14>=TSS1){if( XX14==0){ X14=0;InP14=0;}}else InP14++;
}else (X14 = 1,InP14=0);
//**********X15******************
if( XX15==0)
{
if(InP15>=TSS1){if( XX15==0){ X15=0;InP15=0;}}else InP15++;
}else (X15 = 1,InP15=0);
//**********X16******************
if( XX16==0)
{
if(InP16>=TSS1){if( XX16==0){ X16=0;InP16=0;}}else InP16++;
}else (X16 = 1,InP16=0);
//**********X17******************
if( XX17==0)
{
if(InP17>=TSS1){if( XX17==0){ X17=0;InP17=0;}}else InP17++;
}else (X17 = 1,InP17=0);
//
//**********X20******************
if( XX20==0)
{
if(InP20>=TSS1){if( XX20==0){ X20=0;InP20=0;}}else InP20++;
}else (X20 = 1,InP20=0);
//**********X21******************
if( XX21==0)
{
if(InP21>=TSS1){if( XX21==0){ X21=0;InP21=0;}}else InP21++;
}else (X21 = 1,InP21=0);
//**********X22******************
if( XX22==0)
{
if(InP22>=TSS1){if( XX22==0){ X22=0;InP22=0;}}else InP22++;
}else (X22 = 1,InP22=0);
//**********X23******************
if( XX23==0)
{
if(InP23>=TSS1){if( XX23==0){ X23=0;InP23=0;}}else InP23++;
}else (X23 = 1,InP23=0);
//**********X24******************
if( XX24==0)
{
if(InP24>=TSS1){if( XX24==0){ X24=0;InP24=0;}}else InP24++;
}else (X24 = 1,InP24=0);
//**********X25******************
if( XX25==0)
{
if(InP25>=TSS1){if( XX25==0){ X25=0;InP25=0;}}else InP25++;
}else (X25 = 1,InP25=0);
}
/***************************************************************/
//端口初始化
void initFlag(void)
{
P0 = 0xFF; // 输出端口初始化
P2 = 0xFF; // 输出端口初始化
P1 = 0xFF; // 输入端口初始化
P3 = 0xFF; // 输入端口初始化
}
/*******************中断初始化**********************************/
//定时器中断初始化
void initTimer (void)
{
demp =0;
demp1=0;
EA=0;
TMOD=0x11;
TH0=-9460/256;
TL0=-9460%256; //初始化计数器初值
PT0=1;
TR0=1;
ET0=1;
TH1=-9460/256;
TL1=-9460%256; //初始化计数器初值
TR1=1;
ET1=1;
/* if(IR_flag5==0)
{
IT0=1; //INT0中斷初始化
EX0=1;
PX0=1;
}
*/
EA =1;
WDT =0x1E;
WDT =0xE1;
WDTSTC=0X3C;
}
/*******************系统初始化**********************************/
void system(void)
{
initFlag();
// initTimer();
}
/***************************************************************/
/*********************定时器0中断服务程序*/
void timer0 (void) interrupt 1
{
TR0=0;
TH0=-9460/256;
TL0=-9460%256; //初始化计数器初值
TR0=1;
WDT =0x1E;
WDT =0xE1;
WDTSTC=0X3C;
check_IO();
if(demp==30) //当0.2秒钟到
{
demp=0;
}else demp++;
}
/*******************************************************************************
定时器1中断服务程序
******************************************************************************/
void timer1(void) interrupt 3
{
TR1=0;
TH1=-9460/256;
TL1=-9460%256;
TR1=1; //计数器初值
//定时器0程序******************************************************
if(( T0_K==0)&&(T0_bit==1))
{
if(T0K==0)
{
/*这里增加你的定时程序***********************/
/************************/
T0_bit=0;
T0_K = 1;
}else T0K--;
}
//定时器1程序******************************************************
if(( T1_K==0)&&(T1_bit==1))
{
if(T1K==0)
{
/*这里增加你的定时程序**********************/
/************************/
T1_bit=0;
T1_K =1;
}else T1K--;
}
//定时器2程序******************************************************
//
if(( T2_K==0)&&(T2_bit==1))
{
if(T2K==0)
{
/*这里增加你的定时程序************************/
//************************
T2_bit=0;
T2_K=1;
//************************
}else T2K--;
}
//定时器3程序******************************************************
//
if(( T3_K==0)&&(T3_bit==1))
{
if(T3K==0)
{
/*这里增加你的定时程序***********************/
//************************
T3_bit=0;
T3_K=1;
}else T3K--;}
//定时器4程序******************************************************
//
if(( T4_K==0)&&(T4_bit==1))
{
if(T4K==0)
{
//************************
T4_bit=0;
T4_K=1;
}else T4K--;}
//定时器5程序******************************************************
//
if(( T5_K==0)&&(T5_bit==1))
{
if(T5K==0)
{
//************************
T5_bit=0;
T5_K=1;
}else T5K--;}
//定时器6程序******************************************************
//
if(( T6_K==0)&&(T6_bit==1))
{
if(T6K==0)
{
//************************
T6_bit=0;
T6_K=1;
}else T6K--;}
//定时器7程序******************************************************
//
if(( T7_K==0)&&(T7_bit==1))
{
if(T7K==0)
{
//************************
T7_bit=0;
T7_K=1;
}else T7K--;}
//定时器10程序******************************************************
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -