《单片机语言C51程序设计》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:刘文涛编著
  • 出 版 社:北京:原子能出版社
  • 出版年份:2004
  • ISBN:7502232001
  • 页数:439 页
图书介绍:本书以Keil C51软件为核心,阐述了单片机高级语言C51的基本语法、数据结构以及库函数应用等,同时详细介绍了C51编译器、L51连接定位器以及A51定汇编器的使用方法。另外还详细介绍了Keil C51软件仿真器的使用方法。它可在完全没有8051单片机硬件的条件下,用一台普通PC机即可完成8051应用系统程序的仿真调试工作。最后列举了一些非常典型的C51应用编程技巧和实例,并且这些实例都通过了Keil C51的编译。

目录 1

第1章 C51程序设计概述 1

1.1 C51程序特点 1

1.2 Keil C51 2

1.2.1 安装Keil C51软件 2

1.2.2 使用Keil C51软件 6

1.2.3 第1个程序“Hellow C51” 8

1.3 C51编程规范以及要注意的问题 10

1.3.1 注释 10

1.3.2 命名 10

1.3.3 风格 11

第2章 C51程序设计基础 12

2.1.2 C51的关键字 13

2.1.1 C51的标识符 13

2.1 C51的标识符 13

2.2 数据类型 16

2.2.1 变量与常量 16

2.2.2 整型(int) 16

2.2.3 浮点型(float) 19

2.2.4 字符型(char) 20

2.2.5 指针型(*) 22

2.2.6 无值型(void) 22

2.3 变量的作用域 22

2.3.1 块结构 22

2.3.2 自动型变量 22

2.3.3 外部型变量 24

2.3.5 寄存器型变量 25

2.4 const修饰符 25

2.3.4 静态型变量 25

2.5 C51的分隔符 27

2.6 运算符 27

2.6.1 运算符 27

2.6.2 运算符的优先级 36

2.7 表达式 37

2.7.1 算术表达式 37

2.7.2 赋值表达式 37

2.7.3 逗号运算符与逗号表达式 38

2.7.4 关系表达式 39

2.7.5 逻辑表达式 39

第3章 C51语句 40

3.1 说明语句 40

3.2 表达式语句 40

3.4 条件语句 41

3.3 复合语句 41

3.5 开关与跳转语句 45

3.5.1 开关语句 45

3.5.2 跳转语句 47

3.6 循环语句 49

3.6.1 for循环 49

3.6.2 while循环语句 51

3.6.3 do-while循环 52

3.7 函数调用语句 53

3.8 空语句 54

3.9 C51语句的流程与控制 54

3.9.1 顺序结构(sequence) 54

3.9.2 选择结构(selection) 54

3.9.3 循环结构(repetition) 54

3.9.4 限制使用6OTO语句 55

3.9.5 逐步求精的设计方法 56

4.1 函数的定义 58

第4章 C51函数 58

4.2 函数的调用和返回 59

4.2.1 函数的简单调用 59

4.2.2 函数参数传递 60

4.2.3 函数的递归调用 64

4.2.4 重入函数 65

4.3 函数作用范围 66

4.4 函数的变量作用域 66

4.5 main函数 67

4.6 C51中断函数 69

4.6.1 中断函数的定义 69

4.6.2 内部中断函数的使用 70

4.6.4 扩展外部中断函数的使用 71

4.6.3 外部中断函数的使用 71

4.6.5 使用中断函数要注意的问题 73

4.7 C51库函数 73

4.8 Keil C51常用功能模块使用说明 74

4.8.1 时钟模块 74

4.8.2 通讯模块 77

4.8.3 键盘扫描模块 81

第5章 C51数据结构 82

5.1 C51结构 82

5.1.1 结构说明和结构变量定义 82

5.1.2 结构变量的使用 83

5.1.3 结构变量的初始化 84

5.2 数组 86

5.2.1 一维数组 86

5.2.2 一维数组初始化 90

5.2.3 一维字符串数组 91

5.2.4 二维数组 92

5.2.5 结构数组 94

5.3 联合与枚举 95

5.3.1 联合(union) 95

5.3.2 结构和联合的区别 97

5.3.3 枚举(enum) 97

5.4 类型说明 99

5.5 指针 100

5.5.1 指针和地址 101

5.5.2 地址运算 105

5.5.3 指向数组元素的指针 105

5.5.4 指向二维数组的指针 106

5.5.5 指向一个由n个元素所组成的数组指针 108

5.5.6 数组与指针的关系 109

5.5.7 字符指针 111

5.5.8 指针数组 112

第6章 存储结构 114

6.1 8051存储单元与C51存储类型 114

6.1.1 8051存储单元 114

6.1.2 数据类型 116

6.1.3 存储器类型 117

6.1.4 存储器模式 120

6.2 基于C51存储器的指针 120

6.2.1 通用指针 120

6.2.2 指定存储器指针 121

6.2.3 绝对指针 122

6.3 结构的内存分配 123

6.3.1 直接由结构定义一个结构指针变量实现内存分配 123

