《51单片机C程序应用实例详解》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:孙焕铭等编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2011
  • ISBN:9787512402898
  • 页数:372 页
图书介绍:本书以学习C51编程为主线,系统的介绍了51单片机硬件结构、单片机内部资源及其常用外围器件的驱动方法,通过结合实例由浅入深的进行讲解,使读者在系统地学习C51编程的同时,又能学习常用器件的应用,大大提高了学习效率。

第1章 单片机基础知识 1

1.1单片机概述 1

1.2单片机特点 1

1.3单片机的构成结构 2

1.3.1单片机外部引脚及其功能 2

1.3.2单片机内部结构 4

1.3.3 MCS-51单片机的工作时序 5

1.4 MCS-51单片机工作方式 8

1.4.1复位方式 8

1.4.2程序执行方式 10

1.4.3省电工作方式 10

1.5单片机内部资源 11

1.5.1定时器/计数器基本结构 11

1.5.2中断系统 16

1.5.3 MCS-51单片机内部存储结构 20

1.5.4 MCS-51的串行通信口 26

第2章 单片机C语言程序设计方法 32

2.1单片机C语言设计方法及优点 32

2.1.1 C语言的特点 32

2.1.2算法概念 33

2.1.3结构化程序设计方法 34

2.2 C语言程序基本结构 35

2.2.1顺序结构 36

2.2.2选择结构 36

2.2.3循环结构 37

2.3 C语言数据类型及表达式 38

2.3.1 C51基本数据类型 38

2.3.2常量和变量 41

2.3.3变量及其存储模式 43

2.3.4重新定义数据类型 47

2.3.5 C51中使用变量的原则 47

2.3.6运算符与表达式 48

2.3.7关系运算符 55

2.3.8逻辑运算符 56

2.3.9位运算符 58

2.3.10 sizeof运算符 61

2.4程序流程控制 62

2.4.1循环控制 62

2.4.2条件分支控制 64

2.4.3无条件转移语句(goto) 66

2.5数组 67

2.5.1一维数组 67

2.5.2二维数组 67

2.5.3字符数组 68

2.5.4数组的运用 68

2.5.5数组的存储方式 69

2.6指针 70

2.6.1指针的概念 70

2.6.2指针的定义 71

2.6.3指针变量的引用 72

2.6.4数组指针和指向数组的指针变量 73

2.6.5指针的地址计算 75

2.6.6 C51中的指针类型 76

2.7结构体 82

2.7.1结构体的定义和引用 83

2.7.2结构体数组 85

2.7.3指向结构体数据的指针 86

2.8枚举 88

2.9共用体 90

2.10 51单片机内部资源在C51中的定义 93

2.10.1特殊功能寄存器定义 93

2.10.2并行接口定义 97

2.11 C51函数 98

2.11.1函数的定义 99

2.11.2函数的调用 100

2.11.3函数的嵌套和递归调用 101

2.12模块化编程方法 103

2.13 C和ASM混合编程 105

2.14程序的优化方法 109

2.14.1程序结构的优化 109

2.14.2代码的优化 110

第3章LED基本程序实验 114

3.1实验说明 114

3.2硬件原理详解 114

3.3程序设计 115

3.4实验总结 118

3.5课后习题 118

第4章LED PWM调光实验 119

4.1实验说明 119

4.2 PWM简介 120

4.3程序设计 121

4.4实验总结 125

4.5课后习题 125

第5章4位7段数码管动态扫描实验 126

5.1实验说明 126

5.2硬件原理详解 126

5.2.1数码管内部结构及硬件原理图 126

5.2.2数码管硬件设计方法 128

5.3单片机驱动数码管的方法 129

5.4程序设计 131

5.4.1静态驱动数码管实例 131

5.4.2动态扫描驱动数码实例 131

5.5实验总结 134

5.6课后习题 134

第6章 按键扫描实验 135

6.1实验说明 135

6.2硬件原理 135

6.2.1硬件原理图 135

6.2.2按键时序分析 136

6.3多种类型按键识别方法 136

6.3.1独立按键识别 137

6.3.2矩阵键盘识别方法 139

6.3.3键盘长按、短按识别 141

6.4实验总结 146

6.5课后习题 146

第7章 单片机小电子琴 147

7.1实验说明 147

7.2硬件原理详解 147

7.2.1硬件原理图 147

7.2.2蜂鸣器工作原理 147

7.2.3单片机驱动蜂鸣器方法 148

7.3小电子琴设计实验 150

7.3.1程序流程 150

7.3.2程序说明 150

7.4实验总结 153

7.5课后习题 153

第8章LCD1602液晶显示器实验 154

8.1实验说明 154

8.2硬件原理详解 154

8.2.1硬件原理图 154

8.2.2 LCD1602结构及引脚功能 155

