讀外部RAM指令時序
發布時間:2014/6/4 20:31:55 訪問次數:3106
設片外RAM的2000H單元中有一數x,且DPTR中已存放有該數地址2000H,則CPU執行如下指令HEF4021BT便可從片外RAM中取出x送到累加器A中:
上述指令執行時的時序如圖3-16所示。
指令的詳細執行過程如下:
(1) ALE在第一次有效期間,用于從片外ROM中讀取MOVX指令的指令碼。即PC中高8位地址送到P2口,PC中低8位地址送到PO口,并在ALE第一個下降沿將PO口低8位地址鎖存于片外地址鎖存器74LS3 73。
(2) CPU在PSEN有效低電平(S3和S4Pl時)作用下,把從片外ROM讀得的指令碼經PO口送入指令寄存器IR,譯碼后產生一系列控制信號,控制以下各步驟昀完成。
(3) CPU在S5Pl時把DPTR中的高8位地址20H送到P2口,并把低8位地址OOH送到PO口,且ALE在它的第2個下降沿時鎖存PO口上的地址。
(4) CPU在第二機器周期的S1~S3期間使RD有效,選中片外RAM工作,以讀出3000H單元中的數x。
(5) CPU把外部RAM中讀出的數x經PO口送到CPU的累加器A中,以終止指令的執行。上述過程表明,執行“MOVX A,@DPTR”指令也可以分為兩個階段。第一階段是根據PC中的地址讀片外ROM中的指令碼EOH,第二階段是根據DPTR中的地址讀片外RAM,并把讀出的數x送往累加器A。在讀片外RAM時,PSEN被封鎖為高電平,RD有效,用作片外RAM的選通信號。這就是說,MCS-51執行“MOVXA,@DPTR”指令時1次訪問的是片外ROM,以便從中存取MOVX A,@DPTR的指令碼EOH;第2次訪問的是片外RAM,以便從中讀出由DPTR中的地址所指片外RAM單元中的操作數。
設片外RAM的2000H單元中有一數x,且DPTR中已存放有該數地址2000H,則CPU執行如下指令HEF4021BT便可從片外RAM中取出x送到累加器A中:
上述指令執行時的時序如圖3-16所示。
指令的詳細執行過程如下:
(1) ALE在第一次有效期間,用于從片外ROM中讀取MOVX指令的指令碼。即PC中高8位地址送到P2口,PC中低8位地址送到PO口,并在ALE第一個下降沿將PO口低8位地址鎖存于片外地址鎖存器74LS3 73。
(2) CPU在PSEN有效低電平(S3和S4Pl時)作用下,把從片外ROM讀得的指令碼經PO口送入指令寄存器IR,譯碼后產生一系列控制信號,控制以下各步驟昀完成。
(3) CPU在S5Pl時把DPTR中的高8位地址20H送到P2口,并把低8位地址OOH送到PO口,且ALE在它的第2個下降沿時鎖存PO口上的地址。
(4) CPU在第二機器周期的S1~S3期間使RD有效,選中片外RAM工作,以讀出3000H單元中的數x。
(5) CPU把外部RAM中讀出的數x經PO口送到CPU的累加器A中,以終止指令的執行。上述過程表明,執行“MOVX A,@DPTR”指令也可以分為兩個階段。第一階段是根據PC中的地址讀片外ROM中的指令碼EOH,第二階段是根據DPTR中的地址讀片外RAM,并把讀出的數x送往累加器A。在讀片外RAM時,PSEN被封鎖為高電平,RD有效,用作片外RAM的選通信號。這就是說,MCS-51執行“MOVXA,@DPTR”指令時1次訪問的是片外ROM,以便從中存取MOVX A,@DPTR的指令碼EOH;第2次訪問的是片外RAM,以便從中讀出由DPTR中的地址所指片外RAM單元中的操作數。
上一篇:訪問片外ROM/RAM的指令時序