匯編手記之PIC單片機
pic單片機(peripheral Interface Controller)是一種控制外圍電路的集成電路(IC),是把CPU,ROM(存儲器),I/O等集成在一塊芯片上的特殊微型計算機。它是具有分散作用(多任務(wù))功能的CPU。
PIC(請一定要上網(wǎng)查相關(guān)的資料。)系列單片機是美國微型芯片(很多的詞匯都讓服務(wù)器攔住了,不讓發(fā),希望你知道。)公司生產(chǎn)的單片機系列產(chǎn)品的標志產(chǎn)品。此公司系列單片機的特點:一,率先使用了精簡指令集(RISC 在后面我們會了解它的指令系統(tǒng))結(jié)構(gòu)的嵌入式結(jié)構(gòu)。使單片機突破傳統(tǒng)的在結(jié)構(gòu)上對PC存在的自然依賴性。二,引入哈佛總線的存儲器結(jié)構(gòu),兩級流水線指令結(jié)構(gòu),單周期指令等技術(shù),有效提高了系統(tǒng)的運行效率。
PIC八位單片機的分類:現(xiàn)在的PIC系列單片機在世界單片機市場份額的排名逐年穩(wěn)升,尤其是八位單片機市場?,F(xiàn)已有三個系列多中型號的產(chǎn)品問世,單片機從電腦外設(shè),家電控制,電信通信,智能儀器,汽車電子,各個領(lǐng)域都有應(yīng)用??梢哉f,現(xiàn)在的PIC單片機是世界上最有影響力的嵌入式微控制器。
基本級系列:特點是低價位。如PIC16C5X,PIC12C5XX.(在百度查詢“芯片查詢網(wǎng)”,你就可以得到很多微芯片的詳細技術(shù)資料,包括引腳排列,各引腳功能等等。其中有一個芯片查詢網(wǎng)很有名,你很容易查到的,資料全部為英文。)二,中級系列。該級是PIC最豐富的品種系列,從八引腳到六十八引腳的各種封裝。如:PIC12C6XX。該級產(chǎn)品的性能很高,內(nèi)部置A/D轉(zhuǎn)換器,E*E(E的平方)PROM數(shù)據(jù)存儲器,比較器輸出,PWM,輸出,I*I(I平方)和SPI等接口。三,高級系列。如PIC17CXX,特點是速度快,所以適用于高速數(shù)字運算的場合,又因為它具備一個指令周期內(nèi)(160納秒)可以完成8X8(位)二進制乘法運算的能力,甚至可以取代某些DSP產(chǎn)品。該系列適用于高,中檔的電子設(shè)備。(可是這系列很貴。)
這三個系列的PIC8位單片機還具有很高的代碼兼容性,用戶可以將代碼從某型號轉(zhuǎn)換到另一個型號。
PIC系列單片機的特點:一,注重實際,性價比高。像PIC12C508,有512字節(jié)ROM,25字節(jié)RAM,1個8位定時器,1根輸入線,5根I/O線,價格在3~6元人民幣。這款單片機適合于摩托車自動點火器的應(yīng)用。二,高效率。三,開發(fā)環(huán)境優(yōu)越。四,抗干擾能力強。PIC單片機通過限流電阻可接220V交流電源,可直接與繼電器控制電路相連,無需光電耦合器隔離。五,絕對保密。PIC以保密熔絲來保護代碼,寫入代碼后熔絲熔斷,除非恢復(fù)熔絲,否則不可能讀出原代碼,而PIC所采用的是熔絲深埋工藝,被恢復(fù)的可能性極小。
PIC系列單片機的開發(fā)。單片機是把CPU,ROM,I/O集成在一塊芯片上的特殊微型計算機,就其本身而言是沒有開發(fā)能力的,要把它開發(fā)成為一個實際應(yīng)用的產(chǎn)品,需要一定的開發(fā)工具。其開發(fā)工具分:硬件開發(fā)工具和軟件開發(fā)工具兩類。前者指各種編程器,仿真開發(fā)機等編程開發(fā)設(shè)備:后者指各種編輯,匯編,模擬調(diào)試和集成開發(fā)環(huán)境等工具軟件。
當你拿到一片單片機,它還不能用,要你寫入程序,如何接收數(shù)據(jù)?怎樣處理?輸出又怎樣應(yīng)用?等等…這個就是應(yīng)用編程!它不像在電腦上寫的程序,錯了可以隨便改,因為單片擦寫的次數(shù)多了,對程序本身的穩(wěn)定運行不利。如果是一次性寫入的單片,寫入的程序錯了,后果你知道,所以一些單片的仿真模擬軟件你務(wù)必爛熟于胸,它們不同于Word,Ecxel…它具有很高的概念性,真實性和應(yīng)用性。所以不要把它們當做像那些小孩子都能學得來的軟件來對待,你沒真正的燒錄過單片,你就是生手,沒寫過匯編,就算計算機等級過幾百級,在“64K編程大賽”(上網(wǎng)查“64K編程大賽第一名的程序”看看64K的內(nèi)存到底能寫出怎樣的程序?)的人看來,只不過是從書堆里鉆出來的臭蟲。技術(shù)是實踐與理論應(yīng)用的實現(xiàn),我們不需要那些清華北大的程序高手,因為我們沒錢,請不起他們。但是,如果你愿意,我也相信,我們總有一天會擁有他們的技術(shù)暫時跳過基礎(chǔ)介紹,初步認識一下指令系統(tǒng)。
由于PIC的指令系統(tǒng)和匯編的指令系統(tǒng)有相似,比較起來PIC指令系統(tǒng)的指意性更強,所以,我先不介紹PIC的指令系統(tǒng),和你說說匯編語言的指令系統(tǒng)。
下面介紹一下pic 指令系統(tǒng):
首先,什么是指令系統(tǒng)。能被一種CPU識別并執(zhí)行的指令集合,就是基于這種CPU的指令系統(tǒng)。不同廠家生產(chǎn)的單片機,或基于不同CPU內(nèi)核的單片機,一般具有不同的指令系統(tǒng)。所以,以后我們會選擇MicroChip公司生產(chǎn)的PIC做為BV實驗用單片?;A(chǔ)級的PIC16C5X系列芯片共有33條指令,每條指令長12位;中檔級PIC16C6X/7X/8X系列芯片公有35條指令,每條指令長14位:高檔PIC17CXX系列芯片共有58條指令,每條指令長16位。你肯定能在網(wǎng)上搜索到各個系列PIC單片的指令,你可以打印下來備用。
一,pic指令系統(tǒng)
這里是書上的一條程序,計算函數(shù)值;Y={X+10 (X,0),30X [0,10],X-190 (10,X)}
源程序代碼:
DATA1 SEGMEMT
X DW ?
Y DW ?
DATA1 ENDS
CODE1 SEGMENT
…
MOV AX,X
CMP AX,0
JGE CASE23
ADD AX,10
JMP RESULT
評論