2、SONIX单片机IO口基本操作

IO口基本操作,sonix单片机每个IO口都有两个钳位保护二极管

一、IO口方向设置寄存器PnMn代表0-5IO

 

BIT7

BIT6

BIT5

BIT4

BIT3

BIT2

BIT1

BIT0

PnM

Pn7M

Pn6M

Pn5M

Pn4M

Pn3M

Pn2M

Pn1M

Pn0M

/

R/w

R/w

R/w

R/w

R/w

R/w

R/w

R/w

复位

0

0

0

0

0

0

0

0

0=输入模式;1=输出模式。

设置方法(C语言);

P1口设置为输入; P1M=0x00;

P1.1口设置为输出 FP11M=1;(位操作)

 

 

二、IO上拉电阻寄存器,n代表0-5IO

 

BIT7

BIT6

BIT5

BIT4

BIT3

BIT2

BIT1

BIT0

PnUR

Pn7UR

Pn6UR

Pn5UR

Pn4UR

Pn3UR

Pn2UR

Pn1UR

Pn0UR

/

W

W

W

W

W

W

W

W

复位

0

0

0

0

0

0

0

0

0=不使能内部上拉;1=使能内部上拉。

设置方法(C语言);

P1口全部使能内部上拉  P1UR=0xff;

P1.0使能内部上拉      P1UR=0x01;

不知道为什么,这个寄存器位操作会出现编译错误

 

三、开漏模式使能寄存器,Sonix单片机只有P1.0口有开漏功能

 

BIT7

BIT6

BIT5

BIT4

BIT3

BIT2

BIT1

BIT0

P1OC

-------

-------

-------

-------

-------

-------

-------

P10OC

/

-------

-------

-------

-------

-------

-------

-------

W

复位

-------

-------

-------

-------

-------

-------

-------

0

0=禁止开漏模式;1使能开漏模式

设置方法(C语言);

使能开漏模式  P1OC=0x01;

不使能开漏模式 P1OC=0x00;

这个寄存器位操作会出现编译错误

 

四、IO数据寄存器

 

BIT7

BIT6

BIT5

BIT4

BIT3

BIT2

BIT1

BIT0

Pn

Pn7

Pn6

Pn5

Pn4

Pn3

Pn2

Pn1

Pn0

/

R/w

R/w

R/w

R/w

R/w

R/w

R/w

W

复位

0

0

0

0

0

0

0

0

设置方法(C语言);

P1口数据 data=P1;

P1口输出数据 P1=data;

P11口输出高电平  FP11=1;

读取P11口电平   data=FP11;

 

 

IO口完整操作实例;

1P1口输出高电平,以2612为例

#include

main()

{

P1M=1;

P1=1;

while(1);

}

2P0.0输出低电平(位操作)

FP00M=1;

FP00=0;

3、上拉输入读取P1口数据,一般按键接地时用

P1M=0;

P1UR=0xff;

data=P1;

4、读取P1.1口的电平

FP11M=0;

data=FP11;

5、开漏模式配置办法类似

 

你可能感兴趣的:(SONIX)