国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

8051單片機開發工具DIY

發布時間:2010-4-5 09:41    發布者:蹦蹦
關鍵詞: DIY , 單片機 , 工具 , 開發
引言

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

1  當前常用開發模式

目前,基本上有兩種開發模式可供選擇:用仿真器、用編程器。
①  用仿真器。優點:方便,可以設置斷點,可以觀察存儲器及寄存器的內容。缺點:價格昂貴,不同類型的單片機要購買不同的仿真器;仿真器終究不是單片機,有時代碼在仿真器上能通過,但在單片機中不能正常工作,反而增加了調試的難度。
②  用編程器。優點:價格相對便宜,通常一款編程器可編程多種器件。缺點:操作相當不便,每次要將芯片在目標板與編程器之間轉移,并且還要在編譯操作界面與編程器操作界面之間切換,大部分時間在做簡單的重復工作。

2  新的開發模式介紹及芯片選擇

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

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

經過比較,Atmel公司生產的AT89S8252是一種比較理想的芯片,適合制作開發工具。此芯片有如下特點:
◆ 與8051兼容;
◆ 內含8KB可擦寫1000次的程序存儲器,2KB可擦寫超過100 000次的數據存儲器及256字節8位寬內部RAM;
◆ 可通過SPI接口在系統串行編程,與8051兼容
◆ 串行編程時有自動擦寫周期,在調試大程序時可以分段下載,節約時間;
◆ 低電壓下載,無需12V編程電壓。

3  AT89S8252串行編程

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

(2)  AT89S8252串行編程步驟
①  在XTAL1與XTAL2之間連接一個3~24MHz的晶振;在VCC與GND之前加上電源電壓,將RST置高,等待10ms。
②  發送串行編程允許命令。
③  發送寫/讀/擦除等命令及數據,串行數據高位在前,低位在后,數據在時鐘的上升沿鎖定。
④  如果上一步是寫命令,至少等待2.5ms。
⑤  需要時重復③、④兩步。
⑥  將RST置低,芯片開始運行。

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

表1


(4)  AT89S8252串行編程時序圖

AT89S8252串行編程時序如圖1所示。


圖1

4  硬件設計
①  通過計算機并口與單片機SPI口連接;
②  為了保護計算機并口,需要增加1片74HC244作為隔離。

實用的原理圖如圖2所示。(已經過實踐檢驗,可放心使用。)


圖2

5  用VB編程進行并口控制

打印端口的基地址一般為0x278、0x378或0x3BC,可以從控制面板中查到。為了方便讀者,表2列出了常用打印端口引腳及寄存器位元的說明。

表2


