本案例使用按鈕依次切換8個(gè)輸出且可控制輸出通道,比如控制指示燈,可以輸入序號(hào)來點(diǎn)亮該序號(hào)指示燈,連接時(shí)鐘信號(hào)可以實(shí)現(xiàn)跑馬燈效果。點(diǎn)擊正向按鈕則正序依次切換指示燈,如此反復(fù)。點(diǎn)擊反向按鈕則逆序依次切換指示燈。
功能介紹

- 如果EN為FALSE,則所有輸出均為FALSE。輸入EN必須為TRUE,在E = TRUE時(shí)只有一個(gè)輸出Qn為TRUE。
- 當(dāng)E = TRUE時(shí),使用輸入U(xiǎn)P從輸出Qn切換到Qn +1,而輸入DN將輸出Qn切換到Qn-1。
- 當(dāng)E = TRUE時(shí),可以由SET輸入和輸入IN值選擇主動(dòng)輸出Q0..Q7。如SET=TRUE,IN=5將輸出Q5=TRUE,而所有其他輸出都設(shè)置為FALSE。
- 當(dāng)E = TRUE時(shí),輸入RST=TRUE將輸出Q0設(shè)置為TRUE,而所有其他輸出都設(shè)置為FALSE。
- 當(dāng)E = TRUE時(shí),狀態(tài)輸出總是顯示當(dāng)前選擇了哪個(gè)輸出Qn;當(dāng)E=FALSE時(shí),狀態(tài)輸出保持不變,E再次變?yōu)門RUE時(shí),Qn再次輸出。
SELECT_8源代碼
SELECT_8實(shí)現(xiàn)的是選擇器的功能,內(nèi)部調(diào)用一個(gè)取模函數(shù)INC,詳見下面介紹取模運(yùn)算(INC)以及其代碼。



01
取模運(yùn)算(INC)
取模是除以兩個(gè)數(shù)字時(shí)查找余數(shù)的操作。因此,當(dāng)你問“什么是2 mod 2?”時(shí),你是在問 “當(dāng)你把 2 除以 2 時(shí),余數(shù)是多少?”

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
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
指示燈
+關(guān)注
關(guān)注
3文章
420瀏覽量
29344 -
跑馬燈
+關(guān)注
關(guān)注
5文章
117瀏覽量
35817 -
RST
+關(guān)注
關(guān)注
0文章
31瀏覽量
7806 -
時(shí)鐘信號(hào)
+關(guān)注
關(guān)注
4文章
505瀏覽量
29981 -
選擇器
+關(guān)注
關(guān)注
0文章
111瀏覽量
15131
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
STM32定時(shí)器DMA輸出單通道和雙通道輸出切換出現(xiàn)異常的原因?
STM32定時(shí)器DMA輸出單通道和雙通道輸出切換出現(xiàn)異常
發(fā)表于 03-26 06:44
ADC124S051的4個(gè)通道依次工作后輸出數(shù)據(jù)的順序不正常,為什么?
1、單個(gè)通道單獨(dú)作用時(shí),輸出的數(shù)據(jù)正確,想讀哪個(gè)通道的數(shù)據(jù)就能讀哪個(gè)通道,沒有問題;
2、多通道操作思路:在64
發(fā)表于 12-09 08:13
8通道依次自動(dòng)測(cè)試0-5v希望給點(diǎn)意見
8通道依次自動(dòng)測(cè)試,測(cè)試輸出端Led指示燈或電壓顯示模塊顯示。有那么一點(diǎn)思緒,不過全給否了。往大神給點(diǎn)意見。
發(fā)表于 01-15 16:08
AD7124-8 AD采集的通道隨機(jī)切換,怎么才能按順序切換通道?
AD7124-8 采用8個(gè)全差分輸入,全功率,AD采集的通道隨機(jī)切換,有時(shí)候兩個(gè)
發(fā)表于 12-07 08:17
mcgs按鈕怎么切換畫面
第一個(gè)在執(zhí)行Sleep時(shí),窗口0里是不能運(yùn)行任何東西的,比如按鈕之類的都不能好使了。所以我不喜歡用。而第二種就不會(huì)影響窗口里的東西,我一般是用第二個(gè),然后窗口0里面在放一個(gè)
如何通過并行端口控制32個(gè)DAC通道
有時(shí),系統(tǒng)需要幾個(gè)數(shù)字可編程電壓輸出通道。這種輸出通道通常提供對(duì)機(jī)器人定位,工業(yè)過程甚至家庭自動(dòng)化的控制。圖1中的電路
CN0405 帶按鈕控制的高壓輸出DAC
。數(shù)字電位計(jì)AD5116提供64個(gè)游標(biāo)位置,端到端電阻容差為±8%,適合各類調(diào)整應(yīng)用。此外,AD5116內(nèi)置一個(gè)EEPROM,可通過一個(gè)按鈕
發(fā)表于 06-02 14:00
?2次下載
溫控器可控硅觸發(fā)輸出控制溫度
智能溫控儀可控硅觸發(fā)輸出,分為可控硅(SCR)過零觸發(fā)輸出和SCR移相觸發(fā)輸出。可控硅一般選
單按鈕開/關(guān)電源控制
本應(yīng)用筆記給出了一個(gè)單按鈕電源控制電路。該設(shè)計(jì)由一個(gè)由按鈕、去抖動(dòng)器和觸發(fā)器組成的開/關(guān)控制電路
副邊雙輸出控制器嚴(yán)格調(diào)節(jié)兩個(gè)隔離輸出
LT3804 是一款副邊雙輸出控制器。它 包含一個(gè)誤差放大器和一個(gè)光耦合器驅(qū)動(dòng)器,以 調(diào)節(jié)第一個(gè)輸出
可控硅如何控制輸出電壓
信號(hào)來控制陽(yáng)極(Anode)和陰極(Cathode)之間的導(dǎo)通狀態(tài),從而實(shí)現(xiàn)對(duì)輸出電壓的控制。以下是關(guān)于可控硅控制
使用按鈕依次切換8個(gè)輸出且可控制輸出通道
評(píng)論