《单片机原理及应用 基于C51的Proteus项目仿真案例》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:杨保亮,杨守良主编;廖长荣,包宋建,张东副主编
  • 出 版 社:北京:北京师范大学出版社
  • 出版年份:2017
  • ISBN:9787303228072
  • 页数:429 页
图书介绍:为了让同学们对单片机课程有深刻的认识,我采用了独创五位一体教学方式,就是生活-机制-机构-接口-应用五个层次进行讲解。主题思想就是单片机的设计就是从生活中提炼机制,然后设计结构去体现机制,设计者在设计结构的过程中为了留了很多控制接口,我们学习单片机的任务就是熟悉单片机的结构和实现的机制的基础上,利用单片机结构的接口去控制单片机的结构去实现机制作用于生活。

第1章 绪论 1

1.1 计算机结构组成 1

1.2 单片机的来源 4

1.3 单片机的定义 5

1.4 单片机的发展历史 5

1.4.1 单片机的历史形态 5

1.4.2 单片机的发展历史 6

1.5 单片机的应用 7

1.6 单片机的发展趋势 8

1.7 单片机的系统的组成 9

1.8 单片机的开发流程 10

1.8.1 硬件平台的开发 10

1.8.2 软件程序的设计 11

1.8.3 硬件和软件的组合 12

1.8.4 开发的流程总结 12

1.9 项目实战:单片机的系统开发初体验——闪烁灯 13

1.9.1 建立文件夹 13

1.9.2 绘制原理图 13

1.9.3 创建一个项目 22

1.9.4 下载程序开运行结果 31

本章小结 34

第2章 深刻剖析单片机的内部结构 35

2.1 51系列单片机简介 35

2.1.1 MCS-51系列单片机 35

2.1.2 51系列单片机 36

2.1.3 STC12C5A60S2系列单片机简介 36

2.1.4 其他单片机系列简介 38

2.2 单片机的外部特征 39

2.2.1 元件封装概述 39

2.2.2 MCS-51封装形式 40

2.2.3 单片机引脚分布及其功能 42

2.3 51单片机内部结构和原理 43

2.3.1 CPU 44

2.3.2 脉冲产生和变换单元 46

2.3.3 存储器 47

2.3.4 单片机并行I/O端口的结构及工作原理 54

2.4 单片机的工作状态 58

2.4.1 程序执行方式(单片机的基本工作方式) 58

2.4.2 复位方式 58

2.5 单片机最小系统 59

2.6 项目实战:流水灯 59

2.6.1 项目内容 59

2.6.2 项目说明 59

2.6.3 硬件原理图 60

2.6.4 软件开发思路 61

2.6.5 程序的源代码 61

2.6.6 程序执行的效果 62

2.6.7 拓展 63

本章小结 63

第3章 单片机C语言程序设计基础 65

3.1 单片机编程语言简介 65

3.1.1 单片机编程语言的发展 65

3.1.2 单片机C语言的优势 66

3.2 单片机程序结构组成 68

3.2.1 单片机整个工程的示意图 68

3.2.2 单片机软件工程的构成 68

3.2.3 程序文件的结构框架 68

3.3 单片机C语言深度剖析 70

3.3.1 C51程序设计基础知识 70

3.3.2 C51预处理 92

3.3.3 C51函数 95

3.4 项目实战:流水灯再续前缘——数组法 101

3.4.1 项目内容 101

3.4.2 项目说明 101

3.4.3 硬件原理图 101

3.4.4 软件开发思路 101

3.4.5 程序的源代码 102

3.4.6 程序执行的效果 103

3.4.7 总结 104

3.5 项目实战:流水灯再续前缘——普通移位法 104

3.5.1 项目内容 104

3.5.2 项目说明 104

3.5.3 硬件原理图 104

3.5.4 软件开发思路 104

3.5.5 程序的源代码 105

3.5.6 程序执行的效果 106

3.5.7 总结 107

3.6 项目实战:流水灯再续前缘——循环移位法 107

3.6.1 项目内容 107

3.6.2 项目说明 107

3.6.3 硬件原理图 107

3.6.4 软件开发思路 107

3.6.5 程序的源代码 108

