移位寄存器有什么作用?
閱讀:1441 發(fā)布時(shí)間:2021-4-29
移位寄存器又稱為FIFO(First in First out,先人先出)堆棧,F(xiàn)X系列的堆棧長度為2-512個(gè)字,先寫入堆棧的數(shù)據(jù)先讀出。用移位寄存器保存產(chǎn)品的編號,可以實(shí)現(xiàn)先入庫的產(chǎn)品先出庫。
圖4-21中的目標(biāo)元件D1是FIFO堆棧的首地址,也是堆棧的指針,移位寄存器未裝人數(shù)據(jù)時(shí)應(yīng)將D1清0。在XO由OFF變?yōu)镺N時(shí),移位寄存器寫入指令SFWR將指針的值加1后寫人數(shù)據(jù)。第一次寫入時(shí),源操作數(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時(shí),移位寄存器讀出指令SFRD將D2中的數(shù)據(jù)送到源操作數(shù)D20,同時(shí)指針D1的值減1,D3到D9的數(shù)據(jù)向右移一個(gè)字。數(shù)據(jù)總是從D2讀出,指針D1為0時(shí),F(xiàn)IFO堆棧被讀空,不再執(zhí)行上述處理,零標(biāo)志M8020為ON。
下面的例程用移位寄存器寫入、讀出指令實(shí)現(xiàn)先入庫的產(chǎn)品先出庫: