《51单片机应用开发案例手册》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:程国钢编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2011
  • ISBN:9787121148460
  • 页数:449 页
图书介绍:本书主要介绍如何在51单片机的应用系统中使用51单片机的内部资源和外围器件,包括I/O引脚、外部中断、定时/计数器、串行接口、人机交互通道、数据采集和输出通道、存储器模块、通信模块。另外,还介绍了51单片机C语言部分库函数的详细使用方法及RTX51操作系统的工作原理和使用方法。书中实例的电路原理图及程序源代码可以到http://yydz.phei.com.cn资源下载栏目下载,读者根据实际需要稍加修改即可使用。?

第1章 51单片机I/O引脚应用实例 1

1.1 51单片机I/O引脚模块基础 1

1.2 I/O引脚驱动LED 2

1.2.1 LED的工作原理 2

1.2.2应用实例——LED闪烁和流水灯 3

1.3 I/O引脚驱动数码管 5

1.3.1单位数码管的工作原理 5

1.3.2应用实例——流水数字 7

1.3.3多位数码管的工作原理 9

1.3.4应用实例——多位数字显示和流水数码管显示 10

1.4 I/O引脚驱动继电器 13

1.4.1继电器的工作原理 13

1.4.2功率驱动器件的工作原理 14

1.4.3应用实例——轮流加热显示系统 17

1.5 I/O引脚驱动蜂鸣器 18

1.5.1蜂鸣器的工作原理 19

1.5.2应用实例——定时报警和音乐播放 20

1.6 I/O引脚扩展独立按键、键盘和拨码开关 23

1.6.1独立按键的工作原理 23

1.6.2应用实例——按键指示和按键发声 25

1.6.3行列扫描键盘的工作原理 28

1.6.4应用实例——计算器键盘 29

1.6.5拨码开关的工作原理 31

1.6.6应用实例——地址码设定 31

1.7 I/O引脚驱动电动机 34

1.7.1直流电动机的工作原理 34

1.7.2应用实例——按键控制直流电动机 35

1.7.3步进电动机的工作原理 37

1.7.4应用实例——按键控制步进电动机 38

第2章51单片机外部中断应用实例 41

2.1 51单片机中断和外部中断模块基础 41

2.1.1中断和外部中断的相关控制 41

2.1.2中断的处理 43

2.1.3编写中断服务函数 44

2.2应用实例——外部中断计数 45

2.3应用实例——外部电平中断实验 47

2.4应用实例——联合中断申请 49

第3章51单片机的定时/计数器应用实例 52

3.1 51单片机定时/计数器基础 52

3.1.1定时/计数器的寄存器 52

3.1.2定时/计数器的工作方式 53

3.1.3定时/计数器的中断 54

3.2 51单片机定时/计数器基础应用 54

3.2.1定时器应用实例1—— T0方波发生器 54

3.2.2定时器应用实例2—— T1方波发生器 56

3.2.3定时器应用实例3—— PWM波形发生器 56

3.2.4计数器应用实例1——按键灯控制 58

3.2.5计数器应用实例2——按键计数 59

3.2.6门控信号应用实例——脉冲宽度测量 60

3.3 51单片机定时/计数器综合应用 61

3.3.1应用实例——秒表 61

3.3.2应用实例——门铃 64

3.3.3应用实例——交通灯 65

3.3.4应用实例——声光报警 69

第4章51单片机的串行模块应用实例 72

4.1 51单片机串行模块基础 72

4.1.1串行模块的寄存器 72

4.1.2串行模块的工作方式 73

4.1.3串行模块的中断 76

4.2工作方式0应用实例——双机高速通信 76

4.3工作方式1应用实例1——单片机和PC通信 79

4.4工作方式1应用实例2——用单片机U1控制U2外围LED闪烁 80

4.5工作方式1应用实例3——单片机U1和单片机U2双向控制 83

4.6工作方式2应用实例——多点温度采集 88

第5章51单片机常用C语言库函数应用实例 91

5.1 51单片机C语言库函数基础 91

5.1.1库文件和头文件分类 91

5.1.2库函数实例应用电路 92

5.2 ASCII字符分类和转换函数 94

5.2.1 isdigit函数应用实例 95

5.2.2 toint函数应用实例 97

5.2.3 toupper函数应用实例 98

5.3内部函数 99

5.3.1_ crol_函数应用实例 100

5.3.2_nop_函数应用实例 101

5.4数学函数 102

5.4.1 abs函数应用实例 103

5.4.2 floor函数应用实例 104

5.4.3 modf函数应用实例 104

5.4.4sqrt函数应用实例 105

5.5输入/输出函数 106

