《51单片机C语言应用程序设计实例精讲》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:戴佳,戴卫恒编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2006
  • ISBN:7121023792
  • 页数:454 页
图书介绍:本书通过大量的典型实例,详细介绍了51单片机各种C语言应用专题程序设计的流程、方法、技巧及设计思想。全书共分31章,第1章简单介绍了51单片机开发的基础知识,第2章~第31章为本书的重点,通过30个典型的C语言应用实例,详细介绍了51单片机的各种应用开发和使用技术,包括输入输出、数据采集、控制系统、信号与算法实现、通信传输、网络应用与电源监控设计。全书实例丰富、代表性强,涉及领域广,每个例子都有具体的设计思路、硬件电路、软件设计以及程序代码分析,对于读者学习51单片机的应用开发提供了良好的参考和指导。本书语言简洁,层次清晰,本书的所有程序代码都使用C语言实现,简单易学、易懂。本书比较适合计算机、自动化、电子及硬件等相关专业学生进行学习,同时也可供从事51单片机开发的科研设计人员参考使用。本书配有一张光盘,光盘里包括了书中所有的程序代码和电路图,读者稍加修改便可用于自己的设计中去,物超所值。

第1章 51单片机开发基础 1

1.1 单片机发展的历史、现状与趋势 1

1.2 51单片机的引脚与内部结构 3

1.2.1 引脚说明 3

1.2.2 功能模块 5

1.2.3 CPU 5

1.2.4 并行I/O端口 7

1.2.5 存储器结构 8

1.2.6 定时/计数器 12

1.2.7 串行口 17

1.2.8 中断系统 23

1.3 51单片机的指令系统 25

1.3.1 寻址方式 25

1.3.2 指令说明 28

1.3.3 指令表 31

1.4 Keil 8051 C编译器 35

1.4.1 Keil编译器简介 35

1.4.2 如何使用Keil开发 36

1.4.3 dScope for Windows的使用 41

1.5 汇编与C语言的混合使用 46

1.5.1 段和局部变量 47

1.5.2 设置变量地址 48

1.5.3 汇编语言和C语言的结合 49

1.5.4 内联汇编代码 53

1.5.5 提高编译器的汇编能力 56

1.5.6 仿真多级中断 58

1.5.7 时序问题 60

1.5.8 混合编程需要注意的几点 63

1.6 RTX51实时多任务操作系统 64

1.6.1 RTX51操作系统概述 64

1.6.2 软硬件需求和术语定义 71

1.6.3 建立RTX51 Tiny应用程序 74

1.6.4 RTX51 Tiny系统函数 76

1.6.5 系统调试 82

1.6.6 应用程序编写举例 84

1.7 本章总结 99

第一篇 输入输出系统 101

第2章 单片机实现7段数码管显示 102

2.1 实例说明 102

2.2 设计思路分析 103

2.2.1 7段数码管工作原理 103

2.2.2 如何驱动7段数码管 104

2.3 硬件电路设计 105

2.3.1 主要器件 105

2.3.2 电路原理图 105

2.4 软件设计 108

2.4.1 程序流程 108

2.4.2 程序说明 109

2.5 实例总结 111

第3章 基于MAX7219的8位数码管显示 112

3.1 实例说明 112

3.2 设计思路分析 112

3.2.1 LED显示驱动芯片的选取 112

3.2.2 MAX7219的工作原理 113

3.3 硬件电路设计 114

3.3.1 主要器件 114

3.3.2 电路原理图 115

3.4 软件设计 117

3.4.1 MAX7219的工作时序和寄存器描述 117

3.4.2 程序说明 119

3.5 实例总结 122

第4章 单片机实现液晶显示 123

4.1 实例说明 123

4.2 设计思路分析 123

4.2.1 液晶显示模块 124

4.2.2 液晶显示工作原理 125

4.2.3 设计思路 126

4.3 硬件电路设计 126

4.3.1 器件选取 126

4.3.2 电源模块 127

4.3.3 液晶显示模块 128

4.3.4 单片机模块 131

4.4 软件设计 131

4.4.1 液晶控制驱动器指令集 131

4.4.2 程序说明 133

4.5 实例总结 135

第5章 单片机实现电子密码锁 137

5.1 实例说明 137

5.2 设计思路分析 138

5.2.1 键盘输入 138

5.2.2 数码管显示 140

5.3 硬件电路设计 141

