单片机原理及应用教程(C语言版)-第4章 单片机C语言及程序设计
单片机原理及应用教程(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字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [文秘资料]班长职务辞职报告
- [文秘资料]完美的辞职报告
- [文秘资料]经典的员工辞职报告
- [文秘资料]医院口腔医生辞职报告
- [文秘资料]总经理辞职报告范文四篇
- [文秘资料]超市职员个人辞职报告
- [文秘资料]村妇联主任的辞职报告
- [文秘资料]辞职报告书格式
- [文秘资料]酒店辞职报告简单范文
- [文秘资料]联通的辞职报告
- [文秘资料]2017最新私企员工辞职报告范文
- [文秘资料]2019年度医院基层党组织书记抓党建述职
- [文秘资料]工作时间长辞职报告
- [文秘资料]辞职报告怎么写出来
- [文秘资料]个人能力原因辞职报告
- [文秘资料]网络工程师辞职报告
- [文秘资料]项目部辞职报告
- [文秘资料]缝纫工辞职报告怎么写
- [文秘资料]XXX州委书记述职报告
- [文秘资料]抓基层党建工作述职报告
- (王虎应老师讲课记录)六爻理象思维
- 八个常见投影机故障排除法
- 质量专业综合知识(中级)第一章质量管理
- 煤矿班组建设实施意见
- 我国快餐业与肯德基经营模式的比较与分
- 汽车保险杠模具标准化模架技术工艺研究
- 汽车二级维护作业团体赛比赛规程
- 装卸搬运工安全操作规程
- 高效的工作方法-刘铁
- 依据《生产安全事故报告和调查处理条例
- 2015专业PS夜景亮化效果图制作教程
- 企业劳动定额定员浅析
- 中枢神经系统医学影像学本科五年制第五
- 长城汽车参观探营第三站:研发试验中心
- 小升初语文专项训练
- 建筑工程质量检测资质分类与等级标准
- 周燕珉-我国养老社区的发展现状与规划
- 《生命里最后的读书会》读后感
- 实验室管理评审报告
- CCNA思科网院教程精华之网络基础知识




