浅谈C语言在单片机开发中的应用

时间:2022-09-09 12:04:53

浅谈C语言在单片机开发中的应用

摘 要: 单片机的开发已经在目前的计算机技术中取得了阶段性的成果,在其开发应用中,高级计算机语言的引入成为当下流行的趋势之一。本文主要对单片机、C语言二者相互结合以及C语言作用于单片机的开发产生的效果和作用作出分析和讨论,并从C语言的优点入手详细论述了C语言运用于单片机开发的具体步骤。

关键词: C语言;单片机;开发;应用

作为一种智能化工具,单片机的开发在传统上来说更倾向于使用汇编语言,而高级语言一直使用的甚少。但面对目前计算机领域技术发展的最新环境,汇编语言对于单片机开发来说已经不是最适合的编程语言了。从长远来看,将类似于C语言这样的高级计算机语言运用于单片机开发的技术虽然目前尚未成熟,但却是单片机开发技术更为完善和发展的大势所趋。

1 单片机的开发

近代计算机技术发展的突出特点是微电子技术的蓬勃兴起,作为微电子技术发展的代表,单片机逐渐被应用于生活的各个领域。它的出现使近代计算机技术向前迈进了一大步,更从系统分支上使计算机形成了两大系统分支:通用系统和嵌入系统。在现代电子系统中,单片机有其无可比拟的优越性:成本低、芯片体积小、性能好,因此,单片机的适用领域也非常广泛。在我们如今的生活中,单片机技术已成功被渗入到仪器仪表、家用电器、汽车机械等领域,是智能化工具的代表。

1.1 单片机开发的特征

目前单片机的开发主要具有以下特征:“扩展的串行方式、广泛的运用在片程序储存器技术、全盘CMOS化、8位机的主导地位、逐步使用C语言”[1]。上述特征概括性的展示了单片机技术目前的发展状况,其中,C语言的使用已经开始成为单片机技术开发的主要语言。

1.2 单片机开发的语言

应用于单片机开发的语言主要有两种:汇编语言与高级语言,其中高级语言以C语言为代表。汇编语言相较C语言来说具有较高的可控性,使用起来较为简便,因此在单片机开发中运用的较为广泛。随着目前处理器对C语言的运用逐渐增多,结合C语言相较于汇编语言来说具有更强的可移植性的特点,在对处理器内部结构的具体情况不甚清楚的状况下,处理C语言的编译器也可很快上手,因此,C语言比汇编语言更加适用于目前的单片机开发系统。

2 C语言应用于单片机开发

作为编译型语言,C语言兼具高级语言和汇编语言的特点和功能,因其自身强大的可移植性,C语言在单片机的开发应用中有很大的便捷性。C语言主导结构化的程序设计方式,自顶向下展开。使用C语言进行单片机开发,即使没有对单片机的硬件结构的详细了解,编译器也可以按照自顶向下的设计方式使变量储存单元得到合理有效的分配,如此设计出的单片机程序十分可靠易行。

2.1 特点

作为程序设计语言中的一种,C语言以其结构化的特征被广泛运用于程序开发。C语言具有以下特点:功能性强、结构性好、高度的可移植性(不同的机型都可运行,面向用户)。此外,相比于汇编语言,C语言这种编译型程序设计语言具有更强的可读性,这主要是得益于该种语言有功能强大的库函数、高效的编译能力和迅捷简便的运算。

使用C语言进行单片机开发程序的编写,程序开发者不用时时与硬件接触,能够将精力全部集中于思考程序的算法和功能,对于一些琐碎的细节问题可以大而化之不必过于在意,因此C语言比汇编语言更适应一般人的思维习惯,更能节省程序编写的时间。

除了上述两点之外,C语言在自身改进和扩充方面也是十分便捷的,这主要得益于它功能完善的程序结构,此种强大的程序结构很适合用来设计模块化程序。“自顶向下、逐步求精”是结构化程序设计的主要原则,C语言在应用于单片机系统开发时主要采用该种设计方法。这种方法的优势就在于可以使模块功能得到系统化的分工,每个模块有每个模块的任务。

2.2 C语言对单片机的优化

单片机开发目前被广泛应用于工业测控领域中的嵌入式系统,这是利用C语言对单片机系统资源的优化,这样的应用使得单片机开发所面对的工作环境和内容日趋复杂,最繁琐的便是软件的设计。由于工作任务艰巨,设计人员尤其需要考虑控制系统单片机的资源分配(软硬件方面),而单片机系统的资源量却不够充裕。这种不充裕主要体现为结构简单的CPU和片内结构以及缺少程序存储器等方面的资源。

