<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 8051單片機開(kāi)發(fā)工具DIY

8051單片機開(kāi)發(fā)工具DIY

作者: 時(shí)間:2013-01-23 來(lái)源:網(wǎng)絡(luò ) 收藏

引 言:

本文引用地址:http://dyxdggzs.com/article/170606.htm

目前介紹應用的文章很多,但介紹制作的文章卻較少。由于是一門(mén)實(shí)踐性很強的課程,如果采用傳統的開(kāi)發(fā)模式,則要購買(mǎi)價(jià)格昂貴的仿真器、編程器等來(lái)作實(shí)驗。其實(shí)由于芯片功能的日益完善,我們可以利用芯片的在系統編程(ISP)功能制作出實(shí)用而低價(jià)的。本文旨在幫助愛(ài)好者開(kāi)發(fā)制作出適合自己的開(kāi)發(fā)工具。

1 當前常用開(kāi)發(fā)模式

目前,基本上有兩種開(kāi)發(fā)模式可供選擇:用仿真器、用編程器。

① 用仿真器。優(yōu)點(diǎn):方便,可以設置斷點(diǎn),可以觀(guān)察存儲器及寄存器的內容。缺點(diǎn):價(jià)格昂貴,不同類(lèi)型的單片機要購買(mǎi)不同的仿真器;仿真器終究不是單片機,有時(shí)代碼在仿真器上能通過(guò),但在單片機中不能正常工作,反而增加了調試的難度。

② 用編程器。優(yōu)點(diǎn):價(jià)格相對便宜,通常一款編程器可編程多種器件。缺點(diǎn):操作相當不便,每次要將芯片在目標板與編程器之間轉移,并且還要在編譯操作界面與編程器操作界面之間切換,大部分時(shí)間在做簡(jiǎn)單的重復工作。

2 新的開(kāi)發(fā)模式介紹及芯片選擇

本文介紹的開(kāi)發(fā)工具采用一種新的開(kāi)發(fā)模式(類(lèi)似于編程器開(kāi)發(fā)模式)。由于利用了芯片的在系統編程功能,因此不需要移動(dòng)芯片。在軟件設計時(shí)設計成:一旦代碼文件被重新編過(guò),即自動(dòng)下載到芯片,并自動(dòng)復位運行,是真正的“所編即所得”。

目前很多單片機都支持在系統編程。8051系列單片機支持在系統編程的也很多,但大多數是支持通過(guò)PC機的串口對單片機進(jìn)行編程。這樣有四個(gè)不方便的地方:一是項目本身與PC機串行通信不方便;二是要增加1片MAX232電平轉換芯片;三是有的芯片要按特定的步驟進(jìn)入下載模式,編程過(guò)程需要手工干預;四是有的芯片需要固件(定制的程序)的支持,如果不小心損壞了固件,則芯片的在系統編程功能也沒(méi)有了。

經(jīng)過(guò)比較,Atmel公司生產(chǎn)的AT89S8252是一種比較理想的芯片,適合制作開(kāi)發(fā)工具。此芯片有如下特點(diǎn):

與8051兼容;

內含8KB可擦寫(xiě)1000次的程序存儲器,2KB可擦寫(xiě)超過(guò)100 000次的數據存儲器及256字節8位寬內部RAM;

可通過(guò)SPI接口在系統串行編程,與8051兼容

串行編程時(shí)有自動(dòng)擦寫(xiě)周期,在調試大程序時(shí)可以分段下載,節約時(shí)間;

低電壓下載,無(wú)需12V編程電壓。

3 AT89S8252串行編程

(1)AT89S8252串行編程模式

當芯片的RST引腳置高電平時(shí),所有程序和數據存儲器可以通過(guò)SPI總線(xiàn)接口[SCK,MOSI(input),MISO(output)]編程。RST變高以后,在編程或擦除操作之前必須首先發(fā)送一條編程允許命令。在串行編程模式下,芯片會(huì )在字節編程之前自動(dòng)插入一個(gè)擦除周期。因此,除非芯片的代碼保護位被編程,編程之前不需要執行全片擦除命令。SPI接口之SCK時(shí)鐘頻率須低于晶振頻率的1/40。

(2)AT89S8252串行編程步驟

① 在XTAL1與XTAL2之間連接一個(gè)3~24MHz的晶振;在VCC與GND之前加上電源電壓,將RST置高,等待10ms。

② 發(fā)送串行編程允許命令。

③ 發(fā)送寫(xiě)/讀/擦除等命令及數據,串行數據高位在前,低位在后,數據在時(shí)鐘的上升沿鎖定。

④ 如果上一步是寫(xiě)命令,至少等待2.5ms。

⑤ 需要時(shí)重復③、④兩步。

⑥ 將RST置低,芯片開(kāi)始運行。

(3)AT89S8252串行編程命令

AT89S8252串行編程命令如表1所列。

4)AT89S8252串行編程時(shí)序圖

AT89S8252串行編程時(shí)序如圖1所示。

DIY機械鍵盤(pán)相關(guān)社區:機械鍵盤(pán)DIY


單片機相關(guān)文章:單片機教程


單片機相關(guān)文章:單片機視頻教程


單片機相關(guān)文章:單片機工作原理


晶振相關(guān)文章:晶振原理

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>