0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

移位指令和循環(huán)移位指令的區(qū)別 S7-1200移位指令的流水燈控制編程

要長高 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2023-07-26 16:11 ? 次閱讀

移位指令和循環(huán)移位指令的區(qū)別

移位指令和循環(huán)移位指令是在計(jì)算機(jī)體系結(jié)構(gòu)中常見的操作指令,用于對二進(jìn)制數(shù)據(jù)進(jìn)行位級別的移動(dòng)操作。它們的區(qū)別在于移位時(shí)對被移位數(shù)據(jù)的處理方式。

移位指令是將數(shù)據(jù)沿指定方向進(jìn)行位移,移出的位被丟棄,移入的位用0填充。移位操作有左移和右移兩種形式。左移會(huì)使數(shù)值乘以2的冪次方,右移則相反。

循環(huán)移位指令除了執(zhí)行普通移位指令的功能外,還具備循環(huán)用于處理被移出位的特性。在循環(huán)移位中,被移位的位不會(huì)丟失,而是重新循環(huán)到另一端。循環(huán)移位指令通過指定循環(huán)方向(左循環(huán)或右循環(huán))和循環(huán)位數(shù)來實(shí)現(xiàn)。當(dāng)移位操作完成后,被移出的位將重新插入到另一端,而不是被丟棄。

循環(huán)移位指令常用于位運(yùn)算、密碼學(xué)、圖形處理等領(lǐng)域,以實(shí)現(xiàn)循環(huán)位移、循環(huán)漏洞等功能。相比之下,普通移位指令更適用于簡單的位操作。

移位指令對標(biāo)志位的影響

移位指令通常會(huì)對一些標(biāo)志位進(jìn)行設(shè)置或更新,這些標(biāo)志位是用于記錄移位操作過程中的一些狀態(tài)信息。具體影響取決于特定的計(jì)算機(jī)體系結(jié)構(gòu)和指令集。

常見的標(biāo)志位包括:

1. 進(jìn)位標(biāo)志(Carry Flag):記錄移位操作是否導(dǎo)致數(shù)據(jù)溢出或進(jìn)位的情況。在右移時(shí),進(jìn)位標(biāo)志被設(shè)置為最右邊被丟棄的位。在左移時(shí),進(jìn)位標(biāo)志被設(shè)置為最左邊被移入的位。

2. 零標(biāo)志(Zero Flag):指示移位操作后結(jié)果是否為零。當(dāng)移位操作導(dǎo)致結(jié)果全為零時(shí),零標(biāo)志被設(shè)置為1;否則,被設(shè)置為0。

3. 溢出標(biāo)志(Overflow Flag):用于記錄移位操作是否導(dǎo)致有符號(hào)數(shù)溢出。這個(gè)標(biāo)志位在不同體系結(jié)構(gòu)中的行為可能有所不同。

4. 符號(hào)標(biāo)志(Sign Flag):記錄移位結(jié)果的最高有效位(即符號(hào)位)。如果結(jié)果最高有效位為1,則符號(hào)標(biāo)志被設(shè)置為1;如果結(jié)果最高有效位為0,則被設(shè)置為0。

不同的計(jì)算機(jī)體系結(jié)構(gòu)可能會(huì)有不同的標(biāo)志位設(shè)置方式和命名。因此,具體的影響會(huì)依賴于使用的體系結(jié)構(gòu)和指令集。在使用移位指令時(shí),可以查閱相關(guān)文檔或參考指令集手冊以了解具體的標(biāo)志位操作。

移位指令影響哪些標(biāo)志位

移位指令通常會(huì)對以下標(biāo)志位進(jìn)行設(shè)置或更新:

1. 進(jìn)位標(biāo)志(Carry Flag):在右移操作中,進(jìn)位標(biāo)志被設(shè)置為被丟棄的最低位;在左移操作中,進(jìn)位標(biāo)志被設(shè)置為最高位(符號(hào)位)。

2. 零標(biāo)志(Zero Flag):如果移位操作結(jié)果為零,則零標(biāo)志被設(shè)置為1,否則被設(shè)置為0。

3. 溢出標(biāo)志(Overflow Flag):在某些體系結(jié)構(gòu)中,移位指令可能會(huì)影響溢出標(biāo)志,但這并不是所有體系結(jié)構(gòu)都具有的特性。因此,在具體的體系結(jié)構(gòu)中,需要參考相關(guān)的文檔或指令集手冊以確定移位指令對溢出標(biāo)志的影響。

