《单片机原理及接口技术 C51编程 第2版》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:张毅刚主编;刘旺,邓立宝副主编
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2016
  • ISBN:9787115419248
  • 页数:385 页
图书介绍:本书详细介绍美国ATMEL公司的AT89S51/52单片机片内硬件资源及工作原理,重点介绍了单片机应用的各种技术实现以及相应的C51语言编程,如信息的显示与输入,中断,定时/计数,串行通信,模/数与数/模转换以及系统的并行与串行扩展的接口设计等。

第1章 单片机概述 1

1.1 什么是单片机 1

1.2 单片机的发展历史 2

1.3 单片机的特点 2

1.4 单片机的应用 3

1.5 单片机的发展趋势 4

1.6 MCS-51系列与AT89S5x系列单片机 5

1.6.1 MCS-51系列单片机 5

1.6.2 AT89S5x系列单片机 6

1.7 各种衍生品种的8051单片机 8

1.7.1 STC系列单片机 8

1.7.2 C805 1F ×××单片机 9

1.7.3 ADμC812单片机 9

1.7.4 华邦W77系列、W78系列单片机 9

1.8 PIC系列单片机与AVR系列单片机 10

1.8.1 PIC系列单片机 10

1.8.2 AVR系列单片机 11

1.9 其他的嵌入式处理器简介 11

1.9.1 嵌入式DSP处理器 12

1.9.2 嵌入式微处理器 12

思考题及习题 13

第2章 AT89S51单片机片内硬件结构 15

2.1 AT89S51单片机的片内硬件结构 15

2.2 AT89S51的引脚功能 17

2.2.1 电源及时钟引脚 17

2.2.2 控制引脚 17

2.2.3 并行I/O口引脚 18

2.3 AT89S51的CPU 19

2.3.1 运算器 19

2.3.2 控制器 21

2.4 AT89S51单片机存储器的结构 21

2.4.1 程序存储器空间 22

2.4.2 数据存储器空间 22

2.4.3 特殊功能寄存器 23

2.4.4 位地址空间 26

2.5 AT89S51单片机的并行I/O端口 27

2.5.1 P0口 27

2.5.2 P1口 28

2.5.3 P2口 29

2.5.4 P3口 30

2.6 时钟电路与时序 30

2.6.1 时钟电路设计 31

2.6.2 机器周期、指令周期与指令时序 32

2.7 复位操作和复位电路 32

2.7.1 复位操作 32

2.7.2 复位电路设计 33

2.8 看门狗定时器(WDT)的使用 33

2.9 低功耗节电模式 35

2.9.1 空闲模式 35

2.9.2 掉电运行模式 36

2.10 AT89S52单片机与AT89S51单片机的差异 36

2.10.1 AT89S52单片机与AT89S51单片机片内硬件资源的差别 37

2.10.2 AT89S52的引脚 37

2.10.3 AT89S52单片机的存储器结构 37

思考题及习题 40

第3章 C51编程语言基础 43

3.1 C51编程语言简介 43

3.1.1 C51语言与8051汇编语言的比较 43

3.1.2 C51语言与标准C语言的比较 44

3.2 C51语言程序设计基础 44

3.2.1 C51语言中的数据类型与存储类型 45

3.2.2 C51语言的特殊功能寄存器及位变量定义 49

3.2.3 C51语言的绝对地址访问 51

3.2.4 C51的基本运算 52

3.2.5 C51的分支与循环程序结构 54

3.2.6 C51的数组 60

3.2.7 C51的指针 62

3.3 C51语言的函数 63

3.3.1 函数的分类 63

3.3.2 函数的参数与返回值 64

3.3.3 函数的调用 65

3.3.4 中断服务函数 66

3.3.5 变量及存储方式 66

3.3.6 宏定义与文件包含 66

3.3.7 库函数 67

思考题及习题 68

第4章 开发与仿真工具 69

4.1 Keil C51的使用 69

4.1.1 Keil C51简介 69

4.1.2 基本操作 69

4.1.3 添加用户源程序文件 71

4.1.4 程序的编译与调试 73

4.1.5 项目的设置 75

4.2 Proteus虚拟仿真工具介绍 77

4.2.1 Proteus功能简介 77