5.3.1 结构框图 141

5.3.2 主要器件 141

5.3.3 电路原理图及说明 142

5.4 软件设计 144

5.4.1 程序流程 144

5.4.2 程序说明 144

5.5 实例总结 151

第6章 单片机实现简单音乐发生器 152

6.1 实例说明 152

6.2 设计思路分析 152

6.2.1 音乐相关知识 152

6.2.2 如何用单片机产生音频脉冲 153

6.2.3 如何用单片机实现音乐的节拍 154

6.2.4 音频功放 154

6.3 硬件电路设计 155

6.3.1 结构框图 155

6.3.2 主要器件 155

6.3.3 电路原理图及说明 156

6.4 软件设计 156

6.4.1 程序流程 158

6.4.2 程序说明 158

6.5 实例总结 161

第7章 单片机实现语音录放 162

7.1 实例说明 162

7.2 设计思路分析 163

7.2.1 语音芯片选取 163

7.2.2 语音芯片ISD2560简介 163

7.3 硬件电路设计 164

7.3.1 主要器件 164

7.3.2 电路原理图及说明 167

7.4 软件设计 168

7.4.1 程序流程 169

7.4.2 程序说明 169

7.5 实例总结 171

第二篇 数据采集系统 173

第8章 基于MAX197的并行A/D转换 174

8.1 实例说明 174

8.2 设计思路分析 174

8.2.1 A/D转换原理 175

8.2.2 如何选择A/D转换器件 175

8.2.3 A/D转换对电源电路的要求 176

8.3 硬件电路设计 177

8.3.1 主要器件 177

8.3.2 电路原理图及说明 180

8.4 软件设计 183

8.4.1 MAX197控制字 183

8.4.2 程序流程 183

8.4.3 程序说明 184

8.5 实例总结 185

第9章 基于TLC549的串行A/D转换 186

9.1 实例说明 186

9.2 设计思路分析 186

9.2.1 芯片选取 187

9.2.2 工作原理 187

9.3 硬件电路设计 189

9.3.1 主要器件 189

9.3.2 电路原理图及说明 190

9.4 软件设计 191

9.4.1 转换过程和时序要求 191

9.4.2 程序流程 191

9.4.3 程序说明 191

9.5 实例总结 193

第10章 基于MAX527的并行D/A转换 194

10.1 实例说明 194

10.2 设计思路分析 194

10.2.1 D/A转换原理 195

10.2.2 如何选择D/A转换器件 195

10.2.3 D/A转换对电源电路的要求 196

10.3 硬件电路设计 196

10.3.1 主要器件 196

10.3.2 电路原理图及说明 198

10.4 软件设计 200

10.4.1 MAX527的地址和重要引脚 201

10.4.2 程序流程 201

10.4.3 程序说明 202

10.5 实例总结 203

第11章 基于MAX517的串行D/A转换 204

11.1 实例说明 204

11.2 设计思路分析 205

11.2.1 芯片选取 205

11.2.2 工作原理 205

11.3 硬件电路设计 207

11.3.1 主要器件 207

11.3.2 电路原理图及说明 207

11.4 软件设计 209

11.4.1 时序要求和转换过程 209

11.4.2 程序说明 210

11.5 实例总结 212

第12章 基于DS18B20的数字温度计设计 213

12.1 实例说明 213

12.2 设计思路分析 213

12.2.1 温度传感器DS18B20 214

12.2.2 单线(1-wire)技术 214

12.3 硬件电路设计 215

12.3.1 主要器件 215

12.3.2 电路原理图及说明 218

12.4 软件设计 219

12.4.1 DS18B20的单线协议和命令 219

12.4.2 程序流程 221

12.4.3 程序说明 221

12.5 实例总结 225

第13章 基于MPX4105的数字气压计设计 226

13.1 实例说明 226

13.2 设计思路分析 226

13.2.1 系统总体结构 227

13.2.2 如何选择气压传感器 227

13.2.3 如何选择A/D转换器件 228

13.3 硬件电路设计 229

13.3.1 主要器件 229

13.3.2 电路原理图及说明 230

13.4 软件设计 232

13.4.1 如何由频率计算出气压值 232

13.4.2 程序流程 232

13.4.3 程序说明 233

13.5 实例总结 235

第14章 单片机实现GPS定位设计 236

14.1 实例说明 236

14.2 设计思路分析 236

