PIC单片机C语言编程教程(1)
行文件组“Executable”后,
列出了将被
“PICC Assembler”、C 原程序编译器“PICC Compiler”和连接定位程序“PICC Linker”。同
时在此列表中还显示了对应的可执行程序名,请注意在这里都是“PICC.EXE”。用鼠标分别
点击选中这三项可执行文件,观察对话框下面“Location”一栏中显示的文件路径,用
“Browse…”按纽,从计算机中已经安装的 PICC 编译器文件夹中选择 PICC.EXE 文件。实
际上 PICC.EXE 只是一个调度管理程序,它会按照所输入的文件扩展名自动调用对应的编译
器和连接器,用户要注意的是 C 语言原程序扩展名用“.c”,汇编原程序用“.as”即可。
工具挂接完成后,在建立项目时可以选择语言工具为“HI-TECH PICC”,具体步骤可以
参阅第三章 3.1.3 节,此处不再重复。项目建立完成后可以加入 C 或汇编原程序,也可以加
入已有的库文件或已经编译的目标文件。最常见的是只加入 C 原程序。用 C 语言编程的好
处是可以实现模块化编程。程序编写者应尽量把相互独立的控制任务用多个独立的 C 原程序文件实
现,如果程序量较大,一般不要把所有的代码写在一个文件内。
图 11-2 列出的是笔者建立的一个项目中所有 C 原程序模块,其中主控、数值计算、I2C 总线操
作、命令按键处理和液晶显示驱动等不同的功能分别在不同的独立的原程序模块中实现。
%C3%82%C2%B3%C3%83%C2%8C%C3%82%C2%BD%C3%83%C2%8C%C3%82%C2%B3%C3%83%C2%8C.files/8.jpg" src="file:///F:/data/%C3%83%C2%8F%C3%83%C2%82%C3%83%C2%94%C3%83%C2%98/PIC%C3%82%C2%B5%C3%82%C2%A5%C3%83%C2%86%C3%82%C2%AC%C3%82%C2%BB%C3%83%C2%BAC%C3%83%C2%93%C3%83%C2%AF%C3%83%C2%91%C3%83%C2%94%C3%82%C2%B1%C3%83%C2%A0%3Cwbr%3E%C3%82%C2%B3%C3%83%C2%8C%C3%82%C2%BD%C3%83%C2%8C%C3%82%C2%B3%C3%83%C2%8C.files/8.jpg" />
图 11-2
11.4
基于 PICC 编译环境编写 PIC 单片机程序的基本方式和标准 C 程序类似,程序一般由以
下几个主要部分组成:
&O1540;
提供的“pic.h”文件,实现单片机内特殊寄存器和其它特殊符号的声明;
&O1540;
&O1540;
匹配检查;
&O1540;
&O1540;
下面的例 11-1 为一个 C 原程序的范例,供大家参考。
#include
#include “pc68.h”
//定义芯片工作时的配置位
__CONFIG (HS & PROTECT & PWRTEN & BOREN & WDTDIS);
//声明本模块中所调用的函数类型
void SetSFR(void);
void Clock(void);
void KeyScan(void);
void Measure(void);
void LCD_Test(void);
void LCD_Disp(unsigned char);
//定义变量
unsigned char second, minute, hour;
bit flag1,flag2;
//函数和子程序
void main(void)
{
}
//清看门狗
//更新时钟
//扫描键盘
//数据测量
//刷新特殊功能寄存器
11.5
PICC 中的变量定义
例 11-1
11.5.1
PICC 遵循 Little-endian
在高地址。
11.5.2
基于表 11-1 的基本变量,除了 bit 型位变量外,PICC 完全支持数组、结构和联合等复
合型高级变量,这和标准的 C 语言所支持的高级变量类型没有什么区别。例如:
数组:unsigned int data[10];
结构:struct commInData {
联合:union int_Byte {
例 11-2
11.5.3
为了使编译器产生最高效的机器码,PICC 把单片机中数据寄存器的 bank 问题交由编程
员自己管理,因此在定义用户变量时你必须自己决定这些变量具体
PIC单片机C语言编 相关文章:
- PIC 单片机 C 语言编程简介(2)(11-22)
- PIC 单片机 C 语言编程简介(3)(11-22)
- PIC 单片机 C 语言编程简介(4)(11-22)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)