" />
所屬欄目:軟件開(kāi)發(fā)論文 發(fā)布日期:2012-03-24 15:13 熱度:
摘要:文章軟件開(kāi)發(fā)論文提出了一種基于uVisionKEIL的AGSI接口,利用VC++編寫(xiě)動(dòng)態(tài)鏈接庫(kù),模擬單片機(jī)外圍設(shè)備,以實(shí)現(xiàn)單片機(jī)虛擬實(shí)驗(yàn)室的建設(shè)方案,從而實(shí)驗(yàn)、實(shí)訓(xùn)課題在虛擬平臺(tái)中實(shí)現(xiàn),有效解決了資金和設(shè)備維護(hù)問(wèn)題,并增強(qiáng)了學(xué)生自主學(xué)習(xí)單片機(jī)的便利性和時(shí)效性。
關(guān)鍵詞:AGSI;仿真實(shí)驗(yàn)室;單片機(jī);動(dòng)態(tài)鏈接庫(kù)
1.論文引言
目前,單片機(jī)因其功能強(qiáng)且可自定義,價(jià)格低,可靠性高,抗干擾能力強(qiáng),使用方便靈活,通用性強(qiáng),在工控、智能儀表、通信系統(tǒng)、信號(hào)處理、智能家電等領(lǐng)域都得到了廣泛的應(yīng)用,學(xué)習(xí)者逐年增加。作者利用計(jì)算機(jī)軟件的仿真技術(shù),在KEIL的AGSI接口基礎(chǔ)上,開(kāi)發(fā)DLL庫(kù),構(gòu)建單片機(jī)虛擬實(shí)驗(yàn)室,針對(duì)高職院校單片機(jī)教學(xué),成功的解決了資金的限制,單片機(jī)設(shè)備更新快,學(xué)生自主學(xué)習(xí)時(shí)硬件缺乏等許多實(shí)際的問(wèn)題和困難。
2.解決方案
為了解決傳統(tǒng)單片機(jī)實(shí)驗(yàn)室存在的問(wèn)題,并為學(xué)生自主學(xué)習(xí)提供更大的便利。基于AGSI接口利用VC++自行開(kāi)發(fā)動(dòng)態(tài)鏈接庫(kù),采用純軟件的方法仿真按鈕、LED、數(shù)碼管、LCD、信號(hào)發(fā)生器以及其他自定義外設(shè),無(wú)縫鏈接至uVision,實(shí)現(xiàn)方便的外設(shè)軟件仿真和直觀的界面問(wèn)題。
2.1仿真庫(kù)的開(kāi)發(fā)。下面將以學(xué)生學(xué)習(xí)時(shí)常用的跑馬燈實(shí)訓(xùn)題目為例,開(kāi)發(fā)直觀的虛擬外設(shè),介紹如何利用AGSI接口開(kāi)發(fā)動(dòng)態(tài)鏈接庫(kù)。
(1)啟動(dòng)MSVisualC++,利用MFCAppWizard(dll)新建Experiment工程。注意使用MFC的靜態(tài)鏈接,否則無(wú)法正常工作。
(2)在Experiment工程中添加頭文件AGSI.h,增加AGSI的接口函數(shù)原型,在Experiment.h中添加SFR(特殊功能寄存器)、VTR(虛擬寄存器)的定義和接口函數(shù)原型。
(3)在Experiment.cpp文件中添加外設(shè)初始化代碼,包括AGSI的建立(GetFunctionPointers),外設(shè)菜單入口及其對(duì)應(yīng)對(duì)話框的聲明(DefineAllMenuEntries),和SFR(DefineAllSFR),VTR(DefineAllVTREG),監(jiān)視器(DefineAllWatches)和中斷(DefineAllInterrupts)的聲明。編寫(xiě)外設(shè)復(fù)位代碼(ResetPripheral),上述的所有函數(shù)都通過(guò)AgsiEntry()函數(shù)調(diào)用,該函數(shù)需要在DLL中導(dǎo)出,定義如下:extern"C"DWORDAGSIEXPORTAgsiEntry(DWORD,void*)。
(4)在工程中添加一個(gè)非模態(tài)對(duì)話框,在對(duì)話框定義時(shí)產(chǎn)生的源文件中添加PeriDisp、PeriUpdate、PeriKill三個(gè)函數(shù),分別用來(lái)顯示對(duì)話框,更新顯示內(nèi)容和關(guān)閉對(duì)話框。同時(shí)添加兩個(gè)宏用于菜單定義AGSIMENU和對(duì)話框?qū)傩远xAGSIDLGD。
(5)在對(duì)話框類(lèi)中添加Update()函數(shù),用于更新顯示,該函數(shù)在外設(shè)狀態(tài)改變時(shí)被自動(dòng)調(diào)用便于及時(shí)反映外設(shè)狀態(tài)。
(6)在Update()函數(shù),編寫(xiě)人機(jī)界面,利用Agsi.ReadSFR()函數(shù)讀取P1口的狀態(tài),繪制8個(gè)LED燈,用于仿真P1口狀態(tài)。
(7)添加4個(gè)按鈕,用于仿真P3.4~P3.7四個(gè)管腳的按鍵動(dòng)作。編寫(xiě)按鈕的處理函數(shù)如下:利用Agsi.WriteSFR(P3,0x00,0x10)對(duì)P3.4口進(jìn)行清“0”操作,然后調(diào)用AGSI的CreateTimer函數(shù)將回調(diào)函數(shù)BtnP34與時(shí)間進(jìn)行關(guān)聯(lián) Timer4=Agsi.CreateTimer(BtnP34),最后利用SetTimer函數(shù)定時(shí)100ms,Agsi.SetTimer(Timer4,1000),這樣回調(diào)函數(shù)BtnP34將在1S以后被調(diào)用,在BtnP34函數(shù)中調(diào)用WriterSFR對(duì)P3.4口進(jìn)行置“1”操作,模擬按鍵P3.4的動(dòng)作。其他P3.5等三個(gè)管腳的動(dòng)作仿照P3.4管腳實(shí)現(xiàn),P3.4按鍵動(dòng)作時(shí)序與VC++程序間關(guān)系如圖1所示。
(8)編譯鏈接生成動(dòng)態(tài)鏈接庫(kù)Experiment.dll。
圖1P3.4仿真按鍵時(shí)序的實(shí)現(xiàn)方法
2.2仿真庫(kù)的使用
(1)將編譯生成的Experiment.dll文件拷貝到KEIL程序所在的目錄C51BIN文件夾中。
(2)在uVision3的OptionsforTarget的Debug選項(xiàng)頁(yè)中,選擇UseSimulator,在DialogDLL一欄的Parameter項(xiàng)中寫(xiě)入-dExperimen,為后續(xù)進(jìn)行仿真單片機(jī)程序做準(zhǔn)備。
(3)編寫(xiě)一個(gè)跑馬燈的單片機(jī)測(cè)試程序,P1.0~P1.7所接8個(gè)LED燈,循環(huán)點(diǎn)亮,間隔周期為1S,按鍵P3.4控制跑馬燈的啟停。編譯通過(guò)后,啟動(dòng)DebugSession后,IDE將自動(dòng)裝載8051的仿真動(dòng)態(tài)鏈接庫(kù)S8051.DLL和我們所設(shè)計(jì)的仿真動(dòng)態(tài)鏈接庫(kù)Experiment.DLL。在Peripherals的下拉菜單中可以看到“單片機(jī)虛擬實(shí)驗(yàn)平臺(tái)1.0”,點(diǎn)擊后可進(jìn)入實(shí)驗(yàn)平臺(tái)的選擇界面,點(diǎn)擊“實(shí)驗(yàn)1”按鈕可進(jìn)入圖2所示跑馬燈仿真界面。
(4)開(kāi)始仿真時(shí),點(diǎn)擊P3.4按鍵后,8個(gè)LED燈以1S為周期循環(huán)左移點(diǎn)亮,再次點(diǎn)擊P3.4按鍵后,LED燈停止循環(huán),停留在當(dāng)前狀態(tài)。圖3為L(zhǎng)ED的仿真界面。
上述通過(guò)動(dòng)態(tài)鏈接庫(kù)的編寫(xiě),實(shí)現(xiàn)了簡(jiǎn)單跑馬燈電路的仿真工作,為高職學(xué)生學(xué)習(xí)單片機(jī)提供了直觀形象的仿真界面,并為自主學(xué)習(xí)單片機(jī),調(diào)試程序工作時(shí)提供了很大的便利。
3.論文結(jié)論
本文介紹的利用AGSI接口編寫(xiě)動(dòng)態(tài)鏈接庫(kù),仿真單片機(jī)外圍設(shè)備的方法,其設(shè)計(jì)思想具有一定的普遍性,不光可以仿真51系列單片機(jī)的內(nèi)部資源,也可以仿真其外設(shè)設(shè)備,而且也可以仿真其他KEIL軟件支持的單片機(jī)。
論文參考文獻(xiàn)
[1]鮑小南.單片微型計(jì)算機(jī)原理及應(yīng)用.浙江大學(xué)出版社,2007
文章標(biāo)題:基于KEIL-AGSI接口的單片機(jī)虛擬實(shí)驗(yàn)室構(gòu)建之軟件開(kāi)發(fā)論文
轉(zhuǎn)載請(qǐng)注明來(lái)自:http://m.anghan.cn/fblw/dianxin/ruanjiankaifa/11542.html
攝影藝術(shù)領(lǐng)域AHCI期刊推薦《Phot...關(guān)注:106
Nature旗下多學(xué)科子刊Nature Com...關(guān)注:152
中小學(xué)教師值得了解,這些教育學(xué)...關(guān)注:47
2025年寫(xiě)管理學(xué)論文可以用的19個(gè)...關(guān)注:192
測(cè)繪領(lǐng)域科技核心期刊選擇 輕松拿...關(guān)注:64
及時(shí)開(kāi)論文檢索證明很重要關(guān)注:52
中國(guó)水產(chǎn)科學(xué)期刊是核心期刊嗎關(guān)注:54
國(guó)際出書(shū)需要了解的問(wèn)題解答關(guān)注:58
合著出書(shū)能否評(píng)職稱(chēng)?關(guān)注:48
電信學(xué)有哪些可投稿的SCI期刊,值...關(guān)注:66
通信工程行業(yè)論文選題關(guān)注:73
SCIE、ESCI、SSCI和AHCI期刊目錄...關(guān)注:121
評(píng)職稱(chēng)發(fā)論文好還是出書(shū)好關(guān)注:68
復(fù)印報(bào)刊資料重要轉(zhuǎn)載來(lái)源期刊(...關(guān)注:51
英文期刊審稿常見(jiàn)的論文狀態(tài)及其...關(guān)注:69
Web of Science 核心合集期刊評(píng)估...關(guān)注:59
電子信息論文范文
智能科學(xué)技術(shù)論文 廣播電視論文 光電技術(shù)論文 計(jì)算機(jī)信息管理論文 計(jì)算機(jī)網(wǎng)絡(luò)論文 計(jì)算機(jī)應(yīng)用論文 通信論文 信息安全論文 微電子應(yīng)用論文 電子技術(shù)論文 生物醫(yī)學(xué)工程論文 軟件開(kāi)發(fā)論文
SCI期刊分析
copyright © m.anghan.cn, All Rights Reserved
搜論文知識(shí)網(wǎng) 冀ICP備15021333號(hào)-3