当前位置:首页 > 工业技术
基于C语言编程MCS-51单片机原理与应用
基于C语言编程MCS-51单片机原理与应用

基于C语言编程MCS-51单片机原理与应用PDF电子书下载

工业技术

  • 电子书积分:14 积分如何计算积分?
  • 作 者:张培仁主编;孙占辉等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2003
  • ISBN:7302061777
  • 页数:411 页
图书介绍:
《基于C语言编程MCS-51单片机原理与应用》目录

第1章 嵌入式控制器概述 1

1.1 嵌入式微控器的近来发展 1

1.2 单片机发展趋势 2

1.3 单片机内部结构 2

1.4 单片机与微处理器 3

1.5 单片机产品 4

1.6 单片机的应用 4

1.7 单片机的开发平台 5

第2章 MCS-51单片机的硬件结构和指令系统 8

2.1 MCS-51单片机的主要功能特点 8

2.2 MCS-51单片机内部结构分析 9

2.3 MCS-51单片机的引脚功能 11

2.3.1 时钟电路 12

2.3.2 控制信号 13

2.3.3 I/O端口 14

2.4 MCS-51的存储器组织 19

2.3.4 MCS-51单片机管脚的应用特性 19

2.4.1 MCS-51程序存储器 21

2.4.2 数据存储器 21

2.4.3 专用寄存器(SFR) 25

2.4.4 外部数据存储器 28

2.5 MCS-51 CPU时序 28

2.5.1 机器周期,状态,相位 28

2.5.2 典型指令的取指和执行时序 29

2.6.1 HMOS型单片机的掉电运行方式 30

2.6 MCS-51低功耗运行方式 30

2.6.2 CHMOS型单片机的掉电运行方式与待机方式 31

2.7 MCS-51内部程序存储器的写入、校验和加密 32

2.7.1 8751内部EPROM的写入和擦除 32

2.7.2 内部程序存储器加密位 33

2.8 MCS-51指令系统 33

第3章 C语言与8051单片机 41

3.1 8051的编程语言 41

3.2 C语言的特点与C语言向8051的移植 42

3.3 C51编译器 43

3.4 C51程序结构 44

第4章 C51基本词法 48

4.1 标识符 48

4.2 关键字 49

4.3 常量 49

4.4 字符串 50

4.5 运算符 50

4.5.1 单目运算符 52

4.5.2 双目运算符 54

4.5.3 三目运算符 59

4.5.4 赋值运算符 59

4.5.5 逗号运算符 60

4.5.6 函数参数运算符 60

4.5.7 数组下标运算符 60

4.6.1 方括号对分隔符 61

4.6 分隔符 61

4.5.8 结构/联合成员运算符 61

4.5.9 结构/联合指针运算符 61

4.6.2 圆括号对分隔符 62

4.6.3 花括号对分隔符 62

4.6.4 逗号分隔符 62

4.6.5 分号分隔符 63

4.6.6 冒号分隔符 63

4.6.9 等号分隔符 64

4.6.10 ^分隔符 64

4.6.8 星号分隔符 64

4.6.7 省略号分隔符 64

4.6.11 预处理器伪指令符 65

4.7 空白符 65

4.8 注释符 65

第5章 C51数据结构 67

5.1 数据与数据结构 67

5.2 常量 68

5.2.2 浮点数常量 69

5.2.1 整数常量 69

5.2.3 枚举常量 70

5.2.4 字符常量 71

5.3 变量 72

5.3.1 变量说明 72

5.3.2 变量的数据类型 75

5.3.3 8051特殊功能寄存器和特殊功能位 77

5.4 C51构造数据类型 78

5.4.1 数组 79

5.4.2 结构 82

5.4.3 共用体 86

5.4.4 枚举 87

5.5 指针 88

5.5.1 指针的基本概念 88

5.5.2 变量的指针和指向变量的指针变量 89

5.5.3 数组指针和指向数组的指针变量 93

5.5.4 指向结构类型数据的指针 97