4.2.2 Proteus ISIS的虚拟仿真 78

4.2.3 Proteus的各种虚拟仿真调试工具 84

4.2.4 虚拟设计仿真举例 87

思考题及习题 93

第5章 单片机与开关、键盘以及显示器件的接口设计 94

5.1 单片机控制发光二极管显示 94

5.1.1 单片机与发光二极管的连接 94

5.1.2 I/O端口的编程控制 95

5.2 开关状态检测 98

5.2.1 开关检测案例1 98

5.2.2 开关检测案例2 99

5.3 单片机控制LED数码管的显示 100

5.3.1 LED数码管的显示原理 100

5.3.2 LED数码管的静态显示与动态显示 103

5.4 单片机控制LED点阵显示器显示 106

5.4.1 LED点阵显示器的结构与显示原理 106

5.4.2 控制16×16 LED点阵显示屏的案例 107

5.5 单片机控制LCD 1602液晶显示器的显示 109

5.5.1 LCD 1602液晶显示模块简介 110

5.5.2 单片机控制字符型LCD 1602显示案例 116

5.6 键盘接口设计 119

5.6.1 键盘接口设计应解决的问题 119

5.6.2 独立式键盘接口设计案例 120

5.6.3 矩阵式键盘的接口设计案例 127

5.6.4 非编码键盘扫描方式的选择 129

5.6.5 单片机与专用键盘/显示器芯片HD7279的接口设计 130

思考题及习题 140

第6章 中断系统的工作原理及应用 142

6.1 AT89S51中断技术概述 142

6.2 AT89S51中断系统结构 142

6.2.1 中断请求源 143

6.2.2 中断请求标志寄存器 143

6.3 中断允许与中断优先级的控制 144

6.3.1 中断允许寄存器IE 145

6.3.2 中断优先级寄存器IP 145

6.4 响应中断请求的条件 146

6.5 外部中断的响应时间 147

6.6 外部中断的触发方式选择 148

6.6.1 电平触发方式 148

6.6.2 跳沿触发方式 148

6.7 中断请求的撤销 148

6.8 中断函数 149

6.9 中断系统应用举例 150

6.9.1 单一外中断的应用 151

6.9.2 两个外中断的应用 152

6.9.3 中断嵌套的应用 153

思考题及习题 155

第7章 定时器/计数器的工作原理及应用 157

7.1 定时器/计数器的结构 157

7.1.1 定时器/计数器工作方式寄存器TMOD 158

7.1.2 定时器/计数器控制寄存器TCON 158

7.2 定时器/计数器的4种工作方式 159

7.2.1 方式0 159

7.2.2 方式1 160

7.2.3 方式2 160

7.2.4 方式3 161

7.3 计数器对外部输入的计数信号的要求 162

7.4 定时器/计数器T0、T1的编程应用 163

7.4.1 P1口控制8只LED每0.5s闪亮一次 163

7.4.2 计数器的应用 164

7.4.3 控制P1.0产生周期为2ms的方波 166

7.4.4 利用T1控制发出1kHz的音频信号 167

7.4.5 LED数码管秒表的制作 169

7.4.6 测量脉冲宽度——门控位GATEx的应用 171

7.4.7 LCD时钟的设计 173

7.5 AT89S52新增定时器/计数器T2简介 175

7.5.1 T2的特殊功能寄存器T2CON和T2MOD 175

7.5.2 T2的16位自动重装载方式 177

7.5.3 T2的捕捉方式 179

7.5.4 T2的波特率发生器方式及可编程时钟输出 179

思考题及习题 182

第8章 串行口的工作原理及应用 184

8.1 串行通信基础 184

8.1.1 并行通信与串行通信 184

8.1.2 同步通信与异步通信 185

8.1.3 串行通信的传输模式 186

8.1.4 串行通信的错误校验 186

8.2 串行口的结构 187

8.2.1 串行口控制寄存器SCON 187

8.2.2 特殊功能寄存器PCON 188

8.3 串行口的4种工作方式 189

8.3.1 方式0 189

8.3.2 方式1 193

8.3.3 方式2 194

8.3.4 方式3 195

8.4 多机通信 196

8.5 波特率的制定方法 197

8.5.1 波特率的定义 197