8.2.3 LCD1602显示指令系统 157

8.2.4 LCD1602工作时序 158

8.2.5 LCD1602 8位总线工作方式 159

8.2.6 LCD1602 4位总线工作方式 160

8.3 LCD1602初始化程序设计 160

8.3.1程序流程 160

8.3.2程序说明 160

8.4单个字符程序设计 161

8.4.1程序流程 161

8.4.2程序说明 162

8.5一行字符程序设计 163

8.5.1程序流程 163

8.5.2程序说明 163

8.6实验总结 164

8.7课后习题 164

第9章LCD3310液晶显示器实验 165

9.1实验说明 165

9.2硬件原理详解 165

9.2.1硬件原理图 165

9.2.2 LCD3310结构及引脚功能 165

9.2.3 LCD3310显示指令系统 167

9.2.4 LCD3310工作时序 169

9.3 LCD3310初始化程序设计 170

9.3.1程序流程 170

9.3.2程序说明 170

9.4字符显示程序设计 171

9.4.1字符的取模方式 171

9.4.2程序流程 173

9.4.3程序说明 174

9.5图形程序设计 177

9.5.1图形的取模方式 177

9.5.2程序流程 178

9.5.3程序说明 179

9.6实验总结 179

9.7课后习题 179

第10章LCD12864液晶显示器实验 180

10.1实验说明 180

10.2硬件原理详解 180

10.2.1硬件原理图 181

10.2.2 LCD128X64结构及引脚功能 182

10.2.3 LCD128X64显示指令系统 182

10.2.4 LCD128X64工作时序 184

10.2.5 LCD128X64 8位总线工作方式 186

10.2.6 LCD128X64 4位总线工作方式 187

10.2.7 LCD128X64串行通信工作方式 188

10.3字符程序设计 190

10.3.1程序流程 190

10.3.2程序说明 190

10.4图形程序设计 192

10.4.1程序流程 192

10.4.2程序说明 192

10.5实验总结 195

10.6课后习题 195

第11章 温度检测DS18B20实验 196

11.1实验说明 196

11.2硬件原理详解 196

11.2.1 DS18B20引脚、封装及其特性 196

11.2.2 DS18B20内部结构 197

11.2.3 DS18B20的应用电路 198

11.3单总线工作时序 200

11.3.1总线复位 200

11.3.2写数据位 201

11.3.3读数据位 202

11.4 DS18B20的操作 203

11.4.1初始化 203

11.4.2 ROM操作命令 203

11.4.3功能命令 204

11.4.4 DS18B20的命令序列 206

11.4.5 DS18B20的温度数据结构 206

11.5 DS18B20的温度检测试验 208

11.6实验总结 210

11.7课后练习 210

第12章 时钟芯片DS1302实验 211

12.1实验说明 211

12.2硬件原理图详解 211

12.2.1硬件原理图 211

12.2.2 DS1302的引脚与结构 211

12.2.3 DS1302工作时序 213

12.2.4 DS1302寄存器 214

12.3 DS1302时钟程序设计 217

12.3.1 DS1302的底层驱动 217

12.3.2 DS1302的各种操作 219

12.3.3 DS1302的应用演示 221

12.4实验总结 222

12.5课后练习 222

第13章I2C总线存储器24C08 223

13.1实验说明 223

13.2 I2C总线介绍 223

13.2.1 I2C总线的基本原理 223

13.2.2 I2C协议的基本概念 224

13.2.3 I2C总线的数据传输 230

13.3存储器24C08 233

13.3.1 24C08的引脚及应用原理图 233

13.3.2 24C08操作方式 235

13.4 24C08的存储实验 241

13.5实验总结 246

13.6课后习题 246

第14章A/D转换 ADC0832实验 247

14.1实验说明 247

14.2硬件原理图详解 247

14.2.1 ADC0832简介 247

14.2.2 ADC0832引脚及硬件连接 247

14.2.3 ADC0832的工作时序 248

14.3 C51对ADC0832控制的实现 250

14.3.1程序流程及其程序实现 250

14.3.2 ADC0832程序转换实验 251

14.4实验总结 252

14.5课后习题 252

第15章 红外遥控解码实验 253

15.1实验说明 253

15.2硬件原理详解 253

15.2.1硬件原理图 254

15.2.2红外编解码基础知识 255

15.2.3单片机解红外码方法 256

15.3红外读码遥控实验 256

15.3.1程序流程 256

15.3.2程序说明 256

15.4实验总结 258

15.5课后习题 258

第16章PS/2键盘接口 259

16.1实验说明 259

16.2 PS/2接口硬件 259

16.2.1接口简介 259

16.2.2通信协议简介 260

16.3单片机识别PS/2键盘方法 262

16.4键盘的编码和解码 269

16.4.1 PS/2键盘的编码 269

