打印

【KF8V111控制器】I/O配置

[复制链接]
703|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LM莫|  楼主 | 2020-2-26 21:37 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

一、先上I/O口方向控制寄存器,就是配置输出输入模式,这里以P0端口为例子:


若要设置P05为输出模式,则配置寄存器TR05=0;若设置P05为输入模式,则配置寄存器TR05=1;

P1和P2端口根据相关寄存器以此类推即可!


使用特权

评论回复
沙发
LM莫|  楼主 | 2020-2-26 21:38 | 只看该作者

二、若需要配置P05为输出模式,则它输出的高低输出需要配置一下寄存器:


若要P05输出高电平,则配置P0LR5=1;若要P05输出低电平,则配置P0LR5=0;

P1和P2端口根据相关寄存器以此类推即可!


使用特权

评论回复
板凳
LM莫|  楼主 | 2020-2-26 21:39 | 只看该作者

三、若需要配置P05为输入模式,则它端口状态的读取需要配置一下寄存器:



若要读取P05端口的输入状态,则状态值就是P05;

(这里注意:配置为输入状态需要根据自己需求配置上拉功能,一般我们都上拉,即配置以下寄存器)


P1和P2端口根据相关寄存器以此类推即可!


401195e5674f56b4ea.png (197.44 KB )

401195e5674f56b4ea.png

使用特权

评论回复
地板
LM莫|  楼主 | 2020-2-26 21:40 | 只看该作者
四、下面的代码实现P05输出模式,P12口输入模式的设计:



#include<KF8V111.h>

void SYSTEM_Init(void) //系统时钟配置
{

IRCS0 =0;

IRCS1 =1;

IRCS2 =1; //系统时钟频率8MHz

}



void PORT_Init(void)    //I/O口配置
{
TR05 = 0;             //P05配置为为输出模式
P0LR5 = 0;           //P05初始化输出为0



TR12 = 1;    //P12配置为输入模式
PUR12 = 1;//上拉功能使能

}

void main()
{
SYSTEM_Init();

PORT_Init();
while(1)

{

if(P12)  //如果P12输入电平为高

{

P0LR5 = 1; //P05输出高电平

}

else

{

P0LR5 = 0;

}

}

}

上面代码的功能是,如果P12输入电平为高,则P05输出高电平;如果P12输入电平为低,则P05输出低电平!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

447

帖子

3

粉丝