4. 符號(hào)標(biāo)志(Sign Flag):在左移操作中,符號(hào)標(biāo)志被設(shè)置為移位結(jié)果的最高位(符號(hào)位)。如果最高位為1,則符號(hào)標(biāo)志被設(shè)置為1;如果最高位為0,則被設(shè)置為0。

具體的影響會(huì)因計(jì)算機(jī)體系結(jié)構(gòu)和指令集的不同而有所差異。因此,在實(shí)際應(yīng)用中,應(yīng)該根據(jù)所使用的體系結(jié)構(gòu)和指令集來確定移位指令對標(biāo)志位的影響。

S7-1200 PLC循環(huán)移位指令做流水燈控制

循環(huán)移位指令(CIRC)可以用來實(shí)現(xiàn)流水燈控制。以下是一個(gè)基本的例子 ,使用S7- 1200 PLC ,控制8個(gè)LED燈的流水燈效果。

1.銑,在PLC中進(jìn)行硬件配置,將8個(gè)LED燈連接到PLC的8個(gè)輸出口上。

2.在TIA Portal中創(chuàng)建- -個(gè)新的S7-1200項(xiàng)目 ,并創(chuàng)建一個(gè)程序塊。

3.在程序塊中定義一個(gè)8位的變量Byte1 , 表示8個(gè)LED燈的狀態(tài)。

4.在主程序中使用循環(huán)語詢,循環(huán)執(zhí)行以下操作:

(1)將Byte1變量左移一位,并將最高位的值存儲(chǔ)到最低位。

(2)將Byte1變量輸出到PL C的8個(gè)輸出口,控制ED燈的亮滅。

(3)延時(shí)一段時(shí)間,以控制流水燈的速度。

5.編譯程序,并上傳到PLC中運(yùn)行。

下面是一一個(gè)簡單的S7-1200 PL C程序示例,實(shí)現(xiàn)8個(gè)LED燈的流水燈效果:

wKgZomTA1LqARenIAACTjVr1Xp8617.png

在上面的程序中, CIRC指令將Byte1變量左移- -位 ,并將最高位的值存儲(chǔ)到最低位。例如,如果Byte1的值是0000001(= -進(jìn)制) ,執(zhí)行

CIRC指令后, Byte 1的值變成0000010(二進(jìn)制)。

BOOL_ _TO_ _BYTE和BYTE_ TO_ _BOOL函數(shù)可以將BOOL類型和BYTE類型之間進(jìn)行轉(zhuǎn)換。例如, BYTE_ TO_ _BOOL(Byte1.0)將Byte1變量

的最低位轉(zhuǎn)換為BOOL類型,并將其輸出到Q0.0輸出口上。

最后,使用TON_ Delay指令實(shí)現(xiàn)延時(shí)一-段時(shí)間,以控制流水燈的速度。例如,設(shè)置PT參數(shù)為T#1S ,表示延時(shí)1秒。

