📄 di_module.c
字号:
#include "main.h"
/*
* 11: 开关闭和
* 10: 开关打开
* 00: 断线
*/
//PA3,PF2 PF3,PA2 PE7,PE1 PE0,PE6 PA5,PF0 PF1,PA4
Uchar DI_Status[3];
Uchar PINA_temp,PINB_temp,PINE_temp,PINF_temp;
void DI_Init(void)
{
DDRA = 0x00;
DDRB = 0x00;
DDRB |= (1<<5);
DDRE = 0x00;
DDRF = 0x00;
DI_handle();
}
void DI_handle(void)
{
PINA_temp = PINA;
PINB_temp = PINB;
PINE_temp = PINE;
PINF_temp = PINF;
/**************Channel 1*****************/
if(PINA_temp & (1<<3))
DI_Status[0] |= (1<<0);
else
DI_Status[0] &= (~(1<<0));
if(PINF_temp & (1<<2))
DI_Status[0] |= (1<<1);
else
DI_Status[0] &= (~(1<<1));
/**************Channel 2*****************/
if(PINF_temp & (1<<3))
DI_Status[0] |= (1<<2);
else
DI_Status[0] &= (~(1<<2));
if(PINA_temp & (1<<2))
DI_Status[0] |= (1<<3);
else
DI_Status[0] &= (~(1<<3));
/**************Channel 3*****************/
if(PINE_temp & (1<<7))
DI_Status[0] |= (1<<4);
else
DI_Status[0] &= (~(1<<4));
if(PINE_temp & (1<<1))
DI_Status[0] |= (1<<5);
else
DI_Status[0] &= (~(1<<5));
/**************Channel 4*****************/
if(PINE_temp & (1<<0))
DI_Status[0] |= (1<<6);
else
DI_Status[0] &= (~(1<<6));
if(PINE_temp & (1<<6))
DI_Status[0] |= (1<<7);
else
DI_Status[0] &= (~(1<<7));
/**************Channel 5*****************/
if(PINA_temp & (1<<5))
DI_Status[1] |= (1<<0);
else
DI_Status[1] &= (~(1<<0));
if(PINF_temp & (1<<0))
DI_Status[1] |= (1<<1);
else
DI_Status[1] &= (~(1<<1));
/**************Channel 6*****************/
if(PINF_temp & (1<<1))
DI_Status[1] |= (1<<2);
else
DI_Status[1] &= (~(1<<2));
if(PINA_temp & (1<<4))
DI_Status[1] |= (1<<3);
else
DI_Status[1] &= (~(1<<3));
//PB1,PE3 PE2,PB0 PA7,PA1 PA0,PA6 PB3,PE5 PE4,PB2
/**************Channel 7*****************/
if(PINB_temp & (1<<1))
DI_Status[1] |= (1<<4);
else
DI_Status[1] &= (~(1<<4));
if(PINE_temp & (1<<3))
DI_Status[1] |= (1<<5);
else
DI_Status[1] &= (~(1<<5));
/**************Channel 8*****************/
if(PINE_temp & (1<<2))
DI_Status[1] |= (1<<6);
else
DI_Status[1] &= (~(1<<6));
if(PINB_temp & (1<<0))
DI_Status[1] |= (1<<7);
else
DI_Status[1] &= (~(1<<7));
/**************Channel 9*****************/
if(PINA_temp & (1<<7))
DI_Status[2] |= (1<<0);
else
DI_Status[2] &= (~(1<<0));
if(PINA_temp & (1<<1))
DI_Status[2] |= (1<<1);
else
DI_Status[2] &= (~(1<<1));
/**************Channel 10*****************/
if(PINA_temp & (1<<0))
DI_Status[2] |= (1<<2);
else
DI_Status[2] &= (~(1<<2));
if(PINA_temp & (1<<6))
DI_Status[2] |= (1<<3);
else
DI_Status[2] &= (~(1<<3));
/**************Channel 11*****************/
if(PINB_temp & (1<<3))
DI_Status[2] |= (1<<4);
else
DI_Status[2] &= (~(1<<4));
if(PINE_temp & (1<<5))
DI_Status[2] |= (1<<5);
else
DI_Status[2] &= (~(1<<5));
/**************Channel 12*****************/
if(PINE_temp & (1<<4))
DI_Status[2] |= (1<<6);
else
DI_Status[2] &= (~(1<<6));
if(PINB_temp & (1<<2))
DI_Status[2] |= (1<<7);
else
DI_Status[2] &= (~(1<<7));
///test
if((DI_Status[0] != 0xaa) || (DI_Status[1] != 0xaa) || (DI_Status[1] != 0xaa))
PORTB |= (1<<5);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -