
圖2 DPTR讀模塊示意圖 圖3 DPTR寫(xiě)模塊結(jié)構(gòu)圖 在PC指針模塊和片外RAM地址模塊中,由于也是涉及DPTR的讀操作,因此該模塊的修改與SFR讀模塊中的修改類(lèi)似,也是利用dps來(lái)實(shí)現(xiàn)DPTR0、DPTR1的選取。
3 仿真測(cè)試
在MCS8051中,針對(duì)以上3個(gè)模塊分別作了修改,將DPTR擴(kuò)展為兩組,通過(guò)對(duì)DPTR_SEL(設(shè)定為SFR的E1H)中DPTR狀態(tài)標(biāo)志位dps進(jìn)行操作,來(lái)實(shí)現(xiàn)對(duì)DPTR0和DPTR1的選取,并利用仿真軟件Modelsim6.0進(jìn)行了仿真測(cè)試。由于在實(shí)現(xiàn)DPTR擴(kuò)展時(shí)主要針對(duì)SFR讀寫(xiě)模塊、PC指針模塊和片外RAM地址模塊這3個(gè)模塊進(jìn)行了修改,因此對(duì)于DPTR擴(kuò)展的仿真測(cè)試也分3個(gè)模塊進(jìn)行。
3.1 針對(duì)SFR讀寫(xiě)模塊的測(cè)試
該模塊的測(cè)試主要為測(cè)試DPTR0和DPTR1的數(shù)據(jù)傳輸。首先對(duì)DPTR狀態(tài)標(biāo)志dps位進(jìn)行操作,分別選取DPTR0和DPTR1;其次分別對(duì)其進(jìn)行寫(xiě)操作;最后將DPTR0和DPTR1中數(shù)據(jù)值依次輸出寄存器A中。具體波形如圖4所示。

圖4 SFR讀寫(xiě)測(cè)試波形
3.2 針對(duì)PC指針的數(shù)據(jù)查表測(cè)試
針對(duì)此模塊,進(jìn)行了一個(gè)查表測(cè)試,即向DPTR0和DPTR1中分別寫(xiě)入data1和data2兩個(gè)數(shù)據(jù)表的地址;而后利用dps選取DPTR0和DPTR1,再分別對(duì)其進(jìn)行數(shù)據(jù)查表輸出。具體波形如圖5所示。

圖5 PC指針的數(shù)據(jù)查表波形
3.3 片外RAM數(shù)據(jù)讀寫(xiě)測(cè)試
對(duì)于片外RAM數(shù)據(jù)讀寫(xiě)測(cè)試,即大規(guī)模數(shù)據(jù)轉(zhuǎn)移,測(cè)試方案為:首先將DPTR0和DPTR1中分別寫(xiě)入地址adr0和adr1,再分別對(duì)這兩個(gè)地址寫(xiě)入數(shù)據(jù),最后將這兩個(gè)地址的數(shù)據(jù)通過(guò)DPTR0和DPTR1讀出,將讀出的結(jié)果與寫(xiě)入結(jié)果對(duì)比,具體測(cè)試波形如圖6所示。

圖6 片外RAM數(shù)據(jù)讀寫(xiě)波形





