《51单片机C语言轻松入门 配视频教程》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:汤嘉立,杨后川编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2016
  • ISBN:9787121278747
  • 页数:309 页
图书介绍:51单片机是对所有兼容Intel 8051 指令系统的单片机的统称, 其始祖是Intel公司发布的8031单片机。随着电子技术的发展, 其内核被ATMEL、飞利浦、宏晶科技等公司采用, 生产出了一大批具有相同内核构造但是有不同功能的单片机, 它们被统称为51 系列单片机, 是应用最为广泛的8位单片机之一。51单片机具有体积小、功能强、价格低的特点, 在工业控制、数据采集、智能仪表、机电一体化、家用电器等领域有着广泛的应用, 其应用可以大大提高生产、生活的自动化水平。本书分为51单片机基础知识、51单片机模块应用以及51单片机的应用系统三大部分。本书基础内容丰富、循序渐进、由浅入深, 涉及了51单片机从硬件模块基础到软件设计各个方面的知识, 并且基于Proteus 硬件仿真环境和Keil 滋Vision 软件集成开发环境提供了大量仿真实例。本书还提供了若干个详细讲解的视频以供读者深入理解51单片机的使用。

第1章 51单片机基础 1

1.1 51系列单片机的发展 1

1.2 常见51单片机型号及其特点 1

1.2.1 AT89S52 1

1.2.2 P87 C51 x2 2

1.2.3 STC89C52RC 2

1.3 51单片机的内核结构 3

1.3.1 中央处理器 4

1.3.2 存储器 6

1.3.3 外部引脚 9

1.3.4 时钟模块 11

1.4 51单片机的工作方式 13

1.4.1 复位工作方式 13

1.4.2 程序执行方式 14

1.4.3 低功耗工作方式 14

1.4.4 其他工作 15

第2章 51单片机的指令系统和C语言 16

2.1 51单片机的寻址 16

2.1.1 助记符和寻址基础 16

2.1.2 寻址方式 17

2.2 51单片机的指令 18

2.2.1 数据传送指令 18

2.2.2 算术运算指令 20

2.2.3 逻辑运算指令 22

2.2.4 位操作指令 24

2.2.5 控制转移指令 24

2.3 51单片机的伪指令和汇编程序设计 27

2.3.1 伪指令 27

2.3.2 汇编程序设计 29

2.4 51单片机的C语言 31

2.4.1 C51语言的数据类型、运算符和表达式 32

2.4.2 C51语言的结构 36

2.4.3 C51语言的函数 36

2.4.4 C51语言的数组和指针 37

2.4.5 C51语言的自构造类型 39

2.5 C51语言程序设计技巧 41

2.5.1 养成好的编程习惯 41

2.5.2 宏定义 43

2.5.3 条件编译 45

2.5.4 具体指针的应用 47

2.5.5 一些关键字的使用 49

第3章 51单片机的Keil μVision 4软件开发环境 53

3.1 Keil μVision 4的工作界面 53

3.2 Keil μVision 4的菜单栏 54

3.2.1 File(文件)菜单 54

3.2.2 Edit(编辑)菜单 55

3.2.3 View(视图)菜单 56

3.2.4 Project(项目)菜单 56

3.2.5 Flash(Flash存储器)菜单 57

3.2.6 Debug(调试)菜单 57

3.2.7 Peripherals(串行接口)菜单 58

3.2.8 Tools(工具)菜单 59

3.2.9 SVCS(版本控制)菜单 59

3.2.10 Window(窗口)菜单 60

3.2.11 Help(帮助)菜单 60

3.3 Keil μVision 4的库函数 60

3.3.1 库文件和头文件分类 61

3.3.2 C51语言的库函数分类介绍 62

3.4 “Hello World!”——Keil μVision 4的应用实例 65

3.5 Keil μVision 44的错误信息 69

3.5.1 变量未被使用警告(Warning 280) 69

3.5.2 函数未被声明警告(Warning C206) 70

3.5.3 头文件无法打开错误(Error C318) 71

3.5.4 函数名称重复定义错误(Error C237) 72

