【转】PIC单片机C语言简记

本文介绍了如何在MPLAB-IDE中安装和使用PICC编译器进行PIC单片机的C语言编程。讨论了C语言编程的基本结构、变量定义、数据寄存器的bank管理,以及PICC中的特殊变量修饰关键词。此外,还提到了函数指针、子程序和中断服务程序的实现,并强调了在编写中断服务程序时的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.PICC安装:    

  PICC编译器可以直接挂接在MPLAB-IDE集成开发平台下,实现一体化的编译连接和原代码调试。使用MPLAB-IDE内的调试工具ICE2000 、ICD2 和软件模拟器都可以实现原代码级的程序调试,非常方便。

  首先必须在你的计算机中安装 PICC 编译器。安装成功后可以进入IDE ,选择菜单项Project Æ Set Language Tool Locations… ,打开语言工具挂接设置对话框。在对话框中选择“HI-TECH PICC Toolsuite”栏,展开可执行文件组“Executable”后,列出了将被MPLAB-IDE 后台调用的编译器所用到的所有可执行文件,其中有汇编编译器“PICC Assembler ”、C 原程序编译器“PICC Compiler”和连接定位程序“PICC Linker”。同时在此列表中还显示了对应的可执行程序名,请注意在这里都是“PICC.EXE”。用鼠标分别点击选中这三项可执行文件,观察对话框下面“Location ”一栏中显示的文件路径,用“Browse…”按纽,从计算机中已经安装的 PICC编译器文件夹中选择PICC.EXE 文件。

     实际上PICC.EXE 只是一个调度管理程序,它会按照所输入的文件扩展名自动调用对应的编译器和连接器,用户要注意的是C 语言原程序扩展名用“.c ”,汇编原程序用“.as”即可。用C 语言编程的好处是可以实现模块化编程。程序编写者应尽量把相互独立的控制任务用多个独立的C 原程序文件实现,如果程序量较大,一般不要把所有的代码写在一个文件内

  基于PICC编译环境编写PIC 单片机程序的基本方式和标准C 程序类似,程序一般由以下几个主要部分组成:
  z   在程序的最前面用#include 预处理指令引用包含头文件,其中必须包含一个编译器提供的“pic.h ”文件,实现单片机内特殊寄存器和其它特殊符号的声明;
  z   用“__CONFIG ”预处理指令定义芯片的配置位;
  z   声明本模块内被调用的所有函数的类型,PICC将对所调用的函数进行严格的类型匹配检查;
  z   定义全局变量或符号替换;
  z   实现函数(子程序),特别注意 main 函数必须是一个没有返回的死循环。

 

 1 #include <pic.h>    //包含单片机内部资源预定义 
 2 #include “pc68.h”    //包含自定义头文件 
 3  //定义芯片工作时的配置位 
 4 __CONFIG (HS & PROTECT & PWRTEN & BOREN & WDTDIS); 
 5  //声明本模块中所调用的函数类型 
 6 void SetSFR(void); 
 7 void Clock(void); 
 8 void KeyScan(void); 
 9 void Measure(void); 
10 void LCD_Test(void); 
11 void LCD_Disp(unsigned char);  
12 //定义变量 
13 unsigned char second, minute, hour; 
14 bit flag1,flag2; 
15 //函数和子程序
16 void main(void) 
17 { 
18   SetSFR(); 
19   PORTC = 0x00; 
20   TMR1H += TMR1H_CONST; 
21   LED1 = LED_OFF; 
22 
23   LCD_Test(); 
24  
25   //程序工作主循环 
26   while(1) { 
27      asm(“clrwdt”);   //清看门狗 
28      Clock();        //更新时钟 
29      KeyScan();      //扫描键盘 
30      Measure();      //数据测量 
31      SetSFR();       //刷新特殊功能寄存器 
32   } 
33 } 

 

2.PICC 中的变量定义

bit         1      布尔型位变量,0 或1 两种取值
char          8      有符号或无符号字符变量,PICC 缺省认定char 型变量为无符号数,但可以通过编译选项改为有符号字节变量
unsigned char    8      无符号字符变量
short       16      有符号整型数
unsigned short   16      无符号整型数
int           16      有符号整型数
unsigned int         16      无符号整型数
long        32      有符号长整型数
unsigned long       32      无符号长整型数
float  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值