5.5.1putchar函数应用实例 107

5.5.2printf函数应用实例 108

5.5.3sprintf函数应用实例 111

5.6数据类型转换和存储器定位函数 113

5.6.1atoi函数应用实例 114

5.6.2atof函数应用实例 115

5.6.3rand函数应用实例 117

5.6.4srand函数应用实例 118

5.7字符串操作函数库 121

5.7.1memccpy函数应用实例 122

5.7.2strlen函数应用实例 123

5.7.3strcat函数应用实例 124

5.7.4stmcpy函数应用实例 126

5.7.5strcmp函数应用实例 127

5.7.6strstr函数应用实例 128

5.8编译常见报警错误及解决方法应用实例 130

5.8.1变量未被使用警告(Warning280) 131

5.8.2函数未被声明警告(WarningC206) 131

5.8.3头文件无法打开错误(ErrorC318) 132

5.8.4函数名称重复定义错误(ErrorC237) 133

5.8.5函数未被调用警告 133

5.8.6函数未定义警告(WarningC206) 134

5.8.7内存空间溢出错误警告 135

5.8.8函数重入警告 135

5.8.9常见Keil编译错误 136

第6章51单片机内部资源高阶应用实例 140

6.1扩展外部中断应用实例 140

6.1.1应用实例——使用定时/计数器来扩展外部中断 140

6.1.2应用实例——使用串行模块来扩展外部中断 142

6.2使用I/O口进行串行通信应用实例 143

6.3串行通信波特率自适应应用实例 147

6.4使用软件扩展多级中断应用实例 150

6.5可控PWM输出应用实例 153

6.6高速串行通信应用实例 156

6.6.1波特率固定高速串行通信应用实例 156

6.6.2波特率可变高速串行通信应用实例 157

6.7 51单片机内部资源综合应用实例——投票系统 158

6.7.1系统设计 158

6.7.2应用代码设计 163

第7章RTX51实时多任务操作系统应用实例 180

7.1RTX51基础 180

7.1.1RTX51占用的资源 181

7.1.2RTX51的实现机制 182

7.1.3应用实例——一个RTX51上的最简单应用 182

7.2RTX51的工作原理 183

7.2.1时间片管理原理 183

7.2.2任务管理原理 184

7.2.3事件管理原理 184

7.2.4任务调度管理 185

7.2.5堆栈管理 186

7.3RTX51的配置 186

7.3.1RTX51的基础配置 186

7.3.2RTX51的库文件配置 188

7.3.3RTX51的优化配置 188

7.4RXT51的库函数 188

7.4.1isr_send_signal函数 189

7.4.2isr_set_ready函数 189

7.4.3os_clear_signal函数 189

7.4.4os_create_task函数 190

7.4.5os_delete_task函数 190

7.4.6os_reset_interval函数 191

7.4.7os_running_task_id函数 191

7.4.8os_send_signal函数 192

7.4.9os_set_ready函数 192

7.4.10os_switch_task函数 193

7.4.11os_wait函数 193

7.5RTX5l的使用方法 194

7.5.1建立用户项目 194

7.5.2修改RTX51配置 195

7.5.3编写用户代码 195

7.5.4RTX5l的编译 196

7.5.5RTX51的调试 196

7.6应用实例——基于RTX51的交通灯 197

第8章51单片机的外部资源扩展方法 207

8.1数据-地址总线扩展方法 207

8.2串行模块扩展方法 209

8.3 I2C总线扩展方法 209

8.3.1 I2C总线扩展原理 210

8.3.2应用实例——使用I/O端口来模拟I2c总线 212

8.4SPI总线扩展方法 217

8.4.1SPI总线扩展原理 217

8.4.2应用实例——使用I/O端口来模拟SPI总线 219

8.5 1-wire(单线)总线扩展方法 220

8.5.1 1-wire总线扩展原理 220

8.5.2应用实例——使用I/O端口来模拟1-wire总线 222

第9章51单片机的I/O引脚扩展应用 224

9.1使用74系列芯片来扩展I/O引脚 224

9.1.1应用实例——使用74273来扩展输出引脚 224

9.1.2应用实例——使用74244来扩展输入引脚 227

9.1.3应用实例——使用74138来扩展输出引脚 230

9.2使用串行口来扩展I/O引脚 232

9.2.1使用串行口来扩展输出I/O引脚 232

9.2.2使用串行口来扩展输入I/O引脚 234

9.3使用I/O引脚扩展I/O引脚 237

9.4使用NEC8255扩展I/O引脚 240

9.4.1NEC8255芯片介绍 240

9.4.2NEC8255的典型扩展方法 242

