DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 220|回复: 0
打印 上一主题 下一主题

PIC单片机C语言程序设计(2)

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 14:12:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

                    接上期(http://www.dzsc.com/data/html/2011-9-9/98319.html)
  五、C语言的标识符和关键字
  一个完整的PIC单片机C语言程序,通常由包含文件(即头文件1,变量定义、变量说明、函数定义、函数体和注释等六部分等组成。
  1.C语言的标识符
  所谓标识符,实际上是一些由程序编写者自定义的名称,类似于PIC单片机汇编语言中给寄存器(RAM)的命名。C语言中所用到的变量名、函数名、数组名、文件名等都是由标识符组成的。
  标识符是由一串字母(常指英语字母)、数字和下线符(或称下划线)组成的字符串。标识符的第一个字符必须是字母或下线符。按照惯例,以下线符开头的标识符是系统程序专用的,程序员最好不用。程序员可将下线符作为分段符使用,如SUM_1。
  同一字母的大小写被视为不同的标识符。即同一字母的大小写是不同的标识符。
  不同的C编译器对标识符的长度有不同的限制。为了避免所编写的源文件能被所有C编译器认可,可将标识符的长度限定在8个字符以内(即1个字节)。
  标识符的命名(即自定义),最好简捷、含意清晰、便于阅读,如用deIay表示延时;用sum表示求和;用loop表示循环等。
  2.C语言的关键字
  关键字,又称保留字,是指那些已由系统作了特殊定义、具有特定含义的标识符。,程序员编写C程序时,可用关键字来对所用函数参数进行说明、定义一些物理量,它们是C语言语句的重要组成部分,有的还直接组成简单语句。因此,用户是不能将此类标识符(关键字)作为自定义标识符使用的。
  C语言的关键字分为三类,即数据类、程序控制类和预处理类,如表1所示。
表1



  表1中所列关键字,读者在编写C程序时,将逐步学会其使用。
  六、C语言的数据类型
  在编写C语言程序时,首先要涉及的是数据描述和功能描述。数据是实现功能的过程,功能是数据运算(或处理)的结果,没有数据,C程序就无法实现单片机规定的功能,可见数据在C语言程序中的重要性。
  C语言的数据类型,有基本型、构造型、指针型三类。对此,笔者将在使用时逐一介绍。
  1.标准型
  标准型数据属于基本型数据,是由C语言本身提供的基本数据类型,结构简单、使用频率高。下面以实例对C语言程序中的标准型数据予以说明。
  标准型数据又分为整型数据、实型数据和字符型数据三种,每种数据又有常量和变量之分。笔者将其分类以表格形式列出,既可供初学者编写C语言程序时查找,亦可与本文中实例程序的注释进行对比学习,以加深对标准型数据的理解。

            
                     
  (1)整型常量。
  整型常量,是指在程序运行过程中数值保持不变的量,在编写C程序时,整型常量用关键字cONST进行定义。表2给出了各种常量的类型、表示方法及示例说明。
表2



  (2)整型变量。
  整型变量。是指在程序运行过程中数值会改变的量。整型(即整数类型)变量的基本型是lnt。
  Int可以保存一个整数,并允许在_nl前加上基本型、短整型、长整型,以及无符号型等四种整型类型。下面分别加以说明1)基本型:标志是int。
  2)短整型:标志是short int。
  3)长整型:标志是long int。
  4)无符号型:存储单元中,全部二进制位均用来存放整数自身。而不包括符号位。无符号型又分为无符号整型、无符号短整型、无符号长整型三种。
  ①无符号整型:标志是unsigned int:
  ②无符号短整型:标志是unsigned short int;
  ③无符号长整型:标志是unsigned Iong int。
  以上C语言变量的要点,是相关的关键字,以及每个整型变量的取值范围,即长度(二进制位个数)。
  PlC单片机C语言的整型变量、数据名称、取值范围如表3所示。表中的内容,在编写C程序时经常使用,初学者应熟练掌握。
表3



  说明:1.表3列出了整型变量的取值范围。例如,从表3中可以看出,无符号长整型变量unsigned long int的最大取值可达10位数,将其用于延时函数,仅用一条循环语句,延时便可达20小时以上(参看下文中的实例2)。2.对于表3中的字符型(char)、浮点型(float)和双精度型doable等整型变量,将在本连载后续文章的程序使用到时进行说明。
  七、C语言的控制循环语句
  在C语言程序中,会用到多种功能语句。控制循环语句(下称循环语句)便是其中之一。
  C语言的循环语句有三种,即while语句、do while语句和for语句。循环语句一般由循环控制条件来控制循环的重复次数。如果控制条件没有完成,要想终止循环,可在循环体中用间断语句break、返回语句retum,或者用继续语句continue来终止当前循环周期中的操作,使控制进入其他程序段。下面逐一进行介绍,并通过程序实例来说明其应用,以利大家加深理解。

            
                     
  1.while语句
  (1)格式:while(条件表达式)



  (2)功能:程序运行时,先判断条件表达式,当条件表达式的值为非零(即为“真”)时,执行while语句中的内嵌语句,即先判断条件表达式,再执行语句。当条件表达式为零时,退出循环;若表达式一开始就为0,其while语句一次也不执行;若条件表达式恒为1,则程序在while体内一直循环。
  (3)程序实例2
  1)硬件电路和功能硬件电路同《PIC单片机C语言程序设计(1)》一文的图1(见《电子制作》2009年第10期)。图中的RA0口外接的微动开关KO,作为程序的起动开关。KO未按下时。单片机系统处于等待状态,按一次KO,系统依次进行以下工作:RBO口外接的LEDO点亮→延时→LEDO熄灭→RB2外接的LED2点亮→延时→LED2灭→RB4外接LED4点亮→延时→LED4灭→执行间断语句break终止循环→点亮RB6外接的LED6→回到等待状态,直到RA0外接的微动开关KO再次按下,再重复上述过程。
  2)源文件清单。
  本实例2的程序清单如下(源文件名PIC02.C):












  说明:
  ① 上述程序中,关键字break、continue和return等组成的简单语句的使用是略有区别的。具体区别如下:
  间断语句break:程序运行到此就终止循环,跳出while(1)的循环体,执行该循环体紧接在后面的语句:
  · 继续语句continue:如果把该程序中的break语句换成继续语句continue。程序运行到此便立即执行由while(1)开始功能的程序,即程序在该循环体内不断地运行,等效于不用continue;语句;·return语句:当把该程序中的break换成return语句时,程序运行到此就会立即返回主程序运行。
  读者学习C语言时,一定要将实例2源程序中的关键字“break”分别用“coutinue”和“return”代换并运行程序,同时观察使用三种不同的关键字时LED指示灯的不同状态,方能体会出三者的差异。
  ② 关于带形式参数(简称形参)的延时函数。
  实例2所用的延时函数与实例1不同。实例1(见《电子制作》2009年第10期)用的是无参数函数,功能简单,一个函数完成一定的延时。实例2用的是有参数延时函数,一个函数可完成不同的延时(如上述实例2 中的延时1、延时2、延时3、延时4)。这是因为,带形参函数(如实例2中的延时函数v0id delay(K))可以借助参数的传递功能来完成不同时间的设置,这是汇编语言所无法做到的。由此可见,采用C语言可大大简化程序的编写工作。
  鉴于形参对熟悉汇编语言的设计人员来说是一个全新的概念,有关C语言的函数参数传递功能,我们在后续的文章中还将进一步介绍,以加深大家对其的理解。
            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-11-13 02:24 , 耗时 0.097019 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表