5.5.5 Franklin C51的指针类型 100

第6章 C51的存储 103

6.1 8051单片机的存储器 103

6.2 C51存储类型与8051单片机存储器 105

6.3 存储模式 106

第7章 C51流程控制语句 109

7.1 C语言程序的基本结构 109

7.1.1 顺序结构及其流程图 109

7.1.2 选择结构及其流程图 109

7.1.3 循环结构及其流程图 111

7.2 选择结构流程控制语句 111

7.2.1 if语句 112

7.2.2 switch/case语句 114

7.3 循环结构流程控制语句 115

7.3.1 goto语句及其构成的循环 116

7.3.2 while语句 117

7.3.3 do-while语句 118

7.3.4 for循环语句 119

7.3.5 循环的嵌套 122

7.3.6 break和continue语句 123

第8章 C51函数 125

8.1 C51程序的构成 125

8.2 函数的分类 126

8.2.1 从用户角度划分 126

8.2.2 从函数定义形式划分 126

8.3 函数的说明 127

8.3.1 函数说明的格式 127

8.3.2 函数说明 128

8.3.3 一般的函数定义举例 133

8.4 函数的参数和函数返回值 135

8.4.1 形式参数和实际参数 135

8.4.2 函数的返回值 136

8.5.3 对被调用函数的说明 138

8.5.2 函数调用的方式 138

8.5.1 函数调用的一般形式 138

8.5 函数的调用 138

8.5.4 函数的嵌套调用 140

8.5.5 函数的递归调用 141

8.5.6 用函数指针变量调用函数 142

8.6 数组、指针与函数调用 143

8.6.1 数组作为函数的参数 143

8.6.2 指针作为函数的参数 145

8.6.3 返回指针类型数据的函数 148

8.7 内部函数和外部函数 149

8.7.1 部函数 149

8.7.2 外部函数 149

8.8 C51库函数介绍 150

8.8.1 intrans.h 150

8.2.2 absacc.h 152

第9章 C51预处理器 154

9.1 包含文件伪指令 154

9.2.1 简单宏 155

9.2 伪指令宏 155

9.2.2 参数宏 156

9.2.3 条件宏 156

9.2.4 预定义宏 157

9.2.5 宏释放 158

9.2.6 宏体中的#符和##符 158

9.3 条件编译伪指令 159

9.4 编译器伪指令 159

9.5 #error伪指令 160

第10章 C51和汇编语言 161

10.1 C51和汇编语言的性能比较 161

10.2 C51和汇编语言的混合编程 167

10.2.1 C51语言关于函数定义和函数调用的规定 168

10.2.2 C51与汇编函数互调代码 168

11.1.2 常用名词 173

11.1.1 程序的组成 173

11.1 C51程序基本概念 173

第11章 开发C51程序 173

11.1.3 C51文件扩展名 174

11.2 C51程序开发流程 175

11.3 C51编译 176

11.3.1 汇编方法 176

11.3.2 编译方法 181

11.4.1 库 183

11.4 C51库和连接/定位器 183

11.4.2 连接/定位器 184

11.5 编译连接与存储空间 188

11.5.1 覆盖 188

11.5.2 共享 188

11.6 程序优化 189

第12章 8051内部资源的C51编程 191

12.1 输入/输出端口 191

12.2 定时器/计数器 193

12.2.1 定时器/计数器的控制寄存器和状态寄存器 194

12.2.2 定时器/计数器的计数初值计算 197

12.2.3 应用编程实例 198

12.3 中断 202

12.3.1 8051中断系统 202

12.3.2 控制中断的一些寄存器 202

12.3.3 响应中断 204

12.3.4 中断服务程序的编制 205

12.3.5 中断编程应用实例 205

12.4 串行口 210

12.4.1 与串行口控制有关的寄存器 210

12.4.2 串行口工作模式 212

12.4.3 串行口应用实例 214

第13章 8051外部扩展资源的C51编程 223

13.1 可编程I/O接口控制芯片8255 223