3.6.6 程序执行的效果 109

3.6.7 总结 110

3.7 项目实战:流水灯再续前缘——变换移位法 110

3.7.1 项目内容 110

3.7.2 项目说明 110

3.7.3 硬件原理图 110

3.7.4 软件开发思路 111

3.7.5 程序的源代码 111

3.7.6 程序执行的效果 112

3.7.7 总结 113

3.8 项目实战:流水灯再续前缘——终结移位法 113

3.8.1 项目内容 113

3.8.2 项目说明 113

3.8.3 硬件原理图 113

3.8.4 软件开发思路 113

3.8.5 程序的源代码 114

3.8.6 程序执行的效果 115

3.8.7 总结 116

3.9 项目实战:流水灯再续前缘——库函数法 116

3.9.1 项目内容 116

3.9.2 项目说明 116

3.9.3 硬件原理图 116

3.9.4 软件开发思路 116

3.9.5 程序的源代码 117

3.9.6 程序执行的效果 118

3.9.7 总结 119

3.10 项目实战:流水灯再续前缘——自制库函数法 120

3.10.1 项目内容 120

3.10.2 项目说明 120

3.10.3 硬件原理图 120

3.10.4 软件开发思路 120

3.10.5 程序的源代码 121

3.10.6 程序执行的效果 122

3.10.7 总结 123

本章小结 123

第4章 单片机输入输出系统的设计及应用 125

4.1 单片机系统的构成 125

4.2 单片机输出系统 126

4.2.1 单片机输出系统简介 126

4.2.2 单片机输出系统编程原理 127

4.2.3 单片机IO口的驱动能力 127

4.3 数码管的工作原理及其应用 128

4.3.1 概述 128

4.3.2 数码管显示器件简介 130

4.4 项目实战:数码管的静态显示数字0~9 133

4.4.1 项目内容 133

4.4.2 项目说明 133

4.4.3 硬件原理图 133

4.4.4 软件开发思路 133

4.4.5 程序的源代码 134

4.4.6 程序执行的效果 135

4.4.7 总结 136

4.5 项目实战:数码管0~99(静态法) 137

4.5.1 项目内容 137

4.5.2 项目说明 137

4.5.3 硬件原理图 137

4.5.4 软件开发思路 137

4.5.5 程序的源代码 138

4.5.6 程序执行的效果 139

4.5.7 总结 141

4.6 项目实战:数码管0~999(静态法) 141

4.6.1 项目内容 141

4.6.2 项目说明 141

4.6.3 硬件原理图 141

4.6.4 软件开发思路 141

4.6.5 程序的源代码 142

4.6.6 程序执行的效果 144

4.6.7 总结 145

4.7 项目实战:数码管0~9999(静态法) 145

4.7.1 项目内容 145

4.7.2 项目说明 145

4.7.3 硬件原理图 145

4.7.4 软件开发思路 145

4.7.5 程序的源代码 146

4.7.6 程序执行的效果 148

4.7.7 总结 150

4.8 项目实战:数码管1234(动态法) 150

4.8.1 项目内容 150

4.8.2 项目说明 150

4.8.3 硬件原理图 150

4.8.4 软件开发思路 150

4.8.5 程序的源代码 151

4.8.6 程序执行的效果 152

4.8.7 总结 152

4.9 项目实战:数码管59s倒计时(动态法) 152

4.9.1 项目内容 152

4.9.2 项目说明 152

4.9.3 硬件原理图 153

4.9.4 软件开发思路 154

4.9.5 程序的源代码 154

4.9.6 程序执行的效果 156

4.9.7 总结 156

4.10 项目实战:数码管5min倒计时(动态法) 157

4.10.1 项目内容 157

4.10.2 项目说明 157

4.10.3 硬件原理图 157

4.10.4 软件开发思路 157

4.10.5 程序的源代码 158

4.10.6 程序执行的效果 160

4.10.7 总结 160

4.11 项目实战:简易数字钟(动态法) 160

4.11.1 项目内容 160

4.11.2 项目说明 160

4.11.3 硬件原理图 161

4.11.4 软件开发思路 161

4.11.5 程序的源代码 162

4.11.6 程序执行的效果 166

