軟件仿真:這時候是在你的計算機中有一個虛擬的單片機,代碼在這個虛擬的單片機中運行。由計算機模擬單片機的運行過程,給出運行的結果。這個結果與實際運行的結果絕大多數情況下沒有差別,所以可以仿真。但仿真與實際有時候也有差別,特別是有
在Keil編寫好的代碼,通過編譯后,下載到單片機。我們只能看到兩種結果:第一實驗成功,展現出我們想要的效果;第二實驗不成功,什么效果都沒有看到。失敗的原因是什么,通過硬件測試,我們無法看到代碼在單片機內部里面如何運行、變量是如何傳遞、變量的變化情況等等。Keil軟件里面是提供了軟件仿真調試功能。下面由我帶領大家來認識一下軟件仿真。
材料/工具
Keil uVision2
1、程序添加到工程中,編譯通過。 2、進入軟件仿真模式。 3、在外圍設備peripherals一欄,選擇相應端口。
方法
第一步:確認寫好的程序能通過編譯。然后點擊“Debug”→"Start/Stop DebugSession"進入調試模式。如下圖操作所示:
這是配置PLL的,需要從PLL寄存器獲取PLL是否穩定的狀態標志。 而軟件仿真的時候這個標志是沒人給置位的。 解決辦法是手工將RCC_CR_HSERDY置位,或者手工跳過這一段代碼(例如Run to cursor)。
第二步:調出觀察窗口(用來設置要觀察變量的設置窗口);點擊“View”→"Watch&Call Stack Window"。如下圖操所示:
1. project -> option for target xxx -> debug -> 勾選左邊的 use simulator -> OK. 2. ctrl + F5 啟動 debug, 中間應有 logic analyzer, 如果沒有,view -> analyse windows -> logic analyzer. 3. 在logic analyzer中點set up, 再點右上角的
第三步:彈出的“Watch “窗口,如下圖所示:
如何在KEIL 下使用仿真器 1. 在KEIL 下使用仿真器,首先設置軟件右擊Target1,選擇Option for Target ‘Target 1’.如下: 2. 在Option for Target ‘Target 1’選項中點選DEBUG,如下: 3. 在DEBUG下選擇USE KEIL Monitor—51 Driver ,其他選擇項
第四步:在彈出的”Watch“窗口中設置要要觀察的變量,點擊”Watch#1“→雙擊"type F2 to edit"→輸入要觀察的變量名,在這里我要觀察的是P11,具體操作如下:
把keil編譯產生的HEX文件導入Proteus里面的單片機中,就可以仿真運行了!新手還是玩板子好點
第五步:點擊”單步調試“按鈕,點擊一次,同時觀察”Watch“窗口P11變量的變化情況。如下圖所示:
Keil 與proteus 連接調試 Proteus 與Keil 聯機 keil c51 v7.50 軟件和 proteus 6.7 SP3 軟件,分別進行安裝。安裝完畢以后進行如下置: 1、 系統安裝上TCP/IP 協議 2 、把proteus 安裝目錄下 VDM51.dll ( C:Program FilesLabcenter Electroni
第六步:再一次點擊”單步調試“按鈕。同時觀察”Watch“窗口P11變量的變化情況。如下圖所示:
進工程設置,debug,右邊選use silicon……, 就那個地方有個setting, 點進去勾選第二項USB debug ……。再確認,再調試應該就好了。
擴展閱讀,以下內容您可能還感興趣。
Keil uVision4在進行軟件仿真時,能直接修改程序么?
不能。。。。。。。。。。。。。。。。。。你可以修改,但是修改之后不能更新,也就是說你只能修改已經運行的程序。未運行的不能修改。。而且你改了之后也會使調試信息不一致,比如說斷點會移位。。等等。
關于keil 軟件仿真
LZ這樣的程序,出現這樣的狀況是完全正常的。因為這里的P1^百0完全沒有定義。
LZ需要明確P0的地址是0x80,P1的地址是0x90
如果想在P0口上度keil軟件仿真,那么版需要這樣寫:
sfr P0 = 0x80;
sbit P0_1 = 0x80;
如果想在P1口上keil軟件仿真,那么需要這樣寫:
sfr P1 = 0x90;
sbit P1_1 = 0x90;
另外變量或常量的名權稱最好是“顧名思義”的,這樣讀的時候比較好讀一些。
mdk5軟件仿真,pwm的例程,怎么仿真看到輸出的波形?
這個很簡單,Keil的邏輯儀,是基于Keil自帶zd的仿真器來運行的。 而Keil自帶的仿真器,是基于傳統的51單片機來運行的,傳統的51就是我們課本上講的,只有串口,兩個定時器,兩個外中斷一共五個設備,沒有其他設備。 你用的STC單片機更多追問追答追問我用的stm32但是那個邏輯儀我不太會用它不是要setup一個io口嗎,但是我填PB5、PORTB.5什么的都不對都提示unknown signal那應該填什么呢?求教(ಥ_ಥ)但是那個邏輯儀我不太會用
單片機89c51,幫我編個C程序,順便說一下用KeiluVision3仿真調試軟件的調試步驟
#include<reg51.h>
sbit p20=P2^0;
sbit p21=P2^1;
sbit p22=P2^2;
sbit p25=P2^5;
sbit p26=P2^6;
typedef unsigned char uint8;
code uint8 num[]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90,};
uint8 count,shi,ge,i;
delay()
{
uint8 i=1000;
while(i--);
}
display()
{
shi=count/10;
ge=count%10;
p25=0;
P0=num[shi];
p25=1;
p26=0;
P0=num[ge];
p26=1;
}
main()
{
while(1)
{
7a64e78988e69d8331333264663139if(p20==0)
{
delay();
if(p20==0)
{
count++;
}
}
if(p21==0)
{
delay();
if(p21==0)
{
count--;
}
}
if(p22==0)
{
delay();
if(p22==0)
{
count=0;
}
}
display();
}
}
求Keil軟件編譯仿真的步驟
點擊工程(百project)->new project(新建工程),建立存在度E盤或其他盤里——>保存,知選擇工程所道用芯片(專atmel 或其他)——>確定,target1, file——>new file-.text->保存(.c格式),target1右鍵,再左鍵add……選擇剛才建的文件,就屬可以在里面寫了
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com