教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 范文大全 > 文秘资料 >

单片机原理及应用教程(C语言版)-第4章 单片机C语言及程序设计

来源:网络收集 时间:2026-09-01
导读: 单片机原理及应用教程(C语言版) 第4章 单片机C语言及程序设计主 编:周国运 中国水利水电出版社 第4章 MCS-51单片机C语言 及程序设计主要内容单片机C语言概述 C51数据类型及存储 C51一般变量的定义 C51特殊功能寄存器 的定义 4.5 C51位变量的定义 4.1 4.2 4.

单片机原理及应用教程(C语言版)

第4章 单片机C语言及程序设计主 编:周国运

中国水利水电出版社

第4章 MCS-51单片机C语言 及程序设计主要内容单片机C语言概述 C51数据类型及存储 C51一般变量的定义 C51特殊功能寄存器 的定义 4.5 C51位变量的定义 4.1 4.2 4.3 4.4 4.6 C51指针与结构 体的定义 4.7 C51的输入/输出 4.8 C51函数的定义 4.9 C51与汇编语言 混合编程

第4章 单片机C语言及程序设计

本章主要讨论C51变量的定义和函数的定义。本章内容的安排,认为读者已经学习过C语言, 具有C语言的基本知识,因此,本章内容完全是结 合单片机来讲解,也就是补充C语言在单片机方面 的概念、数据定义和函数定义等。 通过本章学习,使读者能够比较顺利地编写 C51程序。

4.1 C51概述主要内容4.1.1 C语言编程的优势 4.1.2 C51与ANSI C的区别 4.1.3 C51扩展的关键字

4.1 C51概述学习单片机C语言的必要性 随着单片机性能的不断提高,C语言编译调试 工具的不断完善,以及现在对单片机产品辅助功能 的要求、对开发周期不断缩短的要求,使得越来越 多的单片机编程人员转向使用C语言,因此有必要 在单片机课程中讲授 单片机C语言 。

C51”概念:为了与ANSI C区别,把 单片 机C语言 称为 C51”,也称为 Keil C”。

4.1.1 C语言编程的优势在编程方面,使用C51较汇编语言有诸多优势: 1)编程容易 2)容易实现复杂的数值计算 3)容易阅读与交流 4)容易调试与维护 5)容易实现模块化开发 6)程序可移植性好

4.1.2 C51与ANSI C的区别C51与ANSI C的区别是因为CPU、存储器和外 部设备的不同,以及不使用操作系统等引起的。 C51是MCS-51单片机的ANSI C,单片机与PC 机的差异,主要由C51编译器(如Keil C)处理, 一些库函数的差异,也由编译器的开发着做了修改. 因此,我们使用C51编程,如基本语法、数据 结构、程序结构、程序组织等各个方面,与使用 ANSI C的感觉基本上是一样的。 但是,C51与ANSI C之间是有差异的,从单片 机应用编程的角度来看,主要有以下几个方面 。

4.1.2 C语言与ANSI 的区别

1)变量(一般变量)的定义问题 如字符型、整型、浮点型、各种数组、各种结 构体等。 因单片机有4个存储空间、7个存储区,在定义 时,必须要指明变量存放的存储器空间、具体的区 域。 2)特殊功能寄存器的使用问题 这是ANSI C中所没有的。在C51中增加了两种 特殊功能寄存器数据类型 ,使用之前,像一般 变量一样,需要先定义再使用。

4.1.2 C语言与ANSI 的区别

3)位变量的定义问题 这也是ANSI C中所没有的,在C51增加了两种 位数据类型 。见4.5节。 4)指针的定义问

题 指针的定义和变量一样,与ANSI C的差异是由 复杂的存储器引发,主要是指针指向的是哪个存储 器空间、哪个存储区域。见4.6节。 5)函数、中断服务函数的定义问题 在C51的函数定义中,增加了多个函数属性以 解决单片机的要求。如中断函数、函数重入、 切 换工作寄存器组等。见4.8节。

4.1.2 C语言与ANSI 的区别

6.混合编程问题 一般PC机程序很少混合编程,但在单片机中常 混合编程。见4.9节。 7.库函数的差异问题 由于PC机与单片机的差异,相对于ANSI C的 库函数来说,C51的库函数减少了一部分(如显示、 键盘、磁盘,文件系统等),增加了一部分(如循 环移位、绝对地址访问等),修改了一部分(如 I/O函数等)。

4.1.3 C51扩充的关键字由于单片机在结构及编程上的特殊要求,C51 有自己的特殊关键字,称之为C51扩充的关键字, 下面给出常用的C51扩充的关键字。

_at_

bdata

bit

code

data sfr16细讲解。

idata using

interruptsbit

pdatasfr

reentrant

volatile

xdata

这些关键字在后面会陆续接触到,此处不作详

4.2 C51数据类型及存储主要内容4.2.1 C51的数据类型 4.2.2 C51数据的存储

4.2.1 C51的数据类型

表4-1 C51数据类型、长度和数值范围数据类型 基 表示方法 长度 数值范围 无符号字符型 unsigned char 1字节 0~255 有符号字符型 signed char 1字节 -128~127 2字节 0~65535

本 无符号整型 unsigned int 有符号整型 signed int 2字节 -32768~32767 类 无符号长整型 unsigned long 4字节 0~4294967295型 有符号长整型 signed long 浮点型 float sfr sfr16 bit、sbit 4字节 -2147483648~2147483647 4字节 ±1.1755E-38~±3.40E+38 1字节 0~255 2字节 0~65535 1位 0或1

扩 特殊功能 充 寄存器 类 型 位类型

4.2.1 C51的数据类型

bit、sbit数据类型转换与运算1)bit、sbit到char类型转换 可以做强制类型转换。如:

unsigned char d=5, d0=4, d1, d2, d3;bit bb=1; //d==13 //d1==4 d=d+((char)bb)*8; 如: d1=d0&bb;

2)bit、sbit类型与char类型可直接作逻辑运算

d2=d0|bb;d3=d0^bb;

//d2==5//d3==5. 异或操作

注意:bit、sbit类型与char类型不能直接作算数运算

4.2.2 C51数据的存储MCS-51单片机只有bit和unsigned char两种数 据类型支持机器指令,而其它类型的数据都需要转 换成bit或unsigned char型进行存储。 为了减少单片机的存储空间和提高运行速度, 要尽可能地使用unsigned char型数据。

一、位变量的存储bit和sbit型位变量,直接存于RAM的位寻址空 间,包括低128位和特殊功能寄存器位。

4.2.2 C51数据的存储

二、字符变量的存储字符变量(char):无论是unsigned char数据 还是signed char数据,均为1个字节,能够被直接 存储在RAM中,可以存储在0~0x7f区域,也可以 存储

在0x80~0xff区域,与变量的定义有关。

unsigned char数:可直接被MSC-51接受signed char数据:用补码表示。需要额外的操 作来测试、处理符号位,使用的是两种库函数,代 码量大,运算速度降低。

…… 此处隐藏:1268字,全部文档内容请下载后查看。喜欢就下载吧 ……
单片机原理及应用教程(C语言版)-第4章 单片机C语言及程序设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/fanwen/1993983.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)