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

单片机C语言应用100例(第4版)
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2022-12
版次: 1
ISBN: 9787121445767
定价: 98.00
装帧: 其他
页数: 420页
分类: 工程技术
1人买过
  • 本书在前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位LED48

    3.3.1  实现方法48

    3.3.2  程序设计49

    3.3.3  用Proteus软件仿真50

    3.3.4  用实验板实验50

    3.4  实例7:通过对P3口地址的操作流水点亮8位LED50

    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位LED77

    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  串行口控制寄存器SCON168

    7.3.2  电源控制寄存器PCON168

    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~9185

    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
  • 内容简介:
    本书在前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位LED48

    3.3.1  实现方法48

    3.3.2  程序设计49

    3.3.3  用Proteus软件仿真50

    3.3.4  用实验板实验50

    3.4  实例7:通过对P3口地址的操作流水点亮8位LED50

    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位LED77

    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  串行口控制寄存器SCON168

    7.3.2  电源控制寄存器PCON168

    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~9185

    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
查看详情
12
您可能感兴趣 / 更多