在Windows環境下最簡單易學的語言恐怕非VB莫屬,所以我們的開發工具也選用VB作為編程語言。但由于Windows的保護,VB無法直接讀寫打印端口,因此我們需要另外的程序模塊來實現打印端口的直接讀寫。在Internet網上可以找到許多此類模塊,并且相當多的模塊可以免費使用。經過試用,筆者推薦使用Winio v2.0。該模塊支持Win9X/NT/2000/XP(http://www.internals.com Yariv Kaplan ),并且帶有詳細的幫助、例子程序及源碼。使用時,將Winio.sys、Winio.dll、Winio.vxd及Winio.bas四個文件拷貝到工作目錄下,在VB中直接添加Winio.bas模塊即可。本例中用到的函數有四個,分別說明如下。

①  Initialize():允許端口控制函數。在使用端口輸入輸出函數之前調用一次,成功返回“1”,失敗返回“0”。
②  Shutdown():關閉端口控制函數。在退出程序時執行一次,成功返回“1”,失敗返回“0”。
③  GetPortVal(ByVal PortAddr As Integer, ByRef Portval As Long, ByVal bSize As Byte) As Boolean:讀取端口函數,PortAddr 為端口地址, Portval為端口值,bSize為要讀取的字節數。讀取成功時返回“1”,失敗時返回“0”。
④  SetPortVal(ByVal PortAddr As Integer, ByVal Portval As Long, ByVal bSize As Byte) As Boolean:寫端口函數。PortAddr 為端口地址, Portval為要寫的值,bSize為要寫入的字節數。寫入成功返回“1”,失敗返回“0”。

四個函數在Winio.bas模塊中的聲明如下:
Declare Function InitializeWinIo Lib “WinIo.dll” () As Boolean
Declare Function ShutdownWinIo Lib “WinIo.dll” () As Boolean
Declare Function GetPortVal Lib “WinIo.dll” (ByVal PortAddr As Integer, ByRef Portval As Long, ByVal bSize As Byte) As Boolean
Declare Function SetPortVal Lib “WinIo.dll” (ByVal PortAddr As Integer, ByVal Portval As Long, ByVal bSize As Byte) As Boolean

6  Intel HEX 格式文件

由于一般編譯軟件產生的用于寫入芯片的文件都是Intel HEX格式的文件。Intel HEX文件屬于文本文件,可以用記事本查看。一個Intel HEX文件的一行稱為一個記錄,每個記錄都是由十六進制字符組成的,兩個字符表示一個字節的值。Intel HEX文件通常由若干條記錄組成,每個記錄都具有如下的形式:
:LLAAAATTDD...DDCC
“:”——記錄的起始標志;
LL——記錄長度,表示該記錄中的數據字節數;
AAAA——數據裝入的首地址(16位);
TT——記錄類型,00表示數據記錄,01表示文件結束;(注意:有的編譯軟件會產生大于01的記錄類型,本應用中對大于01記錄類型的記錄忽略掉即可。)
DD——數據值(字節);
CC——校驗和。(將其本身與記錄中除起始標志外的所有字節相加應為0,不為0則有錯。)

VB編程詳細說明見本刊網絡補充版(http://www.dpj.com.cn)。(由于各子程序的流程都較簡單,所以直接給出源碼,而未畫出流程圖。程序采用由底至頂的設計方法。)

結語

雖然上述程序能實現各種基本的功能,但并不完善,并未考慮各種異常情況,讀者可根據實際情況進行完善。編程功力較差的朋友可直接到筆者的網站(http: //www.mcudiy.com)下載相對較完善的應用程序 。如果充分理解了上述程序,那么DIY一個AVRPIC單片機的開發工具也非難事。在筆者的網站也有制作完成的“MCS51/AVR/PIC三合一下載器資料”供愛好者下載。

由于AT89S8252的價格還是較貴,所以現在市場上較難買,不過Atmel公司推出的替代 AT89C51/52的AT89S51/52也有在系統編程功能,且價格便宜。其在系統編程的實現方法與AT89S8252類似,對本例部分程序稍作修改即可支持該器件。筆者制作的“MCS51/AVR/PIC三合一下載器”增加了對AT89S51/52的支持。

引證文獻

   1. 孫志海.朱善安.張煜彥 ISP技術在 Netlab單片機實驗系統中的應用 [期刊論文] -自動化儀表2006(09)

作 者:楚浩單片機工作室 劉楚浩  
來 源:單片機與嵌入式系統應用2003(12)
本文地址:http://m.qingdxww.cn/thread-10163-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
McuPlayer 發表于 2010-4-10 12:55:57
這個是蹦蹦的作品
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區

相關在線工具

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 女奥特曼苍月战士未删减在线 | 色综合天天综合给合国产 | japanav在线| 女人18一级特级毛片免费看 | 国产护士资源总站 | 七月婷婷在线网址 | 国产精品久久九九 | 日日夜夜网 | 午夜影剧院 | 中文字幕一区在线播放 | 丁香午夜婷婷 | 久久99精品视免费看 | 奇米一区 | 在线精品亚洲欧洲第一页 | 久久成人国产精品二三区 | 精品久久久一二三区 | 精品欧美成人bd高清在线观看 | 欧美成人免费高清二区三区 | 国产欧美精品专区一区二区 | 一区二区三区免费在线观看 | 久草网视频 | 成人免费一级毛片在线播放视频 | 亚洲黄色毛片 | 欧美成人高清手机在线视频 | 成人精品h高辣长篇小说 | 蜜臀传煤mv在线观看 | 青草视频在线观看完整版 | 成人国产精品一级毛片视频 | 福利一区在线观看 | 国产视频网站在线 | 手机国产日韩高清免费看片 | 日韩黄色网页 | 亚洲综合情 | 思思久久q6热在精品国产 | 蜜臀传煤mv在线观看 | 午夜视频在线免费观看 | 天堂最新版免费观看 | 欧美黑人双插 | 日本中文字幕免费 | 狠狠狠色| 天堂婷婷|