14.2.1 GPS系统及基本工作原理 237

14.2.2 如何选择GPS器件 238

14.3 硬件电路设计 239

14.3.1 主要器件 239

14.3.2 电路原理图及说明 241

14.4 软件设计 242

14.4.1 GARMIN GPS 25LP的语句格式 242

14.4.2 程序说明 243

14.5 实例总结 246

第三篇 控制系统 247

第15章 单片机控制的步进电机系统 248

15.1 实例说明 248

15.2 设计思路分析 248

15.2.1 步进电机的工作原理 249

15.2.2 步进电机的控制 251

15.2.3 脉冲分配与驱动芯片的选取 252

15.3 硬件电路设计 253

15.3.1 结构框图 253

15.3.2 主要器件 254

15.3.3 电路原理图及说明 255

15.4 软件设计 258

15.4.1 程序流程 258

15.4.2 程序说明 258

15.5 实例总结 260

第16章 基于MAX1898的智能充电器设计 262

16.1 实例说明 262

16.2 设计思路分析 263

16.2.1 为何需要实现充电器的智能化 263

16.2.2 如何选择电池充电芯片 263

16.2.3 MAX1898的充电工作原理 264

16.3 硬件电路设计 266

16.3.1 主要器件 266

16.3.2 电路原理图及说明 267

16.4 软件设计 270

16.4.1 程序流程 270

16.4.2 程序说明 271

16.5 实例总结 272

第17章 基于DS12C887的实时日历时钟显示系统设计 273

17.1 实例说明 273

17.2 设计思路分析 274

17.2.1 选择合适的日历时钟芯片 274

17.2.2 如何由DS12C887芯片获取时间信息 274

17.3 硬件电路设计 275

17.3.1 结构框图 275

17.3.2 主要器件 275

17.3.3 电路原理图及说明 277

17.4 软件设计 279

17.4.1 DS12C877的内存空间 279

17.4.2 程序流程 281

17.4.3 程序代码及说明 281

17.5 实例总结 284

第18章 单片机实现接触式IC卡读写 285

18.1 实例说明 285

18.2 设计思路分析 285

18.2.1 选择IC卡 286

18.2.2 选择带有SPI接口的单片机 286

18.3 硬件电路设计 287

18.3.1 主要器件 287

18.3.2 电路原理图及说明 288

18.4 软件设计 290

18.4.1 单片机AT89S8252的SPI寄存器 290

18.4.2 IC卡芯片AT45D041A的内存空间与指令 291

18.4.3 程序流程 293

18.4.4 程序说明 294

18.5 实例总结 298

第19章 单片机实现非接触式IC卡读写 299

19.1 实例说明 299

19.2 设计思路分析 300

19.2.1 Mifare1射频IC卡 300

19.2.2 H6152读写模块 302

19.3 硬件电路设计 302

19.3.1 主要器件 303

19.3.2 电路原理图及说明 304

19.4 软件设计 305

19.4.1 H6152内部寄存器 305

19.4.2 H6152通信协议与控制命令 307

19.4.3 程序流程 310

19.4.4 程序说明 311

19.5 实例总结 319

第四篇 信号与算法实现 321

第20章 单片机实现智能信号发生器 322

20.1 实例说明 322

20.2 设计思路分析 323

20.2.1 信号发生芯片MAX038 323

20.2.2 如何在单片机系统中使用MAX038 324

20.3 硬件电路设计 325

20.3.1 主要器件 325

20.3.2 电路原理图及说明 326

20.4 软件设计 328

20.4.1 程序流程 329

20.4.2 程序说明 329

20.5 实例总结 331

第21章 单片机实现步进式PWM信号输出 332

21.1 实例说明 332

21.2 设计思路分析 332

21.2.1 PWM控制 333

21.2.2 选择合适的外部计数芯片 333

21.3 硬件电路设计 334

21.3.1 主要器件 334

21.3.2 电路原理图及说明 335

21.4 软件设计 336

21.4.1 8254的内部控制字和计数寄存器 336

21.4.2 程序说明 338

21.5 实例总结 339

第22章 单片机实现CRC算法 340

22.1 实例说明 340

22.2 CRC原理 341

22.3 算法设计与程序实现 342

22.3.1 按位计算CRC 342

22.3.2 按字节计算CRC 343

22.3.3 按半字节计算CRC 346

22.3.4 主程序及测试结果 347

22.4 实例总结 348

