📄 io_in_out.c
字号:
#include "STC89C51RC_RD_PLUS.h"
#include "math.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
void input_io(void); //数字量输入处理函数
void jd_on(uchar x); //继电器吸合函数
void jd_off(uchar x); //继电器断开函数
extern void delay(uchar x); //短延时函数
/*以下定义开关量输出*/
sbit JD1=P4^0;
sbit JD2=P2^0;
sbit JD3=P2^1;
sbit JD4=P2^2;
sbit JD5=P2^3;
sbit JD6=P2^4;
volatile uchar OUT_IO; //输出映射寄存器
volatile uchar IN_IO; //输入映射寄存器
/*=====继电器线圈吸合函数=====*/
/* uchar x:二进制数值,位7、6*/
/* 未用,对应位为1时相应继电器*/
/* 吸合,为0时无效 */
/*============================*/
void jd_on(uchar x)
{
uchar i;
x=x<<2;
for(i=1;i<7;i++)
{
if(((bit)(x&0x80)))
{
switch (i)
{
case 1:{JD1=1;OUT_IO=OUT_IO|0x20;break;}
case 2:{JD2=1;OUT_IO=OUT_IO|0x10;break;}
case 3:{JD3=1;OUT_IO=OUT_IO|0x08;break;}
case 4:{JD4=1;OUT_IO=OUT_IO|0x04;break;}
case 5:{JD5=1;OUT_IO=OUT_IO|0x02;break;}
case 6:{JD6=1;OUT_IO=OUT_IO|0x01;break;}
default:{break;}
}
}
x=x<<1;
}
}
/*=====继电器线圈断开函数=====*/
/* uchar x:二进制数值,位7、6*/
/* 未用,对应位为1时相应继电器*/
/* 断开,为0时无效 */
/*============================*/
void jd_off(uchar x)
{
uchar i;
x=x<<2;
for(i=1;i<7;i++)
{
if(((bit)(x&0x80)))
{
switch (i)
{
case 1:{JD1=0;OUT_IO=OUT_IO&0xdf;break;}
case 2:{JD2=0;OUT_IO=OUT_IO&0xef;break;}
case 3:{JD3=0;OUT_IO=OUT_IO&0xF7;break;}
case 4:{JD4=0;OUT_IO=OUT_IO&0xFb;break;}
case 5:{JD5=0;OUT_IO=OUT_IO&0xfd;break;}
case 6:{JD6=0;OUT_IO=OUT_IO&0xfe;break;}
default:{break;}
}
}
x=x<<1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -