找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

帖子
查看: 36035|回復(fù): 16
收起左側(cè)

keil軟件與Proteus軟件的聯(lián)機(jī)調(diào)試

  [復(fù)制鏈接]
ID:71259 發(fā)表于 2014-12-30 15:40 | 顯示全部樓層 |閱讀模式
1) 目的
熟悉keil集成開(kāi)發(fā)環(huán)境和Proteus仿真軟件的使用,完成兩個(gè)軟件的聯(lián)機(jī)調(diào)試,為下一步學(xué)習(xí)大好基礎(chǔ)。
2) 原理
分別在keil軟件和Proteus軟件中進(jìn)行一些設(shè)置,兩個(gè)軟件便可以進(jìn)行對(duì)同一個(gè)程序的聯(lián)機(jī)調(diào)試。
3) 過(guò)程
下面以點(diǎn)亮一個(gè)LED燈為例,來(lái)介紹整個(gè)過(guò)程。
步驟一:建立keil工程。
1) 打開(kāi)keil軟件,如下圖選擇新建工程。


2) 將工程起名為oneled保存在新建的工程文件夾oneled中。如下圖。


3) 選擇CPU,我們這里選擇Atmel公司的AT89S52,如下面兩圖所示。




4) 選好芯片確定后,彈出提示框,問(wèn)是否添加一些文件,我們這里選“否”,如下圖。

5) 下面新建文本文檔,用來(lái)編寫(xiě)源程序。選擇菜單File再選擇New子菜單,或直接按下界面上的圖標(biāo)進(jìn)行建立,如下圖所示。

6) 按下保存圖標(biāo),保存新建的文件以“oneled.c”文件名保存在工程文件夾下。如下圖。(說(shuō)明:文件名可以隨便起,但一般與工程名相同。)

7) 將新建的文件加入工程中。在Source Group 1上點(diǎn)鼠標(biāo)右鍵,在彈出的菜單上選擇Add Files…選項(xiàng),如下圖。

在彈出的對(duì)話框中選擇工程文件夾下剛才新建的“oneled.c”文件。點(diǎn)擊Add,再點(diǎn)擊Close關(guān)閉對(duì)話框。如下圖。

在下圖中可以看到文件已經(jīng)加入到了Source Group 1中。按下最大化按鈕,可使編輯框最大化。

8) 設(shè)置工程,讓其編譯時(shí)輸出十六進(jìn)制可執(zhí)行文件。如圖在target 1上點(diǎn)右鍵選設(shè)置。

如下圖,將Create HEX File 選中,按確定退出。

至此,工程文件已經(jīng)建立設(shè)置完畢,在開(kāi)始寫(xiě)源程序之前,我們先用Proteus軟件設(shè)計(jì)出led燈的電路圖。
步驟二:設(shè)計(jì)電路圖。
1) 首先選擇要用的器件。如下圖,按下P 圖標(biāo)進(jìn)行器件選擇。


輸入單片機(jī)芯片名AT89C52,器件便會(huì)出現(xiàn)在右側(cè)列表中。如下圖。(說(shuō)明:這里用AT89C52,是因?yàn)樵撥浖袥](méi)有AT89S52,但因?yàn)槌绦蛟趦尚酒卸伎蓤?zhí)行,所以可以這樣代替。)

雙擊列表中的芯片名,它便會(huì)加入到主界面的器件表中,如下圖。


同樣,我們?cè)谡业絃ED小燈。這里我們用亮?xí)r為黃色的小燈,如下圖。

2) 開(kāi)始畫(huà)電路圖。首先選中器件列表中的AT89C52,然后在設(shè)計(jì)區(qū)點(diǎn)鼠標(biāo)左鍵,該器件就會(huì)出現(xiàn)。如下圖。

同樣,加入LED燈,并用鼠標(biāo)在P0.0口與LED燈一端連線,將二者聯(lián)通。如圖。

在左側(cè)列表中如下圖選中相應(yīng)圖標(biāo)下的電源選項(xiàng)。

在設(shè)計(jì)區(qū)加入電源,并按下圖進(jìn)行連接。

