新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 現在PIC單片機還有用的嗎?

        現在PIC單片機還有用的嗎?

        作者:嵌入式開發小杰 時間:2023-03-01 來源:知乎 收藏

        對于計算機學院與電子學院相關的同學來說,單片機一定不是一個陌生的概念。在大學的學習生涯中,經常用于教學的是MCS-51系列單片機。其實,除了MCS-外,還有一類單片機——。

        本文引用地址:http://www.104case.com/article/202303/443909.htm

        01 什么是

        ,英文名為Peripheral Interface Controller,翻譯為“開發和控制外圍設備用集成電路”,可以看作是一種高度集成化的小型計算機,擁有CPU、寄存器、內存單元、串口并口等一系列計算機運行時需要依賴的硬件設備。

        02 PIC單片機與MCS-的區別

        相較于51系列單片機,PIC單片機的區別主要有3點:

        1 總線結構

        51系列單片機采用的是經典的“馮諾依曼體系結構”,而PIC單片機則是采用“哈佛體系結構”。這里簡單介紹一下兩種體系結構的不同:馮諾依曼體系結構是單總線結構,即數據傳輸與指令傳輸共用一條總線;而哈佛體系結構則是雙總線結構,即數據傳輸與指令傳輸分別使用一條總線。由于采用哈佛體系結構,所以PIC單片機的數據總線和指令總線位數(寬度)可能不同。

        2 流水線結構

        51系列單片機采用的是單流水線結構,即在一條指令完全執行完畢后才會執行。而PIC單片機則有二級流水結構,可以在一定程度上實現指令并發(雖然不如x86/64系列CPU或者ARM系列CPU)。

        3 匯編指令

        51系列單片機大約有一百多條匯編指令,基本包含了在程序運行中需要用到的絕大多數匯編指令。而PIC的匯編只有35條,功能較少(例如沒有常用的乘除功能,需要使用循環加/減實現乘除功能)。但是PIC的指令執行較快,PIC單片機一個指令的執行只需一個指令周期,而51系列單片機則需要2至4個指令周期。

        除了以上區別,在保密性方面,PIC單片機不如51系列單片機,PIC單片機比較不能抗干擾,也很容易被解密。

        圖片



        03 PIC單片機環境C語言編程簡介(pic單片機c語言)


        相較于其他編程語言,使用C語言開發PIC單片機程序有許多優點:

        1 相較于匯編語言來說,使用C語言這類高級編程語言進行編程比較簡單方便。使用匯編語言編程需要掌握一定的CPU運行知識,而且對寄存器、運算器指令集等都需要有一定的了解,編程時也需要時刻思考匯編指令的運行流程。而使用C語言編程時則只需將精力放在程序運行邏輯即可。

        2 相較于C++、Java等面向對象編程語言來說,C語言更加貼近底層運行邏輯,沒有封裝、繼承等更加高級的語法,更加純粹地關注程序的執行流程。


        04 PIC單片機的C語言編程


        PIC單片機環境下的C語言編程與我們平時使用的C語言在語法上大致類似,不過仍有些許不同。下面對PIC單片機的C語言編程做簡要介紹。

        1 編譯器配置。由于PIC單片機有獨特的CPU架構,因此不同于傳統的gcc或者vc++編譯器進行編譯,PIC單片機環境下的C語言有專門的C語言編譯器PICC Compiler。

        2 PIC單片機C語言同樣支持常見的short、int、long、float等基本數據類型。不過需要注意的是,PIC單片機C語言的int類型為16位存儲,long類型為32位存儲,float類型為24位存儲。

        3 除了基本數據類型外,PIC單片機C語言也同樣支持數組、結構體和聯合體等復合數據類型。

        4 PIC單片機C語言有一個特殊的數據寄存器bank,該寄存器由程序員管理,在定義變量時必須指定變量存儲位置,若不指定則默認存儲在bank0中。

        若定義存儲于其他bank寄存器的變量,則需要在定義變量時指定bank寄存器編號。例如:
        bank1 unsigned char buffer[32];
        bank2 int flag1, flag2;

        5 PIC單片機C語言保留volatile關鍵字,用于告知某些特殊的值可能會發生改變。(pic單片機c語言)

        6 使用PIC單片機C語言編程時,雖然也可調用標準庫函數,不過由于PIC單片機性能有限,由于諸如scanf()/printf()等庫函數的代碼比較繁雜,因此在調用這些庫函數時需要額外謹慎,可能會造成程序運行時間大幅度增加甚至宕機。

        7 PIC單片機C語言支持C語言與匯編語言混合編程。若在C語言內插入匯編語言代碼,則需要使用asm關鍵字標識。




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 安龙县| 开平市| 环江| 米林县| 当涂县| 高邑县| 精河县| 咸丰县| 维西| 余干县| 秦安县| 汝城县| 交口县| 绥宁县| 屯昌县| 读书| 如皋市| 聊城市| 江津市| 泸溪县| 桂阳县| 中山市| 慈利县| 新郑市| 长海县| 敖汉旗| 峨边| 平塘县| 诏安县| 滨海县| 洛扎县| 诸城市| 呼玛县| 玉溪市| 长岭县| 大方县| 买车| 开鲁县| 浮梁县| 黎川县| 四川省|