天堂草原最受欢迎的角色,天堂动漫,天堂在线,色天堂下载,天堂中文在线资源,亚洲男人天堂

技術熱線: 4007-888-234
設計開發

專注差異化嵌入式產品解決方案 給智能產品定制注入靈魂給予生命

開發工具

提供開發工具、應用測試 完善的開發代碼案例庫分享

技術支持

從全面的產品導入到強大技術支援服務 全程貼心伴隨服務,創造無限潛能!

新聞中心

提供最新的單片機資訊,行業消息以及公司新聞動態

PIC單片機 C編程技巧

更新時間: 2019-03-23
閱讀量:1661

十年專注單片機方案開發的方案公司英銳恩,分享PIC單片機 C編程技巧——PICC和MPLAB集成。英銳恩現提供服務產品涉及主控芯片:8位單片機、16位單片機、32位單片機及各類運算放大器等。

1、PICC和MPLAB集成

PICC和MPLAB集成:

PICC有自己的文本編輯器,不過是DOS風格的,看來PICC的工程師要專業冷到酷底了...

大家大可不必用它,如果你沒什么癖好的話,你不會不用UltraEdit 吧?

1:建立你的工作目錄:

建議在C盤根目錄下建立一個以A開頭的文件夾做為工作目錄.因為你會發現它總是在你查找文件時候第

一個跳入你眼中.

2:MPLAB調用PICC.(以MPLAB5.7版本為例子)

啟動MPLAB.在Project-->Install Language Tool:

Language Suite----->hi-tech picc

Tool Name ---->PICC Compiler

Executable ---->c:hi-picinpicc.exe (假如你的PICC是默認安裝的)

選Command-line

最后OK.

上面這步只需要設定一次,除非你重新安裝了MPLAB.

3:創建你的項目文件:(假如你實現用EDIT編輯好了一個叫AA.C的C代碼文件)

Project-->New Project-->File Name--->myc (假如我們把項目文件取名字叫MYC.PJT)

右邊窗口當然要選擇中你的工作目錄.然后OK.

4:設定你的PICC工作參數:

Project-->Edit Project

上面4個欄目就用默認的,空的也就讓它空著,無所謂的.

需要修改的是:

Development Mode---->選擇你的PIC型號.當然要選擇Mplab SIM Simulator

讓你可以用軟件仿真.

Language Tool Suite--->HI-TECH PICC

上面的步驟,你可能會遇見多個提示條,不要管它,一路確定.

下面是PICC編譯器的選擇項:

雙擊Project Files 窗口里面的MYC.HEX,出現一個選擇攔目.命令很多,大家可以看PICC文本編

輯器里面的HELP,里面有詳細說明.

下面就推薦幾個常用也是建議用的:

Generate debug info 以及下面的2項.

Produce assembler list file

就在它們后面打勾即可,其它的不要管,除非你有特殊要求.

5:添加你的C代碼文件:

當進行了前面幾步后,按Add Node 找到AA.C文件就OK了.

6:編譯C代碼:

最簡單的一步:直接按下F10.

編譯完后,會出現各種調試信息.C代碼對應的匯編代碼就是工作目錄里面的AA.IST,用EDIT

打開可以看見詳細的對比.

7:其它,要是一切都沒問題,那么你就可以調試和燒片了,和以往操作無異.

2、如何從匯編轉向PICC

首先要求你要有C 語言的基礎。PICC 不支持C++,這對于習慣了C++的朋友還得翻翻C 語言的書。C

代碼的頭文件一定要有#i nclude,它是很多頭文件的集合,C 編譯器在pic.h 中根據你的芯片自動栽

入相應的其它頭文件。這點比匯編好用。載入的頭文件中其實是聲明芯片的寄存器和一些函數。順便摘抄

一個片段:

static volatile unsigned char TMR0 @ 0x01;

static volatile unsigned char PCL @ 0x02;

static volatile unsigned char STATUS @ 0x03;

可以看出和匯編的頭文件中定義寄存器是差不多的。如下:

TMR0 EQU 0X01;

PCL EQU 0X02;

STATUS EQU 0X03;

都是把無聊的地址定義為大家公認的名字。

一:怎么附值?

如對TMR0 附值,匯編中:

MOVLW 200;

MOVWF TMR0;

當然得保證當前頁面在0,不然會出錯。

C 語言:

TMR0=200;//無論在任何頁面都不會出錯。

可以看出來C 是很直接了當的。并且最大好處是操作一個寄存器時候,不用考慮頁面的問題。一切由

C 自動完成。

二:怎么位操作?

匯編中的位操作是很容易的。在C 中更簡單。C 的頭文件中已經對所有可能需要位操作的寄存器的每

一位都有定義名稱:

如:PORTA 的每一個I/O 口定義為:RA0、RA1、RA2。。。RA7。OPTION 的每一位定義為:PS0、

PS1、PS2 、PSA 、T0SE、T0CS、INTEDG 、RBPU??梢詫ζ渲苯舆M行運算和附值。

(文源網絡,侵刪)

联系我们: 左权县| 盐津县| 财经| 六枝特区| 泌阳县| 台南市| 孟津县| 石城县| 阿克| 葵青区| 海淀区| 盖州市| 仙居县| 陈巴尔虎旗| 岳阳市| 光山县| 西吉县| 濮阳市| 肇东市| 定西市| 金昌市| 娱乐| 湘阴县| 渭源县| 南皮县| 隆昌县| 伊金霍洛旗| 呼图壁县| 托克逊县| 电白县| 噶尔县| 桂阳县| 康平县| 平远县| 铅山县| 德州市| 富蕴县| 东阿县| 华安县| 麻阳| 安化县|