8.5.2 定时器T1产生波特率的计算 197

8.6 串行口应用设计案例 198

8.6.1 串行通信标准接口RS232、RS422与RS485简介 199

8.6.2 方式1的应用设计 201

8.6.3 方式2和方式3的应用设计 208

8.6.4 多机通信的应用设计 210

8.6.5 单片机与PC串行通信的设计 216

8.6.6 PC与单片机或与多个单片机的串行通信 220

思考题及习题 221

第9章 单片机系统的并行扩展 223

9.1 系统并行扩展技术 223

9.1.1 系统并行扩展结构 223

9.1.2 地址空间分配 225

9.1.3 外部地址锁存器 227

9.2 外部数据存储器的并行扩展 228

9.2.1 常用的静态RAM(SRAM)芯片 228

9.2.2 读写片外RAM的操作时序 229

9.2.3 并行扩展数据存储器的设计 230

9.2.4 单片机外扩数据存储器RAM6264的案例设计 232

9.3 片内Flash存储器的编程 233

9.3.1 使用通用编程器的程序写入 234

9.3.2 使用下载线的ISP编程 234

9.4 E2 PROM的并行扩展 235

9.4.1 并行E2PROM芯片简介 235

9.4.2 AT89S51单片机扩展E2 PROMAT2864的设计 236

9.5 AT89S51扩展并行I/O芯片82C55的设计 237

9.5.1 I/O接口扩展概述 237

9.5.2 并行I/O芯片82C55简介 238

9.5.3 82C55的3种工作方式 241

9.5.4 AT89S51单片机与82C55的接口设计 245

9.6 利用74LSTTL电路扩展并行I/O口 247

9.7 用AT89S51单片机的串行口扩展并行输入/输出口 248

9.7.1 用74LS165扩展并行输入口 248

9.7.2 用74LS164扩展并行输出口 249

思考题及习题 250

第10章 AT89S51单片机系统的串行扩展 252

10.1 单总线串行扩展 252

10.1.1 单总线扩展的典型应用——DS 18B20的温度测量系统 252

10.1.2 设计案例:单总线DS 18B20温度测量系统 255

10.2 SPI总线串行扩展 258

10.3 I2C总线的串行扩展 259

10.3.1 I2C串行总线系统的基本结构 259

10.3.2 I2C总线的数据传送规定 260

10.3.3 AT89S51的I2C总线扩展系统 263

10.3.4 I2C总线数据传送的模拟 264

10.3.5 利用I2C总线扩展E2 PROMAT24C02的IC卡设计 267

思考题及习题 273

第11章 AT89S51单片机与DAC、ADC的接口 274

11.1 单片机扩展DAC概述 274

11.2 单片机扩展并行8位DAC0832的设计 275

11.2.1 DAC0832简介 275

11.2.2 案例设计:单片机扩展DAC0832的程控电源 276

11.2.3 案例设计:波形发生器的制作 278

11.3 单片机扩展串行10位DAC——TLC5615 282

11.3.1 串行DAC——TLC5615简介 282

11.3.2 案例设计:单片机扩展串行DAC——TLC5615的设计 284

11.4 单片机扩展ADC概述 286

11.5 单片机并行扩展8位A/D转换器ADC0809 287

11.5.1 案例设计:单片机控制ADC0809进行A/D转换 288

11.5.2 案例设计:两路输入的数字电压表的设计 290

11.6 单片机扩展串行8位A/D转换器TLC549 293

11.6.1 TLC549的特性及工作原理 293

11.6.2 案例设计:单片机扩展TLC549的设计 294

11.7 单片机扩展串行12位ADC——TLC2543的设计 296

11.7.1 TLC2543的特性及工作原理 296

11.7.2 案例设计:单片机扩展TLC2543的设计 298

思考题及习题 300

第12章 单片机各种应用设计 302

12.1 单片机控制步进电机的设计 302

12.2 单片机控制直流电机 304

12.3 频率计的制作 306

12.4 电话机拨号的模拟 309

12.5 8位竞赛抢答器设计 314

12.6 基于时钟/日历芯片DS 1302的电子钟设计 318

思考题及习题 324

第13章 功率接口设计 325

13.1 单片机与外围集成数字驱动电路的接口 325

