0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用按钮依次切换8个输出且可控制输出通道

冬至子 来源:呆萌的长颈鹿 作者:三十而惑 2023-12-04 15:52 次阅读

本案例使用按钮依次切换8个输出且可控制输出通道,比如控制指示灯,可以输入序号来点亮该序号指示灯,连接时钟信号可以实现跑马灯效果。点击正向按钮则正序依次切换指示灯,如此反复。点击反向按钮则逆序依次切换指示灯。

功能介绍

图片

  • 如果EN为FALSE,则所有输出均为FALSE。输入EN必须为TRUE,在E = TRUE时只有一个输出Qn为TRUE。
  • 当E = TRUE时,使用输入UP从输出Qn切换到Qn +1,而输入DN将输出Qn切换到Qn-1。
  • 当E = TRUE时,可以由SET输入和输入IN值选择主动输出Q0..Q7。如SET=TRUE,IN=5将输出Q5=TRUE,而所有其他输出都设置为FALSE。
  • 当E = TRUE时,输入RST=TRUE将输出Q0设置为TRUE,而所有其他输出都设置为FALSE。
  • 当E = TRUE时,状态输出总是显示当前选择了哪个输出Qn;当E=FALSE时,状态输出保持不变,E再次变为TRUE时,Qn再次输出。

SELECT_8源代码

SELECT_8实现的是选择器的功能,内部调用一个取模函数INC,详见下面介绍取模运算(INC)以及其代码。

图片

图片

图片

01

取模运算(INC)

取模是除以两个数字时查找余数的操作。因此,当你问“什么是2 mod 2?”时,你是在问 “当你把 2 除以 2 时,余数是多少?”

图片

SELECT_8源代码

FUNCTION_BLOCK "SELECT_8"
TITLE = 'SELECT_8'
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
   VAR_INPUT 
      E : Bool;
      SET : Bool;
      IN : Int;
      UP : Bool;
      DN : Bool;
      RST : Bool;
   END_VAR




   VAR_OUTPUT 
      Q0 : Bool;
      Q1 : Bool;
      Q2 : Bool;
      Q3 : Bool;
      Q4 : Bool;
      Q5 : Bool;
      Q6 : Bool;
      Q7 : Bool;
      STATE : Int;
   END_VAR




   VAR 
      last_up : Bool;
      last_dn : Bool;
   END_VAR








BEGIN


IF #RST THEN
  #STATE := 0;
ELSIF #SET THEN
  #STATE := #IN;
ELSIF #UP AND NOT #last_up THEN
  #STATE := "INC"(X := #STATE, D := 1, M := 7);
ELSIF #DN AND NOT #last_dn THEN
  #STATE := "INC"(X := #STATE, D := -1, M := 7);
END_IF;
#last_up := #UP;
#last_dn := #DN;


#Q0 := FALSE;
#Q1 := FALSE;
#Q2 := FALSE;
#Q3 := FALSE;
#Q4 := FALSE;
#Q5 := FALSE;
#Q6 := FALSE;
#Q7 := FALSE;


IF #E THEN
  CASE #STATE OF
    0:
      #Q0 := TRUE;
    1:
      #Q1 := TRUE;
    2:
      #Q2 := TRUE;
    3:
      #Q3 := TRUE;
    4:
      #Q4 := TRUE;
    5:
      #Q5 := TRUE;
    6:
      #Q6 := TRUE;
    7:
      #Q7 := TRUE;
  END_CASE;
END_IF;




END_FUNCTION_BLOCK

INC源代码

FUNCTION "INC" : Int
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
   VAR_INPUT 
      X : Int;
      D : Int;
      M : Int;
   END_VAR








BEGIN


#INC := (#X + #D + #M + 1) MOD (#M + 1);
END_FUNCTION
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 指示灯
    +关注

    关注

    3

    文章

    403

    浏览量

    27995
  • 跑马灯
    +关注

    关注

    5

    文章

    117

    浏览量

    34372
  • RST
    RST
    +关注

    关注

    0

    文章

    30

    浏览量

    7323
  • 时钟信号
    +关注

    关注

    4

    文章

    372

    浏览量

    28062
  • 选择器
    +关注

    关注

    0

    文章

    103

    浏览量

    14322
