突发奇想,为何没有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;
-
- }
简单的测试占用了不少的存储空间。
|