13.2 单片机与光电耦合器的接口 327

13.2.1 晶体管输出型光电耦合器驱动接口 327

13.2.2 晶闸管输出型光电耦合器驱动接口 329

13.3 单片机与继电器的接口 330

13.3.1 单片机与直流电磁式继电器功率接口 330

13.3.2 单片机与交流电磁式接触器的接口 331

13.4 单片机与晶闸管的接口 332

13.4.1 单向晶闸管 332

13.4.2 双向晶闸管 332

13.4.3 光耦合双向晶闸管驱动器 332

13.5 单片机与集成功率电子开关输出接口 334

13.5.1 集成功率电子开关TWH8751简介 334

13.5.2 集成功率电子开关TWH8751的典型应用 335

13.6 单片机与固态继电器的接口 336

13.6.1 固态继电器的特性与分类 336

13.6.2 固态继电器的应用 337

13.7 低压开关量信号输出技术 339

思考题及习题 340

第14章 单片机应用系统抗干扰与可靠性设计 341

14.1 干扰的来源 341

14.2 供电系统干扰及其抗干扰措施 342

14.2.1 电源噪声来源、种类及危害 342

14.2.2 供电系统的抗干扰设计 342

14.3 过程通道干扰的抑制措施——隔离 343

14.3.1 光电隔离的基本配置 343

14.3.2 光电隔离的实现 344

14.4 空间干扰及抗干扰措施 345

14.4.1 接地技术 345

14.4.2 屏蔽技术 347

14.5 反电势干扰的抑制 348

14.6 印制电路板的抗干扰设计 349

14.6.1 地线及电源线设计 349

14.6.2 去耦电容的配置 349

14.6.3 印制电路板的布线的抗干扰设计 350

14.7 软件抗干扰措施 350

14.7.1 软件抗干扰的一般方法 350

14.7.2 软件滤波 351

14.7.3 开关量输入/输出软件抗干扰设计 352

14.8 看门狗定时器的使用 352

思考题及习题 353

第15章 单片机应用系统的设计与调试 355

15.1 单片机应用系统的设计步骤 355

15.2 单片机应用系统设计 356

15.2.1 硬件设计应考虑的问题 356

15.2.2 典型的单片机应用系统 357

15.2.3 系统设计中的总线驱动 358

15.2.4 软件设计考虑的问题 360

15.3 单片机应用系统的仿真开发与调试 360

思考题及习题 365

附录A 基础实验题目 366

实验1 单片机I/O口实验——LED流水灯 366

实验2 单个外部中断实验 366

实验3 中断嵌套实验 367

实验4 定时器/计数器的定时实验 367

实验5 定时器/计数器的计数器实验 367

实验6 串口方式0扩展并行输出口实验 367

实验7 串行口方式0扩展并行输入口实验 368

实验8 双单片机串行通信 368

实验9 扩展82C55并行I/O实验 369

实验10 独立式键盘实验 369

实验11 矩阵式键盘扫描实验 369

实验12 单片机控制1602液晶显示器显示字符 369

实验13 DAC0832的D/A转换实验 370

实验14 ADC0809的A/D转换实验 370

实验15 I2C总线串行扩展AT24C02存储器读写 370

附录B 课程设计题目 372

题目1 节日彩灯控制器的设计 372

题目2 单一外中断的应用 372

题目3 LED数码管秒表的制作 373

题目4 音乐音符发生器的制作 373

题目5 用定时器设计的门铃 373

题目6 控制数码管循环显示单个数字 374

题目7 基于DS18B20的数字温度计设计 374

题目8 利用定时器在P1.0上产生周期为2ms的方波 374

题目9 电话键盘及拨号的模拟 375

题目10 双机串行口方式1单工通信 375

题目11 数码管显示4×4矩阵键盘的键号 375

题目12 波形发生器的制作 376

题目13 频率计的制作 376

题目14 数字电压表设计 376

题目15 单片机控制串行DAC——TLC5615的调压器 377

题目16 单片机控制16×16阵列LED的显示 377

题目17 直流电机控制实验 378

题目18 步进电机控制实验 378

附录C 头文件“LCD1602.h”清单 379

附录D 头文件“DS1302.h”清单 381

参考文献 385