电气自动化技术网

PIC单片机C语言程序设计

时间:2011-09-09 来源:网络转载 编辑:电气自动化技术网 点击:次 字体设置:

  编者按:为了帮助具有PIC单片机汇编语言知识的技术人员或工程师,快速掌握利用C语言编写PIC单片机程序的方法,本刊特推出《PIC单片机C语言程序设计》系列连载文章。丈中给出的C语言程序实例,均是可执行的,读者可以放心引用。

  一、汇编语言与C语言

  早期的单片机程序多采用汇编语言编写。用汇编语言编程,直接、简捷,可有效地访问和控制各种硬件设备,如存储器、I/O口等,目标代码简短、占用内存少、执行速度快、语句效率高。然而,由于汇编语言是面向机器的语言,不同厂家或同厂家不同系列的单片机。其汇编语言指令系统往往互不相同,即通常所说的“不兼容”。这就出现了精通51单片机汇编语言的人不能直接编写PIC或其他单片机的汇编语言源程序,反之亦然的现象,以及产品升级换代和不同单片机问程序移植难的问题。而且,由于汇编语言是采用助记符的低级语言,可读性较差,当源程序功能多、程序长时,即使加了注释,阅读自己编写的程序也会感到困难,更不用说修改程序和增加功能了。

  目前,单片机的应用越来越广,各半导体生产厂家不断推出各种高、中、低档单片机系列,以适应市场的需求。而客户对单片机系统的设计人员的基本要求,就是要选择能够满足产品性能和成本要求的单片机,并以最快的速度开发出完全满足市场需求的智能化产品。用汇编语言编程显然无法达到要求。

  用C语言开发单片机系统软件的最大好处,是代码效率高、软件调试直观、维护升级方便、代码的重复利用率高、便于跨平台的代码移植等。因此,C语言在单片机系统设计中得到越来越广泛的运用。

  C语言是一种高级语言,具有低级语言的特点,原来用各种汇编语言编写的单片机程序,均可用C语言程序代换。

  二、C语言的特点

  C语言的特点可归纳如下。

  1.语言简洁

  C是一种小型语言,共有32个关键字,9种控制语句,表示方法简单,只需用规范的方法。就可以构造出功能很强的数据类型、语句和程序结构。如用++表示加1;一一表示减1;运算符省写等。

  2.表达方式灵活实用

  C语言提供多种运算符和表达式值的方法,对问题的表达可通过多种途径获得,其程序设计更主动、灵活。它语法限制不太严格,程序设计自由度大,如对整型量与字符型数据及逻辑型数据可以通用等。

  3. 表达力强

  C语言有丰富的数据结构和运算符。包含了各种数据结构,如整型、数据类型、指针类型和联合类型等,用来实现各种数据结构的运算。C语言的运算符有34种,范围很宽,灵活使用各种运算符可以实现难度极大的运算。

  C语言能直接访问硬件的物理地址,能进行位(bit)操作。兼有高级语言和低级语言的许多优点。

  它既可用来编写系统软件,又可用来开发应用软件,已成为一种通用程序设计语言。

  4.C语言生成的目标代码质量高

  C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。

  5.结构化程序设计

  C语言是一种结构化语言,提供编写结构化程序所需的控制流的结构语句,如for、while、do…while、lf…else等;用函数作为程序设计的基本单位,以实现程序的模块化;其源文件还可分割为多个源文件,以分别对各源文件进行编译,再连接生成可执行的目标码(hex)文件。

  6.可移植性

  汇编语言是不可移植的。而C语言在不同机器上的C编译程序,86%的代码是公共的,所以C语言的编译程序便于移植。在一个环境上用C语言编写的程序,不改动或稍加改动,就可移植到另一个完全不同的环境中运行。

  三、学习方法

  用PIC单片机开发电子产品和用C语言编程,最主要的是要坚持学习,不能中断。应通过各种实例程序来学习C语言的语法规则。要熟练掌握C语言的数据类型表达方法、各种运算符、各种语句结构。

  最好能背诵。要学会用C函数实现所需功能的方法。实际上,每个C函数都相当于一个功能模块,一个C函数便可实现一种功能。

  此外,用C语言开发PIC单片机应用产品,必须具有PIC单片机汇编语言知识。如果你已经掌握了用汇编语言编写PIC单片机源程序的方法,最好将编写成功的PIC单片机汇编语言源程序,逐个用C语言源文件代换,从中体会C语言的优越性。

  四、简单的C 语言程序

  为了帮助读者进入C语言编程环境,要给大家介绍一个简单的C语言程序。

  下面扼要介绍该程序所用到的C语言基本知识。更多的知识则在后文详细介绍。

  1.主函数main( )

  C语言程序一般由若干个函数组成。函数是完成某个功能的算法的程序段,是C语言的基本组成单位。组成一个程序的若干函数,可以保存在一个或几个源程序文件中,这些文件都以。C为扩展名(汇编语言以ASM为扩展名)。一个程序必须有且只能有一个名为main的函数,即是主函数main( )程序运行时,总是从主函数main( )开始执行的。

  2.C语言函数

  C语言程序的基本单位是函数。C语言程序必须有且只能有一个名为main的主函数。主函数可以调用其他函数,其他函数也可相互调用。被调用的函数可以是系统提供的库函数,也可以是程序设计者自己编写的函数——对于MCU (如PIC单片机),所用的大多是自己编写的函数。一个函数由函数头和函数体两部分组成,每个函数的形式都相同。

  (1)函数头由函数名(自定义名)、函数标志——( ),即一对圆括号,以及参数表,又称函数形式参数名和参数说明(定义形式参数类型)组成。

  前两项必须有,如主函数main( ),后两项为即可选项。注意:函数名可包括函数类型和函数名字等。

  (2)函数体由一对花括号:{}括起来,括号内由若干语句组成。这些语句有两种类型:一类是说明语句,又称变量定义,其作用是定义函数中用到的变量;另一类是执行语句,又称函数功能的执行部分。

  用于完成一定的功能,即算法处理。注意:有的函数没有变量定义部分,但有若干执行语句。而在特定的情况下,则既无声明部分,也无执行部分,如:

顶一下
(3)
100%
踩一下
(0)
0%
打 印】【顶 部】【关 闭】【挑 错
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
版权与免责声明:
①凡本网注明"来源:电气自动化技术网"的所有作品,版权均属于电气自动化技术网,转载请必须注明出处“电气自动化技术网http://www.dqjsw.com.cn”。违反者本网将追究相关法律责任。
②本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。
③如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
栏目导航:互感器 | 智能电网 | 无功补偿 | 电容器 | 变压器 | 电源 | 避雷器 | 电抗器 | opc | 三菱PLC | 西门子PLC | 欧姆龙PLC | PLC视频教程 | 电工基础知识
© www.dqjsw.com.cn 2008-2013 版权所有 ICP网站备案:渝ICP备11003104号