书籍作者:潘志铭 | ISBN:9787302629320 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:3231 |
创建日期:2024-04-05 | 发布日期:2024-04-05 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
《51单片机快速入门教程》以实例为主导,以51 核心板为开发平台,涵盖了51 单片机开发基础、C51 程序设计基础、I/O 引脚、中断、定时器/计数器、通信、看门狗、Flash 等内容,详细介绍了STC89 C52RC芯片的大部分片上功能。本书10 个实例均包括每章实例所需要的知识、实例与代码解析、思考题和应用实践四大环节,每个实例都有详细的步骤和源代码。本书章节名称中带有“*”标志的为选读内容,但并不意味着这部分内容不重要。读者可以根据自己的学习需求选择是否阅读。
《51单片机快速入门教程》配套的资料包既包括51 核心板原理图、例程、软件包、软件资料,又包括配套的PPT讲义、视频等资料,且持续更新。最新下载链接可通过微信公众号“卓越工程师培养系列”获取。编者建议,在学习本书的过程中,读者不仅要看要练,更要勤学多思。读者在阅读章节内容后,可在独立思考的情况下编写实例代码,最后独立完成思考题和应用实践部分。
《51单片机快速入门教程》既可作为高等院校相关专业的教材,也可供从事单片机开发的工程技术人员参考。
《51单片机快速入门教程》配套的资料包既包括51 核心板原理图、例程、软件包、软件资料,又包括配套的PPT讲义、视频等资料,且持续更新。最新下载链接可通过微信公众号“卓越工程师培养系列”获取。编者建议,在学习本书的过程中,读者不仅要看要练,更要勤学多思。读者在阅读章节内容后,可在独立思考的情况下编写实例代码,最后独立完成思考题和应用实践部分。
入门学习单片机时,是选择开发较为复杂,但功能丰富的32 位单片机,如GD32 或STM32,还是选择开发更为简单,但功能有限的8 位单片机,如51 单片机?不少初学者会有这样的困惑。
对于初学者而言,要想精通32 位单片机开发,需要掌握复杂的外设、众多的寄存器及寄存器与应用层之间的固件库等知识。这些概念很容易让初学者望而生畏,而51 单片机的内部结构、功能和使用方法都相对简单。如果初学者在学习32 位单片机之前,先学习8 位单片机,不仅可以降低单片机的学习门槛,而且更容易提高学习单片机的兴趣。
51 单片机诞生于1981 年,在过去40 多年间,不仅没有销声匿迹,反而日久弥新。虽然业界主流的单片机已经由8 位转变为32 位,但是51 单片机在产品开发中仍然有着重要的地位。近年来,仍有厂商在8051 内核上添加新的功能,推出基于8051 内核的新产品。
在新型微处理器运行速度越来越快、片上功能越来越丰富的今天,51 单片机这位“元老”在微控制器领域仍占有一席之地。在一些需要低成本、低功耗、对可靠性要求高的系统中,仍能见到51 单片机的身影,其经典地位毋庸置疑。
那么如何学习51 单片机呢?目前,市面上的51 单片机教材种类繁多,内容从理论到实战,从硬件到软件,从汇编到C 语言,从仿真到开发板实操,比比皆是。网络上也有许多优质的视频教程,关于51 单片机的开发教程及使用技巧,前人之述备矣。然而,繁杂纷扰的信息容易让初学者在浩瀚的书海中迷失方向,不知从何入手;也有初学者会在一个知识点上“越陷越深”,无法把握前行的方向,踌躇不前。诚然,知识的广度与深度都很重要,刻苦钻研的精神也值得赞赏,但是,选择往往比努力更重要。选择一本合适的工具书籍,往往能够帮助读者事半功倍地入门51 单片机开发。
本书专为单片机初学者打造,以“快速入门”为前提,旨在为初学者提供一条入门单片机的新路径。书中所有的知识点都经过精炼,由浅入深,并通过浅显易懂的描述来介绍51 单片机的相关概念。除基础知识外,本书还提供了选读内容,满足不同层次读者的学习需求。希望读者在阅读本书后能熟悉51 单片机的开发环境,独立完成51 单片机程序的编写,并提高对单片机开发的兴趣。衷心希望本书能帮助读者在学习单片机的过程中少走一些弯路,带领读者走进精彩纷呈的单片机世界。
潘志铭和董磊策划了本书的编写思路,指导全书的编写,对全书进行统稿;李健辉、张博和郭文波在教材编写、例程设计和文字校对方面做了大量的工作。本书配套的51 核心板和例程由深圳市乐育科技有限公司开发,深圳市乐育科技有限公司还参与了本书的编写。清华大学出版社王定编辑为本书的出版做了大量的编辑和校审工作。特别感谢深圳大学电子与信息工程学院、深圳大学生物医学工程学院、西安交通大学生命科学与技术学院、深圳市乐育科技有限公司和清华大学出版社的大力支持,在此一并致以衷心的感谢!
由于编者水平有限,书中难免有不成熟与疏漏之处,恳请读者批评指正。若读者在阅读本书时遇到问题,或需要获取相关资料,可通过邮箱[email protected] 与编者联系。
本书提供教学课件,读者可扫下列二维码下载。
教学课件
编 者
2023 年2 月
第1 章 STC89 C52RC 开发平台和
工具 1
1.1 初识单片机2
1.1.1 单片机的概念2
1.1.2 常见的51 单片机种类2
1.1.3 STC 单片机的命名规则3
1.2 STC89 C52RC 介绍4
1.2.1 结构框架4
1.2.2 引脚功能5
1.2.3 *存储结构7
1.3 *51 核心板最小系统电路
介绍 10
1.3.1 电源电路 10
1.3.2 时钟电路 11
1.3.3 复位电路 12
1.4 搭建开发环境 13
1.4.1 本书资料包 13
1.4.2 Keil C51 的安装及设置 13
1.4.3 STC-ISP 程序下载环境配置 18
思考题 21
应用实践 21
第2 章 C51 程序设计基础22
2.1 C51 程序的基本组成部分 23
2.1.1 包含头文件 23
2.1.2 主函数 23
2.1.3 标识符与关键字 24
2.1.4 程序注释 24
2.1.5 其他规范24
2.2 C51 数据类型 25
2.2.1 基本数据类型25
2.2.2 扩展数据类型26
2.3 C51 变量与常量 26
2.3.1 变量27
2.3.2 常量29
2.4 C51 运算符 29
2.4.1 算术运算符29
2.4.2 关系运算符30
2.4.3 逻辑运算符30
2.4.4 位运算符31
2.5 C51 程序结构 31
2.5.1 顺序结构32
2.5.2 选择结构32
2.5.3 循环结构35
2.6 C51 函数 38
2.6.1 函数的定义38
2.6.2 函数的声明39
2.6.3 函数的参数39
2.6.4 函数的返回值39
2.6.5 函数的调用39
2.6.6 内部函数40
2.6.7 函数的命名规范41
2.7 C51 数组 41
2.7.1 数组的定义41
2.7.2 数组的初始化41
2.7.3 数组元素的引用41
2.7.4 *二维数组 42
2.7.5 字符串数组 42
2.7.6 数组的命名规范 43
2.8 *C51 指针 43
2.8.1 指针变量的定义和使用 44
2.8.2 指针变量的注意事项 45
2.8.3 指针与数组 45
2.9 Keil 编辑和编译及程序下载 46
2.9.1 新建Keil 工程 46
2.9.2 新建并添加main.c 文件 48
2.9.3 配置工程 49
2.9.4 编写程序代码 49
2.9.5 程序编译 50
2.9.6 STC-ISP 程序下载 51
思考题 53
应用实践 53
第3 章 LED 流水灯 54
3.1 LED 灯的工作原理 55
3.2 I/O 引脚部分寄存器 55
3.3 I/O 引脚控制的方法 56
3.3.1 字节操作 56
3.3.2 位操作 57
3.4 *I/O 引脚的内部结构 57
3.4.1 P0 组I/O 引脚 57
3.4.2 P1 组I/O 引脚 59
3.4.3 P2 组I/O 引脚 60
3.4.4 P3 组I/O 引脚 61
3.5 实例与代码解析 62
3.5.1 位操作控制流水灯 63
3.5.2 字节操作控制流水灯 66
思考题 67
应用实践 68
第4 章 独立按键输入 69
4.1 按键检测原理 70
4.2 按键软件去抖原理 70
4.3 实例与代码解析 72
思考题 75
应用实践 75
第5 章 蜂鸣器 76
5.1 蜂鸣器介绍 77
5.2 蜂鸣器的工作原理 77
5.3 实例与代码解析 78
思考题 80
应用实践 80
第6 章 数码管显示 82
6.1 数码管介绍 83
6.2 数码管的工作原理 85
6.3 数码管静态显示 86
6.4 数码管动态显示 86
6.5 实例与代码解析 87
思考题 90
应用实践 91
第7 章 外部中断 92
7.1 中断的概念 93
7.2 中断系统框架 94
7.2.1 中断源94
7.2.2 中断触发条件95
7.2.3 中断请求标志97
7.2.4 中断允许控制98
7.2.5 中断优先级99
7.2.6 中断处理101
7.3 实例与代码解析103
思考题105
应用实践105
第8 章 定时器/计数器107
8.1 机器周期与时钟周期108
8.2 定时器/计数器的工作原理108
8.3 定时器/计数器系统框架110
8.3.1 定时/计数功能的选择 110
8.3.2 定时器/计数器的运行控制 111
8.3.3 工作模式与计数初值 112
8.3.4 定时器/计数器中断 114
8.4 实例与代码解析117
8.4.1 计数器控制LED 灯 117
8.4.2 定时器控制LED 灯 120
思考题123
应用实践123
第9 章 PWM 与呼吸灯124
9.1 PWM 基本参数125
9.1.1 电平标准 125
9.1.2 周期和频率 125
9.1.3 占空比 125
9.2 PWM 控制LED 亮度的
原理126
9.3 PWM 输出原理126
9.3.1 输出PWM 信号 126
9.3.2 按照规律调节PWM 占空比 127
9.4 实例与代码解析129
思考题133
应用实践133
第10 章 串口通信134
10.1 通信协议介绍135
10.1.1 并行通信和串行通信 135
10.1.2 单工、半双工和全双工
数据传输 136
10.2 串口通信协议介绍136
10.2.1 UART 物理层 137
10.2.2 UART 数据帧格式 137
10.2.3 UART 传输速率 138
10.2.4 UART 通信实例 138
10.3 UART 电路原理图139
10.4 串口中断140
10.4.1 串口中断请求标志位140
10.4.2 串口中断允许控制位141
10.4.3 *串口中断优先级
控制位141
10.5 串口工作模式142
10.5.1 *工作模式0 143
10.5.2 工作模式1143
10.5.3 *工作模式2 147
10.5.4 *工作模式3 149
10.6 实例与代码解析149
思考题155
应用实践155
第11 章 看门狗157
11.1 复位方法158
11.1.1 外部RST 引脚复位158
11.1.2 软件复位158
11.1.3 通电/关电复位159
11.1.4 看门狗复位159
11.2 看门狗相关寄存器159
11.3 看门狗溢出时间160
11.4 看门狗喂狗操作161
11.5 实例与代码解析161
思考题164
应用实践165
第12 章 内部Flash 读写166
12.1 ISP 与IAP167
12.2 内部Flash 存储结构167
12.3 IAP 读写与擦除Flash 的
方法168
12.3.1 读取操作169
12.3.2 擦除操作170
12.3.3 写入操作171
12.4 Flash 读写注意事项172
12.5 实例与代码解析173
思考题181
应用实践181
附录182
附录A 数制及转换方法183
附录B 逻辑门表示符号185
附录C 常用寄存器及部分位的
解释说明186
附录D 51 核心板电路图191
参考文献192