4.11.7 总结 166

4.12 液晶显示器LCD1602 167

4.12.1 液晶显示简介 167

4.12.2 1602字符型LCD简介 168

4.12.3 LCD1602的指令说明及时序 170

4.12.4 LCD1602的RAM地址映射及标准字库表 172

4.12.5 LCD1602的一般初始化(复位)过程 173

4.13 项目实战:LCD1602显示字符串 173

4.13.1 项目内容 173

4.13.2 项目说明 173

4.13.3 硬件原理图 173

4.13.4 软件开发思路 174

4.13.5 程序的源代码 174

4.13.6 程序执行的效果 176

4.13.7 总结 177

4.14 项目实战:LCD1602(59~0) 177

4.14.1 项目内容 177

4.14.2 项目说明 177

4.14.3 硬件原理图 177

4.14.4 软件开发思路 177

4.14.5 程序的源代码 178

4.14.6 程序执行的效果 181

4.14.7 总结 182

4.15 单片机输入系统 182

4.15.1 单片机键盘简介 182

4.15.2 键盘的分类 182

4.15.3 单片机与键盘的连接 183

4.15.4 键盘的识别 184

4.16 项目实战:独立按键——按下 185

4.16.1 项目内容 185

4.16.2 项目说明 185

4.16.3 硬件原理图 185

4.16.4 软件开发思路 185

4.16.5 程序的源代码 186

4.16.6 程序执行的效果 188

4.16.7 总结 190

4.17 项目实战:独立按键——抬起 190

4.17.1 项目内容 190

4.17.2 项目说明 190

4.17.3 硬件原理图 190

4.17.4 软件开发思路 190

4.17.5 程序的源代码 191

4.17.6 程序执行的效果 194

4.17.7 总结 194

4.18 项目实战:矩阵按键(扫描法) 194

4.18.1 项目内容 194

4.18.2 项目说明 195

4.18.3 硬件原理图 196

4.18.4 软件开发思路 196

4.18.5 程序的源代码 196

4.18.6 程序执行的效果 200

4.18.7 总结 200

4.19 项目实战:矩阵按键(反转法) 201

4.19.1 项目内容 201

4.19.2 项目说明 201

4.19.3 硬件原理图 201

4.19.4 软件开发思路 201

4.19.5 程序的源代码 202

4.19.6 程序执行的效果 205

4.19.7 总结 206

本章小结 206

第5章 单片机的中断机制及应用 207

5.1 现实生活中的中断现象及其特点 207

5.2 中断机制的剖析 208

5.3 单片机世界中断机制 208

5.4 中断系统结构及其工作原理 209

5.4.1 中断系统结构 209

5.4.2 中断请求标志寄存器 210

5.4.3 中断允许与中断优先级的控制 211

5.4.4 响应中断请求的条件 213

5.4.5 外部中断的响应时间 214

5.4.6 外部中断的触发方式选择 215

5.4.7 中断请求的撤销 215

5.5 中断系统的管理与控制接口 216

5.5.1 中断入口管理 216

5.5.2 中断申请线路管理 216

5.5.3 中断处理者全部内容 217

5.6 中断程序设计思路 217

5.6.1 中断程序设计的目标 217

5.6.2 中断程序设计的步骤 217

5.7 项目实战:外部中断——闪烁灯 218

5.7.1 项目内容 218

5.7.2 项目说明 219

5.7.3 硬件原理图 219

5.7.4 软件开发思路 219

5.7.5 程序的源代码 219

5.7.6 程序执行的效果 220

5.7.7 总结 220

5.8 项目实战:外部中断——流水灯 221

5.8.1 项目内容 221

5.8.2 项目说明 221

5.8.3 硬件原理图 221

5.8.4 软件开发思路 222

5.8.5 程序的源代码 222

5.8.6 程序执行的效果 223

5.8.7 总结 224

5.9 项目实战:外部中断——加减一 224

5.9.1 项目内容 224

5.9.2 项目说明 225

5.9.3 硬件原理图 225

5.9.4 软件开发思路 226

5.9.5 程序的源代码 226

5.9.6 程序执行的效果 228

5.9.7 总结 229