第五篇 通信传输系统 350

第23章 单片机实现点对点的数据传输 350

23.1 实例说明 350

23.2 设计思路分析 350

23.2.1 串行通信基本原理 350

23.2.2 接口电平转换 352

23.3 硬件电路设计 353

23.3.1 结构框图 353

23.3.2 主要器件 353

23.3.3 电路原理图及说明 354

23.4 软件设计 355

23.4.1 协议设计 355

23.4.2 主机程序流程及代码 356

23.4.3 从机程序流程及代码 359

23.5 实例总结 361

第24章 单片机实现点对多点的数据传输 362

24.1 实例说明 362

24.2 设计思路分析 363

24.2.1 如何实现从机识别 363

24.2.2 51单片机串口的多机通信功能 363

24.3 硬件电路设计 364

24.4 软件设计 365

24.4.1 协议设计 365

24.4.2 主机程序流程及代码 366

24.4.3 从机程序流程及代码 369

24.5 实例总结 372

第25章 基于双口RAM的单片机间通信 373

25.1 实例说明 373

25.2 设计思路分析 374

25.2.1 双口RAM的工作原理 374

25.2.2 双口RAM芯片IDT7005 374

25.3 硬件电路设计 377

25.3.1 主要器件 377

25.3.2 电路原理图及说明 378

25.4 软件设计 379

25.4.1 地址空间分配和旗语、中断逻辑 380

25.4.2 程序说明 381

25.5 实例总结 384

第26章 单片机实现短距离无线传输 385

26.1 实例说明 385

26.2 设计思路分析 386

26.2.1 如何选择无线通信芯片 386

26.2.2 无线数据传输模块PTR2000和无线通信芯片nRF401 387

26.2.3 如何使用PTR2000实现无线数据传输 388

26.3 硬件电路设计 388

26.3.1 无线通信芯片nRF401引脚功能说明 388

26.3.2 无线数据传输模块PTR2000引脚功能说明 389

26.3.3 单片机和PTR2000接口电路设计 390

26.3.4 PC机和PTR2000接口电路设计 391

26.4 软件设计 392

26.4.1 串行无线通信协议设计 393

26.4.2 程序流程 393

26.4.3 程序说明 394

26.5 实例总结 398

第27章 单片机实现I2C总线通信 399

27.1 实例说明 399

27.2 设计思路分析 400

27.2.1 I2C总线的工作原理 400

27.2.2 I2C总线的通信时序 400

27.3 硬件电路设计 402

27.4 软件设计 402

27.4.1 程序流程 403

27.4.2 程序说明 403

27.5 实例总结 407

第28章 单片机实现485总线现场监测系统 408

28.1 实例说明 408

28.2 设计思路分析 409

28.2.1 RS-485总线 409

28.2.2 RS-485驱动芯片选取 412

28.2.3 MAX481构成的485总线网络 413

28.3 硬件电路设计 414

28.3.1 232/485转接卡 414

28.3.2 带有485接口的单片机系统 415

28.4 软件设计 417

28.4.1 通信协议设计 417

28.4.2 程序流程 418

28.4.3 程序说明 418

28.5 实例总结 424

第六篇 网络应用与电源监控 426

第29章 单片机实现以太网接口 426

29.1 实例说明 426

29.2 设计思路分析 427

29.2.1 以太网协议 427

29.2.2 选择合适的以太网控制芯片 428

29.3 硬件电路设计 429

29.3.1 主要器件 429

29.3.2 电路原理图及说明 432

29.4 软件设计 434

29.4.1 地址空间与寄存器 434

29.4.2 程序说明 436

29.5 实例总结 439

第30章 单片机监控电路设计 440

30.1 实例说明 440

30.2 设计思路分析 441

30.2.1 一种简单的单片机上电复位电路 441

30.2.2 单片机监控芯片的选取 442

30.3 硬件电路设计 443

30.3.1 原理图设计 444

30.3.2 监控芯片的外围电路设计 444

30.4 软件设计 445

30.5 实例总结 446

第31章 光电隔离电路设计 447

31.1 实例说明 447

31.2 设计思路分析 448

31.2.1 光耦器件的工作原理 448

31.2.2 光耦器件的典型应用 449

31.2.3 如何选择光耦器件 450

31.3 硬件电路设计 451

31.3.1 主要器件 451

31.3.2 电路原理图及说明 452

31.4 实例总结 454