《单片机应用技术项目教程 C语言版》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:郭志勇主编
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:2011
  • ISBN:9787508480510
  • 页数:274 页
图书介绍:本书是由学校骨干教师且又是项目研发人员和高新企业的工程师共同编写。采用“项目驱动”的编写思路,从职业岗位技能出发,分为技能基础篇和技能提高篇,共有十一个项目28个工作模块以及两个课程设计范例。

项目一 发光二极管LED控制 1

1.1 工作模块1 点亮一个LED 1

1.1.1 用Proteus设计第一个LED控制电路 1

1.1.2 用KeilC51设计第一个C语言LED控制程序 5

1.1.3 用Proteus仿真运行调试 8

1.2 认识单片机 9

1.2.1 单片机概述 9

1.2.2 AT89S52单片机结构 13

1.2.3 AT89S52单片机引脚功能 14

1.2.4 AT89S52单片机最小系统 15

【技能训练1-1】单片机最小系统应用——开关控制LED点亮 17

1.3 工作模块2 LED闪烁控制 18

1.3.1 LED闪烁控制设计与实现 18

1.3.2 C语言程序的基本构成 20

1.3.3 C语言基本语句 22

1.4 技能拓展 音频控制应用 23

1.4.1 音频控制电路 23

1.4.2 音频控制程序 24

【技能训练1-2】报警产生器 24

关键知识点小结 25

问题与讨论 26

项目二 LED循环点亮控制 27

2.1 工作模块3 LED循环点亮控制 27

2.1.1 LED循环点亮电路设计 27

2.1.2 LED循环点亮程序设计 28

2.1.3 并行I/O端口电路 29

【技能训练2-1】P0口外接上拉电阻 32

2.2 MCS-51单片机内存空间 33

2.2.1 数据存储器 34

2.2.2 特殊功能寄存器 35

2.2.3 “头文件包含”处理 38

2.2.4 程序存储器 39

2.3 工作模块4 开关控制LED循环点亮 41

2.3.1 开关控制LED循环点亮电路设计 41

2.3.2 开关控制LED循环点亮程序设计 41

2.3.3 C51数据类型 42

2.3.4 C语言常量与变量 45

2.4 工作模块5 步进电机控制 47

2.4.1 认识步进电机 47

2.4.2 步进电机控制电路设计 48

2.4.3 步进电机控制程序设计 49

2.5 技能拓展 ULN2003A驱动器应用 50

2.5.1 ULN2003A的特点 50

2.5.2 ULN2003A的引脚功能 51

【技能训练2-2】单片机驱动继电器电路设计 51

关键知识点小结 52

问题与讨论 53

项目三 数码管显示控制 54

3.1 工作模块6 数码管循环显示0~9 54

3.1.1 认识数码管 54

3.1.2 数码管循环显示0~9电路设计 56

3.1.3 数码管显示程序设计 57

【技能训练3-1】共阳极LED数码管应用 58

3.2 C语言语句结构 59

3.2.1 关系运算符和关系表达式 59

3.2.2 逻辑运算符和逻辑表达式 59

3.2.3 if语句 60

3.2.4 switch语句 62

3.2.5 循环结构控制语句 63

3.2.6 break语句和continue语句 65

3.3 工作模块7 多个数码管动态扫描显示 66

3.3.1 多个数码管动态显示电路设计 66

3.3.2 多个数码管动态显示程序设计 67

3.3.3 C语言数组 68

3.4 工作模块8 0~99计数显示(静态显示) 70

3.4.1 0~99计数显示电路设计 70

3.4.2 0~99计数显示程序设计 71

3.4.3 C语言函数 72

3.5 技能拓展 7段字型译码器74LS47应用 74

3.5.1 认识74LS47 74

3.5.2 74LS47引脚功能 75

【技能训练3-2】使用74LS47实现0~99计数显示 75

关键知识点小结 76

问题与讨论 77

项目四 键盘的设计与实现 78

4.1 工作模块9 独立式键盘设计与实现 78

4.1.1 认识键盘 78

4.1.2 独立式键盘电路设计 79

4.1.3 独立式键盘程序设计 79

4.1.4 键盘防抖动措施 81

