A. 普通單片機與加有前綴ds的單片機有什麼區別
都是Microchip公司的PIC系列的單片機。
但你說的後者PIC30F2010不存在。不信去PIC單片機的官方網站查:www.microchip.com
PIC單片機有很多種。PIC10、PIC12、PIC16、PIC18這些都是8位的單片機
而你說的dsPIC30和dsPIC33系列單片機是屬於帶DSP(數字信號處理)功能的16位單片機。而PIC24系列是跟dsPIC30系列單片機相似,就是不帶DSP的16位單片機。
還有就是PIC32系列是32位的單片機,是microchip為了和ARM爭奪高端32位嵌入式晶元市場而生產地。
補充:有dsPIC字樣的是帶DSP功能的16位單片機,可以理解為有ds字樣的就是DSP晶元。DSP晶元:數字處理晶元,可以在一個時鍾周期里完成一個MAC,就是16位乘上16位數,其積再加上一個32位數這兩個操作一個時鍾周期完成。在dsPIC中,就是兩個晶振周期完成,如果晶振是4MHz的話,就是說上述乘法和加法的操作能在2微秒內完成。這MAC是衡量DSP晶元的一個指標。還有就是FFT(快速傅里葉變換)等等。
PIC18和PIC24系列的也有內部的乘法器,但他們的乘法器速度遠遠追不上DSP晶元的MAC。 你可以看看網路對DSP的詳解。
DSP怎麼用,舉個例子:有的語音DSP晶元,可以做一個數字濾波器,兩個人同時說話,麥克風錄入這些聲音到這個濾波器里,濾波器的喇叭可以實時算出某個人的聲音,並且只輸入這個人的聲音(實時的,旁觀者根本分辨不出延時)。這就是DSP晶元的快速數字運算能力所決定的。不要跟我說計算機的CPU也有這么快,計算機的微處理器只是頻率高,在某些工程數學運算場合,它根本比不上DSP晶元。
至於Microchip的dsPIC30系列,因為它是面向於對電機、變頻器的數字控制,所以它要實現上述的語音實時濾波比較困難。至於dsPIC33系列的,因為我沒用過這系列的DSP,所以不敢確定是否能實現上述功能。
使用DSP晶元的快速運算功能需要編程者有《信號與系統》《復變函數》《有限元分析》《小波變換》等等的研究生才學的課程,如果只是拿來做普通單片機,那就太大材小用了。
B. 學PIC單片機需要學什麼軟體
需要:
1、MPLAB IDE,這個是所有PIC單片機的開發平台,目前最高版本是8.83,這個軟體是免費的,可以到MICROCHIP公司網站上下載;
2、PICC,這個是PIC 16系列單片機的C編譯器,建議直接學C,所以要用它,這個是收費軟體,但網上可以找到的最高版本破解版,版本是9.8,上網可以找到;
3、PROTEUS,這個是目前世界上最好的單片機的模擬軟體,因為大多數人沒有實驗條件,用這個最好,這個也是收費軟體,網上可以找到破解片,目前最高版本是7.8;
4、要買相應的書,沒有書你會學得很辛苦,建議你買北航出版社的《PIC16系列單片機C程序設計與PROTEUS模擬》,這本書介紹上面的所有東東,有很多實例,包括線路圖和程序。
C. pic 單片機 參考文獻
PIC8位單片機的基本組成
PIC系列8位單片機為適應各種不同的用途,有多種型號可供選用。但是,盡管PIC單片機有不同的檔次和型號,但其最基本的組成則大同小異。因此,在這里先從型號PIC16F84的單片機入手,討論其基本組成。PIC16F84是雙列直插式(DIP)塑料封裝,最大時鍾頻率可達4MHz。現為Microchip公司的獨家產品,關於其具體技術指標,可查閱該公司的產品手冊,或在網址www.microchip.com上查找。
PIC16F84單片機的引腳排列可參閱本期本版的16F8X系列簡介一文。本文的附圖是該器件的主要組成部分。PIC16F84雖然體積不大,但仍然是一個完整的計算機,它有一個中央處理器(CPU)、程序存儲器(ROM)、數據寄存器(RAM)和兩個輸入/輸出口(I/O口)。
和其它品種的單片機一樣,CPU是此單片機的「首腦」,它從程序存儲器中讀取和執行指令。在取指和執行時,還可同時對數據寄存器進行取數(前已介紹PIC16F84採用哈佛結構)。由附圖可明顯看出,程序存儲器和數據存儲器各有一條匯流排與CPU相連。有些CPU將CPU內部的寄存器與其外部的RAM是分開管理的,但PIC單片機不是這樣,它的通用數據RAM也歸為寄存器,稱為File寄存器。在PC16F84中,有68個位元組的通用RAM,其地址為0CH~4FH。
除了通用數據寄存器外,還有一些專用寄存器,其中最常用的工作寄存器為「W寄存器」。CPU將工作數據存放在W寄存器中。寄存器W的作用與其它單片機中的「累加器A」相似。此外,還有幾個專用寄存器,它們分別以某種方式控制PIC的運作。
PIC16F84的程序存儲器是由Flash(閃速)EPROM構成,它可用電來記錄和擦除,而在斷電時,仍可保留其內容。PIC單片機有些型號的程序存儲器用的是EPROM,需要用紫外線來擦除;還有一些型號是一次性可編程(OTP)的產品(一經編程便不能再擦除)。
PIC16F84有兩個輸入/輸出口,即A口和B口。每個口的每個引腳可單獨設定為輸入或輸出。各個口的位是從0開始編號的。當A口為輸出方式時,其第4位(即RA4)為開路集電極(或開路漏極)輸出,而B口及A口其它各位為常規的全CMOS驅動電路。這些功能必須注意,否則會在編程時出錯。CPU對每個埠都按一個位元組8位來處理,但A口只有5位引腳。
PIC輸入與COMS兼容,所以PIC輸出可驅動TTL或CMOS邏輯晶元。每個輸出引腳可以流出或吸入20mA電流,即使一次只用了一個引腳亦是如此。
摘 要:在介紹空調室內機控制器功能的基礎上,從軟體的規劃著手,詳細介紹了室內機軟體的總體設計過程、詳細設計過程以及編碼的實現,並在此基礎上重點給出了空調室內機運行模式的特點和結合這些特點如何用MPLAB集成開發環境去實現各運行模式。
關鍵詞:空調;控制器;單片機;軟體設計
單片機軟體實現是單片機系統應用的重點,他是在硬體設計基礎上實現程序設計的重要環節。單片機程序設計一般包括以下幾個步驟:軟體規劃、流程圖編制、代碼編寫。由於單片機系統具有軟硬體緊密結合的特點,因此在基於某種單片機系統的軟體開發時,應充分了解該系統實現的硬體環境,同時也應該在系統設計與硬體設計階段,對軟體設計有一個大體的規劃。因此,本文在介紹室內機控制器功能的基礎上,重點討論如何用軟體實現該室內機的功能。
一:PIC16C71的問題和對策
問題1:在晶元進入低功耗睡眠模式 (SLEEP MODE)後,其振盪腳將處於浮態,這將使晶元的睡眠功耗上升,比原手冊中的指標高了10μA以上。
對策:在振盪腳OSC1和地 (GND)之間加一10MΩ電阻可防止OSC1進入浮態,且不會影響正常振盪。
問題2:RA口方向寄存器TRISA目前只是一個4位寄存器,對應於RA0~RA3,並非手冊中所言是8位寄存器,對應於RA0~RA4,即RA4並沒有相應的輸入/輸出方向控制位,它是一個具有開極輸出,施密特輸入I/O腳。
對策:避免使用對RA口進行讀-修改-寫指令(如BCF RA, BSF RA),以免非意願地改變RA4的輸入/輸出狀態。對於RA口的操作應採用寄存器的操作方式(MOVWF RA)。
問題3:當CPU 正在執行一條對INTCON寄存器進行讀-修改-寫指令時,如果發生中斷請求,則讀中斷常式會被執行二次。這是因為當中斷請求發生後INTCON寄存器中的GIE位會被硬體自動清零(屏蔽所有中斷),並且程序轉入中斷常式入口(0004H)。當GIE位被清零後,如果這時正好CPU在執行一條對 INTCON的讀-修改-寫指令(如BSF INTCON等),則 GIE位還會被寫回操作重新置1,這樣會造成CPU二次進入中斷常式。
對策:如果在程序中需對INTCON的某一中斷允許位進行修改,則應事先置GIE=0
,修改完成後再恢復GIE=1。
…………..
BCF INTCON, GIE
BSF INTCON, ×××
BSF INTCON, GIE
…………..
圖1
問題4:當晶元電壓VDD加電上升時間大於100μs時,電源上電復位電路POR和電源上電延時器PWRT可能不能起正常的作用,而使晶元的復位出現不正常(即PC≠復位地址)。一般在這種情況下建議不要採用PWRT。
對策:如果VDD上升時間很長,此晶元一般需較長的電源上電延時,可靠的電源上電延時方法如圖1所示,在MCLR端外接復位電路。
問題5:如果在A/D轉換中用RA3作為參考電壓輸入,則最大滿量程誤差(NFS)要大於手冊中的指標。實際情況如表1所示。
表1 A/D滿量程誤差表
VREF源
(5.12V) 滿量程誤差
(NFS)
VDD <±1 LSb
RA3 <±2.5 LSb
二:PIC16C84的問題和對策
問題1:PIC16C84的內部的E2PROM數據存儲器的E/W周期偶爾會超出最大值(10ms)。
對策:在程序中應該用EECON1寄存器中的WR位來判斷寫周期的完成,或是啟用「寫周期完成中斷」功能,這兩種方法可保證寫入完成。
問題2:VDD和振盪頻率的關系如表2所示。
VDD 振盪方式 最高頻率
2V-3V RC, LP 2MHZ,200MHZ
3V-6V RC,XT,LP 4MHZ,200MHZ
4.5V-5.5V HS 10MHZ
D. PIC單片機那一種模擬器好
PIC單片機從8位到32位的都有,看你用那種單片機了。
最好的模擬器,當然是Microchip他們自己出的MPLAB REAL ICE了。但這個最便宜的也得兩三千。如果是學習的話,推薦用ICD2,Microchip他們自己出的才八九百,而Microchip在中國的總代理貝能公司也仿製ICD2,就比官方版的便宜一兩百。這個ICD2資料是公布的,網上可以找到自製資料,所以淘寶網上有人賣自製的ICD2,才兩三百。ICD2是一個集簡單調試和編程器一體的「在線調試器」(這是Microchip對它的說明)。
一般Microchip和貝能的產品可以直接打電話聯系他們買,一些大點的城市有買PIC單片機的店也能給你拿到他們的產品。如果買便宜的自製ICD2,直接在淘寶找就行。
另外:支不支持C和匯編編程,和模擬器無關,MPLAB自帶免費的匯編編譯器。他們的網站可以下載30天試用版的C語言編譯器(只針對PIC12/16系列,官方版的ICD2的光碟也送這個)。PIC的C編譯器最便宜也得800元,可以上網下破解的。
補充:16F84是16F里比較簡單常用的且功能較為簡單的單片機,ICD2不能模擬他,但不代表REAL ICE不能模擬。好好看看MPLAB里對16F84的設置,它是可以用ice來模擬的。 如果你用的是MPLAB8.2以上版本,還可以看到ICD3可以模擬它。