到這里電路已將設(shè)計(jì)完畢,下面我們到Keil中進(jìn)行相關(guān)程序的編寫(xiě)。
步驟三:編輯,編譯并運(yùn)行程序。
1) 更換文本編輯器的字體。如下圖,看到輸入文本時(shí)很混亂,所以我們更換編輯器的字體。

如下圖,進(jìn)行相應(yīng)菜單的選擇。

在相應(yīng)的位置選擇字體。因?yàn)槲覀兏牡氖荂文件的文本字體,所以進(jìn)行如下圖的選擇,點(diǎn)擊Font后的按鍵。

我們選擇宋體。如下圖。(說(shuō)明:你可以嘗試更換成別的字體。)

2) 編寫(xiě)源程序。因?yàn)槌绦蚝芎?jiǎn)單,這里主要是寫(xiě)主函數(shù)。如下圖是改變字體后寫(xiě)好的全部代碼。(說(shuō)明:我們?cè)诤竺鎸?duì)程序進(jìn)行解釋。)

3) 對(duì)源程序進(jìn)行編譯。按下界面上的編譯按鍵進(jìn)行編譯程序。如下圖�?梢钥吹骄幾g成功,并生成了hex可執(zhí)行文件,該文件在工程文件夾下。

4) 運(yùn)行程序。在Proteus中的單片機(jī)芯片上點(diǎn)鼠標(biāo)右鍵,將其選中。如下圖,選中的器件將變成紅色。

然后再在上面點(diǎn)鼠標(biāo)左鍵,打開(kāi)設(shè)置界面。如下圖,我們點(diǎn)Program File后的圖標(biāo),將生成的HEX可執(zhí)行文件加入芯片中。

我們選擇工程文件夾下生成的十六進(jìn)制hex文件。如下圖。

加入文件成功,如下圖。我們按下OK鍵退出。

在設(shè)計(jì)板上其他地方點(diǎn)擊鼠標(biāo)右鍵,可以取消器件的選中狀態(tài)。點(diǎn)擊主界面左下角的運(yùn)行按鍵,可以看到led小燈亮了起來(lái)。如下圖。按下停止按鍵可停止執(zhí)行。

步驟四:聯(lián)機(jī)調(diào)試。
1) 對(duì)兩個(gè)軟件進(jìn)行一些設(shè)置。在keil軟件工程的設(shè)置中在Debug界面進(jìn)行如下圖的選擇。

在Proteus中按下圖選中相關(guān)選項(xiàng)。

2) 在keil中按下調(diào)試按鍵,可以看到Proteus中的運(yùn)行按鍵已經(jīng)執(zhí)行,說(shuō)明聯(lián)機(jī)成功。
如下圖。

3) 選擇oneled源程序界面,按下單步執(zhí)行按鍵,出現(xiàn)黃色箭頭指向源程序的主函數(shù)的第一行。如下圖。

4) 再次按下單步執(zhí)行按鍵,“P00=0;”此條語(yǔ)句便執(zhí)行了,可以看到右邊的led燈已經(jīng)亮了。如下圖。

5) 再次按下調(diào)試按鍵,停止調(diào)試。如下圖。


6) 在關(guān)閉Proteus之前,將文件保存,一般都保存到工程文件夾下,文件名與工程名相同。如下圖。

到這里,我們整個(gè)實(shí)驗(yàn)過(guò)程就全部結(jié)束了。下面我們看一下工程文件夾。如下圖。

其中,1是源程序,2是Proteus軟件設(shè)計(jì)的仿真電路圖,3是keil工程文件,4是編譯生成的十六進(jìn)制可執(zhí)行文件。其他的文件是建立工程時(shí)生成的。
4)程序講解

電路圖如上,可以看出,LED小燈一端接電源即高電平,一端接P0口的第0位,很明顯,如果讓P0口的0位為低電平,那么小燈就會(huì)點(diǎn)亮。
下面是相應(yīng)的源程序:
#include //頭文件,該頭文件對(duì)52系列單片機(jī)的寄存器等進(jìn)行了定義,以后每次寫(xiě)//程序都要加入該頭文件。
sbit P00 = P0^0; //位定義,因?yàn)槎丝诘母魑徊荒苤苯邮褂茫晕覀円獙⑵湎榷x一下,所//以P00就代表P0口的第0位。
void main() //主函數(shù),這里的寫(xiě)法和標(biāo)準(zhǔn)C語(yǔ)言相似。
{
P00=0; //P0口的0位賦值為0,即低電平,執(zhí)行該語(yǔ)句,led燈就會(huì)點(diǎn)亮。
}
回復(fù)