【技能训练4-1】一键多功能按键识别设计与实现 82

4.2 工作模块10 矩阵式键盘设计与实现 84

4.2.1 矩阵式键盘的结构与原理 84

4.2.2 矩阵式键盘电路设计 85

4.2.3 矩阵式键盘程序设计 86

4.3 工作模块11 中断方式矩阵键盘 88

4.3.1 中断概念 88

4.3.2 中断方式矩阵键盘电路设计 89

4.3.3 中断方式矩阵键盘程序设计 89

4.4 MCS-51单片机中断系统 90

4.4.1 单片机中断源 90

4.4.2 中断系统结构 91

4.4.3 中断有关的4个特殊功能寄存器 92

4.4.4 中断处理过程 94

4.4.5 C语言中断服务函数 97

4.5 技能拓展 外部中断源的扩展 98

4.5.1 用定时器扩展外部中断源 98

4.5.2 中断加查询的扩展方法 98

【技能训练4-2】利用外部中断0扩展4个外部中断 99

关键知识点小结 100

问题与讨论 101

项目五 定时/计数器综合应用 102

5.1 工作模块12 生产线自动打包系统 102

5.1.1 认识定时器/计数器 102

5.1.2 生产线自动打包控制电路 104

5.1.3 生产线自动打包控制程序 105

5.2 工作模块13 霓虹灯控制系统 106

5.2.1 定时器/计数器工作方式 106

5.2.2 定时器/计数器有关寄存器 108

5.2.3 霓虹灯控制系统设计与实现 109

【技能训练5-1】0~59秒数码显示(定时器) 111

5.3 工作模块14 电子钟设计与实现 113

5.3.1 电子钟电路设计 113

5.3.2 电子钟程序设计 115

5.4 技能拓展 INTRINS.H头文件的应用 116

5.4.1 _crol、_irol_和_lrol_函数 116

5.4.2 _cror、_iror_和_lror_函数 117

5.4.3 _nop_函数 117

5.4.4 _testbit_函数 117

【技能训练5-2】用_crol_函数实现LED循环点亮 118

关键知识点小结 118

问题与讨论 119

项目六 模拟量输入输出设计与实现 120

6.1 工作模块15 模数转换LED显示 120

6.1.1 模拟量输入输出概述 120

6.1.2 模数转换LED显示电路 121

6.1.3 模数转换LED显示程序 121

6.2 ADC0808/ADC0809模数转换器 122

6.2.1 认识ADC0808/ADC0809模数转换器 122

6.2.2 ADC0808/ADC0809结构及引脚 123

6.2.3 ADC0808/ADC0809工作过程及编程方法 125

【技能训练6-1】采用中断方式完成模数转换LED显示 125

6.3 工作模块16 数字电压表设计与实现 127

6.3.1 数字电压表电路设计 127

6.3.2 数字电压表程序设计 128

6.3.3 C语言结构体类型 129

6.3.4 结构体数组 131

【技能训练6-2】结构体数组的应用 132

6.4 工作模块17 信号发生器设计与实现 132

6.4.1 认识DAC0832数模转换器 133

6.4.2 信号发生器电路设计 135

6.4.3 信号发生器程序设计 136

6.5 技能拓展 直流电机转速控制 137

6.5.1 什么是PWM 138

6.5.2 占空比 138

6.5.3 直流电机转速控制 138

【技能训练6-3】基于ADC0808/0809的直流电机转速控制 138

关键知识点小结 139

问题与讨论 140

项目七 单片机串行通信设计与实现 142

7.1 工作模块18 单片机点对点数据传输 142

7.1.1 串行通信基本知识 142

7.1.2 单片机点对点数据传输电路设计 145

7.1.3 单片机扩展I/O口程序设计 146

7.2 工作模块19 水塔水位单片机远程监控系统 147

7.2.1 单片机串行口结构 147

7.2.2 串行通信设置 149

7.2.3 水塔水位单片机远程监控电路设计 151

7.3 工作模块20 单片机点对多数据传输 155

7.3.1 MCS-51多机通信技术 155

7.3.2 单片机点对多数据传输电路设计 156