3.5.5 函数未被调用警告 72

3.5.6 函数未定义警告(Warning C206) 73

3.5.7 内存空间溢出错误 74

3.5.8 函数重入警告 74

3.5.9 常见编译器错误列表 75

第4章 51单片机的硬件开发工具和Proteus硬件仿真环境 79

4.1 51单片机的硬件系统开发流程 79

4.2 51单片机的硬件开发工具 80

4.2.1 编程器 80

4.2.2 仿真器 80

4.2.3 数字万用表 82

4.2.4 数字示波器 82

4.3 Proteus应用基础 83

4.3.1 Proteus的运行界面和支持的文件 84

4.3.2 Proteus的菜单 85

4.3.3 Proteus的快捷工具栏和工具箱 98

4.4 Proteus的使用流程 100

4.5 Proteus中的51单片机及其使用 101

4.6 Proteus和Keil μVision 4联合使用 102

4.6.1 建立仿真文件和源文件 102

4.6.2 联合调试中仿真的运行控制 104

4.6.3 联合调试中的仿真数据记录 104

4.6.4 联合调试中仿真的观察 104

4.6.5 联合调试中51单片机的内部资源观察 107

4.6.6 在Keil μVision 4中调用Proteus仿真器 108

第5章 51单片机的并行端口 110

5.1 数据和地址端口P0和P2 110

5.2 普通I/O端口P1 112

5.3 复用端口P3 112

5.4 数据/地址总线扩展方法 113

5.5 51单片机的并行端口应用实例 115

5.5.1 并行端口输出高/低脉冲电平实例 115

5.5.2 并行端口驱动发光二极管(LED)实例 118

5.5.3 并行端口驱动单位数码管实例 123

5.5.4 并行端口驱动独立按键实例 129

5.5.5 并行端口驱动行列扫描键盘实例 134

第6章 51单片机的中断系统和外部中断 141

6.1 51单片机的中断系统 141

6.2 51单片机的中断处理过程 142

6.2.1 51单片机中断系统的初始化步骤 142

6.2.2 51单片机的中断服务子程序处理流程 142

6.3 51单片机的中断服务子程序设计 143

6.4 51单片机的外部中断 144

6.5 51单片机的外部中断应用实例 144

6.5.1 中断计数(三极管) 144

6.5.2 低电平中断的应用 149

6.5.3 多个信号共用一个外部中断 152

第7章 51单片机的定时计数器 157

7.1 51单片机定时计数器的组成 157

7.2 51单片机定时计数器的寄存器 157

7.2.1 工作方式控制寄存器TMOD 157

7.2.2 控制寄存器TCON 158

7.2.3 数据寄存器 TH0、TL0和TH1、TL1 159

7.3 51单片机定时计数器的工作方式 159

7.3.1 工作方式0 159

7.3.2 工作方式1 159

7.3.3 工作方式2 160

7.3.4 工作方式3 161

7.3.5 定时计数器的中断 161

7.4 使用51单片机的计数器 161

7.4.1 使用定时功能 161

7.4.2 使用计数功能 162

7.4.3 使用门控信号 162

7.4.4 读取定时计数器的值 162

7.5 定时计数器T2 163

7.5.1 T2的相关寄存器 163

7.5.2 T2的工作方式 164

7.5.3 T2的中断处理 165

7.6 51单片机定时计数器应用实例 165

7.6.1 T0/T1控制外部引脚输出方波 165

7.6.2 PWM波形输出 168

7.6.3 对外部脉冲计数 170

7.6.4 测量脉冲宽度 173

7.6.5 使用T2输出方波 175

7.6.6 使用T2进行精确定时 177

7.6.7 使用T0/T1扩展外部中断 179

第8章 51单片机的串行通信模块 182

8.1 串行通信基础 182

8.2 51单片机的串行通信模块构成 182

8.3 51单片机的串行通信模块的寄存器 182

8.3.1 串行通信模块控制寄存器(SCON) 183

8.3.2 串行通信模块数据寄存器(SBUF) 183