編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • plc
    plc
    +關(guān)注

    關(guān)注

    5011

    文章

    13299

    瀏覽量

    463426
  • 流水燈
    +關(guān)注

    關(guān)注

    21

    文章

    433

    瀏覽量

    59718
  • 移位指令
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    6614
  • 編譯程序
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    4134
  • S71200
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    3553
收藏 人收藏

    評論

    相關(guān)推薦

    SIMATIC 移位循環(huán)指令

    字節(jié)左移位指令 (SLB) 或右移位指令 (SRB) 把輸入字節(jié) (IN) 左移或右移N 位后再把結(jié)果輸出到 OUT 字節(jié)移位指令對移出位自動(dòng)補(bǔ)零如果所需移位次數(shù)N 大于或等于8 那么
    發(fā)表于 05-14 00:50 ?10次下載

    MCS-51邏輯運(yùn)算及移位指令

    邏輯運(yùn)算和移位指令共有25條,有與、或、異或、求反、左右移位、清0等邏輯操作,有直接、寄存器和寄存器間址等尋址方式。這類指令一般不影響程序狀態(tài)字(PSW)標(biāo)志。&nb
    發(fā)表于 04-03 22:44 ?2306次閱讀

    邏輯運(yùn)算與移位指令

    邏輯運(yùn)算與移位指令:8086/8088CPU的指令系統(tǒng)提供8位和16位的邏輯運(yùn)算與移位指令有3組。 邏輯運(yùn)算指令 AND/OR/XOR/NOT/TEST
    發(fā)表于 07-03 23:52 ?0次下載

    三菱FX系列PLC編程實(shí)例視頻教程全集part4(31-40集)

    本文包括三菱FX系列PLC編程實(shí)例視頻教程(31-40集),全文共有十個(gè)視頻 31、循環(huán)移位指令ROR、ROL 32、帶進(jìn)位循環(huán)移位指令RC
    發(fā)表于 09-26 16:54 ?4231次閱讀

    編程控制器實(shí)驗(yàn)教程之移位指令實(shí)驗(yàn)

    編程控制器實(shí)驗(yàn)教程之移位指令實(shí)驗(yàn),很好的學(xué)習(xí)資料。
    發(fā)表于 04-19 13:57 ?0次下載

    移位指令循環(huán)移位指令應(yīng)用

    S7-200PLC視頻教程
    發(fā)表于 11-10 17:05 ?0次下載

    plc移位寄存器指令的應(yīng)用

    編程序控制器(PLC)是以自動(dòng)控制技術(shù)、微計(jì)算機(jī)技術(shù)和通信技術(shù)為基礎(chǔ)發(fā)展起來的新一代工業(yè)控制裝置。PLC 廣泛應(yīng)用于邏輯控制、順序控制等方
    發(fā)表于 12-22 10:13 ?1.9w次閱讀
    plc<b class='flag-5'>移位</b>寄存器<b class='flag-5'>指令</b>的應(yīng)用

    移位指令的作用是什么

    移位指令將字節(jié)、字或雙字中的二進(jìn)制數(shù)左移或右移若干位。如果對有符號(hào)的字和雙字操作,符號(hào)位也被移位。對于不同的PLC,移出的最后一位的數(shù)值存放在溢出位或進(jìn)位標(biāo)志位。
    的頭像 發(fā)表于 04-19 09:55 ?9305次閱讀
    <b class='flag-5'>移位指令</b>的作用是什么

    三菱PLC移位指令

    移位指令都是對無符號(hào)數(shù)進(jìn)行的處理,執(zhí)行時(shí)只考慮要移位的存儲(chǔ)單元中每一位數(shù)字的狀態(tài),而不管數(shù)字的大?。ㄒ礊?,要么為1),本類指令在一個(gè)輸出點(diǎn)對應(yīng)多個(gè)相對固定狀態(tài)的情況下有廣泛的應(yīng)用。
    發(fā)表于 10-06 16:38 ?9700次閱讀

    PLC移位指令的工作原理

      移位指令分為兩種,分別為左移位指令和右移位指令。該指令是指在滿足使能條件的情況下,將IN中的數(shù)據(jù)向左移或向右移N位后,把結(jié)果送到OUT的指定地址。
    的頭像 發(fā)表于 09-09 09:48 ?4493次閱讀

    PLC循環(huán)移位指令的工作原理

    循環(huán)移位指令分為兩種,分別為循環(huán)移位指令循環(huán)移位指令。該
    的頭像 發(fā)表于 09-14 16:10 ?5888次閱讀

    PLC移位寄存器指令的工作原理

    移位寄存器指令時(shí)移位長度和移位方向可調(diào)的移位指令,在順序控制、物流及數(shù)據(jù)流
    的頭像 發(fā)表于 09-15 11:46 ?6027次閱讀

    什么是PLC循環(huán)移位指令 PLC循環(huán)移位的特點(diǎn)

    PLC循環(huán)移位指令包括循環(huán)左移指令循環(huán)右移指令。在循環(huán)
    的頭像 發(fā)表于 03-07 16:57 ?2153次閱讀
    什么是PLC<b class='flag-5'>循環(huán)</b><b class='flag-5'>移位指令</b> PLC<b class='flag-5'>循環(huán)</b><b class='flag-5'>移位</b>的特點(diǎn)

    西門子移位指令怎么用在順序控制

    西門子的PLC(可編程邏輯控制器)廣泛應(yīng)用于工業(yè)自動(dòng)化領(lǐng)域,其指令集豐富,能夠滿足各種控制需求。在順序控制中,
    的頭像 發(fā)表于 08-16 17:08 ?933次閱讀

    西門子1200移位指令怎么移位怎么燈都亮了

    西門子S7-1200 PLC是一款廣泛應(yīng)用于工業(yè)自動(dòng)化領(lǐng)域的控制器,其編程環(huán)境為TIA Portal。在S7-1200中,移位指令(Shif
    的頭像 發(fā)表于 08-16 17:10 ?789次閱讀