基于以上原因,利用有限的资源做好C语言的程序设计成为单片机开发的关键环节。C语言作为高级计算机语言利弊并存,虽然优点很多,但是不能忽视的是,C语言由于生成代码长,造成占用存储空间大,基本在20%~50%左右,这就要求我们在具体操作的时候要知晓软硬件的任务所属,根据其不同的优势来分配任务,对系统任务也要做到预先分析。因此,当C语言运用于单片机开发时,对程序的优化是需要适当进行的。这不仅是C语言本身的特点所决定的,也是单片机开发的现状所决定的。

2.3 开发环境

以C语言编程的单片机应用开发软件有很多,其中KEILC51

以其完善的性能成为这其中的佼佼者。“这款软件既能编辑仿真,又能编译,它同时支持不同公司的以MCS51为架构的芯片,也支持汇编和C语言的程序设计”[2]。这款软件功能强大,尤其是在程序的调试和仿真软件方面具有卓越的功能,方便学习使用和投入工作。在这种单一却不失灵活的开发环境中,C语言被集成于统一的开发环境,“这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器”[3]。这种单一却不失灵活的开发环境有如下特点:

该软件的工程由三部分组成:源文件、开发工具选项、编程说明。该软件的特点就是一对多(一个工程对应产生一个或N个目标程序),从而构成多个组。

该软件可以满足用户浏览源文件的需求,且方便快速,可以寻找文件,全局搜索文件,在集成开发的环境下也可保证用户功能得以启动。“另外KEILC51可以在编辑器内编辑、调试程序,它能提供一种自然的调试环境,使你更快速地检查和修改程序”[4]。

2.4 C语言在单片机开发中运用的步骤

C语言在单片机开发中运用的步骤主要有:编写编译源程序和连接转换目标代码。除了这两方面的主要内容之外,当程序设计结束之后,还应该将“源程序转换成在单片机上能运行的HEX件,使单片机能执行编写好的程序”[5]。具体的C语言在单片机开发中的步骤如下所述:

1)安装软件。作为商业软件,我们在KEIL的网站上可以下载到软件的安装包,这个过程很简单,只要跟随软件提示安装即可。首先对安装包进行解压,然后打开SETUP.EXE文件,点击安装,按照提示输入序列号并在询问是否接受版权信息时点击接受按钮,最后按要求完成安装。

2)进行C源文件的创建工作。第一步建立新项目,在新项目中添加以前就有的程序文件或者建立新文件。第二步建立一个新的程序文件,找到新文件的文字编辑窗口,在其中编写程序,即可生成C源文件。

3)编译并调试。编译调试是C语言运用于单片机开发的中间阶段。这一阶段首先要求软件操作者调整到调试模式,然后使用仿真器在源程序的一级进行程序调试,调试的时候要注意对已建立的源文件纠错,同时编译源程序,在使用C51编译器的基础上生成目标文件或浮动的目标码模块。最后,将编译好的模块连接,生成文件。

4)最后进行生成HEX文件的工作。作为整个步骤的最后一步。生成文件对C语言的运用有着非常重要的作用,也使单片机开发在性能、功效上有了现实的意义。进行这一步首先要把目标文件生成HEX文件,该文件的主要功能是烧写芯片。该文件以Intel公司所提出的数据宽度为字节,“文件转换后所生成的HEX文件可以通过编程器写入单片机的程序存储器,也可以用仿真器进行调试”[6]。

3 总结

C语言在单片机开发中的运用目前比较广泛,它使单片机应用于生产生活的时候更为有效,同时极高的开发效率将单片机的使用推广到了生产生活的各个方面。面对目前计算机领域技术发展的最新环境,汇编语言对于单片机开发来说已经不是最适合的程序编写技术了。综上所述,C语言应用于单片机的开发对单片机在未来运用于更广阔的空间具有很大的促进作用。

参考文献:

[1]居水荣,单片机开发系统综述[J].半导体情报,2011(01).

[2]张亚力、贾英布,基于C语言在单片机技术的应用[J].农业网络信息,2011(05).

[3]董蕴宝、潘旭君,浅谈C语言在单片机中的程序设计[J].科学与技术信息,2009(11).

[4]牛余朋,谈谈C语言在单片机开发中的应用[J].电子制作,2009(01)

[5]赵亮、候国锐,单片机C语言编程与实例[M].北京:人民邮电出版社,2009.

[6]范寿康、王宁,单片微型计算机的应用开发技术[M].北京:人民邮电出版社,2009.

作者简介:

胡建红,江西省电子信息技师学院,高级讲师,华中科技大学工程硕士。

吴桂华,江西省电子信息技师学院,一级实教,南昌航空大学本科。

上一篇:试论项目导向教学法 下一篇:3D成像原理及摄像技巧浅析