本章小结 229

第6章 定时器和计数器的原理及其应用 231

6.1 现实生活中的定时和计数 231

6.2 计数的基本组成要素 231

6.3 单片机定时计数结构和工作原理 232

6.3.1 定时器/计数器的结构 232

6.3.2 定时器/计数器的四种工作方式 234

6.3.3 对外部输入的计数信号的要求 237

6.4 定时与计数系统的管理与控制接口 238

6.4.1 计数源的实现 238

6.4.2 计数器的实现和管理 238

6.4.3 计数结果 238

6.5 定时与计数器编程思想 238

6.5.1 定时与计数程序设计的目标 238

6.5.2 定时与计数器的编程 239

6.6.3 定时与计数器的编程步骤 239

6.6 项目实战:1s闪烁灯——查询法 240

6.6.1 项目内容 240

6.6.2 项目说明 240

6.6.3 硬件原理图 240

6.6.4 软件开发思路 240

6.6.5 程序的源代码 241

6.6.6 程序执行的效果 242

6.6.7 总结 242

6.7 项目实战:1s流水灯——查询法 242

6.7.1 项目内容 242

6.7.2 项目说明 243

6.7.3 硬件原理图 243

6.7.4 软件开发思路 243

6.7.5 程序的源代码 243

6.7.6 程序执行的效果 245

6.7.7 总结 245

6.8 项目实战:1s闪烁灯——中断法 245

6.8.1 项目内容 245

6.8.2 项目说明 246

6.8.3 硬件原理图 246

6.8.4 软件开发思路 246

6.8.5 程序的源代码 246

6.8.6 程序执行的效果 248

6.8.7 总结 248

6.9 项目实战:1s流水灯中断 249

6.9.1 项目内容 249

6.9.2 项目说明 249

6.9.3 硬件原理图 249

6.9.4 软件开发思路 249

6.9.5 程序的源代码 249

6.9.6 程序执行的效果 251

6.9.7 总结 251

6.10 项目实战:方波产生(中断) 252

6.10.1 项目内容 252

6.10.2 项目说明 252

6.10.3 硬件原理图 252

6.10.4 软件开发思路 253

6.10.5 程序的源代码 253

6.10.6 程序执行的效果 254

6.10.7 总结 254

6.11 项目实战:数码管59s倒计时(定时器中断) 254

6.11.1 项目内容 254

6.11.2 项目说明 255

6.11.3 硬件原理图 255

6.11.4 软件开发思路 255

6.11.5 程序的源代码 255

6.11.6 程序执行的效果 258

6.11.7 总结 258

6.12 项目实战:数码管5min倒计时(定时器中断) 258

6.12.1 项目内容 258

6.12.2 项目说明 258

6.12.3 硬件原理图 258

6.12.4 软件开发思路 258

6.12.5 程序的源代码 260

6.12.6 程序执行的效果 263

6.12.7 总结 263

6.13 项目实战:按键灯(计数器中断) 264

6.13.1 项目内容 264

6.13.2 项目说明 264

6.13.3 硬件原理图 264

6.13.4 软件开发思路 264

6.13.5 程序的源代码 265

6.13.6 程序执行的效果 266

6.13.7 总结 266

6.14 项目实战:按键数码管(计数器中断) 266

6.14.1 项目内容 266

6.14.2 项目说明 266

6.14.3 硬件原理图 266

6.14.4 软件开发思路 266

6.14.5 程序的源代码 267

6.14.6 程序执行的效果 268

6.14.7 总结 268

6.15 项目实战:频率计(计数器中断) 268

6.15.1 项目内容 268

6.15.2 项目说明 269

6.15.3 硬件原理图 270

6.15.4 软件开发思路 270

6.15.5 程序的源代码 270

6.15.6 程序执行的效果 273

6.15.7 总结 273

本章小结 273

第7章 单片机的数据通信机制 275

7.1 计算机通信的基础知识 275

7.1.1 通信无时无处不在 275

7.1.2 计算通信基础知识 275

7.2 单片机的通信机制 279

7.2.1 通信中几个基本要素 279

7.2.2 单片机串行通信结构示意图 279

7.3 单片机串行通信的结构和原理 279

