打印

(转)【KF8V111控制器】I/O配置

[复制链接]
844|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
观海|  楼主 | 2018-8-23 13:01 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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


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

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


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


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

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


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



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

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


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


四、下面的代码实现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输出低电平!


沙发
123ycli| | 2018-8-26 17:29 | 只看该作者
支持下,谢谢分享!

使用特权

评论回复
板凳
HKingS| | 2018-8-27 22:19 | 只看该作者
IO端口寄存器的系统框图如下:

使用特权

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

本版积分规则

99

主题

4103

帖子

1

粉丝