7.3.3 单片机点对多数据传输程序设计 157

【技能训练7-1】单片机串行口扩展I/O口电路设计 160

7.4 技能拓展 RS-485串行接口应用 162

【技能训练7-2】全双工RS-485连接电路设计与实现 163

关键知识点小结 163

问题与讨论 164

项目八 键盘控制电机方向和转速 166

8.1 单片机产品开发 166

8.1.1 单片机产品的结构 166

8.1.2 单片机产品开发流程 167

8.2 工作模块21 步进电机控制系统设计与实现 169

8.2.1 步进电机控制技术 170

8.2.2 步进电机控制系统电路设计 170

8.2.3 步进电机控制系统程序设计 171

8.3 工作模块22 直流电机控制系统设计与实现 174

8.3.1 直流电机控制技术 174

8.3.2 直流电机控制系统电路设计 175

8.3.3 直流电机控制系统程序设计 176

8.4 技能拓展 步进电机智能控制 179

8.4.1 步进电机智能控制思路 179

8.4.2 步进电机智能控制组成 180

【技能训练8-1】步进电机智能控制设计 180

关键知识点小结 181

问题与讨论 182

项目九 按键设置液晶电子钟 183

9.1 RT12864阵型液晶显示模块 183

9.1.1 认识RT12864液晶屏 183

9.1.2 RT12864液晶显示模块内部结构 185

9.1.3 控制指令及相应代码 186

9.2 工作模块23 液晶电子钟电路设计与实现 188

9.2.1 按键设置电路设计 189

9.2.2 液晶显示电路设计 189

9.2.3 按键设置液晶电子钟电路设计 189

9.3 工作模块24 液晶电子钟程序设计与实现 191

9.3.1 按键设置程序设计 191

9.3.2 时间程序设计 194

9.3.3 液晶显示程序设计 195

9.4 技能拓展 DS1302时钟芯片的应用 201

9.4.1 认识DS1302 201

9.4.2 DS1302寄存器 201

【技能训练9-1】使用DS1302芯片实现液晶电子钟电路设计 202

关键知识点小结 203

问题与讨论 204

项目十 8路温度采集监控系统 205

10.1 DS18B20温度传感器 205

10.1.1 认识DS18B20 205

10.1.2 DS18B20内部结构及功能 207

10.1.3 DS18B20通信协议 209

10.2 工作模块25 8路温度采集监控电路设计 212

10.2.1 温度采集电路设计 212

10.2.2 监控电路设计 212

10.2.3 8路温度采集监控电路设计与实现 213

10.3 工作模块26 8路温度采集监控程序设计 214

10.3.1 键盘处理程序设计 214

10.3.2 8路温度采集程序设计 216

10.3.3 8路温度显示程序设计 217

10.4 技能拓展 I2C串行扩展 219

10.4.1 I2C总线接口电路 219

10.4.2 I2C总线数据传送操作 219

【技能训练10-1】基于AT24C1024片外程序存储器扩展 221

关键知识点小结 222

问题与讨论 223

项目十一 点阵显示设计与实现 224

11.1 工作模块27 16×32 LED点阵汉字显示设计 224

11.1.1 LED点阵显示系统结构与原理 224

11.1.2 16×32 LED点阵汉字显示电路设计 226

11.1.3 16×32 LED点阵汉字显示程序设计 231

11.2 工作模块28 点阵屏焊接与调试 243

11.2.1 MCU最小系统和串口焊接与调试 244

11.2.2 显示功能板焊接和调试 248

11.2.3 外扩RAM及Flash的焊接和调试 249

11.2.4 外扩KEY和EEPROM焊接与调试 249

11.2.5 系统整体测试 249

11.3 技能拓展 并行I/O接口扩展 250

11.3.1 并行I/O口扩展特性 250

11.3.2 I/O接口扩展常用芯片 250

【技能训练11-1】P0口扩展I/O接口设计与实现 252

关键知识点小结 253

问题与讨论 254

附表1 LED各模块焊接步骤对应元件清单 255

附表2 LED显示模块焊接元件清单 256

课程设计范例一 双向四车道交通灯控制 257

课程设计范例二 出租车计价器 266

参考文献 272