plcio.c

来自「ATmega16单片机串口通信程序,以经过测试可用.」· C语言 代码 · 共 150 行

C
150
字号
#include "mydelay.h"

#include "plcio.h"

void plc_y_init()
{
	sbi(YDDR1,Y0_IO);
	sbi(YDDR1,Y1_IO);
	sbi(YDDR2,Y2_IO);
	sbi(YDDR2,Y3_IO);
	sbi(YDDR2,Y4_IO);
	sbi(YDDR2,Y5_IO);

	Y0_OFF;	
	Y1_OFF;
	Y2_OFF;	
	Y3_OFF;	
	Y4_OFF;	
	Y5_OFF;
}

void plc_x_init()
{
	XDDR = 0;
	XPORT = 0;
}

void plcio_init()
{
	plc_y_init();
	plc_x_init();
}

void OUT_Y(u08 _Y,u08 _y_states)
{
	switch( _Y )
	{
		case 0://				
			if	(_y_states == 1)
			{
				Y0_ON;
				nop();
				Y0_ON;
				nop();				
			}
			else
			{
				Y0_OFF;
				nop();	
				Y0_OFF;
				nop();				
			}
		break;

		case 1://				
			if	(_y_states == 1)
			{
				Y1_ON;
				nop();
				Y1_ON;
				nop();				
			}
			else
			{
				Y1_OFF;
				nop();	
				Y1_OFF;
				nop();				
			}
		break;

		case 2://				
			if	(_y_states == 1)
			{
				Y2_ON;
				nop();
				Y2_ON;
				nop();				
			}
			else
			{
				Y2_OFF;
				nop();	
				Y2_OFF;
				nop();				
			}
		break;

		case 3://				
			if	(_y_states == 1)
			{
				Y3_ON;
				nop();
				Y3_ON;
				nop();				
			}
			else
			{
				Y3_OFF;
				nop();	
				Y3_OFF;
				nop();				
			}
		break;

		case 4://				
			if	(_y_states == 1)
			{
				Y4_ON;
				nop();
				Y4_ON;
				nop();				
			}
			else
			{
				Y4_OFF;
				nop();	
				Y4_OFF;
				nop();				
			}
		break;

		case 5://				
			if	(_y_states == 1)
			{
				Y5_ON;
				nop();
				Y5_ON;
				nop();				
			}
			else
			{
				Y5_OFF;
				nop();	
				Y5_OFF;
				nop();				
			}
		break;
	}//switch( _Y )
}

u08 get_X(u08 _X)
{
	u08 _x_data = 0;
	_x_data = XPIN;
	_x_data >>= _X;
	_x_data = _x_data & 0x01;
	return _x_data;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?