IAP15W413AS工业自动化控制之【04输入输出点动控制】

  • SingleYork
  • LV5工程师
  • |      2017-08-11 21:55:15
  • 浏览量 1444
  • 回复:3
本帖最后由 SingleYork 于 2017-9-16 16:41 编辑 bg1.png

在上一篇里面笔者给大家介绍了控制板的输出,这一篇里,笔者要给大家介绍用板子的输入来点动控制输出。所谓点动,顾名思意,就是当有输入信号的时候输出一个信号,当无输入信号的时候,关闭该输出信号。

还是先来看下输入口的分布吧:

根据硬件上的IO分布,我们就可以来配置输入口的模式了:

/****************  IO口配置  ******************/

void    GPIO_config(void)

{

        GPIO_InitTypeDef        GPIO_InitStructure;                                                        //结构定义

    

  //P12-17口设置为准双向口

        GPIO_InitStructure.Pin  = GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;                //指定要初始化的IO, GPIO_Pin_0 ~ GPIO_Pin_7, 或操作

        GPIO_InitStructure.Mode = GPIO_PullUp;                                        //指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP

        GPIO_Inilize(GPIO_P1,&GPIO_InitStructure);                                //初始化

    

  //P54-55口设置为准双向口

        GPIO_InitStructure.Pin  = GPIO_Pin_4|GPIO_Pin_5;                //指定要初始化的IO, GPIO_Pin_0 ~ GPIO_Pin_7, 或操作

        GPIO_InitStructure.Mode = GPIO_PullUp;                                        //指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP

        GPIO_Inilize(GPIO_P5,&GPIO_InitStructure);                                //初始化

}

同样,为了控制方便,我们也定义了8个输入变量:

sbit IN00 = P1^2;

sbit IN01 = P1^3;

sbit IN02 = P1^4;

sbit IN03 = P1^5;

sbit IN04 = P1^6;

sbit IN05 = P1^7;

sbit IN06 = P5^4;

sbit IN07 = P5^5;

配置完毕后,我们就可以来写控制逻辑了:

void main(void)

{

        OUT00   = 0;

        OUT01   = 0;

        OUT02   = 0;

        OUT03   = 0;

        OUT04   = 0;

        OUT05   = 0;



        GPIO_config();      //GPIO配置

        

        while(1)

        {

                if((!IN00)||(!IN06))OUT00=1;else OUT00=0;

                if((!IN01)||(!IN07))OUT01=1;else OUT01=0;

                if(!IN02)OUT02=1;else OUT02=0;

                if(!IN03)OUT03=1;else OUT03=0;

                if(!IN04)OUT04=1;else OUT04=0;

                if(!IN05)OUT05=1;else OUT05=0;

        }

}

这里需要说明一下,由于板子有8个输入口,而只有6个输出口,所以为了测试所有的输入输出均能正常工作,所以两个输入共用了同一个输出。接下来还是给大家分享一下运行效果吧,源代码见附件:

源代码:

  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:1
7943603 2017-08-14
手长得很好。
0   回复
举报
发布
SingleYork 回复 2017-08-14
:L
0   回复
举报
mihang1987@126. 回复 2017-09-28
学习,初学者挺好懂得
0   回复
举报
x
收藏成功!点击 我的收藏 查看收藏的全部帖子