16.4.2 PS/2键盘的解码 272

16.4.3键盘按键的显示 274

16.5实验总结 275

16.6课后练习 275

第17章STC单片机内部EEPROM实验 276

17.1实验说明 276

17.2 EEPROM介绍 276

17.2.1 STC89C52内部EEPROM资源 276

17.2.2 STC89C52内部EEPROM读写方法 278

17.2.3 STC89C52EEPROM读写实验 281

17.3实验总结 283

17.4课后练习 283

第18章 串口通信试验 284

18.1实验说明 284

18.2硬件原理详解 284

18.2.1硬件原理图 284

18.2.2串口通信电路工作原理 285

18.3串口和计算机通信实验 285

18.3.1程序设计方法 285

18.3.2实验程序说明 288

18.4实验总结 289

18.5课后习题 289

第19章 综合实验1:定时器全功能LCD1602时钟实验 290

19.1实验说明 290

19.2硬件原理详解 290

19.2.1硬件原理图 290

19.2.2程序设计要点 290

19.3时钟设计实验 291

19.3.1按键读取 292

19.3.2按键处理 294

19.3.3时间显示 298

19.3.4闪动显示 299

19.3.5闹铃判断与响应 301

19.3.6数据存储与读取 302

19.4实验总结 304

19.5课后习题 304

第20章 综合实验2:红外遥控万年历实验 305

20.1实验说明 305

20.2硬件原理详解 305

20.2.1硬件原理图 305

20.2.2程序设计要点 305

20.3公历到农历转换 306

20.3.1公历到农历转换的基本原理 307

20.3.2公历到农历转换程序流程 308

20.3.3公历转换农历程序说明 309

20.4红外遥控 311

20.4.1红外遥控流程图 311

20.4.2红外遥控程序 311

20.5实验总结 313

20.6课后习题 313

第21章 综合实验3:单片机演奏实验 314

21.1实验说明 314

21.2硬件原理详解 314

21.2.1硬件原理图 314

21.2.2蜂鸣器演奏歌曲 314

21.3程序设计 316

21.3.1乐谱的转换 316

21.3.2程序流程 318

21.3.3程序说明 320

21.4实验总结 323

21.5课后习题 323

第22章 综合实验4:基于PC键盘的英文打字机 324

22.1实验说明 324

22.2硬件原理详解 324

22.2.1硬件原理图 324

22.2.2程序设计要点 324

22.3英文打字机设计实验 325

22.3.1实现思路 325

22.3.2程序实现 326

22.4实验总结 329

22.5课后习题 329

第23章 综合实验5:简易电压数据采集系统 330

23.1实验说明 330

23.2硬件电路原理 330

23.3数据通信协议设计 331

23.4程序设计 332

23.4.1主函数程序设计 332

23.4.2串口中断接收设计 333

23.5上位机简介 335

23.6实验总结 335

23.7课后习题 335

第24章 综合实验6:基于wJ-V2.0实验板的电池充电器设计 336

24.1实验说明 336

24.2硬件原理详解 336

24.2.1硬件原理图 337

24.2.2硬件设计原理 337

24.2.3程序设计要点 338

24.3电池充电器设计实验 338

24.3.1程序主流程 338

24.3.2获取电池内阻 340

24.3.3计算电压电流及显示 341

24.4实验总结 342

24.5课后习题 342

第25章 综合实验7:步进电机驱动 343

25.1实验说明 343

25.2步进电机介绍 343

25.2.1步进电机的特点 343

25.2.2步进电机的工作方式 344

25.3步进电机的驱动方式 345

25.4步进电机驱动的硬件原理图 346

25.5单片机驱动步进电机的实现 347

25.5.1步进电机的方向控制 347

25.5.2步进电机的速度控制 347

25.5.3软件驱动步进电机的实现 348

25.6步进电机驱动实验 349

25.7实验总结 352

25.8课后习题 352

第26章 综合实验8:驱动16 X 16LED显示屏 353

26.1实验说明 353

26.2硬件原理及设计 353

26.2.1 LED显示屏简介 353

26.2.2显示原理 354

26.3 16 X 16点阵的软件实现 357

26.3.1基本点阵的显示 357

26.3.2 LED点阵的花样显示 358

26.4实验总结 362

26.5课后习题 362

第27章 综合实验9:基于HT9200A的DTMF信号输出设计实验 363

27.1实验说明 363

27.2硬件原理详解 363

27.2.1硬件原理图 363

27.2.2 DTMF工作原理 363

27.2.3 HT9200A内部结构 364

27.2.4 HT9200A工作时序 365

27.2.5单片机驱动HT9200A方法 366

27.3 DTMF驱动实验 366

27.3.1程序流程 366

27.3.2程序说明 367

27.4实验总结 369

27.5课后习题 369

参考文献 370