单片机C语言的编程探析

时间:2022-04-14 05:28:30

单片机C语言的编程探析

摘 要 C语言不同于一般的计算机语言,相比于简单的机器语言,C语言数据库里函数计算公式更多,整体的编译功能性更强,整体的对数据处理的所需时间更短,编译过程效率更高。文章首先介绍单片机C语言的编程优点,然后对单片机C语言的编程问题进行分析和探讨。

关键词 单片机;计算机语言;C语言

中图分类号:TP315 文献标识码:A 文章编号:1671-7597(2013)22-0055-01

单片机是一个小型的电脑系统,它具备完成一项某项任务的功能,有的甚至可以完成多项功能,这在工业控制以及智能开发上有巨大用途。单片机系统的实现是建立在大规模集成电路技术发展成熟的基础之上,它将中央处理器CPU,数据存储ROM,负责信息传输的线路和I/O接口整合到一起,放在集成电路板上,完成电脑系统的制作。至于C语言,就是一种特定的机器语言,能帮助我们编译计算机能够识别的指令,而且整个编译过程不需要依靠计算机硬件的应用程序,非常的简单可行。

1 单片机C语言的编程优点

1)单片机因为是集成电路系统,能在一个很小的原件上完成较为复杂的操作反应,运行简单,价格便宜,还能支持C语言的编译。今天我们所提到的单片机C语言是C语言的一种,它能为单片机提供更多的数据类型,帮助用户分析遇到的问题,并且针对问题做出专业性处理。整体流程如下:命令以单片机C语言的形式下达,然后通过传输接口传到单片机的存储器上,CPU在从存储器上提取信息,进行计算并发出指令,发出的指令在通过接口传到给执行机器,如此完成整个动作。整个过程没有异步过程,而且提供标准函数库,程序员不需要熟记单片机的指令库就可以完成整个编译过程。

2)C语言作为一种高级语言,能直接用于操控机器,而不需要软硬件的驱动程序,为软件的开发提供了可靠的保障,C语言的应用极大的增加的程序编译员的工作效率,给开发者更多的时间跟精力去专心研究编译程序的功能,不用在分精力在硬件与软件的契合方面。但是单片机C语言占用系统量较大,对一般的单片机来说,CPU直接读取的存储是有限的,用C语言进行编译,很容易将原本简单的编译信息写成多条信息,这就增加了直接存储的负荷,导致单片机直接存储不够用或者栈溢出等问题。

2 单片机C语言的编程问题分析

1)研究表明,单片机C语言编辑器也不是万能的,不可能支持所有的数据类型。不过现今比较流行的几种数据类型还是能够支持的。像是拥有16位数据的char型存储数据类型,它主要是运用ASCII字符集。像存储位数为四字节的Int数据存储类型,它是一个整型数据。整型数据中又有长整型数据,也就是long数据。另外一种数据是浮点型数据,我们在C语言编辑中经常用到,逻辑开头为float。单片机除了上述的语言类型外,还支持Sfr这种特殊功能寄存器,不仅仅能够存储数据,还能任意访问数据存储所在的位置。作为一种跟程序存储器资源相结合的编译语言,单片机C语言也具有一定的缺陷性,我们拿最常见的51系列单片机为例子。作为单片机中最常见的,我们知道51系列的单片机CPU是八位的,要计算二的八次方个数据,我们如果想提高代码的准确率,一般都是采用减少单片机的位数的长度,也就减少了CPU的数据计算数量。我们在使用中,为了避免占用内存过大,通常会减少程序执行过程中的运算次数,减少输入字符串的总体长度,能够用小字符串进行定义的绝不使用大的,能够用整型变量进行定义的就尽量不用长整型变量,这也是我们进行C语言设计时需要遵循的一个原则。在C语言的处理过程中,必须从数据库里提取公式,但是浮点型的数据就有一定的内部函数来支持,整个浮点型函数经过如此变化,会生成较长代码,所以我们在运用数据时,要尽量选取合适数据类型,本着减少代码长度的觉悟,尽量做到合理。

2)单片机C语言的算法的详解。C语言是算法组成的,它能够完成单一命令或多种命令。单片机C语言也是由一个个算法组成的,但是普通C语言跟单片机C语言的最大不同就在于存储量的大小,通常普通C语言的编译是不需要考虑编译程序代码的长度问题,我们只需要考虑编译的结果符合我们的要求即可。但是在单片机C语言编译中,因为单片机本身的存储性能有限,我们就必须对长度过长的代码进行重新设计排版,让程序算法最少。当然算法少的程序并不一定是代码少的程序,有些本身代码不长的程序,因为要在运行中走函数或者子程序,造成原本认为少的程序在运行中涉及的算法更多。为了降低程序消耗的内存,不仅仅要考虑编辑好的程序算法,还要考虑算法运行的本身。通常我们都知道算法是包括控制结构以及原始操作结构的,原始操作结构也就是我们常说的输入机构,控制结构与原始操作机构的运行得出结果的时间就是算法执行的时间,但是普通的一个算法,会因为编译算法的语言不通,编译程序的软件不通,编译完成后在运行计算机的不同产生不同的结果。所以我们在进行单片机上的算法设计时,要考虑解决一个问题时,哪种策略更简单,哪种策略使用规模最小,哪种策略书写的程序语言最少,就选用哪一种算法。在C语言中,算法直接影响对语言的实现级别。

3)单片机C语言存储器的分配结果。单片机的存储设备一般都是随即存储,存储数据非常少,一般也就64kb,也就是我们常说的单片机的内存,除了随即内存外,单片机有时还具备内部存储设备。在实际运行中,数据从内部存储转到随即存储,空余的存储地址在由新的存储数据填充。 这就涉及到全局变量以及静态存储变量,静态变量因为是函数调用的,所以所处的存储器地址基本是不变的,在全局变化中,能被释放的只有局部变量,我们为了保证单片机的内存,要尽量提高存储器的利用率,合理分配存储器地址。

4)存储器有三种不同的存储模式,分别为小模式,压缩模式以及大模式,判定的值是变量所处的地址范围。我们选取不同的模式,将直接影响到代码的长度以及程序的执行速度,在研究中发现,我们要把程序代码放在存储空间里,然后将一部分访问变量设计成xdata的类型,放在实时存储里面,就能减少不必要的时间。

单片机C语言这种通用的计算机语言有着很多优点,功能强大,便于结构化,可读性强,可移植性强,维护和运用方便,反应速度快,并且具有通用性。单片机的性能在飞速提高,这就需要编程者随时掌握学习知识,提升技术,在单片机目前有限的系统资源下研究开发出更加优秀的单片机系统。

参考文献

[1]马忠梅,籍顺心,张凯.单片机的C语言应用程序设计[M].北京航空航天大学出版社,1997.

[2]曾红兵.浅谈8051单片机编程中C语言代码优化[J].湖南冶金职业技术学院学报,2007(09).

上一篇:移动无线基站信号抗干扰技术研究 下一篇:基于无线城域网的切换算法研究