久久久久亚洲精品,久久亚洲精品成人av无码网站,无码国产伦一区二区三区视频,天天躁人人躁人人躁狂躁

價(jià)廉物美的STC 89C516RD在線仿真器

    仿真器對(duì)單片機(jī)初學(xué)者來說既是那么耳熟,同時(shí)又有些陌生,這主要是因?yàn)槭袌?chǎng)上傳統(tǒng)的仿真器價(jià)格都在千元以上,對(duì)經(jīng)濟(jì)不是非常寬裕的人來說是不小的開支。同時(shí)仿真器是用來提高調(diào)試程序效率的,也不是非需不可的,所以站長在自學(xué)單片機(jī)開始的時(shí)候也沒有用過仿真器,碰到程序出錯(cuò)的時(shí)候,只好苦思冥想,或者在程序中插入一些驅(qū)動(dòng)端口的指令,然后再接上一些發(fā)光二極管做簡(jiǎn)單指示,一般調(diào)試一個(gè)程序,反復(fù)燒寫幾十次芯片是很經(jīng)常的。

    現(xiàn)在我們介紹一種新型的廉價(jià)在線仿真器:它使用一片宏晶公司 【SST公司】的STC89C516RD 的單片機(jī),仿真機(jī)通過串口與 PC 連接,該型號(hào)單片機(jī)是51系列單片機(jī)中的一種,具有ISP(在系統(tǒng)可編程)功能,程序可串行下載,可仿真63K用戶程序空間,具有450個(gè)外部RAM字節(jié)。

   本仿真器是由湖南的一位知名老師開發(fā)的,他開發(fā)單片機(jī)十幾年,經(jīng)常在電子報(bào)刊上發(fā)表單片機(jī)方面的文章,現(xiàn)在STC89C516RD仿真器銷售累計(jì)超過800臺(tái),被當(dāng)?shù)厣倌陮m用于單片機(jī)教學(xué)效果非常好,高中生只要半天時(shí)間就能掌握操作技能,同時(shí)仿真器的定價(jià)也考慮到大多數(shù)單片機(jī)初學(xué)者的經(jīng)濟(jì)承受能力,遠(yuǎn)低于而網(wǎng)上同類型產(chǎn)品,我們開發(fā)推廣這個(gè)產(chǎn)品的目的在于讓更多的人熟悉掌握單片機(jī)技術(shù)。  

廉價(jià)仿真器的產(chǎn)品特點(diǎn):

1、和市場(chǎng)上采用SST公版監(jiān)控程序的仿真器有本質(zhì)的區(qū)別,采用SST公版監(jiān)控程序的仿真器單步運(yùn)行緩慢,并且每次下載都要手動(dòng)復(fù)位,而我們的仿真器下載程序極快,17K的程序代碼下載只需4S。

2、我們自己開發(fā)監(jiān)控程序,所以仿真器具有脫機(jī)運(yùn)行功能,可以簡(jiǎn)化開發(fā)的過程!而采用SST公版監(jiān)控程序的仿真器是不具有脫機(jī)功能的。

3、我們的仿真器克服了單片機(jī)的FLASHROM容易損壞的缺點(diǎn),而改用XDATA RAM保存數(shù)據(jù)減少了耗時(shí)的FLASHROM操作,無論是跨步還是單步執(zhí)行的速度奇快,性能也大大提高。

4、為解決單步執(zhí)行區(qū)存在頻繁讀寫的問題,創(chuàng)新地采用循環(huán)寫入法,用多個(gè)FLASHROM來做單步執(zhí)行區(qū),避免了對(duì)某一個(gè)固定字節(jié)的讀寫,產(chǎn)品壽命提高56倍。

5、仿真器采用Monitor-51 V4.8的驅(qū)動(dòng)。支持Keil V7.0 uVision2、uVision3。

6、下載用戶程序,采用“比對(duì)”法,可以減少寫入的次數(shù)!同時(shí)提高了下載速度!

7、仿真器的端口可以驅(qū)動(dòng)8mA電流,輕松驅(qū)動(dòng)LED等負(fù)載

廉價(jià)仿真器的主要性能:

1、 直接支持 KEIL C51 的 IDE 開發(fā)仿真環(huán)境。
2、 可單步、斷點(diǎn)、全速運(yùn)行調(diào)試程序、可參考變量、RAM變量。
3、 支持匯編、C語言混合調(diào)試。
4、 片內(nèi) 63K 程序空間可以隨時(shí)進(jìn)行在線程序更新。
5、 完全仿真 P0、P2 、P1、P3口(P3.0,P3.1除外)。
6、 系統(tǒng)仿真頻率配置 11.0592 MHz晶振,采用115.2kb波特率通訊,可以極速下載程序!。
7、 可以仿真標(biāo)準(zhǔn)的 89C51、89C52、89C58、SST89C58 等51內(nèi)核的單片機(jī)。
8、 仿真時(shí)僅2個(gè)sp占用,仿真更加全面真實(shí)。監(jiān)控程序和用戶程序采用獨(dú)立的模擬堆棧,互不影響。
9、  不需用復(fù)位鍵復(fù)位仿真機(jī),即可N次下載仿真!
10、監(jiān)控程序自我修復(fù)功能,不會(huì)出現(xiàn)監(jiān)控程序被用戶程序覆蓋后無法再仿真的情況,這也是本仿真器的一大特色!
11、片上帶有450字節(jié)的xdata,您可以在仿真時(shí)選擇使用他們,進(jìn)行xdata的仿真。
12、仿真時(shí)監(jiān)控和用戶代碼分離,而且監(jiān)控代碼被硬件鎖定,不可能產(chǎn)生不能仿真的軟故障。
13、有脫機(jī)運(yùn)行用戶程序模式,這時(shí)仿真機(jī)就相當(dāng)于目標(biāo)板上燒好的一個(gè)芯片,可以完全真實(shí)的運(yùn)行,完全不占用任何資源。這種情況下實(shí)際上就變了一個(gè)下載器,而且下次上電時(shí)仍然可以運(yùn)行上次下載的程序。

    這是本仿真器的一個(gè)特色。你可以在仿真的過程中設(shè)置一個(gè)標(biāo)記,之后即使脫離仿真狀態(tài),仿真機(jī)中的用戶程序也可以單獨(dú)運(yùn)行,而且這種運(yùn)行狀態(tài)就像是燒錄好的芯片一樣,是完全真實(shí)的運(yùn)行,沒有占用任何用戶資源。

    標(biāo)記設(shè)立的方法:當(dāng)你裝載程序到仿真機(jī)中后,在斷開連接之前,在非全速運(yùn)行狀態(tài)下,在命令行輸入:“e c:0ffffh=0”。仿真器就會(huì)在程序空間的0FFFFh地址位置寫一個(gè)0,這個(gè)內(nèi)部標(biāo)志就是脫機(jī)運(yùn)行用戶程序標(biāo)記。如果程序正在全速運(yùn)行則標(biāo)記寫不進(jìn)去,建議在下載完代碼之后立即做這個(gè)操作。

標(biāo)記設(shè)立的方法如下圖:

    這時(shí)再斷開連接,按仿真機(jī)復(fù)位鍵之后,仿真器不再擦除用戶先前仿真時(shí)下載的用戶程序代碼,同時(shí)仿真機(jī)將進(jìn)入3秒鐘的等待連接時(shí)間,3秒鐘過后,開始進(jìn)入用戶程序運(yùn)行。這時(shí)的運(yùn)行結(jié)果就如同燒片結(jié)果一樣。即使是斷電后再啟動(dòng),用戶程序也不會(huì)消失,復(fù)位后可以照常運(yùn)行。

操作過程:正常仿真->設(shè)立標(biāo)志->復(fù)位->自動(dòng)延遲3秒->進(jìn)入脫機(jī)用戶程序運(yùn)行

    如果你希望返回到仿真狀態(tài),只要在啟動(dòng)時(shí)的3秒鐘等待連接時(shí)間段,從電腦連接進(jìn)入KEIL UV2的調(diào)試環(huán)境。連接后會(huì)自動(dòng)擦除脫機(jī)運(yùn)行標(biāo)記和用戶空間,重新根據(jù)用戶操作進(jìn)行新的調(diào)試,這時(shí)就和平時(shí)仿真的情況一樣的了。因?yàn)闃?biāo)記已擦除,下次重新進(jìn)入仿真時(shí)也不會(huì)只有3秒鐘的等待,而是無限等待了,這和剛開始使用時(shí)是一樣的。

廉價(jià)仿真器占用資源:☆ T2定時(shí)器、UART口! XRAM:1BAH-2FFH ☆ FE00H-FFFFH

仿真軟件安裝,就是Keil C51軟件的安裝。(請(qǐng)自行安裝!)

二、Keil C51 V6.12軟件安裝:

    首先我們要安裝Keil C51 V6.12軟件,這個(gè)軟件也是STC89C516RD仿真器電腦端調(diào)試軟件。

點(diǎn)擊這里可以下載Keil C51 V6.12軟件(已經(jīng)漢化解密)

    將網(wǎng)上下載到的KEILc51v612.rar文件經(jīng)過vrv解壓縮軟件解壓縮到某個(gè)目錄下,如復(fù)D:\keilC51 然后執(zhí)行D:\keilC51\setup\setup.exe 安裝程序,選擇安裝Eval Version版進(jìn)行(試用版)進(jìn)行安裝,這時(shí)會(huì)有2K程序限制。這2K是指最終代碼大小,通常已經(jīng)足夠使用。

    您也可以選擇FULL Version正式版安裝。注冊(cè)碼:K199U-20071-12A9U 當(dāng)出現(xiàn)Please insert the add-on disk的提示畫面,可按next按鈕(不用插入軟盤) 安裝好之后就可以使用,沒有代碼大小的限制,這是完全版,比 Eval版增 加浮點(diǎn)庫等內(nèi)容。軟件安裝成功后請(qǐng)執(zhí)行補(bǔ)丁程序和漢化程序,詳細(xì)看內(nèi)部說明. KEIL 51軟件安裝完成后,雙擊桌面圖標(biāo)運(yùn)行軟件:

2.2 仿真器硬件連接

§仿真器直接插入用戶的應(yīng)用板MCU的位置(注意晶振部分不能和目標(biāo)板連接)。

§仿真器通過串口插頭,插入COM口與PC通訊。

§仿真器上電后,LED指示燈會(huì)閃爍2下。

§仿真器可以由目標(biāo)板提供電源,也可以獨(dú)立提供電源。建議使用目標(biāo)板提供電源!

2.3 仿真器使用設(shè)置

仿真器采用Monitor-51 V4.8協(xié)議,在使用之前應(yīng)必須對(duì)軟件項(xiàng)目進(jìn)行如下設(shè)置:

1、單擊“Project”菜單,再在下拉菜單中單擊“ ” 在下圖中,單擊“Target”選擇工作頻率(11。0592MHz)。

2、單擊“Debug”中單擊 “Keil Monitor-51 Driver”,即選擇了C51-II仿真器。

7、 單擊“Settings”選擇您要使用串口,波特率 115200。

4、單擊“Serial Interrupt”選擇通過串口中斷,停止用戶運(yùn)行程序。

此項(xiàng)選擇非常重要!必須選擇

為了不用仿真機(jī)的復(fù)位鍵,而能N次仿真,必須在用戶程序中定義如下的變量:

char code reserve [3] _at_ 0x23; //Mon51用! *

這樣仿真機(jī)就會(huì)在程序空間:0x23,0x24,0x25放入一個(gè)中斷跳轉(zhuǎn)語句。以后只要有串口中斷,便會(huì)去執(zhí)行MON51程序,從而避免了用復(fù)位鍵復(fù)位仿真機(jī)!

三、例程介紹

控制P3.7、P3.6交替閃爍。(Keil C51、匯編)

#include <REG52.H>

//************************************************

char code reserve [3] _at_ 0x23; //Mon51用! *

//************************************************

sbit Led1=P3^6; //定義IO腳

sbit Led2=P3^7;

/*------------延時(shí)程序-----------------------------*/

void Delay (int i)

{

while (i--);

}

//*************************

void main (void)

{

while (1)

{

Led1 ^=1; //異或1

Led2 ^=Led1; //異或LED1

Delay(30000); //延時(shí)0。5秒

}

}

匯編:

org 0000h

ljmp start

org 0100h

start: ;開始

CPL p3.6 ;取反P3。6

CPL p3.7 ;取反P3。7

call Delay ;延時(shí)

sjmp start

;*************************

;延時(shí)子程序255mS

Delay:

mov r6,#0

De1:

mov r7,#0

djnz r7,$

djnz r7,$

djnz r6,De1

ret

四、調(diào)試過程

4.1 建立工程項(xiàng)目

添加文件(Led_F.C):

4.2 編譯工程項(xiàng)目

4.3 調(diào)試工程,進(jìn)入DEBUG畫面,如果未出現(xiàn)下面畫面,請(qǐng)檢查“Debug”中是否選擇了“Keil Monitor-51 Driver”。


4.4 通訊中斷出現(xiàn)下面畫面,請(qǐng)先按下仿真機(jī)上的復(fù)位按鍵,再點(diǎn)擊“Try Again”。每次重新調(diào)試,不必復(fù)位仿真機(jī),可以N次下載。當(dāng)出現(xiàn)通訊中斷或用戶程序死機(jī)在按復(fù)位鍵。

五、注意事項(xiàng)

5.1 插入用戶板時(shí)請(qǐng)注意方向,否則回?zé)龤51-II仿真器。

5.2 請(qǐng)?jiān)跀嚯姇r(shí),拔插通訊線。

5. 3 出現(xiàn)如下畫面,說明用戶程序太大,超出63.5K,或占用了XDATA資源,被Mon51禁止。這是一種軟件保護(hù)的方法,同時(shí)MON51監(jiān)控程序被硬件鎖定,不能被修改!

   在線仿真器STC89C516RD是完全依托KEIL 51軟件強(qiáng)大的功能來實(shí)現(xiàn)仿真的,所以必須配合KEIL 51軟件才能工作,學(xué)習(xí)使用STC89C516RD在線仿真器的過程也就是對(duì)KEIL 51軟件的學(xué)習(xí)過程,這里我們?cè)敿?xì)介紹一下一個(gè)匯編文件如何在KEIL 51軟件中如何創(chuàng)建、設(shè)置、編譯、仿真的。  

1。匯編源文件的建立

    點(diǎn)擊菜單文件中的新建...命令新建一個(gè)文本編輯窗口,在里面輸入下面的程序范例:(可以將藍(lán)色字體復(fù)制-粘貼入窗口)

MOV A,#0FEH
MAIN:MOV P1,A
RL A
LCALL DELAY
AJMP MAIN

DELAY:MOV R7,#255
D1:MOV R6,#255
D2:DJNZ R6,D2
DJNZ R7,D1
RET

END

(這是一個(gè)使單片機(jī)P1口的8個(gè)發(fā)光二極管輪流點(diǎn)亮的簡(jiǎn)單程序)

    然后點(diǎn)擊菜單文件中的保存命令保存文件,注意必須輸入文件的后綴名,我們這里用的是匯編語言所以后綴為*.ASM,例如保存為001.asm

2.建立一個(gè)項(xiàng)目:

     點(diǎn)擊工程菜單中選擇彈出的下拉式菜單中的新建 工程...,接著彈出一個(gè)標(biāo)準(zhǔn)Windows文件對(duì)話窗口,在"文件名"中輸入您的第一個(gè)程序項(xiàng)目名稱,這里我們用"test",這是筆者慣用的名稱,大家不必照搬就是了,只要符合Windows文件規(guī)則的文件名都行。"保存"后的文件擴(kuò)展名為uv2,這是KEIL uVision2項(xiàng)目文件擴(kuò)展名,以后我們可以直接點(diǎn)擊此文件以打開先前做的項(xiàng)目。


   這時(shí)會(huì)彈出讓你選擇單片機(jī)型號(hào)的對(duì)話框,我們選擇ATMEL---AT89C51


    然后點(diǎn)擊Target 1前面的“+”,出現(xiàn)Source Group 1,選中右鍵點(diǎn)選“增加文件到組 Source Group 1”


    這時(shí)選擇文件類型為Asm 源文件,再選中001.asm文件,再按添加,在隨后出現(xiàn)的提示框中按“確定”

    STC89C516RD 仿真器采用Mon51協(xié)議,在使用之前應(yīng)必須對(duì)軟件項(xiàng)目進(jìn)行如下設(shè)置:

    1、單擊工程菜單,再在下拉菜單中單擊"目標(biāo)target 1屬性" 在下圖中,單擊"Target"輸入仿真器的工作頻率(11.0592MHz)。

    2、在調(diào)試菜單中點(diǎn)選"Keil Monitor-51 Driver",即選擇了STC89C516RD硬件仿真器。


    3、單擊設(shè)置選項(xiàng)選擇您要使用串口波特率115200,注意和圖片中的是錯(cuò)誤的,應(yīng)該是115200。!。


4、如果需要生成HEX代碼給編程器燒寫芯片的話,需要選中“生成 HEX 文件”的選項(xiàng),按鈕“選擇OBJ文件夾...”是用來選擇最終HEX文件的存放目錄的。


5、按F7快捷鍵可以進(jìn)行編譯,編譯成功后如會(huì)出現(xiàn)上圖紅箭頭所指的文字,表示編譯成功!

   然后可以進(jìn)行硬件仿真了,將仿真器按照?qǐng)D中的位置放入51單片機(jī)試驗(yàn)開發(fā)板的40腳活動(dòng)插座中,這時(shí)仿真器的電源由實(shí)驗(yàn)開發(fā)板提供,開始仿真時(shí)務(wù)必按一下仿真器上的復(fù)位按鈕。

  現(xiàn)在按Ctrl+F5可以進(jìn)入仿真,這時(shí)再按F5全速運(yùn)行狀態(tài)。

    這時(shí)你會(huì)看到實(shí)驗(yàn)板開發(fā)板P1的八個(gè)紅色LED,輪流點(diǎn)亮,表示運(yùn)行成功,你可以查看相關(guān)的變量和參數(shù),非常方便,這里我們完整演示一個(gè)匯編語言的仿真過程,其實(shí)KEIL C最擅長的還是C語言,建議有基礎(chǔ)的網(wǎng)友盡量采用C語言。

    當(dāng)調(diào)試時(shí)出現(xiàn)下面的界面時(shí)說明KEIL軟件和仿真器之間通訊失敗,請(qǐng)先退出仿真

    然后按F7,進(jìn)行通訊連接,再按Ctrl+F5可以進(jìn)入仿真,這時(shí)再按F5全速運(yùn)行狀態(tài)。

五、注意事項(xiàng)

1、插入用戶板時(shí)請(qǐng)注意方向,否則會(huì)燒毀STC89C516RD仿真器。

2、如何配合實(shí)驗(yàn)板或者用戶板仿真時(shí)需要斷開用戶板或者實(shí)驗(yàn)板的晶振回路,否則仿真器上晶振和用戶板的晶振相互并聯(lián)會(huì)無法工作。!

3、仿真器可以由目標(biāo)板提供電源(5V),也可以獨(dú)立提供電源。建議使用目標(biāo)板提供的電源!

疑問解答:

1:仿真機(jī)的工作原理是什么?

答:這個(gè)問題很專業(yè)也是問的最多。一句話是無法回答的。只能簡(jiǎn)單說明:就是通過Keil開發(fā)平臺(tái),將用戶的程序下載到MON51仿真機(jī)中,根據(jù)Keil開發(fā)平臺(tái)的命令,不斷地執(zhí)行用戶程序,再將臨時(shí)數(shù)據(jù)傳回Keil開發(fā)平臺(tái)的過程。MON51仿真機(jī)的軟件,基本上由:通訊模塊、Keil命令解析模塊、51系列單片機(jī)的指令分析模塊、斷點(diǎn)處理模塊、運(yùn)行模塊、單步執(zhí)行模塊等組成。

3:MON51仿真機(jī)的“運(yùn)行到斷點(diǎn)處(光標(biāo)處)”和“單步運(yùn)行” 、“跨步”、“全速運(yùn)行”有什么區(qū)別?

答:這些功能是每一個(gè)仿真機(jī)所具有的。但它們實(shí)現(xiàn)的方法是不同的。這里的仿真機(jī)是借用單片機(jī)的IAP功能,來實(shí)現(xiàn)仿真的。所以上述幾種運(yùn)行模式(除開單步運(yùn)行),全部改寫了用戶下載到FLASGROM中的程序代碼。在斷點(diǎn)表中保存了斷點(diǎn)的地址,和用戶代碼。仿真器的監(jiān)控程序會(huì)在用戶要設(shè)立斷點(diǎn)的地址處寫入一條指令: LCALL STOP 。STOP是停止用戶程序,保存用戶數(shù)據(jù),并恢復(fù)監(jiān)控程序的數(shù)據(jù)后,再進(jìn)入監(jiān)控程序的一段處理程序。實(shí)際上就是任務(wù)切換。當(dāng)用戶執(zhí)行到斷點(diǎn)處時(shí),會(huì)通過LCALL STOP,自動(dòng)進(jìn)入監(jiān)控程序。再把用戶的數(shù)據(jù)發(fā)送到Keil平臺(tái)。

“跨步”運(yùn)行實(shí)際上也是一種變相的斷點(diǎn)運(yùn)行模式。只不過斷點(diǎn)不是用戶定義的,而是Keil開發(fā)平臺(tái)計(jì)算的。是隱含處理的。這里很明顯,如果改用FLASHROM保存中間數(shù)據(jù),則要頻繁地刪除、寫入數(shù)據(jù),STOP的執(zhí)行速度就會(huì)明顯下降。而用RAM保存,是最快的。而且沒有壽命問題。

“全速運(yùn)行” 有2中方式:一種是不帶中斷響應(yīng)運(yùn)行。它完全不再受Keil平臺(tái)的控制,一旦開始運(yùn)行,用戶只有通過手動(dòng)復(fù)位,停止用戶程序。

另一種是帶中斷運(yùn)行。既勾選Serial Interrupt 選項(xiàng)。這樣便會(huì)在用戶程序的串口中斷向量處,寫入一條指令LJMP BREAK ,這樣發(fā)生中斷后,就跳轉(zhuǎn)到MON51監(jiān)控程序的中斷處理程序。BREAK程序判別Keil平臺(tái)是否發(fā)來停機(jī)命令。如果是停機(jī)命令(0x1B),便會(huì)進(jìn)入STOP程序,保存用戶程序數(shù)據(jù),并進(jìn)入MON51監(jiān)控程序。如果不是,則退出中斷程序,繼續(xù)運(yùn)行應(yīng)戶程序!這也是所謂的“夭折功能”。它也不是什么新技術(shù),任何仿真機(jī)都有。而且實(shí)現(xiàn)也很簡(jiǎn)單!

“單步運(yùn)行”是比較繁雜的一種運(yùn)行模式。仔細(xì)分析51系列單片機(jī)的指令,可以知道,雖然有100多條指令,但把轉(zhuǎn)移指令、判位指令、數(shù)據(jù)轉(zhuǎn)移指令、運(yùn)算指令等歸類后,實(shí)際只有10種類型的指令。首先MON51監(jiān)控程序分析是哪一種指令,如果是轉(zhuǎn)移類指令(LJMP、AJMP 、SJMP、 LCALL、 ACAL、RET、 RETI),MON51監(jiān)控程直接計(jì)算PC指針的地址,并不執(zhí)行。而其它類的指令則,全部復(fù)制到單步執(zhí)行區(qū)(最大9個(gè)字節(jié))。再在后面添加2條轉(zhuǎn)移指令 LCALL STOP 、LCALL STOP。為什么要2個(gè)LCALL STOP 。主要是用來判別:判位指令是否發(fā)生了跳轉(zhuǎn)而設(shè)的。進(jìn)入“單步運(yùn)行”后,MON51監(jiān)控程跳轉(zhuǎn)到單步執(zhí)行區(qū),就可以執(zhí)行用戶的一條指令。然后進(jìn)入STOP程序。完成一次單步!如果大量采用單步執(zhí)行的話,單步執(zhí)行區(qū)會(huì)被頻繁修改,嚴(yán)重影響壽命!這是現(xiàn)在所有采用IAP技術(shù)仿真的弊病!如果有個(gè)單片機(jī)內(nèi)部有9個(gè)字節(jié)的RAM執(zhí)行區(qū)就好了,專業(yè)仿真機(jī)就要下崗了。

實(shí)際上我們的監(jiān)控程在讀取、寫入特殊功能寄存器時(shí),也要用“單步運(yùn)行”方法來實(shí)現(xiàn)!例如:“mov a,direct ; mov direct,R0”這倆條指令必須要用“單步運(yùn)行”來實(shí)現(xiàn)。如果用戶程序有大量的此類指令,壽命問題就會(huì)暴露出來。我們做破壞性實(shí)驗(yàn),就是循環(huán)執(zhí)行它。

現(xiàn)在市面上所有的仿真機(jī),都不會(huì)去說明FLASHROM是在什么地方被寫入?壽命是如何受影響的?也許是揚(yáng)長避短吧,或許是根本就不知道。通過上面的分析就知道,F(xiàn)LASHROM中到底是哪里被頻繁寫入了。有些網(wǎng)站要求,盡量少用“單步”,也就是回避這個(gè)問題!

4:廉價(jià)仿真器SP堆棧占用了2個(gè)字節(jié),是什么意思?

這個(gè)問題,我被無數(shù)次問起,但我首先問一下:你做的軟件預(yù)留了多少個(gè)字節(jié)做堆棧?一般的回答是:把剩余的字節(jié)全部做堆棧!試想一下,誰做軟件只預(yù)留幾個(gè)字節(jié)做堆棧。更何況是2個(gè)字節(jié)!

仿真器監(jiān)控程占用用戶堆棧,是在STOP程序運(yùn)行時(shí)占用的,進(jìn)入STOP程序時(shí),單片機(jī)的硬件已經(jīng)將PC指針自動(dòng)壓入用戶堆棧。此時(shí)占用2個(gè)字節(jié)。隨后因?yàn)橐Wo(hù)用戶的臨時(shí)數(shù)據(jù),必須要用到ACC、DPTR。所以必須先保存好這3個(gè)寄存器的值才行。直接壓入用戶堆棧,最簡(jiǎn)單!但占用了3個(gè)字節(jié)!(實(shí)際上用戶的堆棧,絕對(duì)不應(yīng)該是5個(gè)字節(jié)的余量)。所以許多網(wǎng)站上,都說采用了新技術(shù),占用2個(gè)字節(jié)的堆棧。實(shí)際上不壓入堆棧,用單片機(jī)內(nèi)部不用的寄存器就可以保存就可以了!例如:看門狗寄存器WDTD或IAP操作的寄存器組:SFAL、SFAH、SFDT(但不能用SFCM寄存器)所以SP堆棧占用了2個(gè)字節(jié)的技術(shù)并不神秘!

5:廉價(jià)仿真機(jī)采用XDATA保存數(shù)據(jù),哪我要使用它們,怎么辦?

首先我要說明:簡(jiǎn)單的東西,肯定是有弊端的。如果要用它們,就只有自己擴(kuò)展RAM了。當(dāng)用戶使用自己擴(kuò)展的外部RAM時(shí)(必須定義AUXR寄存器的EXTRAM位。,地址可以從00H開始,連續(xù)存放。

我們專門制作了KEIL軟件的仿真設(shè)置視頻1仿真設(shè)置視頻2,供客戶下載觀看!

相關(guān)產(chǎn)品鍵連

價(jià)廉物美的STC 89C516RD在線仿真器

零資源極速USB接口仿真機(jī)

STC89C516RD仿真器 缺貨!停止郵購!

    備注:如果不需要AT89C51實(shí)驗(yàn)開發(fā)板中的12伏電源變壓器,價(jià)格可以降低10元

點(diǎn)擊查看詳細(xì)品種!

銀行帳號(hào)及郵購需知    立即進(jìn)入訂貨系統(tǒng)!    查看全部郵購清單

郵局匯款地址:郵編226200 江蘇省啟東市江海中路511號(hào)水晶苑 A1 謝剛 收

電話/傳真:0513-83342087 小靈通:0513-83082087 聯(lián)系人:謝剛

電子信箱:

電子制作實(shí)驗(yàn)室網(wǎng)站主頁 www.xinjiapolvyou.cn