引 言:
目前介紹單片機應用的文章很多,但介紹單片機開發(fā)工具制作的文章卻較少。由于單片機是一門實踐性很強的課程,如果采用傳統(tǒng)的開發(fā)模式,則要購買價格昂貴的仿真器、編程器等開發(fā)工具來作實驗。其實由于芯片功能的日益完善,我們可以利用芯片的在系統(tǒng)編程(isp)功能制作出實用而低價的開發(fā)工具。本文旨在幫助diy愛好者開發(fā)制作出適合自己的開發(fā)工具。 1 當前常用開發(fā)模式 目前,基本上有兩種開發(fā)模式可供選擇:用仿真器、用編程器。
① 用仿真器。優(yōu)點:方便,可以設置斷點,可以觀察存儲器及寄存器的內(nèi)容。缺點:價格昂貴,不同類型的單片機要購買不同的仿真器;仿真器終究不是單片機,有時代碼在仿真器上能通過,但在單片機中不能正常工作,反而增加了調(diào)試的難度。
② 用編程器。優(yōu)點:價格相對便宜,通常一款編程器可編程多種器件。缺點:操作相當不便,每次要將芯片在目標板與編程器之間轉(zhuǎn)移,并且還要在編譯操作界面與編程器操作界面之間切換,大部分時間在做簡單的重復工作。2 新的開發(fā)模式介紹及芯片選擇 本文介紹的開發(fā)工具采用一種新的開發(fā)模式(類似于編程器開發(fā)模式)。由于利用了芯片的在系統(tǒng)編程功能,因此不需要移動芯片。在軟件設計時設計成:一旦代碼文件被重新編過,即自動下載到芯片,并自動復位運行,是真正的“所編即所得”?! ∧壳昂芏鄦纹瑱C都支持在系統(tǒng)編程。8051系列單片機支持在系統(tǒng)編程的也很多,但大多數(shù)是支持通過pc機的串口對單片機進行編程。這樣有四個不方便的地方:一是項目本身與pc機串行通信不方便;二是要增加1片max232電平轉(zhuǎn)換芯片;三是有的芯片要按特定的步驟進入下載模式,編程過程需要手工干預;四是有的芯片需要固件(定制的程序)的支持,如果不小心損壞了固件,則芯片的在系統(tǒng)編程功能也沒有了?! 〗?jīng)過比較,atmel公司生產(chǎn)的at89s8252是一種比較理想的芯片,適合制作開發(fā)工具。此芯片有如下特點:
與8051兼容;
內(nèi)含8kb可擦寫1000次的程序存儲器,2kb可擦寫超過100 000次的數(shù)據(jù)存儲器及256字節(jié)8位寬內(nèi)部ram;
可通過spi接口在系統(tǒng)串行編程,與8051兼容
串行編程時有自動擦寫周期,在調(diào)試大程序時可以分段下載,節(jié)約時間;
低電壓下載,無需12v編程電壓。 3 at89s8252串行編程(1)at89s8252串行編程模式 當芯片的rst引腳置高電平時,所有程序和數(shù)據(jù)存儲器可以通過spi總線接口[sck,mosi(input),miso(output)]編程。rst變高以后,在編程或擦除操作之前必須首先發(fā)送一條編程允許命令。在串行編程模式下,芯片會在字節(jié)編程之前自動插入一個擦除周期。因此,除非芯片的代碼保護位被編程,編程之前不需要執(zhí)行全片擦除命令。spi接口之sck時鐘頻率須低于晶振頻率的1/40。(2)at89s8252串行編程步驟① 在xtal1與xtal2之間連接一個3~24mhz的晶振;在vcc與gnd之前加上電源電壓,將rst置高,等待10ms。
② 發(fā)送串行編程允許命令。
③ 發(fā)送寫/讀/擦除等命令及數(shù)據(jù),串行數(shù)據(jù)高位在前,低位在后,數(shù)據(jù)在時鐘的上升沿鎖定。
④ 如果上一步是寫命令,至少等待2.5ms。
⑤ 需要時重復③、④兩步。
⑥ 將rst置低,芯片開始運行。(3)at89s8252串行編程命令at89s8252串行編程命令如表1所列。
4)at89s8252串行編程時序圖at89s8252串行編程時序如圖1所示。
4 硬件設計① 通過計算機并口與單片機spi口連接;
② 為了保護計算機并口,需要增加1片74hc244作為隔離。
實用的原理圖如圖2所示。(已經(jīng)過實踐檢驗,可放心使用。)
5 用vb編程進行并口控制 打印端口的基地址一般為0x278、0x378或0x3bc,可以從控制面板中查到。為了方便讀者,表2列出了常用打印端口引腳及寄存器位元的說明。
在windows環(huán)境下最簡單易學的語言恐怕非vb莫屬,所以我們





