- 1、本文档共32页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PIC单片机C语言程序——实例2
第 1页 共 4页
电子报/2007年/7月/15日/第 015版
单片机应用
PIC单片机 C语言程序——实例 2
成都 立本
在上一讲中,笔者对 PIC单片机 C语言程序作了定性介绍,其目的是使读者对 C语言有所了
解。至于 C语言的语法规则、程序设计方法、C编译器等内容,笔者将通过更多的 C程序实例逐
一介绍。
二、C语言的标识符和关键字
1.C语言的标识符
在 C语言中所用到的文件名、函数名、变量名、数组名??,都是由字符组成的。字符由英
语字母和下划线组成,字符的组合称为 C语言的标识符。标识符是由 C程序设计者自定义的。
标识符的第一个字符通常是字母,其后可以是字母或下划线,下划线可作为标识符的分段。
不同的 C编译器对标识符的长度有不同的要求,在编程时定义的标识符不得超过所用编译器
规定的长度,以免编译时出现错误。在本文中,笔者介绍的 C语言程序自定义的标识符不超过一
个字节,在各种编译器的规范以内。上一讲的 C程序实例 1中,delay、main均为 C语言的标识
符。
注意:同一字母的大小写,被视为不同的标识符,在设计 C程序中不能混合使用。
2.C语言的关键字
C语言中的关键字(又称为保留字)是 C系统定义了的特定标识符,用户自定义的 C标识符
不能与这些关键字的字符相同,否则编译不会成功。
C语言中的关键字可分成三类:1)数据类关键字;2)程序控制类关键字;3)预处理类关键
字。
C语言的主要关键字如表 1所示。
第 2页 共 4页
三、实例 2:PIC16F877的 D口(PORTD)位操作功能
C语言程序中关键字十分重要。为使读者有较多的感性认识,笔者通过实例 2,用 C语言(包
含更多的关键字)编写 PIC单片机任一口的位操作功能程序(实际上,在上一讲中,是用 C语言
编写 PIC单片机任一口的字节操作功能)。
第 3页 共 4页
图 2的示意电路是使 PIC16F877(用 PIC16F84A的 B口同样有效)的 D口,即 RD0~RD3,
外接的 LED顺序(以秒为单位)循环点亮。如果读者有兴趣,可在以下的 C程序中添加 RD4~
RD7外接 LED的点亮功能。按所述的 C语言源程序命名为 Pic02.C其清单如下:
#include<pic.h>?//包含头文件 Pic.h
//====//程序段分隔
#define PORTDIT(add,bit)((un-
signed)(&add)*8+(bit))//位定义
static bit PORT_0 @PORTDIT
(PORTD,0);//定义 PORTD的 0位
static bit PORT_1 @PORTDIT
(PORTD,1);//定义 PORTD的第 1位
static bit PORT_2 @PORTDIT
(PORTD,2);//定义 PORTD的第 2位
static bit PORT_3 @PORTDIT
(PORTD,3);//定义 PORTD的第 3位
void delay()//定义 delay延时子函数
{//子函数开始
Unsigned longint i;
//定义 i为无符号的整型变量
for(i=0;i<=45000;i++)//由 for语句引
导,指定次数 1秒延时
continue;//转移下次循环
}//子函数结束
//==//程序段分隔(可不用)
main()//定义 main主函数
{//主函数开始
TRISD=0x00;//给 TRISD赋值 0,设
D口为输出
INTCON=0x00;//给
INTCON赋值 0,关中断
PORTD=0x00;//给
PORTD赋值 0,清 0D口
while(1)//while循环语句,这里是
无限循环
{//while语句开始
第 4页 共 4页
PORT 0=1;//给 PIC16F877的 RD0
位赋值 1,外接//LED亮。
delay();//调延时子函数 delag
PORT 0=1;//给 RD1位赋值 1,外
接 LED亮
delay();//调延时子函数 delay
RD2=1;//RD2位置 1,外接 LED亮
delay();//调延时子函数 delay
RD3=1;//RD3位置 1,外接 LED亮
delay();//调延时子函数 delay
PORTD=0;//给 PORTD赋值 0(
文档评论(0)