7.3.1 串行口的结构 279

7.3.2 串行口的4种工作方式 281

7.3.3 多机通信 285

7.3.4 波特率的制定 286

7.3.5 串行通信的应用设计 288

7.4 串行口通信系统的管理与控制接口 291

7.4.1 数据的输入和输出通道 292

7.4.2 数据传输格式和数据传输速度的控制 292

7.4.3 传输数据的分割和组装 292

7.4.4 数据传输结束标志 292

7.5 单片机的串行口编程的思想 292

7.5.1 串行口通信程序设计的目标 292

7.5.2 单片机与单片机双机通信的编程要素 292

7.5.3 单片机与单片机双机通信的编程步骤 293

7.6 项目实战:串口数据发送(查询) 293

7.6.1 项目内容 293

7.6.2 项目说明 293

7.6.3 硬件原理图 293

7.6.4 软件开发思路 293

7.6.5 程序的源代码 294

7.6.6 程序执行的效果 296

7.6.7 总结 296

7.7 项目实战:串口数据接收(查询) 296

7.7.1 项目内容 296

7.7.2 项目说明 296

7.7.3 硬件原理图 296

7.7.4 软件开发思路 296

7.7.5 程序的源代码 297

7.7.6 程序执行的效果 299

7.7.7 总结 299

7.8 项目实战:串口数据发送和接收(查询) 299

7.8.1 项目内容 299

7.8.2 项目说明 299

7.8.3 硬件原理图 300

7.8.4 软件开发思路 300

7.8.5 程序的源代码 300

7.8.6 程序执行的效果 302

7.8.7 总结 302

7.9 项目实战:串口数据发送(中断) 302

7.9.1 项目内容 302

7.9.2 项目说明 302

7.9.3 硬件原理图 303

7.9.4 软件开发思路 303

7.9.5 程序的源代码 304

7.9.6 程序执行的效果 306

7.9.7 总结 306

7.10 项目实战:串口数据接收(中断) 306

7.10.1 项目内容 306

7.10.2 项目说明 306

7.10.3 硬件原理图 306

7.10.4 软件开发思路 306

7.10.5 程序的源代码 307

7.10.6 程序执行的效果 309

7.10.7 总结 310

7.11 项目实战:串口数据发送和接收(中断) 310

7.11.1 项目内容 310

7.11.2 项目说明 311

7.11.3 硬件原理图 311

7.11.4 软件开发思路 311

7.11.5 程序的源代码 311

7.11.6 程序执行的效果 314

7.11.7 总结 314

7.12 项目实战:单片机之间的发送和接收(查询) 315

7.12.1 项目内容 315

7.12.2 项目说明 315

7.12.3 硬件原理图 315

7.12.4 软件开发思路 316

7.12.5 程序的源代码 316

7.12.6 程序执行的效果 320

7.12.7 总结 320

7.13 项目实战:串口数据发送和接收(查询) 320

7.13.1 项目内容 320

7.13.2 项目说明 321

7.13.3 硬件原理图 321

7.13.4 软件开发思路 321

7.13.5 程序的源代码 322

7.13.6 程序执行的效果 326

7.13.7 总结 327

本章小结 327

第8章 单片机的数模转换原理及其应用 329

8.1 8051单片机与ADC的接口 329

8.1.1 A/D转换器简介 329

8.1.2 51单片机与逐次比较型A/D转换器ADC0809的接口 331

8.1.3 51单片机与TLC549的接口 333

8.2 项目实战:基于串口和ADC0809的数据采集系统的设计 335

8.2.1 项目内容 335

8.2.2 项目说明 336

8.2.3 硬件原理图 336

8.2.4 软件开发思路 336

8.2.5 程序的源代码 337

8.2.6 程序执行的效果 338

8.2.7 总结 339

8.3 项目实战:基于数码管和ADC0809的数据采集器的设计 339

8.3.1 项目内容 339

8.3.2 项目说明 340

8.3.3 硬件原理图 340

8.3.4 软件开发思路 340

8.3.5 程序的源代码 340

8.3.6 程序执行的效果 342

8.3.7 总结 342

8.4 项目实战:基于液晶和ADC0809的数据采集器的设计 344

