内容简介
本书以STC 32位单片机产品系列中的STC32G12K128单片机为载体进行编写,其是以抗干扰能力强、价格低、工作速度快、功耗低为目标的32位8051单片机,在相同的工作频率下,其工作速度可达传统8051单片机的70倍。 本书基于STC大学推广计划实验箱(9.4)(主控单片机:STC32G12K128)介绍应用实例的开发,采用基于寄存器应用编程与基于库函数应用编程相结合、理论与实践相结合、侧重工程实践的编写思路,内容主要包括微型计算机基础、STC32G12K128单片机应用系统的开发工具、STC32G12K128单片机的内核、定时/计数器、中断系统、串行端口、A/D转换模块、比较器、人机对话端口的应用设计、STC32G-SOFT WARE-LIB函数库、SPI端口及其应用、I2C总线端口及其应用、高级PWM定时器及其应用、RTC时钟及其应用、DMA通道及其应用、CAN总线及其应用、LIN总线及其应用、USB模块及其应用、32位乘除单元等。
目录
目 录
第1章 微型计算机基础 1
1.1 数制与编码 1
1.1.1 数制及其转换方法 1
1.1.2 微型计算机中数的表示方法 3
1.1.3 微型计算机中常用编码 5
1.2 微型计算机原理 6
1.2.1 微型计算机的基本组成 6
1.2.2 指令、程序与编程语言 7
1.2.3 微型计算机的工作过程 8
1.2.4 微型计算机的应用形态 9
1.3 STC 32位单片机 9
1.3.1 STC 32位单片机产品系列 10
1.3.2 STC 32位单片机的内核 10
本章小结 10
思考与提高 11
第2章 STC32G12K128单片机应用系统的开发工具 12
2.1 Keil C251集成开发环境 12
2.2 STC32G12K128单片机硬件实验平台 20
2.2.1 STC大学推广计划实验箱(9.4) 20
2.2.2 STC32G12K128单片机迷你核心学习板 28
2.3 在线编程与在线仿真 29
2.3.1 在线可编程(ISP)电路 29
2.3.2 应用程序的下载与运行 30
2.3.3 STC-ISP的其他功能 31
2.4 工程训练 31
2.4.1 Keil C251集成开发环境的应用 31
2.4.2 STC32G12K128单片机的在线编程与在线调试 33
2.4.3 STC32G12K128单片机的不停电程序下载 34
2.4.4 STC32G12K128单片机SWD端口的在线仿真 36
本章小结 38
思考与提高 38
第3章 STC32G12K128单片机的内核 40
3.1 资源配置与引脚 40
3.1.1 资源配置 40
3.1.2 工作特性 42
3.1.3 引脚与引脚功能 42
3.2 时钟 48
3.2.1 时钟框图 48
3.2.2 系统时钟的控制与管理 49
3.2.3 USB时钟 52
3.2.4 高速外设时钟 52
3.2.5 RTC时钟源 52
3.3 复位 53
3.3.1 硬件复位 53
3.3.2 软件复位 55
3.4 存储系统 55
3.4.1 程序存储器 57
3.4.2 数据存储器 57
3.4.3 特殊功能寄存器 58
3.4.4 EEPROM 60
3.5 并行I/O端口 62
3.5.1 I/O端口的配置 64
3.5.2 并行I/O端口的结构 64
3.5.3 并行I/O端口的其他控制 66
3.5.4 并行I/O端口使用注意事项 66
3.6 电源管理 67
3.6.1 空闲(IDLE)模式 67
3.6.2 掉电模式 67
3.7 工程训练 69
3.7.1 EEPROM的测试 69
3.7.2 LED数码管驱动与显示 72
本章小结 74
思考与提高 75
第4章 定时/计数器 77
4.1 定时/计数器T0、T1的控制 77
4.1.1 定时/计数器T0 78
4.1.2 定时/计数器T1 79
4.2 定时/计数器T0、T1的应用 81
4.2.1 T0、T1的定时应用 81
4.2.2 T0、T1的计数应用 83
4.2.3 T0、T1可编程时钟的输出 84
4.3 定时/计数器T2、T3、T4 85
4.3.1 定时/计数器T2 85
4.3.2 定时/计数器T3、T4 86
4.4 工程训练 87
4.4.1 定时/计数器的定时应用 87
4.4.2 定时/计数器的计数应用 89
4.4.3 定时/计数器的综合应用 91
4.4.4 可编程时钟输出 92
本章小结 94
思考与提高 94
第5章 中断系统 97
5.1 中断系统概述 97
5.1.1 中断系统的几个概念 97
5.1.2 中断的技术优势 98
5.1.3 中断系统需要解决的问题 98
5.2 STC32G12K128单片机的中断系统 98
5.2.1 中断请求 98
5.2.2 中断响应 105
5.2.3 中断服务与中断返回 106
5.2.4 关于中断号大于31在Keil C251中编译出错的处理 107
5.2.5 中断应用举例 108
5.3 外部中断的扩展 109
5.4 工程训练 110
5.4.1 中断应用编程 110
5.4.2 外部中断的应用编程 111
本章小结 113
思考与提高 114
第6章 串行端口 117
6.1 串行通信基础 117
6.2 串行端口1 119
6.2.1 串行端口1的控制寄存器 120
6.2.2 串行端口1的工作方式与应用 122
6.2.3 STC-ISP波特率计算器 125
6.2.4 串行端口1的应用举例 125
6.3 STC32G12K128单片机与PC的通信 132
6.3.1 串行通信的端口设计 132
6.3.2 串行通信的程序设计 134
6.4 串行端口2* 135
6.5 串行端口
前言/序言
前 言
单片机技术是现代电子系统设计、智能控制的核心技术,是高等学校应用电子、电子信息、通信、物联网、机电一体化、电气自动化、工业自动化、计算机应用等专业的必修课程。
STC 32位单片机是STC在STC8H8K64U系列单片机基础上重点推出的32位8051单片机,在接口资源、引脚配置上,都与STC8H8K64U系列单片机兼容。STC8H8K64U单片机应用程序可以轻松地升级为STC32G12K128单片机应用程序。本书以STC 32 位单片机产品系列中的STC32G12K128单片机为教学平台。STC32G12K128单片机采用Keil C251作为集成开发环境,不仅包含128KB的程序存储器和12KB的数据存储器,而且其所有的特殊功能寄存器位都可以以位寻址的方式访问,是STC8系列单片机学习者与应用工程师升级学习的理想单片机。
为便于学习和应用,STC单片机的开发方—深圳国芯人工智能有限公司(简称STC)不仅开发了基于STC32G12K128单片机的STC大学推广计划实验箱(9.4),方便学校开展实践教学,还开发了“降龙棍”“屠龙刀”核心实验板,用于延伸实验、练习。上述设备都纳入了STC大学推广计划,为STC与各高等学校共建的高性能STC单片机实验室的标配设备。不仅如此,STC还开发了基于USB通信的虚拟键盘、7段数码管、LCD12864、OLED12864等调试外设,一方面,方便了基于“降龙棍”“屠龙刀”核心实验板的实验、实训;另一方面,也有助于STC单片机应用工程师在进行应用开发时进行程序调试和监控。
本书基于STC大学推广计划实验箱(9.4)(主控单片机:STC32G12K128)开发应用实例,采用基于寄存器应用编程与基于库函数应用编程相结合、理论与实践相结合、侧重工程实践的编写思路,第2章~第9章采用传统的基于寄存器应用编程的方式介绍相关知识,第10章介绍STC32G12K128的库函数及其应用方法,第11章~第19章采用基于库函数应用编程的方式介绍相关资源及其应用。
本书的编排力求实用性、应用性与易学性并重,以提高读者的工程设计能力与实践动手能力为目标,力求让读者熟练掌握C语言、STC32G12K128单片机的开发工具(包括Keil C251集成开发环境、STC在线编程软件及硬件平台等)、STC32G12K128单片机的资源,以及应用编程。对于每种片上资源,本书都安排了工程训练环节,供教学时进行实验、实践。
为方便读者学习,本书电路图中所用电路图形符号与厂家实物标注(各厂家的标注不完全相同)一致,不进行统一处理。为了更好地帮助大家学习,随书资料包含了教学课件和课后习题答案,读者可以登录华信教育资源网(http://www.hxedu.com.cn)免费注册后进行下载。
本书是STC大学推广计划的指定教材,也是STC赞助的各种大赛、培训的推荐教材。
本书由丁向荣编著,在创作过程中,STC在技术上给予了大力支持和帮助,尤其是得到STC陈锋工程师直接技术支持,STC单片机创始人姚永平先生在全书创作过程中一直保持关注,并担任本书的主审;在此,对所有提供帮助的人表示感谢!
由于作者水平有限,书中定有疏漏和不妥之处,敬请读者不吝指正!另外,本书内容不可能面面俱到,若读者想了解更多或更详细的内容,可进一步参考相关技术手册及相应的DEMO程序。与本书相关的勘误或活动信息也会动态地公布于STC官网。如有建议,可发电子邮件到:181269315@qq.com,与作者进一步沟通与交流。
作者
2023.2于广州




















