第4章 单片机的C51编程语言
第4章 单片机的C51编程语言 (4学时)
2014-6-14
第4章 单片机的C51编程语言
4.1 C51编程语言概述 4.2 C51的标识符和关键字 4.3 C51的变量与数据类型 4.4 C51语言的数组、指针与结构 4.5 C51的运算符和表达式 4.6 C51语言的程序结构 4.7 C51语言的函数 4.8 中断服务程序 4.9 C51的预处理 4.10 C51的库函数 4.11 使用C5I编译器时的注意事项2
2014-6-14
4.1 C51编程语言概述C语言是一种结构化语言,可产生紧凑代码
C语言可以进行许多机器级函数控制而不用汇编语 言。C语言目前已成为电子工程师进行单片机系统编程 时的首选编程语言。用C语言来编写目标系统软件 ,会大大缩短开发周期,且明显地增加软件的可读 性,便于改进和扩充。基于51系列单片机的C语言 或C语言编译器简称为C51语言或C51。2014-6-14 3
4.1.1 C51语言编程与汇编语言编程相比的优势 1.可读性好、编程调试灵活方便 2.生成的代码编译效率高 3.完全模块化 4.可移植性好 5.便于项目维护管理
2014-6-14
4.1.2 单片机C51与标准ANSl C编译器的主要区别以Keil公司的Keil C5l(以下简称C5l)编译器为例 C5l系列头文件集中体现了各系列芯片的不同功能 C5l比ANSI C多一种“位”类型 数据存储类型有很大的区别 函数的使用上,由于单片机系统的资源有限,它的编译系统不允许太多的 程序嵌套
C5l与标准ANSI C库函数,由于部分库函数不适合单片机处理系统,因此 被排除在外,如字符屏幕和图形函数。也有一些库函数继续使用,但这些库 函数是厂家针对硬件特点相应开发的,它们与ANSI C的构成及用法都有很 大的区别,如printf和scanf。在ANSI C中这两个函数通常用于屏幕打印和 接收字符,而在C5l中,它们则主要用于串行通信口数据的发送和接收。
2014-6-14
4.1.3 C51的开发过程例4-1 设图1-2系统要求是:当S1闭合时,报警灯亮;而S1打开时,报警灯灭 。用C51语言编写实现该功能的程序,程序名为ex4-1.c: #include <reg51.h> //定义MCS-51的特殊功能寄存器SFR sbit P32 = P3^2; //定义 P3.2 为 P32 sbit P20 = P2^0; //定义 P2.0 为 P20 main( ) { while(1){ P32=1; if (P32==0){ P20=1; }else{ P20=0; } } } 在C51中,使用“/* */”和“//”符号进行注释。注释不影响程序的功能,用于 说明程序的用途、功能,增加程序的可读性和可维护性。编译后注释不存在, 不影响运行文件的大小。优秀的程序设计人员要养成良好的注释习惯,一般在 程序的开始要写注释,表明程序的要求、功能,编写人员,编写日期,版本号 等信息。 2014-6-14
使用任何文本编辑软件,或KEIL C集成的编辑系统书写 C以上程序。 使用KEIL C的C51编译
器和连接软件(用KEIL C集成开 发工具uVision中的Build target批处理),生成可以写 入单片机的目标文件,通常为HEX文件(ex4-1.hex) 用程序烧录器将该文件写入单片机,单片机上电即可运 行。 同时Build target还生成许多中间文件,用于程序的调试 ,例如,从ex4-1.lst文件中可以看见C程序编译后生成 的汇编程序,由此可以理解单片机硬件具体的执行过程 ,还可以对C程序编程的效率进行了解。
2014-6-14
ex4-1.lst文件 0000 0000 0002 0005 0007 0009 0009 000B ?C0001: D2B2 20B204 D2A0 80F7 ?C0003: C2A0 80F3
SETB P32 JB P32,?C0003 SETB P20 SJMP ?C0001
CLR P20 SJMP ?C0001
可以看出,C编译器编译的结果与我们大多人用汇编语言的编程结 果相同,但是C51语言的可读性更好,特别是当程序更加复杂时, C51语言有明显的优势。
2014-6-14
C51程序的结构
2014-6-14
4.2 C51的标识符和关键字 标识符用来标识源程序中某个对象的名字,这些对象可 以是语句、数据类型、函数、变量、数组等。 C语言是区分大小写的一种高级语言。 标识符由字符串、数字和下划线等组成,第一个字符必 须是字母或下划线 错误的标识符,编译时会有错误提示。 C5l中有些库函数的标识符是以下划线开头的,所以一 般不要以下划线开头命名标识符。
2014-6-14
表4-1 ANSI C标准关键字 关键字 auto break 用途 存储种类说明 程序语句 说明 用于声明局部变量,为默认值 退出最内层循环体
casechar const continue default do double else enum extern float for goto
程序语句数据类型声明 存储种类说明 程序语句 程序语句 程序语句 数据类型声明 程序语句 数据类型声明 存储种类说明 数据类型声明 程序语句 程序语句
switch语句中的选择项单字节整型数或字符型数据 在程序执行过程中不可修改的值 转向下一次循环 switch语句中缺省选择项 构成do…while 循环结构 双精度浮点数 构成if…else 条件结构 枚举类型数据 在其他程序模块中声明了的全局变量 单精度浮点数 构成for循环结构 构成goto循环结构
ifint2014-6-14
程序语句数据类型声明
构成if…else 条件结构整型数11
long register return short signed sizeof static struct switch typedef union unsigned void volatile while
数据类型声明 存储种类说明 程序语句 数据类型声明 数据类型声明 运算符 存储种类说明 数据类型声明 程序语句 数据类型声明 数据类型声明 数据类型声明 数据类型声明 数据类型声明 程序语句
长整型数 使用CPU内部寄存器变量 函数返回 短整型 有符号整型数 计算表达式或数据类型的字节数 静态变量 结构体类型数据 构成switch选择结构 重新进行数据类型定义 联合类型数据 无符号数
据 无类型数据或函数 声明该变量在程序执行中可被隐含地改变 构成while和do…while循环结构
2014-6-14
表4-2 C51编译器扩充关键字
关键字_at_ _priority_ _task_
用途地址定位 多任务优先声明 任务声明
说明为变量进行绝对地址定位 规定RTX51或RTX51 Tiny的任务优先级 定义实时多任务函数
alienbdata bit code compact data
函数特性声明存储器类型声明 位变量声明 存储器类型声明 存储器模式 存储器类型声明
用于声明与PL/M51兼容的函数可位寻址的MCS-51内部数据存储器 声明一个位变量或位类型函数 MCS-51的程序存储空间 按compact模式分配变量的存储空间 直接寻址MCS-51的内部数据寄存器
2014-6-14
idata interrupt large pdata
存储器类型声明 中断函数声明 存储器模式 存储器类型声明
间接寻址MCS-51的内部数据寄存器 定义一个中断服务函数 按large模式分配变量的存储空间 分页寻址的MCS-5外部数据空间
sbitsfr sfr16 small using xdata
位变量声明特殊功能寄存器声明 特殊功能寄存器声明 存储器模式 寄存器组定义 存储器类型声明
声明一个位变量声明一个8位特殊功能寄存器 声明一个16位特殊功能寄存器 按small模式分配变量的存储空间 定义MCS-5的工作寄存器组 定义MCS-5外部数据空间
2014-6-14
4.3 C51的变量与数据类型4.3.1 常量与变量 1.常量常量又称为标量,它的值在程序执行过程中不能改变,常量的数据类型有整型 、浮点型,字符型和字符串型等。 实际使用中用#define定义在程序中经常用到的常量,或者可能需要根据不同的 情况进行更改的常量,例如译码地址。而不是在程序中直接使用常量值。这样 一方面有助于提高程序的可 …… 此处隐藏:2667字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]一年级家长课程教案
- [高等教育]封丘县人民医院深入推进纠正医药购销领
- [高等教育]2017年6月大学英语四级真题试卷及答案(
- [高等教育]2017年北京第二外国语学院文学院824中
- [高等教育]7 高中历史第7单元1861年俄国农奴制改
- [高等教育]【K12学习】4、实际测量-苏教版六年级
- [高等教育]药具培训试卷题库及部分参考答案
- [高等教育]本土电子元器件目录分销商如何赢得生意
- [高等教育]七年级岭南版美术教案
- [高等教育]书作文之书法活动通讯稿
- [高等教育]Endnote X 软件使用入门和用法总结(LS)
- [高等教育]嵌入式系统的现状及发展状况
- [高等教育]2012抗菌药物专项整治活动方案解读
- [高等教育]人教版新课本一年级数学下册期末试卷
- [高等教育]爱课程民法学观后感
- [高等教育]930机组使用说明书1
- [高等教育]煤气设备设施点检标准
- [高等教育]常见室内观叶植物图解
- [高等教育]312党员群众路线心得体会
- [高等教育]小学信息(苗版)第一册全册教案
- 在市---局2010党建大会上的讲话
- 《科哲》提纲及补充阅读材料(2010.7)
- 苏州高博软件技术职业学院论文开题报告
- 兼职导游管理的困境及对策探讨
- 基于通用设计理念的现代厨房产品语义研
- 康乐一中2010年至2011年度鼓号队、花束
- 第10章_数据收集整理与描述_期末复习课
- 2008年黑龙江林甸商贸购物中心营销策划
- 水硬度的测定实验报告
- 五分钟教你拍摄夜景光绘照
- 2014年临床妇产科三基三严试题及答案
- 0第二课 纾解压力第一站了解压力
- 解析建筑工程电气设备安装施工技术要点
- 地方性应用型本科高校“双师型”师资队
- 高考语文专题复习课件:小说阅读指导
- 装饰工程投标书2
- 大学生就业难问题探讨及对策
- English and Its History
- 青岛市城市房屋修缮工程质量监督管理办
- 初中英语形容词和副词的用法和练习题




