五分鐘了解PIC與51單片機(jī)的區(qū)別
單片機(jī)是一個(gè)籠統(tǒng)的概念,如果對(duì)其進(jìn)行細(xì)分,能夠劃分出很多不同的種類,PIC單片機(jī)與51單片機(jī)就是其中兩種,對(duì)于電源新手來(lái)說(shuō),很多人對(duì)于這兩款單片機(jī)無(wú)法給予較為明確的概念界定,因此經(jīng)常會(huì)出現(xiàn)概念混淆的情況,針對(duì)于此,本文特意為大家整理了PIC單片機(jī)與51單片機(jī)的區(qū)別,感興趣的朋友快來(lái)看一看吧。
本文引用地址:http://butianyuan.cn/article/201808/386415.htm本文將以PIC16、PIC12、10系列為例來(lái)進(jìn)行介紹。PIC系列單片機(jī)采用哈佛總線結(jié)構(gòu),程序空間總線和數(shù)據(jù)總線分開,地址長(zhǎng)度也不一樣,也同樣不在一個(gè)連續(xù)的空間,程序?yàn)閱巫纸Y(jié)構(gòu),一句程序占用一個(gè)程序字長(zhǎng),這與51不一樣,51系列則采用馮·諾依曼結(jié)構(gòu),程序空間和數(shù)據(jù)空間共用一組8BIT的總線,程序空間和數(shù)據(jù)空間共用一個(gè)連續(xù)的地址空間;程序?yàn)槎嘧止?jié)結(jié)構(gòu),根據(jù)不同指令及數(shù)據(jù)每句程序有不同的長(zhǎng)度,這種結(jié)構(gòu)有可能在程序跑飛的時(shí)候讓系統(tǒng)把數(shù)據(jù)當(dāng)做指令執(zhí)行。
PIC系列單片機(jī)使用精簡(jiǎn)指令集,總共不超過(guò)35條指令,采用預(yù)取指令的做法使絕大多數(shù)指令只要一個(gè)指令時(shí)鐘周期,51則采用復(fù)雜指令集,需要4個(gè)或更多指令周期才能執(zhí)行一條指令。
PIC中低檔單片機(jī)只有一個(gè)中斷入口,一些低檔單片機(jī)甚至沒(méi)有中斷,中斷發(fā)生后需要用軟件清除中斷標(biāo)志,并且需要用軟件來(lái)判斷中斷源,這與51系列有豐富的中斷入口相比有一些局限,而且由于指令長(zhǎng)度的局限,PIC程序和數(shù)據(jù)尋址采用分頁(yè)(PAGE)和分塊(BANK)的做法,在程序跳轉(zhuǎn)和數(shù)據(jù)查找方面需要注意頁(yè)面和塊的跳轉(zhuǎn)。
PIC系列單片機(jī)采用硬件堆棧,堆棧只儲(chǔ)存程序跳轉(zhuǎn)前的程序地址,而且堆棧深度最多8級(jí),不能支持程序的無(wú)限嵌套,不能使用51系列PUSH。POP等方便的數(shù)據(jù)堆棧指令來(lái)保護(hù)現(xiàn)場(chǎng)。在中斷中保護(hù)現(xiàn)場(chǎng)比較繁瑣。
可以看到PIC單片機(jī)與51單片機(jī)還是存在很多差異的。PIC單片機(jī)在指令集上要簡(jiǎn)于51單片機(jī),而在中斷入口方面51單片機(jī)也擁有較為明顯的優(yōu)勢(shì)。對(duì)于51單片機(jī)與PIC單片機(jī)仍舊存在迷惑的朋友在閱讀本文之后相信一定能夠?qū)烧叩?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/區(qū)別">區(qū)別有所了解。
評(píng)論