8.3.3 电源管理寄存器(PCON) 184

8.4 51单片机的串行通信模块的工作方式 184

8.4.1 工作方式0 184

8.4.2 工作方式1 185

8.4.3 工作方式2和工作方式3 186

8.4.4 串行通信模块的中断 187

8.5 51单片机的串行通信模块应用实例 187

8.5.1 串口数据发送 187

8.5.2 串口和PC进行通信 191

8.5.3 使用串口扩展外部中断 199

8.5.4 使用普通I/O引脚模拟串口通信 201

第9章 51单片机的人机交互模块 207

9.1 使用拨码开关设置地址 207

9.1.1 拨码开关基础 207

9.1.2 Proteus中的拨码开关 207

9.1.3 实例设计思路 209

9.1.4 实例的Proteus应用电路 209

9.1.5 实例的应用代码 210

9.1.6 实例的仿真结果和说明 211

9.2 多位数码管显示流水数字 212

9.2.1 多位数码管基础 212

9.2.2 Proteus中的多位数码管 213

9.2.3 实例的设计思路 213

9.2.4 实例的Proteus应用电路 213

9.2.5 实例的应用代码 215

9.2.6 实例的仿真结果和说明 217

9.3 多位数码管驱动芯片MAX7219显示日期 218

9.3.1 MAX7219基础 218

9.3.2 Proteus中的MAX7219 222

9.3.3 实例的设计思路 223

9.3.4 实例的Proteus应用电路 223

9.3.5 实例的应用代码 224

9.3.6 实例的仿真结果和说明 226

9.4 1602数字字符液晶显示“Hello 51 MCU” 226

9.4.1 1602液晶基础 227

9.4.2 Proteus中的1602液晶 229

9.4.3 实例的设计思路 230

9.4.4 实例的Proteus应用电路 230

9.4.5 实例的应用代码 231

9.4.6 实例的仿真结果和说明 233

第10章 51单片机的信号采集和输出通道 234

10.1 使用ADC0809采集模拟信号 234

10.1.1 ADC0809基础 234

10.1.2 Proteus中的ADC0809 235

10.1.3 实例的设计思路 236

10.1.4 实例的Proteus应用电路 236

10.1.5 实例的应用代码 237

10.1.6 实例的仿真结果和说明 240

10.2 使用TLC2543采集模拟信号 240

10.2.1 TLC2543基础 240

10.2.2 Proteus中的TLC2543 242

10.2.3 实例的设计思路 243

10.2.4 实例的Proteus应用电路 243

10.2.5 实例的应用代码 244

10.2.6 实例的仿真结果和说明 246

10.3 使用PCF8563获得当前时间 247

10.3.1 PCF8563基础 247

10.3.2 Proteus中的PCF8563 250

10.3.3 实例的设计思路 251

10.3.4 实例的Proteus应用电路 251

10.3.5 实例的应用代码 252

10.3.6 实例的仿真结果和说明 260

10.4 使用DS18B20测量温度 261

10.4.1 DS18B20基础 261

10.4.2 Proteus中的DS18 B20 263

10.4.3 实例的设计思路 264

10.4.4 实例的Proteus应用电路 265

10.4.5 实例的应用代码 266

10.4.6 实例的仿真结果和说明 274

10.5 使用MAX517输出模拟信号 274

10.5.1 MAX517基础 275

10.5.2 Proteus中的MAX517 276

10.5.3 实例的设计思路 277

10.5.4 实例的Proteus应用电路 277

10.5.5 实例的应用代码 278

10.5.6 实例的仿真结果和说明 283

第11章 51单片机应用系统 285

11.1 简易电子琴 285

11.1.1 应用系统背景 285

11.1.2 设计思路 286

11.1.3 硬件系统设计 287

11.1.4 软件系统设计 290

11.1.5 应用系统的仿真和总结 295

11.2 手动程控放大器 296

11.2.1 应用系统背景 296

11.2.2 设计思路 296

11.2.3 硬件系统设计 300

11.2.4 软件系统设计 304

11.2.5 应用系统的仿真和总结 309