13.1.1 8255简介 223

13.1.2 8255工作说明 225

13.1.3 8255与8051的接口和编程 230

13.2 用串行口扩展I/O端口 231

13.2.1 扩展输出口 231

13.2.2 扩展输入口 233

13.3 可编程外围定时器芯片8253 235

13.3.1 8253内部结构和引脚 235

13.3.2 8253的工作方式和控制字 237

13.3.3 8253与8051单片机的接口和编程 239

13.4.1 8155芯片的结构和引脚 243

13.4 可编程接口芯片8155 243

13.4.2 8155芯片的命令字、状态字 245

13.4.3 8155与8051的接口和编程 247

13.5 实时时钟/日历芯片PCF8583 249

13.5.1 I2C总线 249

13.5.2 PCF8583时钟日历芯片 251

13.5.3 PCF8583的应用 257

第14章 C51的输入编程 263

14.1 开关量的输入 263

14.1.2 开关量输入实例 264

14.1.1 开关量输入要解决的问题 264

14.2 计数器的设计 266

14.3 用单线数字温度传感器DS18B20实现温度测量 268

14.3.1 DS18B20概述 269

14.3.2 DS18B20应用实例 273

14.4 AD7715数据采集 277

14.4.1 AD7715概述 277

14.4.2 AD7715应用实例 284

第15章 C51的输出编程 288

15.1 开关量的输出 288

15.1.1 开关量输出一般结构 288

15.1.2 开关量输出实例 288

15.2 DA接口 290

15.2.1 MAX532概述 290

15.2.2 MAX532的应用 292

16.1 键盘程序设计 296

16.1.1 键盘的类型 296

第16章 单片机人机交互C51程序设计 296

16.1.2 键盘输入程序的设计方法 297

16.2 LCD液晶显示器 299

16.2.1 液晶显示器的结构和工作原理 299

16.2.2 LCD液晶显示器的驱动 299

16.2.3 LCD显示模块 299

第17章 用8051单片机实现CAN总线接口模块 310

17.1 开发背景 310

17.2 角控制器执行机构结构分析及模块设计思路 311

17.3 硬件设计 312

17.3.1 CAN总线接口部分 313

17.3.2 CPU、复位芯片、电源管理及地址译码 318

17.3.3 I/O接口部分 322

17.4 软件设计 326

17.4.1 CAN总线通信程序 326

17.4.2 看门狗芯片初始化程序 334

17.4.3 I/O管理函数 335

17.4.4 控制算法程序 336

17.4.5 模块程序清单 337

17.5 小结 352

附录A 具有51内核的单片机 353

A.1 MCS-51系列单片机 353

A.2 AT89系列单片机 353

A.3 DALLAS DS80C320单片机 354

A.4 WINBOND W78C31单片机 354

附录B C51库函数 355

C.2 编译命令行 363

C.1 简介 363

附录C C51编译命令行控制选项和控制伪命令 363

C.2.1 一次性使用的编译控制伪指令 364

C.2.2 可多次使用的编译控制伪指令 371

附录D C51编译器使用错误提示 375

D.1 致命错误 375

D.2 语法及语义错误 377

D.2.1 错误格式 377

D.2.2 错误信息及可能发生的原因 377

E.2 L51警告 389

附录E L51连接定位器使用错误提示 389

E.1 前言 389

E.3 L51错误 391

E.4 L51致命错误 393

E.5 异常信息 395

附录F C51的极限值 397

附录G QTH仿真开发系统使用指南 398

G.1 QTH仿真器系统设置 398

G.2 QTH-8052F系统设置 399

G.3 QTH调试器的主窗口 400

G.4 基本调试技巧 401

G.4.1 装入代码进行反汇编调试 401

G.4.2 使用源程序窗口调试程序 401

G.4.3 查看内存单元内容 406

G.5 源程序的编译及连接 408

G.5.1 源程序的编译及连接 408

G.5.2 创建工程文件 408

返回顶部