6.4 动态存储分配 124

6.3.2 用typedef定义新结构类型 124

6.5 位操作与字段结构 128

6.6 Keil C51程序开机执行代码 129

第7章 预处理 130

7.1 文件包含指令 130

7.2 宏定义 130

7.3 预处理指令 131

7.3.1 #define指令 131

7.3.2 #if,#else,#endif指令 132

7.3.3 #undef指令 133

7.4 C51编译的控制参数 133

7.5 C51头文件 135

7.5.1 C51常用的头文件 135

7.5.2 REG51.H 136

第8章 C51编译 138

8.1 Keil的编译环境μVision2 139

8.1.1 μVision2窗口与菜单 140

8.1.2 编译检查工具PC-Lint 150

8.1.3 开发工具选项 151

8.1.4 调试工具选项 157

8.2 Keil C51编译器的控制指令 157

8.2.1 源文件控制类 157

8.2.2 目标文件(Object)控制类 158

8.2.3 列表文件(listing)控制类 158

8.3 编译过程 158

8.3.1 A51宏汇编器 159

8.3.2 映象文件 161

8.3.3 LIB51库管理器 161

8.4.2 对8051的特殊优化 162

8.4.1 代码优化 162

8.3.4 OC51分段目标文件转换器 162

8.3.5 OH51目标代码到HEX文件的转换器 162

8.4 代码优化 162

8.4.3 代码生成选项 163

8.5 混合编译 163

8.5.1 项目目标和文件组 163

8.5.2 浏览项目窗口中的文件和文件组的属性 164

8.5.3 用户上电初始化程序STARTUP.A51简介 165

8.5.4 与汇编语言的接口 168

8.5.5 和PL/M-51的接口 175

8.6 μVision2其他功能 175

8.6.1 多个文件中查找 175

8.6.2 资源浏览器 176

8.7 出错信息 176

9.1.1 执行代码 178

第9章 Keil C51的调试与仿真 178

9.1 μVision2调试器的几项功能 178

9.1.2 完备的分析器 179

9.1.3 代码覆盖分析 180

9.2 断点 180

9.2.1 简单断点 180

9.2.2 复杂断点 181

9.2.3 观察断点 181

9.3 仿真 182

9.3.1 A/D仿真 183

9.3.2 D/A仿真 184

9.3.3 FLASH/E2pROM仿真 185

9.3.4 中断仿真 191

9.3.6 I/O端口输入/输出仿真 192

9.3.5 可编程计数据器阵列PCA/CAPCOM仿真 192

9.3.7 低功耗模式仿真 193

9.3.8 串行口的输入/输出仿真 194

9.3.9 定时器/记数器仿真 194

9.3.10 看门狗仿真 195

9.4 μVision2调试命令 196

9.4.1 存储器命令 197

9.4.2 程序命令 197

9.4.3 断点命令 198

9.4.4 通用命令 198

9.5 RTX-51实时操作系统 199

9.5.1 概述 199

9.5.2 RTX-51 Tiny的例程TRAFFIC.C 205

10.2 定时器/计数器实例 217

10.1 输入/输出端口实例 217

第10章 51系列单片机资源程序 217

10.2.1 8051计时器O程序 219

10.2.2 用PO和定时器O测量电压 220

10.3 中断实例 221

10.4 串行口实例 222

10.4.1 中断方式串口通讯程序 224

10.4.2 115.2 kHz串行口通信程序 228

10.5 外部存储与扩展实例 232

10.5.1 8051存储写程序 232

10.5.2 8279基本启动程序 233

10.5.3 8255扩展实例 235

10.6 A/D与D/A转换实例 236

10.7 人机接口实例 237

10.7.1 16×2字符液晶屏驱动演示程序 237

10.7.2 键盘输入程序 241

10.8 12C总线实例程序 243

第11章 C51程序设计综合实例 249

11.1 C51时间程序 249

11.1.1 C51时钟程序源代码 249

11.1.2 C51日历程序 257

11.2 软件红外线接收程序 272

11.3 串口收发程序 274

11.3.1 程序1 274

11.3.2 程序2 277

11.4 89C51系列CPU编程器接收CPU程序 284

11.5 显示程序 289

11.5.1 串行驱动led显示 289

11.5.2 led显示码的解决方法 293

11.5.3 字符液晶驱动程序 294

11.5.4 240×64液晶驱动程序 305

11.5.5 122×32液晶驱动程序 317

11.5.6 LCD多级菜单程序 327

11.6 键盘程序 337

11.6.1 键盘输入法设计草案 337

11.6.2 拼音输入法程序 359

11.7 游戏 361

11.7.1 串口输出字符——飞机游戏 361

11.7.2 Snake游戏 373

11.8 几种软件滤波方法的示例程序 375

附录A 致命错误信息 380

附录B 语法和语义错误信息 383

附录C 警告信息 398

附录D L51连接定位器使用错误提示 402

附录E μVision2调试命令 411

附录F C51库函数 435