PIC單片機(jī)入門必看
芯片數(shù)據(jù)手冊:可在www.microchip.com查找及下載,目前大多數(shù)新的芯片均有中文數(shù)據(jù)手冊。
免費(fèi)的集成開發(fā)環(huán)境MPLAB IDE
免費(fèi)的集成編譯調(diào)試環(huán)境:集成了工程管理、語法高亮顯示的文本文件編輯器、匯編編譯器、功能強(qiáng)大的軟仿真調(diào)試器等,同時可外掛多種C編譯器、硬件仿真調(diào)試器、燒寫器等。
下載地址:http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002
注意事項:必須安裝在C:盤,工程及文件夾名、文件名不能有中文及其他雙字節(jié)文字。
擴(kuò)展閱讀:PIC單片機(jī)是什么
主要的C語言編譯器:
介紹及下載網(wǎng)址:http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en534868&page=wwwCompilers
目前MPLAB支持所列的所有C編譯器的內(nèi)嵌調(diào)試,單步,全速都沒問題。
注意事項:不同的單片機(jī)系列必須使用不同的編譯器,目前大多數(shù)編譯器都有免費(fèi)的試用版或限制版本下載,正版的也不貴。
低成本下載器、在線調(diào)試器:
目前有ICD2,KIT2,ICD3,KIT3,推薦ICD3,KIT3,
介紹網(wǎng)址:http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2519¶m=en534451
ICD3,KIT3特點(diǎn):成本低,速度快,集成了編程器(或稱下載器)和在線調(diào)試器,支持多斷點(diǎn),調(diào)試、下載速度非?,而且KIT2、KIT3支持脫機(jī)燒寫,這對一些不方便拿到電腦邊調(diào)試的項目很有用,而且可以作為小批量量產(chǎn)的選擇方案。
注意事項:缺點(diǎn)是要占用一定的單片機(jī)資源,包括引腳、部分程序和數(shù)據(jù)寄存器等,而且要特別注意引腳上面零件不能影響電平及數(shù)據(jù)通訊,20PIN及以下的單片機(jī)需要用一個專門制作的DEBUG轉(zhuǎn)接頭才能仿真,否則只能燒寫程序后盲調(diào)。
引腳的接法及注意事項在每種產(chǎn)品的用戶手冊里均有特別說明。
使用低成本在線調(diào)試器(ICD2,ICD3,KIT2,KIT3)調(diào)試之前須知:
首先請確認(rèn):
1.MCLR上不能有大于104的電容,不能有鉗位二極管,PGD,PGC上不能有任何電容電感性負(fù)載,不得有上拉電阻。連線不得超過0.5米。USB線也很重要,大街上買的3塊一根的線不能用,這些都將導(dǎo)致通訊不暢,容易死機(jī)等毛病。
2.在MPLAB中連上在線調(diào)試器之前,最好確認(rèn)選擇由目標(biāo)板供電。連上之后請確認(rèn)是否識別出目標(biāo)芯片。
3.建立工程,加入源文件之后,用C的必須選擇DEBUG模式編譯,用匯編的必須留出一定的資源給DEBUG模塊使用,具體什么資源,請參考MPLAB幫助。每次修改程序編譯成功之后必須重新燒寫(或叫下載)。
常見問題,也是最需要注意又常常被忽略的問題:
ICD2,KIT2,ICD3,KIT3常常掉線或連接不上,這都是USB惹的禍,請使用原裝的USB線或到市場上買一根20塊錢的有屏蔽層的USB線,這樣會省很多麻煩
PIC單片機(jī)系列介紹:
PIC單片機(jī)目前有8位系列、16位系列和32位系列,簡單介紹如下:
8位機(jī)系列:
早期一次性編程的有PIC12Cxxxx系列、PIC16CXXX系列,目前不推薦使用,但還有一些老產(chǎn)品在用,所以還有出貨。
目前的FLASH系列產(chǎn)品,PIC10FXXX、PIC12FXXX、PIC16FXXX,PIC18FXXXX等,PIC10F/PIC12F屬于低檔8位單片機(jī),某些系列帶8BIT AD口,價格低,體積小,適合一些小應(yīng)用,PIC16F屬于中檔8位單片機(jī),大多數(shù)帶10BIT AD口,還有諸如CCP,SPI,I2C,UART等外設(shè)端口,價格適中,出貨量大,PIC18F系列屬于高檔8位單片機(jī),價格偏高,小批量購買的價格和16位單片機(jī)差不多。當(dāng)然外設(shè)功能豐富。
8位機(jī)的C編譯器,PIC10,12,16系列目前的主流編譯器是HI-TECH的PICC,18系列的主流編譯器有HI-TECH的PICC18及PICC18MCHP自己的PICC18,均為收費(fèi)軟件,但有評估板或限制版供免費(fèi)下載使用。
單片機(jī)介紹網(wǎng)址:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2696¶m=en537796
16位單片機(jī)系列:
有dsPIC30F系列,dsPIC33FJ系列,PIC24F系列,PIC24H系列
dsPIC30F及dsPIC33FJ系列是MCHP推出的帶DSP內(nèi)核的高性能數(shù)字信號控制器,被稱為"DSC",dsPIC30F是5V供電系統(tǒng),33FJ系列是3.3V供電系統(tǒng)。適合需要一些高速處理AD信號的場合,其中33FJXXXGPXXX系列適合音頻數(shù)字信號處理,33FJXXXMCXXX及30F系列適合馬達(dá)控制場合。
PIC24F系列及PIC24H系列是普通的16BIT MCU,適合一些要求較高的應(yīng)用場合
16位單片機(jī)共用一種C編譯器:MCHP自己的PICC30及HI-TECH的PICC30,收費(fèi)軟件,同樣有限制版或試用版供下載免費(fèi)使用。
16位DSC及MCU介紹網(wǎng)址:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2629¶m=en533465
32位單片機(jī)系列:
PIC32系列為MCHP在2007年發(fā)布的一個系列高端單片機(jī)系列,最高工作頻率80MHz,
以下文字是我從網(wǎng)站說明直譯,有錯請指出:
其特點(diǎn):
80 MHz, 1.56 DMIPS/MHz CPU core
80MHz,每MHz的工作頻率可提供1.56MIPS的整數(shù)運(yùn)算能力的內(nèi)核。
Single cycle multiply and divide hardware
單指令周期的乘法和除法運(yùn)算器
Flash pre-fetch module, 256Byte cache
FLASH預(yù)取指令技術(shù),256字節(jié)深度緩存
Fast context switch and interrupt response
高速切換及中斷響應(yīng)
8 ch. DMA controller
8通道 直接存儲器存取控制器
Key peripherals have dedicated DMA channels
鍵周邊設(shè)備有專用的 直接存儲器存取通道
Atomic bit manipulation
最小單位的二進(jìn)制處理?
PIC單片機(jī)的特點(diǎn)及與51系列單片機(jī)的區(qū)別:
這里僅以使用廣泛的中低檔PIC16/PIC12/10系列為例說明。
PIC系列單片機(jī)采用哈佛總線結(jié)構(gòu),程序空間總線和數(shù)據(jù)總線分開,地址長度也不一樣,也同樣不在一個連續(xù)的空間,程序為單字結(jié)構(gòu),一句程序占用一個程序字長,這與51不一樣,51系列則采用馮.諾依曼結(jié)構(gòu),程序空間和數(shù)據(jù)空間共用一組8BIT的總線,程序空間和數(shù)據(jù)空間共用一個連續(xù)的地址空間;程序為多字節(jié)結(jié)構(gòu),根據(jù)不同指令及數(shù)據(jù)每句程序有不同的長度,這種結(jié)構(gòu)有可能在程序跑飛的時候讓系統(tǒng)把數(shù)據(jù)當(dāng)做指令執(zhí)行。
PIC系列單片機(jī)使用精簡指令集,總共不超過35條指令,采用預(yù)取指令的做法使絕大多數(shù)指令只要一個指令時鐘周期,51則采用復(fù)雜指令集,需要4個或更多指令周期才能執(zhí)行一條指令。
PIC中低檔單片機(jī)只有一個中斷入口,一些低檔單片機(jī)甚至沒有中斷,中斷發(fā)生后需要用軟件清除中斷標(biāo)志,并且需要用軟件來判斷中斷源,這與51系列有豐富的中斷入口相比有一些局限,而且由于指令長度的局限,PIC 程序和數(shù)據(jù)尋址采用分頁(PAGE)和分塊(BANK)的做法,在程序跳轉(zhuǎn)和數(shù)據(jù)查找方面需要注意頁面和塊的跳轉(zhuǎn)。
PIC系列單片機(jī)采用硬件堆棧,堆棧只儲存程序跳轉(zhuǎn)前的程序地址,而且堆棧深度最多8級,不能支持程序的無限嵌套,不能使用51系列PUSH,POP等方便的數(shù)據(jù)堆棧指令來保護(hù)現(xiàn)場。在中斷中保護(hù)現(xiàn)場比較繁瑣。
PIC單片機(jī)匯編語言編程基礎(chǔ)
http://bbs.穎特新.com/icview-86137-1-1.html
關(guān)于內(nèi)置或外置EEPROM E2ROM 容易丟數(shù)據(jù)的一些問題討論
http://bbs.穎特新.com/icview-85555-1-1.html
PICC中的ram和rom的一定空間,如何讓編輯器保留?
http://bbs.穎特新.com/icview-220292-1-1.html
編輯:admin 最后修改時間:2018-05-28