使用道具 舉報(bào)

ID:71991 發(fā)表于 2015-1-29 22:33 | 顯示全部樓層
file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/115806121/QQ/WinTemp/RichOle/LPPMX%60]RPFAHV1]B_BIP5~K.png 我的軟件沒(méi)有找到這個(gè)選項(xiàng)呀
QQ圖片20150129223137.png
回復(fù)

使用道具 舉報(bào)

ID:74319 發(fā)表于 2015-3-8 15:49 | 顯示全部樓層

51hei的這個(gè)論壇確實(shí)做得不錯(cuò) 主要是資料多 我還剛?cè)腴T(mén)希望大家多多指點(diǎn)
回復(fù)

使用道具 舉報(bào)

ID:53825 發(fā)表于 2015-4-5 15:17 | 顯示全部樓層
很仔細(xì)
回復(fù)

使用道具 舉報(bào)

ID:74331 發(fā)表于 2015-4-10 20:06 | 顯示全部樓層
強(qiáng)大,以后可能用得上
回復(fù)

使用道具 舉報(bào)

ID:76401 發(fā)表于 2015-4-12 16:58 | 顯示全部樓層
好東西贊一個(gè),感謝樓主。
回復(fù)

使用道具 舉報(bào)

ID:82988 發(fā)表于 2015-7-11 11:57 | 顯示全部樓層
很好的內(nèi)容,圖文并茂支持下樓主
回復(fù)

使用道具 舉報(bào)

ID:89595 發(fā)表于 2015-9-13 18:33 | 顯示全部樓層
謝了,我是剛剛學(xué)的,感到很有用。
回復(fù)

使用道具 舉報(bào)

ID:84205 發(fā)表于 2015-10-5 23:35 | 顯示全部樓層
謝樓主
回復(fù)

使用道具 舉報(bào)

ID:91733 發(fā)表于 2015-10-6 17:55 | 顯示全部樓層
hsanper 發(fā)表于 2015-1-29 22:33
我的軟件沒(méi)有找到這個(gè)選項(xiàng)呀

我的軟件也沒(méi)有找到這個(gè)選項(xiàng)呀!
聯(lián)機(jī)調(diào)試2合1.JPG
回復(fù)

使用道具 舉報(bào)

ID:91733 發(fā)表于 2015-10-6 19:07 | 顯示全部樓層
我的問(wèn)題解決了。很簡(jiǎn)單:在你的電腦上運(yùn)行一下驅(qū)動(dòng)程序vdmagdi.exe就行了。至于驅(qū)動(dòng)程序vdmagdi.exe網(wǎng)上多得很,搜索一下就能找到。
回復(fù)

使用道具 舉報(bào)

ID:66287 發(fā)表于 2017-4-6 08:44 | 顯示全部樓層
很細(xì)致,謝樓主分享
回復(fù)

使用道具 舉報(bào)

ID:165117 發(fā)表于 2017-4-11 11:39 | 顯示全部樓層
很好的內(nèi)容,圖文并茂支持下樓主  謝了,我是剛剛學(xué)的!!
回復(fù)

使用道具 舉報(bào)

ID:298008 發(fā)表于 2018-10-21 14:47 | 顯示全部樓層
謝謝樓主分享��!
回復(fù)

使用道具 舉報(bào)

ID:412827 發(fā)表于 2018-10-22 17:52 | 顯示全部樓層
一看就是大佬  很詳細(xì)
回復(fù)

使用道具 舉報(bào)

ID:585177 發(fā)表于 2019-7-26 10:48 | 顯示全部樓層
終于看到有人講得明明白白了 給你一個(gè)大贊
回復(fù)

使用道具 舉報(bào)

ID:589399 發(fā)表于 2019-10-5 16:07 | 顯示全部樓層
我也在學(xué)這個(gè),現(xiàn)在正需要這個(gè)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表