9.4.3应用实例——8位8段数码管驱动 243

9.4.4应用实例——4x8行列扫描键盘 245

第10章51单片机人机交互通道扩展 248

10.1使用MAX7219扩展多位数码管 248

10.1.1MAX7219介绍 248

10.1.2MAX7219的数据格式 249

10.1.3MAX7219的寄存器 249

10.1.4应用实例——用MAX7219驱动8位数码管 253

10.2使用CH452扩展数码管和按键 255

10.2.1CH452芯片介绍 255

10.2.2CH452的应用电路 260

10.2.3应用实例——用CH452驱动4位数码管和4x4行列键盘 264

10.3使用1602液晶来显示数字和字符 268

10.3.11602字符液晶介绍 269

10.3.21602字符液晶的应用电路和应用流程 271

10.3.3应用实例——1602字符液晶循环显示字符 272

10.4使用12864液晶来显示汉字和图形 275

10.4.112864液晶模块介绍 276

10.4.212864液晶模块的操作流程 278

10.4.3应用实例——12864液晶模块的库函数 279

10.4.4应用实例——12864液晶显示汉字和图形 284

第11章51单片机数据采集和输出通道扩展 287

11.1A/D数据采集通道扩展 287

11.1.1A/D数据采集通道工作原理 287

11.1.2ADC0809并行A/D芯片扩展 290

11.1.3TLC2543串行多通道A/D芯片扩展 293

11.1.4ADS1100高精度A/D芯片扩展 301

11.2D/A数据输出通道扩展 306

11.2.1D/A芯片的分类和特点 307

11.2.2DAC0832并行D/A芯片扩展 308

11.2.3MAX517串行D/A芯片扩展 314

11.3DS18B20温度芯片扩展 317

11.3.1DS18B20温度传感器介绍 318

11.3.2应用实例——串口温度采集系统 322

11.4PCF8563时钟芯片扩展 324

11.4.1PCF8563时钟芯片介绍 325

11.4.2应用实例——初始化PCF8563时钟 328

11.4.3应用实例——读PCF8563时钟信息 330

11.4.4应用实例——设置PCF8563的报警信息 330

11.4.5应用实例——PCF8563的秒中断输出 332

11.4.6应用实例——PCF8563的秒时钟信号输出 333

第12章51单片机的存储器扩展应用 339

12.1ROM存储器和RAM存储器扩展 339

12.1.1ROM存储器扩展 339

12.1.2RAM存储器扩展 341

12.1.3应用实例——6264的数据读/写 344

12.2E2PROM存储器扩展 346

12.2.1AT24系列E2PROM介绍 346

12.2.2AT24系列E2PROM的操作 348

12.2.3应用实例——AT24C04的字节写 350

12.2.4应用实例——AT24C04的连续读 351

12.2.5应用实例——用AT24C04存放音乐数据 352

12.3SLE4442接触式加密IC存储卡扩展 354

12.3.1SLE4442卡基础 354

12.3.2SLE4442卡的工作模式 356

12.3.3SLE4442卡的命令 357

12.3.4应用实例——SLE4442卡的库函数 358

12.3.5应用实例——基于SLE4442的简易电子房卡 364

12.4U盘存储器扩展 366

12.4.1CH376基础 366

12.4.2CH376的命令 368

12.4.3CH376的硬件接口 371

12.4.4CH376的应用电路 374

12.4.5CH376的U盘扩展应用 375

12.4.6应用实例——CH376的库函数 376

12.4.7应用实例——使用CH376建立文件并写入数据 386

第13章51单片机通信通道扩展 389

13.1RS-232-C协议通信扩展 389

13.2RS-422/485协议通信扩展 391

13.3双口RAM通信扩展 395

13.3.1IDT7132双口RAM介绍 395

13.3.2应用实例——使用IDT7132进行双单片机通信 397

13.4无线数据通信扩展 400

13.4.1 PTR8000无线模块介绍 400

13.4.2 PTR8000无线模块的应用电路 405

13.4.3 51单片机扩展PTR8000无线模块的软件工作流程 406

13.4.4应用实例——无线按键指示系统终端 408

第14章51单片机应用系统综合设计 414

14.1 51单片机应用系统设计基础 414

14.1.1 51单片机应用系统设计流程 414

14.1.2 51单片机应用系统设计原则 415

14.2 51单片机应用系统——太阳能电池监控模块 416

14.2.1系统需求分析 416

14.2.2系统设计 416

14.2.3系统应用代码设计 423

14.3 51单片机应用系统——手持倾角仪 436

14.3.1系统需求分析 436

14.3.2系统设计 436

14.3.3系统应用代码设计 442