<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 80C51系列單片機仿真器選購指南

          80C51系列單片機仿真器選購指南

          作者: 時間:2012-10-26 來源:網(wǎng)絡 收藏

          第六章 如何測試通用

          在選擇了生產(chǎn)廠商后,用戶還需要對的性能做仔細的測試,保證您選擇的仿真器能夠達到該仿真器保證的性能以及作為仿真器應該達到的性能。

          在選擇一種仿真器前,通過該仿真器的廣告和銷售人員的介紹,用戶能基本上了解該仿真器的突出性能。這些突出性能應該是該仿真器確實存在的功能,雖然可能有被夸大但一般都不會有欺騙的成分。這些性能好不好需要有針對性的一一驗證,這里只能建議用戶將目光注意在實際仿真性能上,而不要過分注意一些與仿真器無關或關系不大的功能。

          很多的仿真器雖然具備一些附加的功能,但是用戶必須要注意到這些仿真器可能在一些最基本的仿真功能卻做不好,這種現(xiàn)象在國產(chǎn)的仿真器中非常普遍!由于用戶并不專業(yè)于仿真器的測試,因此在購買中不知道對這些仿真器的死點進行驗證。等以后在學習特別是在開發(fā)設計中,這些設計中的死點可能給您帶來莫名其妙的問題。您可能要花幾倍的時間來尋找其中的原因,因為您首先懷疑是您系統(tǒng)的問題而不懷疑是仿真器的問題。所以選擇一個性能可靠的仿真器是十分重要的,這需要非常專業(yè)化的測試程序來實現(xiàn)。

          以下的測試程序由廣州致遠電子有限公司提供,經(jīng)過長時間的使用證明能基本上反映出一個仿真器設計水平的高低。廣州致遠電子有限公司在提供這些測試程序時聲明:這些測試程序只是指出仿真器設 計中容易出現(xiàn)的問題,但并不有意攻擊任何含有上述問題的仿真器廠家。

          1.單步性能的測試

          測試說明:單步是仿真器設計中比較難實現(xiàn)的功能。照通常的理解,用戶每執(zhí)行一個單步應該準確實現(xiàn)理想運行的單步性能。例如,運行一個機器周期的指令,內部的所有時序應該都動作一個機器周 期而不能出現(xiàn)不動作或動作過度的現(xiàn)象。不過很遺憾的看到國內的仿真器多數(shù)不能達到這個指標。

          測試程序:

          ORG 0000H

          SETB TR0 /* 打開定時器0 */

          TestStart:

          NOP /* 定時器0 運行1個機器周期, TL0 加1 */

          MOV A,#0FFH /* 定時器0 運行1個機器周期, TL0 加1 */

          MUL AB /* 定時器0 運行4 個機器周期, TL0 加4 */

          LJMP TestStart /* 定時器0 運行2 個機器周期, TL0 加2 */

          END

          測試步驟

          (1) 照您當前使用的仿真器要求測試上面的程序;

          (2) 在運行前打開TL0 的顯示,以便單步運行后能觀察TL0 的變化;

          (3) 使用當前仿真器環(huán)境提供的單步功能開始單步運行;

          (4) 單步運行后檢查TL0 變化的數(shù)值是否與指令的周期數(shù)相同。

          測試結論:仿真器如果沒有照嚴格正規(guī)的設計,程序的單步運行性能將不準確,一般會出現(xiàn)實際運行時間變長的現(xiàn)象,這在時間要求較高的單步運行將不能仿真程序的真正運行。

          2.中斷性能的測試

          測試說明:中斷是一種非正常的程序跳轉,單步仿真有一定的難度,尤其在低檔仿真器中。在當前采用Bondout 技術制作的仿真器中一般可以做到正確仿真,但是仍有一些仿真器不能正確單步仿真中斷。

          測試程序:

          ORG 0000H

          LJMP TestStart

          ORG 000BH /* 定時器0 的中斷服務程序 */

          RETI

          TestStart:

          SETB EA /* 開放全局中斷允許 */

          SETB ET0 /* 開放T0 中斷允許 */

          TestLoop:

          SETB TF0 /* 設置T0 的中斷標志 */

          INC A /* A 數(shù)值加一,以便觀察程序持續(xù)運行 */

          LJMP TestLoop /* 連續(xù)運行 */

          END

          測試步驟

          (1) 照您當前使用的仿真器要求測試上面的程序。

          (2) 每次SETB TF0 后程序將進入T0 的中斷服務程序,執(zhí)行完畢后返回主程序繼續(xù)運行。

          (3) 主程序能在TestLoop 中連續(xù)運行,因此A 能連續(xù)加一,但是每循環(huán)一次就進入一次中斷。

          測試結論:仿真器如果沒有照嚴格正規(guī)設計,程序的中斷性能將不準確??赡艹霈F(xiàn)程序不能跳轉到中斷服務程序,或沒有返回到正確的主程序,或A 不能每次循環(huán)連續(xù)的加1。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();