8.4.1 项目内容 344

8.4.2 项目说明 344

8.4.3 硬件原理图 344

8.4.4 软件开发思路 344

8.4.5 程序的源代码 345

8.4.6 程序执行的效果 348

8.4.7 总结 348

8.5 项目实战:基于串口和TLC549的数据采集系统的设计 350

8.5.1 项目内容 350

8.5.2 项目说明 350

8.5.3 硬件原理图 350

8.5.4 软件开发思路 350

8.5.5 程序的源代码 351

8.5.6 程序执行的效果 352

8.5.7 总结 352

8.6 项目实战:基于数码管和TLC549的数据采集器的设计 353

8.6.1 项目内容 353

8.6.2 项目说明 354

8.6.3 硬件原理图 354

8.6.4 软件开发思路 355

8.6.5 程序的源代码 355

8.6.6 程序执行的效果 357

8.6.7 总结 359

8.7 项目实战:基于液晶和TLC549的数据采集器的设计 359

8.7.1 项目内容 359

8.7.2 项目说明 359

8.7.3 硬件原理图 359

8.7.4 软件开发思路 359

8.7.5 程序的源代码 360

8.7.6 程序执行的效果 363

8.7.7 总结 364

8.8 8051单片机与DAC的接口 364

8.8.1 D/A转换器简介 364

8.8.2 51单片机与8位D/A转换器0832的接口设计 365

8.8.3 51单片机与TLC5615的接口设计 368

8.9 项目实战:基于DAC0832和独立按键信号发生器的设计 370

8.9.1 项目内容 370

8.9.2 项目说明 370

8.9.3 硬件原理图 371

8.9.4 软件开发思路 371

8.9.5 程序的源代码 371

8.9.6 程序执行的效果 374

8.9.7 总结 374

8.10 项目实战:基于DAC0832和三个按键的信号发生器的设计 374

8.10.1 项目内容 374

8.10.2 项目说明 375

8.10.3 硬件原理图 375

8.10.4 软件开发思路 375

8.10.5 程序的源代码 376

8.10.6 程序执行的效果 379

8.10.7 总结 380

8.11 项目实战:基于TLC5615和独立按键的信号发生器的设计 380

8.11.1 项目内容 380

8.11.2 项目说明 380

8.11.3 硬件原理图 380

8.11.4 软件开发思路 380

8.11.5 程序的源代码 381

8.11.6 程序执行的效果 384

8.11.7 总结 385

8.12 项目实战:基于TLC5615和三个按键的信号发生器的设计 386

8.12.1 项目内容 386

8.12.2 项目说明 386

8.12.3 硬件原理图 386

8.12.4 软件开发思路 386

8.12.5 程序的源代码 387

8.12.6 程序执行的效果 390

8.12.7 总结 391

本章小结 392

第9章 单片机的系统综合设计 393

9.1 直流电机的调速原理 393

9.2 PWM脉宽调制原理 394

9.2.1 PWM调速原理 394

9.2.2 PWM调速方法 394

9.2.3 单片机PWM实现方式 395

9.3 直流电机调速的整体方案 395

9.4 直流电机驱动测速电路设计 396

9.4.1 三极管驱动电路设计 396

9.4.2 L298电机驱动模块 396

9.4.3 电机测速电路设计 399

9.5 软件设计 399

9.5.1 软件组成部分分析 399

9.5.2 主流程图 399

9.6 系统测试 400

9.6.1 直流电机调速系统的硬件电路图 400

9.6.2 直流电机调速系统的测试 401

9.7 参考源程序 403

本章小结 413

附录A C51库函数等 415

A.1 字符库函数(添加ctype.h头文件,返回值:真、假) 415

A.2 字符串函数库(添加string.h头文件,返回值:真、假) 416

A.3 输入/输出函数库(添加stdio.h头文件) 417

A.4 数学函数库(添加math.h头文件) 418

A.5 标准函数库(添加stdlib.h头文件) 419

A.6 内部函数库(添加intrins.h头文件) 420

A.7 常用的头文件 420

附录B ASCII码表完整版 421

附录C Protues元件库和元件中英文对照 423

参考文献 429