移位寄存器有什么作用?
閱讀:1514 發(fā)布時間:2021-4-29
移位寄存器又稱為FIFO(First in First out,先人先出)堆棧,F(xiàn)X系列的堆棧長度為2-512個字,先寫入堆棧的數(shù)據(jù)先讀出。用移位寄存器保存產(chǎn)品的編號,可以實(shí)現(xiàn)先入庫的產(chǎn)品先出庫。
圖4-21中的目標(biāo)元件D1是FIFO堆棧的首地址,也是堆棧的指針,移位寄存器未裝人數(shù)據(jù)時應(yīng)將D1清0。在XO由OFF變?yōu)镺N時,移位寄存器寫入指令SFWR將指針的值加1后寫人數(shù)據(jù)。第一次寫入時,源操作數(shù)DO中的數(shù)據(jù)寫入D2。如果XO再次由OFF變?yōu)镺N,D1中的數(shù)變?yōu)?,DO中新的數(shù)據(jù)寫入D3。堆棧寫滿后不再執(zhí)行寫入操作,且進(jìn)位標(biāo)志M8022置1 。

圖4-22的X1由OFF變?yōu)镺N時,移位寄存器讀出指令SFRD將D2中的數(shù)據(jù)送到源操作數(shù)D20,同時指針D1的值減1,D3到D9的數(shù)據(jù)向右移一個字。數(shù)據(jù)總是從D2讀出,指針D1為0時,F(xiàn)IFO堆棧被讀空,不再執(zhí)行上述處理,零標(biāo)志M8020為ON。

下面的例程用移位寄存器寫入、讀出指令實(shí)現(xiàn)先入庫的產(chǎn)品先出庫:
