版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
精品文檔-下載后可編輯單片機(jī)開(kāi)發(fā)工具DIY-設(shè)計(jì)應(yīng)用引言:目前介紹單片機(jī)應(yīng)用的文章很多,但介紹單片機(jī)開(kāi)發(fā)工具制作的文章卻較少。由于單片機(jī)是一門(mén)實(shí)踐性很強(qiáng)的課程,如果采用傳統(tǒng)的開(kāi)發(fā)模式,則要購(gòu)買(mǎi)價(jià)格昂貴的仿真器、編程器等開(kāi)發(fā)工具來(lái)作實(shí)驗(yàn)。其實(shí)由于芯片功能的日益完善,我們可以利用芯片的在系統(tǒng)編程(ISP)功能制作出實(shí)用而低價(jià)的開(kāi)發(fā)工具。本文旨在幫助DIY愛(ài)好者開(kāi)發(fā)制作出適合自己的開(kāi)發(fā)工具。1當(dāng)前常用開(kāi)發(fā)模式
目前,基本上有兩種開(kāi)發(fā)模式可供選擇:用仿真器、用編程器。①用仿真器。優(yōu)點(diǎn):方便,可以設(shè)置斷點(diǎn),可以觀察存儲(chǔ)器及寄存器的內(nèi)容。缺點(diǎn):價(jià)格昂貴,不同類(lèi)型的單片機(jī)要購(gòu)買(mǎi)不同的仿真器;仿真器終究不是單片機(jī),有時(shí)代碼在仿真器上能通過(guò),但在單片機(jī)中不能正常工作,反而增加了調(diào)試的難度。②用編程器。優(yōu)點(diǎn):價(jià)格相對(duì)便宜,通常一款編程器可編程多種器件。缺點(diǎn):操作相當(dāng)不便,每次要將芯片在目標(biāo)板與編程器之間轉(zhuǎn)移,并且還要在編譯操作界面與編程器操作界面之間切換,大部分時(shí)間在做簡(jiǎn)單的重復(fù)工作。
2新的開(kāi)發(fā)模式介紹及芯片選擇
本文介紹的開(kāi)發(fā)工具采用一種新的開(kāi)發(fā)模式(類(lèi)似于編程器開(kāi)發(fā)模式)。由于利用了芯片的在系統(tǒng)編程功能,因此不需要移動(dòng)芯片。在軟件設(shè)計(jì)時(shí)設(shè)計(jì)成:一旦代碼文件被重新編過(guò),即自動(dòng)到芯片,并自動(dòng)復(fù)位運(yùn)行,是真正的“所編即所得”。
目前很多單片機(jī)都支持在系統(tǒng)編程。8051系列單片機(jī)支持在系統(tǒng)編程的也很多,但大多數(shù)是支持通過(guò)PC機(jī)的串口對(duì)單片機(jī)進(jìn)行編程。這樣有四個(gè)不方便的地方:一是項(xiàng)目本身與PC機(jī)串行通信不方便;二是要增加1片MAX232電平轉(zhuǎn)換芯片;三是有的芯片要按特定的步驟進(jìn)入模式,編程過(guò)程需要手工干預(yù);四是有的芯片需要固件(定制的程序)的支持,如果不小心損壞了固件,則芯片的在系統(tǒng)編程功能也沒(méi)有了。
經(jīng)過(guò)比較,Atmel公司生產(chǎn)的AT89S8252是一種比較理想的芯片,適合制作開(kāi)發(fā)工具。此芯片有如下特點(diǎn):與8051兼容;內(nèi)含8KB可擦寫(xiě)1000次的程序存儲(chǔ)器,2KB可擦寫(xiě)超過(guò)100000次的數(shù)據(jù)存儲(chǔ)器及256字節(jié)8位寬內(nèi)部RAM;可通過(guò)SPI接口在系統(tǒng)串行編程,與8051兼容串行編程時(shí)有自動(dòng)擦寫(xiě)周期,在調(diào)試大程序時(shí)可以分段,節(jié)約時(shí)間;低電壓,無(wú)需12V編程電壓。3AT89S8252串行編程
(1)AT89S8252串行編程模式
當(dāng)芯片的RST引腳置高電平時(shí),所有程序和數(shù)據(jù)存儲(chǔ)器可以通過(guò)SPI總線接口[SCK,MOSI(input),MISO(output)]編程。RST變高以后,在編程或擦除操作之前必須首先發(fā)送一條編程允許命令。在串行編程模式下,芯片會(huì)在字節(jié)編程之前自動(dòng)插入一個(gè)擦除周期。因此,除非芯片的代碼保護(hù)位被編程,編程之前不需要執(zhí)行全片擦除命令。SPI接口之SCK時(shí)鐘頻率須低于晶振頻率的1/40。
(2)AT89S8252串行編程步驟
①在XTAL1與XTAL2之間連接一個(gè)3~24MHz的晶振;在VCC與GND之前加上電源電壓,將RST置高,等待10ms。②發(fā)送串行編程允許命令。③發(fā)送寫(xiě)/讀/擦除等命令及數(shù)據(jù),串行數(shù)據(jù)高位在前,低位在后,數(shù)據(jù)在時(shí)鐘的上升沿鎖定。④如果上一步是寫(xiě)命令,至少等待2.5ms。⑤需要時(shí)重復(fù)③、④兩步。⑥將RST置低,芯片開(kāi)始運(yùn)行。
(3)AT89S8252串行編程命令
AT89S8252串行編程命令如表1所列。
4)AT89S8252串行編程時(shí)序圖
AT89S8252串行編程時(shí)序如圖1所示。
4硬件設(shè)計(jì)
①通過(guò)計(jì)算機(jī)并口與單片機(jī)SPI口連接;②為了保護(hù)計(jì)算機(jī)并口,需要增加1片74HC244作為隔離。實(shí)用的原理圖如圖2所示。(已經(jīng)過(guò)實(shí)踐檢驗(yàn),可放心使用。)
5用VB編程進(jìn)行并口控制打印端口的基地址一般為0x278、0x378或0x3BC,可以從控制面板中查到。為了方便讀者,表2列出了常用打印端口引腳及寄存器位元的說(shuō)明。
在Windows環(huán)境下簡(jiǎn)單易學(xué)的語(yǔ)言恐怕非VB莫屬,所以我們的開(kāi)發(fā)工具也選用VB作為編程語(yǔ)言。但由于Windows的保護(hù),VB無(wú)法直接讀寫(xiě)打印端口,因此我們需要另外的程序模塊來(lái)實(shí)現(xiàn)打印端口的直接讀寫(xiě)。在Internet網(wǎng)上可以找到許多此類(lèi)模塊,并且相當(dāng)多的模塊可以使用。經(jīng)過(guò)試用,筆者推薦使用Winiov2.0。該模塊支持Win9X/NT/2000/XP(YarivKaplan),并且?guī)в性敿?xì)的幫助、例子程序及源碼。使用時(shí),將Winio.sys、Winio.dll、Winio.d及Winio.bas四個(gè)文件拷貝到工作目錄下,在VB中直接添加Winio.bas模塊即可。本例中用到的函數(shù)有四個(gè),分別說(shuō)明如下。①I(mǎi)nitialize():允許端口控制函數(shù)。在使用端口輸入輸出函數(shù)之前調(diào)用,成功返回“1”,失敗返回“0”。②Shutdown():關(guān)閉端口控制函數(shù)。在退出程序時(shí)執(zhí)行,成功返回“1”,失敗返回“0”。③GetPortVal(ByValPortAddrAsInteger,ByRefPortvalAsLong,ByValbSizeAsByte)AsBoolean:讀取端口函數(shù),PortAddr為端口地址,Portval為端口值,bSize為要讀取的字節(jié)數(shù)。讀取成功時(shí)返回“1”,失敗時(shí)返回“0”。④SetPortVal(ByValPortAddrAsInteger,ByValPortvalAsLong,ByValbSizeAsByte)AsBoolean:寫(xiě)端口函數(shù)。PortAddr為端口地址,Portval為要寫(xiě)的值,bSize為要寫(xiě)入的字節(jié)數(shù)。寫(xiě)入成功返回“1”,失敗返回“0”。四個(gè)函數(shù)在Winio.bas模塊中的聲明如下:DeclareFunctionInitializeWinIoLib揥inIo.dll”()AsBooleanDeclareFunctionShutdownWinIoLib揥inIo.dll”()AsBooleanDeclareFunctionGetPortValLib揥inIo.dll”(ByValPortAddrAsInteger,ByRefPortvalAsLong,ByValbSizeAsByte)AsBooleanDeclareFunctionSetPortValLib揥inIo.dll”(ByValPortAddrAsInteger,ByValPortvalAsLong,ByValbSizeAsByte)AsBoolean6IntelHEX格式文件
由于一般編譯軟件產(chǎn)生的用于寫(xiě)入芯片的文件都是IntelHEX格式的文件。IntelHEX文件屬于文本文件,可以用記事本查看。一個(gè)IntelHEX文件的一行稱(chēng)為一個(gè)記錄,每個(gè)記錄都是由十六進(jìn)制字符組成的,兩個(gè)字符表示一個(gè)字節(jié)的值。IntelHEX文件通常由若干條記錄組成,每個(gè)記錄都具有如下的形式::LLAAAATTDD...DDCC“:”——記錄的起始標(biāo)志;LL——記錄長(zhǎng)度,表示該記錄中的數(shù)據(jù)字節(jié)數(shù);AAAA——數(shù)據(jù)裝入的首地址(16位);TT——記錄類(lèi)型,00表示數(shù)據(jù)記錄,01表示文件結(jié)束;(注意:有的編譯軟件會(huì)產(chǎn)生大于01的記錄類(lèi)型,本應(yīng)用中對(duì)大于01記錄類(lèi)型的記錄忽略掉即可。)DD——數(shù)據(jù)值(字節(jié));CC——校驗(yàn)和。(將其本身與記錄中除起始標(biāo)志外的所有字節(jié)相加應(yīng)為0,不為0則有錯(cuò)。)VB編程詳細(xì)說(shuō)明見(jiàn)本刊網(wǎng)絡(luò)補(bǔ)充版()。(由于各子程序的流程都較簡(jiǎn)單,所以直接給出源碼,而未畫(huà)出流程圖。程序采用由底至頂?shù)脑O(shè)計(jì)方法。)
結(jié)語(yǔ)雖然上述程序能實(shí)現(xiàn)各種基本的功能,但并不完善,并未考慮各種異常情況,讀者可根據(jù)實(shí)際情況進(jìn)行完善。編程功力較差的朋友可直接到筆者的網(wǎng)站(http://)相對(duì)較完善的應(yīng)用程序。如果充分理解了上述程序,那么DIY一個(gè)AVR或PIC單片機(jī)的開(kāi)發(fā)工具也非難事。在筆者的網(wǎng)站也有制作完成的“MCS51/AVR/PIC三合一器資料”
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《家樂(lè)福模式分析》課件
- 管理顧問(wèn)工作總結(jié)
- 房地產(chǎn)行業(yè)客服經(jīng)驗(yàn)分享
- 服裝行業(yè)的保安工作總結(jié)
- 中央財(cái)經(jīng)大學(xué)財(cái)務(wù)管理課件-風(fēng)險(xiǎn)與報(bào)酬
- 銀行求職自我介紹(15篇)
- 2023-2024年項(xiàng)目部治理人員安全培訓(xùn)考試題(原創(chuàng)題)
- 《電子政務(wù)》課件
- 2024年公司項(xiàng)目部負(fù)責(zé)人安全教育培訓(xùn)試題含答案(模擬題)
- 銷(xiāo)售個(gè)人年度工作總結(jié)(7篇)
- 社區(qū)電動(dòng)車(chē)應(yīng)急預(yù)案方案
- 公司股東債務(wù)分配承擔(dān)協(xié)議書(shū)正規(guī)范本(通用版)
- 平安工地、品質(zhì)工程建設(shè)方案
- 2023漿體長(zhǎng)距離管道輸送工程
- 初二英語(yǔ)寒假作業(yè)安排表 - 揚(yáng)中樹(shù)人歡迎您
- 基于Android系統(tǒng)的天氣預(yù)報(bào)APP設(shè)計(jì)
- 市政工程危險(xiǎn)源識(shí)別與風(fēng)險(xiǎn)評(píng)價(jià)一覽表
- 道路施工臨時(shí)占道施工應(yīng)急保暢方案隧道
- 2024屆高考語(yǔ)文復(fù)習(xí):作文主題訓(xùn)練人文情懷
- 炊事員個(gè)人衛(wèi)生習(xí)慣養(yǎng)成-課件
- 粉末涂料有限公司邦定攪拌機(jī)安全風(fēng)險(xiǎn)分級(jí)管控清單
評(píng)論
0/150
提交評(píng)論