猜你喜欢
单片机C语言应用100例(第4版)

单片机C语言应用100例(第4版)

书籍作者:王会良 ISBN:9787121445767
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:1327
创建日期:2023-05-31 发布日期:2023-05-31
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介
本书在前3版的基础上,以MCS―51单片机为主体,从实际应用入手,结合大量实例循序渐进地讲述51单片机C语言编程方法,以及51单片机的硬件结构和功能应用。全书分为基础篇、应用篇和综合提高篇。本书所有实例均采用仿真软件Proteus仿真和实验板实验,使读者真正做到“边理论、边实践”,在实践中逐步掌握单片机的硬件结构和开发方法。本书在编写时力求通俗、易懂,硬件原理以“有用、够用”为原则,内容讲解以“紧密结合实践”为特色。本书特别适合单片机零起点的初学者使用,可作为高等院校控制类专业学生、电子爱好者及各类工程技术人员的参考用书,也可作为高职、高专及中专院校的单片机课程教学用书。
作者简介
王会良,男,1974年生,河南偃师人,河南科技大学副教授,工学博士,硕士研究生导师。主要研究方向为:齿轮数字化设计与智能制造技术、智能控制技术、数控机床与可靠性技术。兼职为洛阳市设备维修协会、洛阳市设备管理学会会员。 近年来,参与完成的著作或教材有4部,电子工业出版社出版的《单片机C语言应用100例》第3版、《Protel DXP 2004应用100例》、清华大学出版社出版的《质量工程》、华中科技大学出版社出版的《工业机器人第三版》。
目录
基 础 篇
第1章 单片机概述及实验器材介绍 2
1.1 单片机概述 2
1.1.1 单片机的定义、分类与内部组成 2
1.1.2 单片机应用系统的结构及其工作过程 5
1.1.3 单片机的应用 6
1.2 单片机基础知识 7
1.2.1 数制与数制间的转换 7
1.2.2 单片机中数的表示方法及常用数制的对应关系 9
1.2.3 逻辑数据的表示 10
1.2.4 单片机中常用的基本术语 11
1.3 单片机入门的有效方法与途径 12
1.4 学习单片机的基本条件 12
1.4.1 软件条件 13
1.4.2 硬件条件 14
习题 15
第2章 单片机开发软件及开发过程 16
2.1 仿真软件Proteus的使用 16
2.1.1 Proteus的主要功能特点 16
2.1.2 实例1:功能感受―利用Proteus仿真单片机播放《渴望》主题曲 16
2.1.3 Proteus软件的界面与操作介绍 17
2.1.4 实例2:Proteus仿真设计快速入门 20
2.2 Keil C51的使用 30
2.2.1 单片机最小系统 30
2.2.2 实例3:用Keil C51编写点亮一个发光二极管的程序 30
2.3 程序烧录器及烧录软件的使用 37
习题与实验 37
第3章 逐步认识单片机基本结构 39
3.1 实例4:用单片机控制一个灯闪烁 39
3.1.1 实现方法 39
3.1.2 程序设计 39
3.1.3 用Proteus软件仿真 40
3.1.4 延时程序分析 42
3.2 实例5:将 P1口状态送入P0、P2和P3口 43
3.2.1 实现方法 43
3.2.2 程序设计 44
3.2.3 用Proteus软件仿真 44
3.2.4 用实验板实验 45
3.2.5 I/O口功能介绍 45
3.2.6 I/O口的结构分析 45
3.3 实例6:使用P3口流水点亮8位LED 48
3.3.1 实现方法 48
3.3.2 程序设计 49
3.3.3 用Proteus软件仿真 50
3.3.4 用实验板实验 50
3.4 实例7:通过对P3口地址的操作流水点亮8位LED 50
3.4.1 实现方法 50
3.4.2 程序设计 51
3.4.3 用Proteus软件仿真 52
3.4.4 用实验板实验 52
3.5 MCS―51单片机存储器的基本结构 52
3.5.1 程序存储器 52
3.5.2 数据存储器 52
3.6 单片机的复位电路 54
习题与实验 54
第4章 单片机C语言开发基础 55
4.1 C语言源程序的结构特点 55
4.2 标志符与关键字 56
4.3 C语言的数据类型与运算符 58
4.3.1 数据类型 58
4.3.2 运算符 61
4.3.3 实例8:用不同数据类型控制LED的闪烁 64
4.3.4 实例9:用P0口、P1 口分别显示加法和减法运算结果 67
4.3.5 实例10:用P0口、P1口显示乘法运算结果 69
4.3.6 实例11:用P1口、P0口显示除法运算结果 70
4.3.7 实例12:用自增运算控制P0口8位LED的闪烁花样 72
4.3.8 实例13:用P0口显示逻辑“与”运算结果 73
4.3.9 实例14:用P0口显示条件运算结果 73
4.3.10 实例15:用P0口显示按位“异或”运算结果 74
4.3.11 实例16:用P0显示左移运算结果 75
4.3.12 实例17:“万能逻辑电路”实验 76
4.3.13 实例18:用右移运算流水点亮P1口8位LED 77
4.4 C语言的语句 78
4.4.1 概述 78
4.4.2 控制语句 79
4.4.3 实例19:用if语句控制P0口8位LED的点亮状态 83
4.4.4 实例20:用switch语句控制P0口8位LED的点亮状态 85
4.4.5 实例21:用for语句设计鸣笛报警程序 87
4.4.6 实例22:用while语句控制P0口8位LED闪烁花样 91
4.4.7 实例23:用do-while语句控制P0口8位LED流水点亮 92
4.5 C语言的数组 94
4.5.1 数组的定义和引用 94
4.5.2 实例24:用字符型数组控制P0口8位LED流水点亮 96
4.5.3 实例25:用P0口显示字符串常量 97
4.6 C语言的指针 98
4.6.1 指针的定义与引用 99
4.6.2 实例26:用P0口显示指针运算结果 101
4.6.3 实例27:用指针数组控制P0口8位LED流水点亮 102
4.6.4 实例28:用数组的指针控制P0 口8 位LED流水点亮 103
4.7 C语言的函数 105
4.7.1 函数的定义与调用 105
4.7.2 实例29:用P0口、P1口显示整型函数返回值 108
4.7.3 实例30:用有参数函数控制P0口8位LED流水速度 110
4.7.4 实例31:用数组作为函数参数控制P0口8位LED流水点亮 111
4.7.5 实例32:用指针作为函数参数控制P0口8位LED流水点亮 112
4.7.6 实例33:用函数型指针控制P0口8位LED流水点亮 114
4.7.7 实例34:用指针数组作为函数的参数显示多个字符串 115
4.7.8 实例35:字符函数ctype.h应用举例 117
4.7.9 实例36:内部函数intrins.h应用举例 118
4.7.10 实例37:标准函数stdlib.h应用举例 120
4.7.11 实例38:字符串函数string.h应用举例 121
4.8 C语言的编译预处理 122
4.8.1 常用预处理命令介绍 122
4.8.2 实例39:宏定义应用举例 124
4.8.3 实例40:文件包含应用举例 126
4.8.4 实例41:条件编译应用举例 127
习题与实验 128
第5章 单片机的定时器/计数器 130
5.1 定时器/计数器的基本概念 130
5.2 定时器/计数器的结构及工作原理 131
5.2.1 定时器/计数器的结构 132
5.2.2 定时器/计数器的工作原理 132
5.3 定时器/计数器的控制 133
5.3.1 定时器/计数器的方式控制寄存器(TMOD) 133
5.3.2 定时器/计数器控制寄存器(TCON) 133
5.3.3 定时器/计数器的4种工作方式 134
5.3.4 定时器/计数器中定时/计数初值的计算 137
5.4 定时器/计数器应用举例 137
5.4.1 实例42:用定时器T0控制跑马灯实现 137
5.4.2 实例43:用定时器T1的查询方式控制报警器鸣笛实现 139
习题与实验 141
第6章 单片机的中断系统 142
6.1 中断系统的基本概念 142
6.2 中断系统的结构及控制 143
6.2.1 中断系统的结构 143
6.2.2 中断系统的控制 144
6.3 中断系统应用举例 147
6.3.1 实例44:用定时器T0的中断方式控制跑马灯实现 147
6.3.2 实例45:烟雾报警器设计与制作 148
6.3.3 实例46:用定时器T0的中断方式控制PWM波模拟舵机转动 152
6.3.4 实例47:用定时器T0实现音乐播放器功能 155
6.3.5 实例48:用定时器T0的门控制位测量外部正脉冲宽度 160
6.3.6 实例49:用外中断 测量负跳变信号累计数 162
习题与实验 164
第7章 串行通信技术 165
7.1 串行通信的基本概念 165
7.2 串行通信口的结构 167
7.3 串行通信口的控制 167
7.3.1 串行口控制寄存器SCON 168
7.3.2 电源控制寄存器PCON 168
7.3.3 4种工作方式与波特率的设置 169
7.4 串行通信口应用举例 172
7.4.1 实例50:基于方式1的单工通信 172
7.4.2 实例51:基于方式3的单工通信 174
7.4.3 实例52:单片机使用print函数向计算机发送数据 177
7.4.4 实例53:计算机控制单片机LED显示 179
习题与实验 181
应 用 篇
第8章 接口技术 184
8.1 LED数码管接口技术 184
8.1.1 LED数码管的原理和接口电路 184
8.1.2 实例54:用LED数码管循环显示数字0~9 185
8.1.3 实例55:用三八译码器控制数码管慢速动态扫描显示数字 187
8.1.4 实例56:交通信号的处理与控制 189
8.1.5 实例57:超声波测距-数码管显示 192
8.1.6 实例58:点阵LED动态显示实现 194
8.2 键盘接口技术 196
8.2.1 独立式键盘的工作原理 196
8.2.2 实例59:无软件消抖的独立式键盘输入实验 197
8.2.3 实例60:简易门铃设计 199
8.2.4 实例61:简易密码锁设计 202
8.2.5 实例62:定时器中断控制的键盘扫描实验 206
8.2.6 实例63:“一键多能”实验 207
8.2.7 实例64:独立式键盘控制步进电动机实验 210
8.2.8 矩阵键盘的工作原理 215
8.2.9 实例65:简易计算器设计 216
8.2.10 实例66:简易电子琴设计 220
8.3 字符型LCD接口技术 226
8.3.1 1602字符型LCD简介 226
8.3.2 实例67:用LCD显示字符“A” 231
8.3.3 实例68:数字秒表设计 236
习题与实验 237
第9章 新型串行接口芯片应用 238
9.1 I2C总线器件及其应用实例 238
9.1.1 I2C总线接口 238
9.1.2 实例69:将按键次数写入AT24C02,再读出后送LCD显示 241
9.1.3 实例70:对I2C总线上挂接两个AT24C02的读/写操作 242
9.2 单总线器件及其应用实例 244
9.2.1 单总线简介 244
9.2.2 实例71:DS18B20温度检测及其LCD显示 248
9.2.3 单总线温、湿度传感器DHT11介绍 250
9.2.4 实例72:DHT11温度检测及其LCD显示 251
9.3 SPI总线接口芯片及其应用实例 254
9.3.1 SPI串行总线简介 254
9.3.2 实例73:将数据“0xaa”写入X5045再读出后送P1口显示 257
9.3.3 实例74:将流水灯控制码写入X5045并读出后送P1口显示 259
9.3.4 实例75:对SPI总线上挂接的两个X5045的读/写操作 260
习题与实验 261
第10章 常用功能器件应用举例 263
10.1 模/数(A/D)转换器件 263
10.1.1 A/D转换基础 263
10.1.2 实例76:基于ADC0832的5V直流数字电压表 265
10.2 数/模(D/A)转换器件 267
10.2.1 D/A转换基础 267
10.2.2 实例77:用DAC0832产生锯齿波电压 269
10.3 红外线遥控信号接收器件 270
10.3.1 红外线信号接收基础 270
10.3.2 实例78:用P1口显示红外遥控器的按键值 272
10.3.3 实例79:用红外线遥控器控制继电器 274
10.4 适时时钟芯片 275
10.4.1 常用适时时钟芯片介绍 276
10.4.2 实例80:基于DS1302的日历时钟 278
习题与实验 280
综合提高篇
第11章 综合应用实例 282
11.1 实例81:中文字符的液晶显示 282
11.1.1 图形点阵显示器简介 282
11.1.2 仿真原理图设计 286
11.1.3 程序设计与仿真 287
11.2 实例82:12位A/D转换器TLC2543的使用 292
11.2.1 TLC2543介绍 292
11.2.2 仿真原理图设计 294
11.2.3 程序设计与仿真 296
11.3 实例83:ASC712电流传感器的使用 301
11.3.1 ASC712电流传感器介绍 301
11.3.2 仿真原理图设计 302
11.3.3 程序设计与仿真 302
11.4 实例84:电压型传感器的使用 305
11.4.1 FS4003传感器介绍 305
11.4.2 仿真原理图设计 307
11.4.3 程序设计与仿真 308
11.5 实例85:RS―232型数字传感器的使用 313
11.5.1 FS4003传感器的串口通信协议介绍 313
11.5.2 仿真原理图设计 313
11.5.3 程序设计与仿真 314
11.6 实例86:电流型传感器应用举例 321
11.6.1 电流型传感器的使用基础 321
11.6.2 仿真原理图设计 322
11.6.3 程序设计与仿真 324
11.7 实例87:基于化学传感器的氧浓度检测仪设计 326
11.7.1 R―17MED化学传感器简介 326
11.7.2 硬件仿真电路设计 327
11.7.3 程序设计与仿真 328
11.8 实例88:单片机向RS―485型传感器发送读取命令 330
11.8.1 RS―485通信简介 331
11.8.2 TTL/RS―485转换的仿真原理图设计 332
11.8.3 程序设计与仿真 334
11.9 实例89:单片机从RS―485型传感器接收数据 336
11.9.1 RS―485传感器返回数据的格式 336
11.9.2 仿真原理图设计 337
11.9.3 程序设计与仿真 337
11.10 实例90:用VB实现单片机和计算机的串行通信 340
11.10.1 开发背景 340
11.10.2 开发要求 340
11.10.3 Visual Basic 6.0 简介 340
11.10.4 添加MSComm控件与基本属性设置 341
11.10.5 Visual Basic 6.0实现串行通信的过程 342
11.11 实例91:LabVIEW环境下串行通信编程 348
11.11.1 开发环境 348
11.11.2 上下位机程序设计 349
11.11.3 程序结果 356
11.12 实例92:手部握力评估仪设计 356
11.12.1 系统工作原理 356
11.12.2 仿真原理图设计 357
11.12.3 程序设计与仿真 358
11.13 实例93:心率测量系统设计 362
11.13.1 系统工作原理 362
11.13.2 仿真原理图设计 363
11.13.3 程序设计与仿真 364
11.14 实例94:基于铂热电阻的防火系统设计 370
11.14.1 系统的工作原理 370
11.14.2 仿真原理图设计 371
11.14.3 程序设计与仿真 373
11.15 实例95:基于LabVIEW和Proteus的温度控制仿真 375
11.15.1 系统工作原理 375
11.15.2 仿真原理图设计 376
11.15.3 程序设计与仿真 379
11.16 实例96:K型热电偶的冷端自动补偿设计 384
11.16.1 系统工作原理 384
11.16.2 仿真原理图设计 385
11.16.3 程序设计与仿真 386
11.17 实例97:电动机测速表设计 388
11.17.1 系统工作原理 388
11.17.2 仿真原理图设计 389
11.17.3 程序设计与仿真 390
11.18 实例98:基于PWM的直流电动机调速系统设计 392
11.18.1 系统工作原理 392
11.18.2 仿真原理图设计 392
11.18.3 程序设计与仿真 393
11.19 实例99:基于L298N的可调速四驱小车设计 395
11.19.1 系统工作原理 395
11.19.2 仿真原理图设计 396
11.19.3 程序设计 396
11.20 实例100:航空发动机热电偶信号模拟电压源设计 401
11.20.1 系统工作原理 401
11.20.2 仿真原理图设计 401
11.20.3 程序设计 402
参考文献 405