突发奇想,为何没有51内核单片机的库函数呢?肯定是有原因的。
测试,先以设置IO输入输出,上拉电阻控制的模式设置函数作为例子编写测试。仅提供P0,P1,P2端口的测试。
#define DIN 0
#define DOUT 1
#define ON 1
#define OFF 0
/*
port:P0~P5
pin:0~255,BIT0~BIT7,BIT0|BIT1……
mode:DIN,DOUT
upr:ON,OFF
*/
void setmode(unsigned char port,unsigned char pin,unsigned mode,unsigned char upr)
{
if(port==P0)
{
if(mode==DIN)
{
P0CON &= ~(pin);
if(upr==ON)
P0PH |=(pin);
else if(upr==OFF)
P0PH &= ~(pin);
}
else if(mode==DOUT)
{
P0CON |= (pin);
}
}
if(port==P1)
{
if(mode==DIN)
{
P1CON &= ~(pin);
if(upr==ON)
P1PH |=(pin);
else if(upr==OFF)
P1PH &= ~(pin);
}
else if(mode==DOUT)
{
P1CON |= (pin);
}
}
if(port==P2)
{
if(mode==DIN)
{
P2CON &= ~(pin);
if(upr==ON)
P2PH |=(pin);
else if(upr==OFF)
P2PH &= ~(pin);
}
else if(mode==DOUT)
{
P2CON |= (pin);
}
}
}
#include"SC95F861X.H"
#include"test.h"
void main(void)
{
unsigned char x,y,z;
setmode(P0,BIT0,DOUT,0);
setmode(P0,BIT3|BIT2,DIN,ON);
x=P0CON;
y=P0PH;
z=P0;
}
简单的测试占用了不少的存储空间。
|