本教材从单片机入门者的角度,以项目为驱动,由内到外、由浅入深,循序渐进地讲述了MCS51单片机内、外部资源的使用方法。
教材按照TOPCARES的教学理念,组织教材内容。教材共分为6篇24章。第1篇知识准备篇,第2篇基础功能篇,第3篇进阶功能篇,第4篇总线协议篇,第5篇拓展篇,第6篇综合实践篇。
教材首先通过项目导学,使学生全面了解教材项目;然后将项目分解技术(知识点)到每一章,通过构思、分析子项目涉及到的技术(知识点)介绍新知识点,开始子项目的实施和运行。除了教材项目,在模块知识的学习上还配备了丰富的案例,以便让读者更熟练地掌握如何使用C51语言进行编程控制。本教材以工程教育理念为背景,遵从构思、设计、实施、运行的全过程,以能力训练为主,所有的案例都包括案例分析、案例设计和案例实现。每章课后还有自测单元,用以加深相关知识的理解和运用,同时也检验学习效果。通过案例和项目训练,最终达到教学总体目标。
《MCS51单片机原理与实践》集所有编者多年教学经验和项目开发经验的积累于一体,全体参编人员已尽心尽力,但限于自身水平,教材中难免出现错误或不妥之处,恳请广大读者不吝指正,在此深表感谢!
编者
2024年6月
目录
项目导学1
第1篇知识准备篇
第1章单片机概述5
1.1什么是单片机6
1.2单片机的发展6
1.3单片机的特点8
1.4单片机的用途9
1.5如何学习单片机9
1.6本章小结10
1.7学习效果测评10
1.7.1测试题10
1.7.2评估表11
第2章开发准备12
2.1开发环境(开发板)13
2.1.1硬件连接13
2.1.2下载器驱动安装14
2.1.3程序下载软件安装与使用18
2.1.4集成开发环境安装与使用24
2.2开发环境(软件仿真)28
2.3开发流程32
2.3.1Keil C51工程创建及程序编译32
2.3.2程序运行40
2.4开发语言45
2.4.1C51与标准C语言46
2.4.2C51的数据类型46
2.4.3C51常用头文件49
2.5本章小结49
2.6学习效果测评50
2.6.1测试题50
2.6.2评估表51
第3章硬件基础知识52
3.1LY-51S开发板简介52
3.2板载元器件54
3.2.1电子元器件54
3.2.2集成电路60
3.2.3接插件61
3.2.4导线61
3.3本章小结62
3.4学习效果测评62
3.4.1测试题62
3.4.2评估表63
第4章单片机基本原理64
4.1MCS-51单片机基本特性65
4.2单片机内部结构65
4.3单片机外部引脚66
4.3.1单片机外部引脚图66
4.3.2单片机引脚分类67
4.4单片机时序69
4.5单片机最小系统70
4.6单片机存储器结构73
4.6.1程序存储器74
4.6.2数据存储器75
4.7本章小结79
4.8学习效果测评79
4.8.1测试题79
4.8.2评估表80
第2篇基础功能篇
项目1系统本地设置与显示82
第5章I/O端口85
5.1单片机的I/O端口86
5.1.1I/O端口概述86
5.1.2I/O端口基本原理87
5.1.3I/O端口基本操作88
5.2端口输出控制——发光二极管90
5.2.1案例5-1:点亮一个发光二极管90
5.2.2案例5-2:发光二极管流水显示94
5.3端口输出控制——数码管98
5.3.1数码管结构与显示原理98
5.3.2数码管静态显示驱动100
5.3.3案例5-3:独立共阳数码管循环显示09102
5.3.4数码管动态显示驱动103
5.3.5案例5-4:8位数码管同时显示07105
5.4端口输入控制——独立按键108
5.4.1独立按键的连接方式108
5.4.2独立按键的检测原理109
5.4.3按键去抖及按键处理流程111
5.4.4案例5-5:抢答器112
5.5端口输入控制——矩阵键盘114
5.5.1矩阵键盘的连接方式115
5.5.2矩阵键盘的检测原理115
5.5.3案例5-6:矩阵键盘键号LED显示116
5.6本章小结121
5.7学习效果测评122
5.7.1测试题122
5.7.2评估表124
第6章中断系统(外部中断)125
6.1中断的系统概述126
6.1.1中断的原理126
6.1.2中断的作用126
6.1.3中断实现的功能127
6.1.4中断相关概念127
6.2单片机中断资源129
6.2.1中断源及入口地址129
6.2.2中断控制及设置129
6.3C51中断处理函数的编写131
6.4外部中断编程实战133
6.4.1案例6-1:独立按键控制LED状态转换133
6.5本章小结137
6.6学习效果测评137
6.6.1测试题137
6.6.2评估表139
项目2系统时间维护140
第7章定时/计数器143
7.1定时/计数器简介144
7.2定时/计数器的结构及相关寄存器144
7.2.1定时/计数器的结构144
7.2.2定时/计数器的相关寄存器145
7.3定时/计数器的工作原理146
7.3.1定时功能146
7.3.2计数功能147
7.4定时/计数器的工作方式148
7.4.1方式0148
7.4.2方式1148
7.4.3方式2149
7.4.4方式3149
7.5定时/计数器编程实战150
7.5.1定时/计数器的程序设计流程150
7.5.2案例7-1:按键10次翻转LED状态150
7.5.3案例7-2:发光二极管定时闪烁152
7.5.4案例7-3:定时器产生任意占空比PWM波形154
7.6本章小结157
7.7学习效果测评157
7.7.1测试题157
7.7.2评估表159
项目3系统远程控制160
第8章串口通信164
8.1串口通信概述165
8.1.1通信的基本概念165
8.1.2串行通信的工作方式165
8.1.3串行通信的时钟及传输速率166
8.1.4串行通信协议166
8.2串口通信接口电路原理168
8.3串口结构及相关寄存器171
8.3.1串口结构171
8.3.2串口相关寄存器172
8.4串口的工作方式及波特率设置173
8.4.1方式0173
8.4.2方式1174
8.4.3方式2和方式3175
8.4.4波特率设置176
8.5串口应用编程实践178
8.5.1串口应用的程序设计流程178
8.5.2案例81:串口扩展并行输出流水灯显示178
8.5.3案例82:双机通信单字符收发182
8.6本章小结187
8.7学习效果测评187
8.7.1测试题187
8.7.2评估表189
第3篇进阶功能篇
项目4温度采集与控制191
第9章继电器195
9.1继电器的基本概念196
9.2继电器的结构及工作原理197
9.3继电器的驱动电路198
9.4继电器编程实践199
9.4.1继电器的程序设计流程199
9.4.2案例91:继电器状态切换及LED显示199
9.5本章小结200
9.6学习效果测评201
9.6.1测试题201
9.6.2评估表202
第11章步进电机203
10.1蜂鸣器的基本概念204
10.1.1蜂鸣器简介204
10.1.2蜂鸣器的供电204
10.2蜂鸣器的结构原理204
10.3蜂鸣器的声音调节205
10.4蜂鸣器的驱动电路205
10.5蜂鸣器编程实践206
10.5.1蜂鸣器的程序设计流程206
10.5.2案例10-1:蜂鸣器模拟救护车声音206
10.6本章小结208
10.7学习效果测评208
10.7.1测试题208
10.7.2评估表209
第11章步进电机210
11.1步进电机概述211
11.1.1步进电机简介211
11.1.2步进电机分类211
11.2步进电机的硬件结构212
11.2.1步进电机硬件结构212
11.2.2步进电机术语解释213
11.2.3步进电机的转动原理213
11.3步进电机的驱动方式214
11.4步进电机控制编程实践215
11.4.1步进电机的程序设计215
11.4.2案例11-1:电机正转反转216
11.4.3案例11-2:按键控制步进电机正反转218
11.5本章小结219
11.6学习效果测评219
11.6.1测试题219
11.6.2评估表221
第12章1602液晶222
12.11602液晶概述223
12.21602液晶的基本原理及控制方式223
12.2.11602液晶的引脚结构223
12.2.21602液晶的显示内容224
12.2.31602液晶的控制方式225
12.31602液晶的驱动函数228
12.41602液晶编程实践228
12.4.11602液晶模块的程序设计流程228
12.4.2案例12-1:1602液晶滚动显示字符串229
12.5本章小结233
12.6习效果测评234
12.6.1测试题234
12.6.2评估表235
第4篇总线协议篇
第13章I2C总线与E2PROM(24C02)237
13.1I2C总线概述238
13.1.1I2C总线简介238
13.1.2I2C总线特点238
13.1.3I2C总线连接方式238
13.1.4I2C总线通信机制239
13.2I2C通信协议239
13.2.1I2C通信协议239
13.2.2单片机模拟I2C总线240
13.3E2PROM 24C02应用概述241
13.3.124C02芯片简介241
13.3.224C02硬件原理与连接241
13.3.324C02存储结构与寻址242
13.3.424C02读写操作时序242
13.4PCF8591模拟采集与输出243
13.4.1PCF8591芯片简介243
13.4.2PCF8591硬件原理及连接244
13.4.3PCF8591寻址及功能选择246
13.5I2C总线应用编程实践246
13.5.1I2C总线应用程序设计流程246
13.5.2案例13-1:24C02记忆开机次数247
13.5.3案例13-2:PCF8591 1路A/D数码管显示254
13.5.4案例13-3:PCF8591 D/A输出模拟256
13.6本章小结258
13.7学习效果测评258
13.7.1测试题258
13.7.2评估表259
第14章1-Wire总线与DS18B20261
14.11Wire总线概述262
14.2DS18B20数字温度传感器介绍262
14.2.1DS18B20传感器特性263
14.2.2DS18B20的引脚结构263
14.2.3DS18B20的硬件连接264
14.2.4DS18B20的内部结构264
14.2.5DS18B20的工作原理266
14.2.6DS18B20的工作时序270
14.2.7DS18B20使用中注意事项272
14.31Wire总线应用编程实践272
14.3.1DS18B20模块的程序设计流程272
14.3.2案例14-1:温度采集液晶显示272
14.4本章小结275
14.5学习效果测评276
14.5.1测试题276
14.5.2评估表276
第15章SPI总线与DS1302277
15.1SPI总线协议定义278
15.1.1SPI简介278
15.1.2SPI通信模式278
15.2DS1302时钟芯片280
15.3DS1302的引脚结构及相关寄存器280
15.3.1DS1302的引脚结构280
15.3.2DS1302的寄存器设置281
15.4SPI总线应用编程实践283
15.4.1SPI总线应用的程序设计流程283
15.4.2案例15-1:DS1302时钟显示283
15.5本章小结288
15.6学习效果测评289
15.6.1测试题289
15.6.2评估表289
第5篇拓展篇
第16章直流电机291
16.1直流电机概述292
16.2直流电机的原理及分类292
16.2.1直流电机的原理292
16.2.2直流电机的分类293
16.3直流电机的驱动方式295
16.4直流电机编程实践295
16.4.1案例16-1:直流电机按键控制295
16.4.2案例16-2:直流电机PWM调速297
16.5本章小结299
16.6学习效果测评300
16.6.1测试题300
16.6.2评估表301
第17章舵机302
17.1舵机概述303
17.2舵机的工作原理303
17.3舵机的角度控制原理304
17.4舵机编程实践304
17.4.1舵机的程序设计流程305
17.4.2案例17-1:按键调节舵机转角305
17.5本章小结307
17.6学习效果测评308
17.6.1测试题308
17.6.2评估表308
第18章双色点阵屏309
18.1双色点阵屏的基本原理310
18.2双色点阵屏的驱动芯片311
18.3双色点阵屏的硬件连线312
18.4双色点阵屏编程实践313
18.4.1案例18-1:双色点阵屏显示特定图形313
18.4.2双色点阵屏的控制流程317
18.5本章小结318
18.6习效果测评318
18.6.1测试题318
18.6.2评估表319
第19章模数/数模转换320
19.1模数/数模转换介绍321
19.1.1模拟信号与数字信号321
19.1.2A/D转换器介绍322
19.1.3A/D转换器性能指标323
19.1.4D/A转换器介绍324
19.1.5D/A转换器性能指标325
19.2模数转换器ADC及应用325
19.2.1ADC0809介绍325
19.2.2案例191:ADC0809将模拟信号转换为数字信号329
19.3数模转换器DAC及应用331
19.3.1DAC0832介绍331
19.3.2案例192:DAC0832将数字信号转换为模拟信号334
19.4本章小结335
19.5习效果测评336
19.5.1测试题336
19.5.2评估表337
第6篇综合实践篇
第20章温控风扇339
20.1项目构思339
20.2项目设计340
20.2.1系统功能设计340
20.2.2硬件设计340
20.2.3软件设计341
20.3项目实施与运行341
20.3.1项目实施要求341
20.3.2项目运行测试要求342
20.4本章小结343
20.5习效果测评343
20.5.1测试题343
20.5.2评估表344
第21章电子密码锁345
21.1项目构思345
21.2项目设计346
21.2.1系统功能设计346
21.2.2硬件设计346
21.2.3软件设计348
21.3项目实施与运行348
21.3.1项目实施要求348
21.3.2项目运行测试要求349
21.4本章小结350
21.5习效果测评350
21.5.1测试题350
21.5.2评估表350
第22章A/D数字存储示波器351
22.1项目构思352
22.2项目设计352
22.2.1系统功能设计352
22.2.2硬件设计352
22.2.3软件设计354
22.3项目实施与运行354
22.3.1项目实施要求354
22.3.2项目运行测试要求355
22.4本章小结356
22.5习效果测评356
22.5.1测试题356
22.5.2评估表356
第23章自动售水机357
23.1项目构思357
23.2项目设计358
23.2.1系统功能设计358
23.2.2硬件设计359
23.2.3软件设计360
23.3项目实施与运行361
23.3.1项目实施要求361
23.3.2项目运行测试要求361
23.4本章小结361
23.5习效果测评362
23.5.1测试题362
23.5.2评估表363
第24章智能温控系统364
24.1项目构思364
24.2项目设计365
24.2.1系统功能设计365
24.2.2硬件设计365
24.2.3软件设计366
24.3项目实施与运行369
24.3.1项目实施要求369
24.3.2项目运行测试要求369
24.4本章小结369
24.5习效果测评370
24.5.1测试题370
24.5.2评估表370
附录A:ASCII表371
附录B:进制转换表373
附录C:C51数据类型及运算符374
参考文献376
2016年6月,中国成为国际本科工程学位互认协议《华盛顿协议》的正式会员,这是中国工程教育国际化进程的重要里程碑。“回归工程”、培养学生的“大工程观”是当今国际工程教育的主流理念。《华盛顿协议》对毕业生提出的12条素质要求中,不仅要求工程知识、工程能力,还强调通用能力和品德伦理;在实践上,以学生为中心,以产出为导向,注重对目标达成的支撑及持续改进,与CDIO工程教育实质等效。
CDIO工程教育是近年来国际工程教育改革的最新成果,以“预期学习结果”集合来驱动课程内容、教学方法、教育文化的设计,重视营造工程教育文化,其注重工程能力培养和基于工程项目全生命周期的一体化设计思想,对于国内工程类和相关专业的建设具有重要的实施价值。
作为承载了教学改革思想的载体,融入CDIO工程教育理念的高品质教材,东软CDIO工程教育教材在注重理实结合的同时,也注重对学生八大能力的培养,即:技术知识与推理能力,开放式思维与创新,个人职业能力,沟通表达与团队合作,态度与习惯,责任,价值观,实践构思、设计、实现和运行对社会的贡献。
CDIO工程教育教材是 CDIO教育教学改革在教学实施过程中的集中体现,它不仅承载着课程和项目的教学内容,而且贯穿和体现了CDIO工程教育的理念、思想与方法,是在系统化理论的指导下,将知识、能力、素质培养进行一体化设计,有机融合在教材体系中。教材的编写以能力培养为主线,以案例教学为引导,以项目为载体,充分体现“做中学”和“学中做”的思想,具有以下优势:
(1)以能力培养为主线,培养学生专业知识学习能力和工程实践能力。
(2)以案例为驱动,在做案例的过程中学习新知识,充分体现了“做中学”。
(3)以项目为载体,基于工程化教育方法,按照分析、设计、实施、运行展开项目及知识点的讲解。
(4)围绕专业知识结构和能力体系设计教材,实现同一专业下不同教材紧密的关联性。
(5)内容编排循序渐进,符合人的认知规律。
(6)适应柔性化教学变革,构建一体化、立体化教学资源。
CDIO工程教育教材可供以应用型人才为培养目标的高等院校以及职业培训机构作为教材使用。
目前,CDIO工程教育教材的建设还处于探索阶段,是一项创造性的工作,尚需要通过改革的实践不断加以深化和持续改进,任重而道远。