80C196單片機仿真軟件的設(shè)計與實現(xiàn)
l仿真軟件需求分析與軟件結(jié)構(gòu)
仿真軟件作為全軟件測試平臺的主框架,主要利用PC機上較豐富的資源,在PC機上實現(xiàn)應(yīng)用軟件全速全功能仿真80C196單片機的運行,并頂留測試用例生成模塊、軟件模擬的外部激勵等軟件測評信息的插裝接口。
該仿真軟件可仿真80C196單片機指令功能、中斷響應(yīng)和外設(shè)接口功能。具有良好的人機界面,便于控制仿真過程,查看仿真結(jié)果。
CPU模塊,主要仿真80C196 CPU芯片和存儲器,執(zhí)行80C196指令系統(tǒng)中的所有指令,支持多種數(shù)據(jù)類型,包括位、字節(jié)、字、雙字、短整形、整形、長整形,以及多種尋址方式,完成中斷處理并控制各種仿真的外設(shè)模塊;編譯模塊,完成源程序的預(yù)處理過程,包括編譯、分析、查錯,將源程序轉(zhuǎn)換成80C196 CPU能識別的指令集,供仿真運行使用;程序控制模塊,控制仿真軟件的運行,支持中斷點的設(shè)置,完成仿真軟件與用戶的交互;系統(tǒng)信息模塊,顯示當(dāng)前系統(tǒng)信息,監(jiān)視仿真軟件的運行情況;結(jié)果信息模塊,查看源程序運行結(jié)果,并以形象直觀的方式顯示出來,具有良好的人機界面。
2仿真軟件設(shè)計與實現(xiàn)
仿真軟件采用VC++面向?qū)ο蠹夹g(shù),將系統(tǒng)中的各個抽象模塊,細(xì)化為各自的類實例,從而完成規(guī)定的系統(tǒng)功能。仿真軟件中所用到的主要類和關(guān)鍵技術(shù)描述如下
2.1 存儲器數(shù)據(jù)結(jié)構(gòu)設(shè)計
80C196具有一個邏輯上完全統(tǒng)一的寄存器空間,可尋址范圍為64 kB,其中大部分空間是用戶可以自由使用的空間。為了實現(xiàn)存儲器的全部功能以及便于程序控制,設(shè)計了一個包含多種信息的結(jié)構(gòu)作為仿真軟件中的存儲單元,并由這些存儲單元組成了仿真平臺的存儲區(qū),軟件仿真平臺的存儲區(qū)與80C196的存儲空間一一映射。存儲單元結(jié)構(gòu)表示如下:
仿真軟件中的存儲器表示為MyCode m_ramMap[0xffff],實現(xiàn)了與真實存儲空間的映射。
2.2 CPU模塊設(shè)計
CPU模塊實質(zhì)是一個龐大的類實例,模擬80C196CPU的所有功能,他是整個仿真軟件的核心。CPU類是80C196單片機中指令執(zhí)行部件,存儲器,IO接口,串行口等硬件部件的軟件實現(xiàn),完成指令仿真、存儲器管理、中斷管理等功能。能實現(xiàn)80C196單片機指令系統(tǒng)中104種指令的功能,并處理6種指令尋址方式,包括立即數(shù)尋址、寄存器直接尋址、間接尋址、自動增量間接尋址、短變址尋址和長變址尋址。
80C196CPU的所有功能由C196Chip類實現(xiàn),C196Chip類的結(jié)構(gòu)圖及其類中調(diào)用關(guān)系。
CMyCPU類為所有類共有,包含存儲器單元,程序狀態(tài)字,CPU時鐘頻率,指令執(zhí)行總的周期數(shù)以及一些其他的CPU信號。CFindAddr 類實現(xiàn)了指令的六種尋址方式,通過提供統(tǒng)一的接口,實現(xiàn)不同的尋址方式,使得操作數(shù)的尋址過程變得透明。需要訪問存儲器的指令通過調(diào)用CFindAddr類中的方法完成訪問存儲器的過程,取得訪問數(shù)據(jù),依指令的不同,取得的數(shù)據(jù)類型包括字節(jié)、字、短整型數(shù)、整型數(shù)、雙字和長整型數(shù)。80C196指令系統(tǒng)中有104種指令,依據(jù)功能的不同,劃分為加法指令、減法指令、乘法指令、除法指令、邏輯運算指令、數(shù)據(jù)傳送指令、堆棧操作指令、跳轉(zhuǎn)和子程序調(diào)用指令、條件跳轉(zhuǎn)、位邏輯值跳轉(zhuǎn)指令、單寄存器指令、移位指令和特殊控制指令。每一類指令作為一個單獨的模塊設(shè)計為一個類實例,完成相應(yīng)指令的解釋執(zhí)行。對于需要修改程序狀態(tài)字的指令,將修改狀態(tài)字的操作作為一個類。
評論