首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第1章 单片机C语言

单片机是由计算机系统中的处理器、运算器、存储器、I/O等硬件资源集成的一块芯片所组成。本章介绍单片机的基本概念、单片机C语言概念、单片机C语言学习方法等内容。这些内容是单片机系统开发过程中所必备的基础知识。

C语言是接近自然语言的一种计算机编程语言。因为,它具有高级语言的程序思想与设计方法,又有低级语言的操作能力,所以它也被称为“中级语言”。专门为开发单片机系统而使用的C语言称为单片机C语言。本节介绍单片机、C语言、单片机C语言等内容。

1.1.1 单片机与C语言

C语言是Combined Language(组合语言)的中英混合简称。它是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。用户可以用它编写操作系统,也可以用它编写系统应用程序,用户还可以用它编写不依赖计算机硬件的应用程序。因此,它的应用范围极其广泛,不仅仅是在软件开发上,而且各类科研都需要用到C语言。例如,单片机以及嵌入式系统开发等。

基于C语言基础,专门为开发单片机系统所使用的C语言称为单片机C语言。例如,开发51系列单片机系统所使用的C语言,称为C51语言。

1.1.2 C语言的特点

C语言的特点主要体现在以下几个方面:

1.C语言是“中级语言”

它把高级语言的基本结构和语句与低级语言的实用性结合起来。C语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。

2.C语言是结构式语言

结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

3.C语言功能齐全

具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。另外,C语言也具有强大的图形功能,支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大。

4.C语言适用范围大

适合于多种操作系统,如Windows、DOS、UNIX等;也适用于多种机型。

5.C语言能方便操作硬件

C语言对编写需要硬件进行操作的场合,明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。

1.1.3 C51的特点

使用单片机C语言编写单片机系统程序的特点主要体现在以下几个方面:

q无须了解机器硬件及其指令系统以及单片机复杂的硬件结构。

qC51语言能够方便地管理内部寄存器的分配、不同存储器的寻址和数据类型等细节问题,但对硬件的控制能力有限。

qC51语言在较大的应用程序中执行效率高,但是在较小的应用程序中产生的代码量大,执行速度慢。

qC51语言程序由若干函数组成,具有良好的模块化结构。

qC51语言程序具有良好的可读性和可维护性。因此,用C51语言编写的程序便于阅读、修改和升级、维护操作等。

qC51语言具有丰富的库函数,减少了编程人员的编程量,缩短了编程时间,提高了软件开发效率。

q因为C51语言和具体的硬件结构无关,所以用C51编写的程序具有良好的移植性。

1.1.4 C51和标准C比较

C51是针对51系列单片机的硬件,对标准C的一种补充。扩展功能大致可分为8类:存储模式、存储器类型、位变量、特殊功能寄存器、C51指针、中断函数的声明、寄存器组的定义、再入函数的声明等。其不同点主要体现在以下几个方面。

1.C51语言中定义库函数和标准C语言定义的库函数不同

C51语言中的库函数是按照51系列单片机的应用情况定义的,而标准C语言定义库函数则是按照通用微型计算机来定义的。

2.C51语言中的数据类型和标准C语言的数据类型也有一定的区别

在C51语言中增添了几种针对51系列单片机特有的数据类型。例如,51系列单片机中包含位操作空间和丰富的位操作指令等。

3.C51变量的存储模式与标准C语言中变量的存储模式不一样

C51语言中变量的存储模式与51系列单片机的存储器紧密相关。而标准C语言对存储模式要求不高。

4.C51语言与标准C语言的输入/输出处理不一样

C51语言中的输入/输出是通过51系列单片机的串行口来完成的。因此,在执行输入/输出指令前必须初始化串行口。

5.C51语言与标准C语言在函数调用过程中方面有一定的不同

在一个函数几次不同的调用过程中,标准C一般会把函数的参数和所使用的局部变量入栈保护。而在C51语言中,一个函数中的部分形参,有时还有部分局部变量会被分配到工作寄存器组当中。另外C51语言中有专门的中断函数。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180112G0C5PV00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券