收藏 人收藏

    评论

    相关推荐

    STM32定时器DMA输出通道和双通道输出切换出现异常的原因?

    STM32定时器DMA输出通道和双通道输出切换出现异常
    发表于 03-26 06:44

    关于电源控制的问题,磁保持继电器/mos管/可控硅等

    继电器控制双电源切换无法避免的?!现在考虑的是继电器+可控硅的控制策略,先将继电器接通,再用MCU控制
    发表于 11-01 22:08

    控制按钮切换相关

    单片机连接3按钮,怎么编写程序控制1按钮切换选中两
    发表于 04-04 14:29

    关于stm32 6pwm通道输出

    请问一下,我希望有6pwm输出通道,比如1,2,3,4,5,6,频率相同,占空比50;但是我是每隔100ms选择其中的两,任意两,由其
    发表于 04-11 17:22

    布尔按钮控制数字输出

    怎么设计VI使得上下左右停四按钮分别控制常数12345的输出
    发表于 05-08 18:51

    用于PLC的低侧栅8通道24V低侧数字输出模块

    接口。此设计具有尺寸小的特点,能够在所有 8 通道上提供 0.5A 而不影响热管理。主要特色高密度 8 通道 24V 低侧数字
    发表于 12-13 14:20

    通道依次自动测试0-5v希望给点意见

    通道依次自动测试,测试输出端Led指示灯或电压显示模块显示。有那么一点思绪,不过全给否了。往大神给点意见。
    发表于 01-15 16:08

    请问该芯片是否可以控制单通道输出

    8通道DA芯片tlv5610,输出第一通道同时,第二通道
    发表于 06-12 06:14

    AD7124-8 AD采集的通道随机切换,怎么才能按顺序切换通道

    AD7124-8 采用8全差分输入,全功率,AD采集的通道随机切换,有时候两
    发表于 12-07 08:17

    关于变频器的输出切换问题探讨——兼论水泵群软起停控制方案

    关于变频器的输出切换问题探讨——兼论水泵群软起停控制方案 摘要:针
    发表于 07-15 09:47 1144次阅读

    凌力尔特发表双组输出降压切换稳压器--LT3992

    凌力尔特(Linear Technology)发表完整的双组输出降压切换稳压器--LT3992,此元件可从每通道提供3安培(A)连续输出电流;3~60伏特(V)输入电压范围
    发表于 04-20 08:53 460次阅读

    电机控制器的4种输出模式

    作用,松手无作用; 自锁:按下有作用,松手后依然有作用; 互锁:一般有两个按钮(比如A和B)控制输出,当按下A键,松手后输出依然有效;当按下B键,断开与A相关的
    发表于 10-15 16:42 3480次阅读

    温控器可控硅触发输出控制温度

    智能温控仪可控硅触发输出,分为可控硅(SCR)过零触发输出和SCR移相触发输出可控硅一般选
    的头像 发表于 10-24 09:43 5957次阅读

    使用按钮式数字电位计设计可调电压输出

    本文介绍一种完整的解决方案,其中可通过按钮式数字电位计简单高效地控制高达20 V的电压。完整的解决方案代表可调电源,可用于需要可调电压输出的各种应用。图1所示为具有可变输出功率的相应开
    的头像 发表于 02-15 12:02 1444次阅读
    使用<b class='flag-5'>按钮</b>式数字电位计设计可调电压<b class='flag-5'>输出</b>

    按钮开/关电源控制

    本应用笔记给出了一个单按钮电源控制电路。该设计由一个由按钮、去抖动器和触发器组成的开/关控制电路组成。该电路通过控制LDO来
    的头像 发表于 06-25 11:21 586次阅读
    单<b class='flag-5'>按钮</b>开/关电源<b class='flag-5'>控制</b>