21世纪全球进入了计算机人工智能的新时代,而其中的一个重要分支就是以单片机为代表的嵌入式应用系统。在单片机发展的历史长河中,Intel MCS51内核单片机堪称经典,该类型的单片机拥有四十多年的应用历史,架构成熟、资源丰富,
因此非常适合专业技术人员、初级工程师、高校学生及电子爱好者们入门学习。国内大部分的工科院校
开设有单片机原理及应用类课程,有数以万计的技术人员熟悉该内核应用,市面上有大量的实战项目、视频教程、书籍文献和硬件电路可以直接套用,从而大幅度地降低了研发难度和开发风险,提高了开发效率,这也就是STC公司基于MCS51内核推出相关单片机产品的优势所在。
当然,Intel MCS51技术诞生于20世纪70年代,不可避免地面临着落伍的危险,如果不对其进行大规模创新,我国的单片机教学与应用就会陷入被动局面。为此,STC对经典MCS51内核单片机进行了全面的技术升级与创新,经历了STC89/90、STC10/11、STC12、STC15直到现在的STC8系列产品。研发过程中累积了上百种产品,全部采用Flash技术(可反复编程10万次以上)和ISP/IAP(在系统可编程/在应用可编程)技术,芯片抗干扰能力强,保密性好,不断优化指令系统后指令速度相比传统51单片机快提高了24倍,创新集成了USB、12位A/D(15通道)、CCP/PCA/PWM(PWM还可当作D/A使用)、高速同步串行通信端口SPI、I2C接口、高速异步串行通信端口UART(4组)、定时器、看门狗、内部高精准时钟(±1%温漂,
-40~ 85℃)、内部高可靠复位电路(可彻底省掉外部复位电路)、大容量SRAM、大容量EEPROM、大容量Flash程序存储器等片上资源,推出的STC8A8K64D4单片机还集成了DMA功能,支持4个串口、SPI、ADC和彩屏8080接口。
STC一直在推陈出新,现在STC8系列单片机本身就是一个仿真器,极大地简化了教学,针对实时操作系统RTOS推出了不可屏蔽的16位自动重载定时器,并且在的STCISP烧录软件中提供了大量的贴心工具(如范例程序、定时器计算器、软件延时计算器、波特率计算器、头文件、指令表、Keil仿真设置等)。新品单片机产品的封装形式多样,性价比高,极大地方便了客户选型和设计。从2021年开始,STC的16位8051单片机STC16F12K128已对外送样,片上资源十分丰富,还增加了32位硬件乘除法器及单精度浮点运算器。采用V8架构的新M4/M3内核32位单片机STC32M4也在研发之中,预计在2022年量产。
STC大学计划正在如火如荼地进行中,STC长期赞助全国大学生电子设计竞赛,对使用STC单片机获得奖项的学生和指导教师都给予奖励。从第十五届开始,全国大学生智能车竞赛已指定STC8G2K64S4、STC8H8K64U、STC8A8K64D4系列单片机为大赛推荐控制器,全国数百所高校、上千支队伍参赛。STC还与国内多所大学建立了STC高性能单片机联合实验室,多位知名学者使用STC 1T 8051创作的全新教材也在陆续推出中,龙顺宇老师花费了一年多时间利用专业知识认真编著的这本《深入浅出STC8增强型51单片机进阶攻略》就是非常优秀的教材,这是一本充满干货的知识宝库。
作为STC创始人也作为一个技术工作者,当我看到龙顺宇老师的新书目录和章节内容时还是有较大触动
的,书籍的内容相当充实,脉络也很清晰,非常适合入门和进阶,是单片机从业人员不可多得的书籍。我们现在主要的工作是在推进中国的工科非计算机专业微机原理、单片机原理课程改革。研究成果的具体化,就是大量高校教学改革教材的推出,龙顺宇老师的这本书就是我们研究成果的杰出代表。希望能有更多像龙顺宇老师这样优秀的一线教学者、一线工程师编著出更多这样的好书,在我们这一代人的努力下,让我国的嵌入式单片机系统设计全球领先。
感谢Intel公司发明了经久不衰的MCS51体系结构,感谢龙顺宇老师的新书保证了中国40年来的单片机教学与世界同步,
龙顺宇老师的这本书是STC大学计划推荐教材、STC高性能单片机联合实验室单片机原理上机实践指导教材、STC杯单片机系统设计大赛参考教材,是STC官方推荐的全国智能车大赛和全国大学生电子设计竞赛STC单片机参考教材,采用本书作为教材的院校将优先免费获得我们可仿真的STC高性能单片机实验箱的支持(主控芯片为STC可仿真的STC8A8K64D445ILQFP64或STC8H8K64U45ILQFP64)。
明知山有虎,偏向虎山行!
STC MCU Limited: Andy.姚永平
www.STCMCUDATA.com
2022年4月
无痛入门基础篇
第1章麻雀虽小,五脏俱全开门见山讲单片机
1.1一沙一起源,一芯一世界集成电路的国度
1.2追寻电子界的神物七窍玲珑芯
1.3师傅领进门,修行靠个人单片机的修行路
1.3.1戒躁求实入行准备
1.3.2根骨奇佳电子基础
1.3.3能说会道编程语言
1.3.4武功秘籍学习资源
1.3.5武器装备实践平台
1.3.6内功心法学习方法
1.4小宇老师的毒鸡汤和大学寄语
第2章国芯科技,百花齐放STC增强型8051单片机
2.1宏晶科技20载,STC家的微控制器
2.2大白话单片机啥参数,咋选型
2.3经典创新STC89/STC90系列单片机
2.4实力强者STC15系列单片机
2.5再推新宠STC8/STC16系列单片机
2.6主角上场搭建可靠的STC8小系统
2.6.1看懂单片机引脚分类和功能
2.6.2电源单元很重要
2.6.3下载电路不可少
2.6.4复位电路要搞好
2.6.5时钟电路真奇妙
2.6.6接口外围要配套
第3章搭筑高台,唱出好戏软硬结合产出利器
3.1抟土成人量身打造STC专属硬件平台
3.1.1细说开发板的那些事
3.1.2思修电子STC战将系列开发平台简介
3.2塑造灵魂软件环境搭建与工程配置
3.2.1主流IDE之Keil C51简介
3.2.2单文件与模块化工程建立方法及比较
3.3形神合一程序烧录与软硬联调
3.3.1如何用STCISP软件烧录程序
3.3.2单片机自己能当仿真器,你逗我
3.3.3官方联机/脱机编程器STCU8W咋用
3.4百宝之箱话说STCISP的那些妙用
3.4.1官方信息获取可以这么简单
3.4.2资源配置与调试居然有助攻
3.4.3固件升级可以自定发布程序
3.4.4居然妄想截获串口程序明码
3.5望闻问切参数测试与时序分析
3.5.1常规电参好工具万用表
3.5.2信号观察好搭档示波器
3.5.3数据分析好帮手逻辑分析仪
第4章五指琴魔,智能乐章I/O资源配置及运用
4.1Play it!弹奏单片机的智能乐章
4.2初识STC8系列单片机引脚资源
4.3引脚内部结构及模式特性
4.3.1如何理解准双向/弱上拉端口
4.3.2如何理解推挽/强上拉端口
4.3.3如何理解高阻输入
4.3.4如何理解开漏输出
4.4玩转7类寄存器拿下I/O资源配置
4.4.1引脚模式如何配
4.4.2附加功能有哪些
4.5如何处理不同系统I/O电平标准及转换
4.5.1基于SN74LVC8T245做单向8通道电平转换
4.5.2基于SN74LVC16T245做单向16通道电平转换
4.5.3基于TXB0108做双向标准I/O电平转换
4.5.4基于TXS0108做双向开漏I/O电平转换
4.6疏忽引脚电气特性险些酿成悲剧
4.7I/O引脚配置及模式验证
4.7.1基础项目A点灯观察各模式拉灌电流差异
4.7.2基础项目B隔空感应的高阻态魔术灯
4.7.3进阶项目A巧用开漏模式做触摸控制灯
第5章光电世界,自信爆棚初阶LED器件运用
5.1瞬间自信心爆棚的入门经典流水灯
5.1.1为什么入门经典总是点灯实验
5.1.2发光二极管结构及电气特性
5.1.3基础项目A左移/右移/花样流水灯
5.2火柴棍游戏说数码管原理
5.2.1数码管组成结构及分类
5.2.2基础项目B一位数码管0~F显示实验
5.2.3基础项目C分散引脚一位数码管驱动实验
5.3多位数码显示及专用芯片方案
第6章各有所长,百花齐放编程语言/方式及平台
6.1争论不休的汇编和C后谁赢了
6.2经典语言不同方式下的流水灯实验对比
6.2.1厉害了我的Keil C51代码优化器
6.2.2基础项目A基于C51语言位运算法效果
6.2.3基础项目B基于C51语言数组法效果
6.2.4基础项目C基于C51语言Keil标准库函数法效果
6.2.5基础项目D基于A51语言的效果
6.3在Keil C51环境中汇编和C代码居然能混编
6.4思维拓展: 寄存器/库函数开发方式是啥
6.5眼界拓展: 居然会有图形化的单片机开发工具
6.6平台拓展: 那些不能不玩的创客拓展平台
6.6.1积木Arduino平台的C/C 编程及风格
6.6.2国产神器51duino/STMduino运动控制驱动平台
6.6.3开源PYboard平台的MicroPython编程及风格
第7章点、线、面的艺术字符点阵液晶屏运用
7.1单片机人机交互中的显示单元
7.1.1常见的单片机显示方案选择
7.1.2神奇的单片机显卡
7.2字符型1602液晶模块
7.2.1模块功能引脚定义
7.2.2读/写时序及程序实现
7.2.3液晶功能配置命令
7.2.4基础项目A字符 进度 移屏 组合显示实验
7.2.5进阶项目A四线驱动1602节省I/O实验
7.3图形/点阵型12864液晶模块
7.3.1模块功能引脚定义
7.3.2读/写时序及程序实现
7.3.3液晶功能配置命令
7.3.4汉字坐标与绘图坐标
7.3.5基础项目B12864液晶字符、汉字显示实验
7.3.6基础项目C12864液晶进度条动画效果
7.3.7进阶项目B两线驱动12864节省I/O实验
7.3.8进阶项目C两线串行模式正弦波打点绘图
第8章0101,我是键码!按键及编码开关运用
8.1人机交互常规输入器件简介及使用
8.1.1轻触按键分类及结构
8.1.2轻触按键电压波形
8.1.3按键信号去抖动方法
8.2独立按键编程及应用
8.2.1基础项目A独立按键检测与控制实验
8.2.2进阶项目A长/短按键动作识别实验
8.2.3进阶项目B单/双击按键动作识别实验
8.2.4进阶项目C组合按键动作识别实验
8.3行列式矩阵键盘结构及应用
8.3.1基础项目B线反转式键值解析实验
8.3.2进阶项目D分散引脚44矩阵解析实验
8.4拧不到头的怪旋钮旋转编码器
8.4.1怪旋钮简介及运用
8.4.2进阶项目E编码器EC11增减计数实验
8.5参数配置好帮手BCD编码开关
8.5.1小开关可得2n个编码状态
8.5.2基础项目C挡位调整及显示实验
片内资源进阶篇
第9章高楼大厦,各有功用存储器结构及功能
9.1存储器难道不是鸡肋知识点吗
9.2让人头疼不已的8032微控制器时代
9.3你若是校长,教学楼和宿舍楼怎么修
9.4宿舍区就类似于程序存储器ROM
9.5教学区就类似于数据存储器RAM
9.6在Keil C51中看似无用的配置项
9.7藏匿于存储器单元中的特殊参数
9.7.1基础项目A读取STC8系列单片机的身份证号
9.7.2基础项目B片内Bandgap电压是多少
第10章内藏三心,坚实比金时钟源配置及运用
10.1唐僧的心说STC8时钟源形式及特点
10.2小宇老师的STC8时钟树
10.3如何利用STCISP工具轻松调配主时钟频率
10.4选择片外时钟源作为系统主时钟
10.5选择片内时钟源作为系统主时钟
10.5.1STCISP是如何调节IRC频率的呢
10.5.2基础项目C配置片内高速时钟及分频实验
10.5.3基础项目D配置片内低速时钟及分频实验
10.6实用的时钟信号输出CCO功能
第11章轻重缓急,有条不紊中断源配置及运用
11.1用生活场景弄明白中断那些事
11.2单片机中断机制的名词解释及意义
11.3细说STC8系列单片机的中断资源
11.3.1四大类理清中断源划分
11.3.2抓脉络看懂中断资源结构
11.3.3消消乐方法降低中断学习难度
11.3.4四大步解决中断流程及寄存器配置
11.4查询法和中断法下的编程对比
11.4.1基础项目A查询法实现键控灯实验
11.4.2基础项目B中断法实现键控灯实验
第12章老和尚捻珠数羊基础型定时计数器运用
12.1软件延时法与软件计数法
12.2单片机定时/计数器本质及区分
12.3基础型T/C资源简介及配置
12.3.1T0资源模式配置及计算
12.3.2T1资源模式配置及计算
12.3.3T2资源模式配置及计算
12.3.4T3/T4资源模式配置及计算
12.4基础型T/C资源编程及运用
12.4.1利用STCISP轻松运用T/C资源
12.4.2基础项目A自定义1Hz信号输出实验
12.4.3基础项目BT4时钟输出功能实验
12.4.4基础项目C基于NE555制作方波信号发生器
12.4.5基础项目D外部脉冲计数实验
第13章捕获比较,功能王者高级型定时/计数器运用
13.1为啥会有高级型T/C资源
13.2小菜一碟定时功能
13.2.1PWMA资源时基单元结构
13.2.2定时功能配置流程及相关寄存器简介
13.2.3基础项目A分挡输出1Hz1kHz10kHz方波实验
13.3轻松拿下计数功能
13.3.1外部时钟源模式1计数功能
13.3.2模式1配置流程及相关寄存器简介
13.3.3基础项目B捕获/比较通道脉冲计数实验
13.3.4外部时钟源模式2计数功能
13.3.5模式2配置流程及相关寄存器简介
13.3.6基础项目C外部触发引脚脉冲计数实验
13.4输入捕获之轻松测量信号周期及占空比
13.4.1谈谈方波信号的频率及占空比测量
13.4.2PWMA资源的输入捕获功能
13.4.3周期测量功能配置流程
13.4.4基础项目D简易1kHz~1MHz方波信号频率计
13.4.5PWM信号占空比测量
13.4.6什么是复位触发模式
13.4.7占空比测量功能配置流程
13.4.8基础项目E简易PWM信号占空比测量实验
13.5灵活自由的输出比较功能
13.5.1输出比较功能结构及用途
13.5.2什么叫作边沿对齐方式
13.5.3怎么理解中间对齐方式
13.5.4边沿/中间对齐PWM输出配置流程
13.5.5基础项目F边沿对齐方式4路PWM信号输出
13.5.6基础项目G中间对齐方式4路PWM信号输出
第14章你来我往,烽火传信串行通信及UART运用
14.1烽火戏诸侯说单片机数据通信
14.2单片机数据通信基础知识铺垫
14.2.1单片机并行通信
14.2.2单片机串行通信
14.2.3串行通信位同步方式
14.2.4串行通信数据传送方式
14.2.5收发时钟及通信速率
14.2.6串行信道数据编码格式
14.2.7串口通信电平标准及适配
14.2.8常用串行通信接口
14.3UART资源简介及配置
14.3.1串口寄存器分类及串口1配置
14.3.2工作模式0: 伪通信串/并转换模式
14.3.3工作模式1: 181结构可变速率模式
14.3.4工作模式2: 1811结构固定速率模式
14.3.5工作模式3: 1811结构可变速率模式
14.3.6串口2模式讲解与配置
14.3.7串口3模式讲解与配置
14.3.8串口4模式讲解与配置
14.3.9用STCISP轻松搞定串口初始化配置
14.4UART资源编程及运用
14.4.1基础项目A串口打印单片机身份证号实验
14.4.2基础项目B重定向使用printf()函数实验
14.4.3基础项目C多串口切换printf()输出实验
14.4.4进阶项目A上/下位机单字节命令交互实验
14.4.5进阶项目B自制AT指令集串口交互实验
第15章击鼓声响,双向传花串行外设接口SPI运用
15.1击鼓传花说SPI玩法
15.2SPI资源介绍及运用
15.2.1主从角色如何配置
15.2.2SPI通信的三种方式
15.2.3数据帧结构怎么选
15.2.4时钟极性和相位是什么含义
15.2.5基础项目A三线SPI接口双机通信实验
15.3初识华邦/兆易创新25Qxx系列存储颗粒
15.3.1W25Qxx系列存储颗粒概述
15.3.2W25Qxx系列存储颗粒控制和状态寄存器
15.3.3W25Qxx系列存储颗粒功能指令详解
15.3.4进阶项目A串口打印W25Q16存储器芯片器件ID
15.3.5进阶项目BW25Q16存储芯片数据读写实验
第16章大老爷升堂,威武!串行总线接口I2C运用
16.1大老爷升堂问案说I2C玩法
16.2初识标准I2C总线协议
16.2.1相关人等I2C总线上的角色
16.2.2升堂退堂数据有效性及起止条件
16.3I2C资源介绍及运用
16.3.1主机模式寄存器配置
16.3.2从机模式寄存器配置
16.4初识Atmel公司AT24Cxx系列EEPROM芯片
16.4.1AT24Cxx系列芯片简介
16.4.2AT24Cxx系列芯片写操作时序
16.4.3AT24Cxx系列芯片读操作时序
16.4.4基础项目A读写AT24C02应答测试实验
16.4.5进阶项目A单字节读写AT24C02实验
16.4.6进阶项目B多字节读写AT24C02实验
16.4.7进阶项目C页写入AT24C02实验
第17章信号量化翻译官模数转换器运用
17.1表达消息的电信号
17.1.1模拟信号
17.1.2数字信号
17.1.3A/D转换与D/A转换
17.2A/D资源介绍及运用
17.2.1A/D资源配置流程
17.2.2基础项目A查询法打印ADC结果实验
17.2.3基础项目B中断法打印ADC结果实验
17.3A/D转换系统可靠性设计
17.3.1供电及基准电压优化
17.3.2采样前端电路滤波、分压、负压处理
17.3.3采样数据软件滤波
17.4A/D转换的诸多玩法
17.4.1进阶项目A电压采集和低/高压等级指示器
17.4.2进阶项目B一线式44矩阵键盘设计与实现
第18章公平之秤,轻重几何电压比较器资源运用
18.1电压比较器功能及专用芯片运用
18.2双路阈值均可调的单限电压比较器
18.3临界信号防抖动的迟滞电压比较器
18.4双限域内求稳定的窗口电压比较器
18.5STC8系列单片机比较器资源运用
18.5.1片内比较器结构及工作流程
18.5.2片内比较器寄存器配置方法
18.5.3基础项目D查询法验证比较器功能实验
18.5.4基础项目E中断法验证比较器功能实验
18.5.5基础项目F巧用电压比较器监测系统掉电
18.5.6基础项目G巧用电压比较器区分电压梯级
18.6有了比较器,自己也能造个ADC
18.6.1一阶RC积分器 比较器=廉价ADC
18.6.2进阶项目A基于RC积分器与比较器的ADC实验
第19章一键还原,跑飞重置系统复位与看门狗运用
19.1单片机非得要复位吗
19.2常规的POR方式上电复位
19.3经典的MRST方式人工复位
19.4实用的LVR方式低压复位
19.4.1基础项目A验证LVD低压复位功能实验
19.4.2进阶项目A巧用LVD实现电量指示实验
19.5特殊的WDR方式看门狗复位
19.6灵活的SWR方式软件复位
第20章摇身一变睡美人电源管理及功耗控制
20.1单片机工作状态及迁移过程
20.2为什么要注重单片机系统功耗
20.3STC8H系列单片机功耗指标及调控优势
20.4如何降低单片机系统功耗
20.4.1功耗控制之硬件调整
20.4.2功耗控制之软件优化
20.5STC8系列单片机省电模式配置与唤醒
20.5.1省电模式(PD/IDLE模式)配置方法
20.5.2基础项目A验证省电模式下的系统功耗实验
20.5.3基础项目B利用WKT唤醒MCU实验
20.5.4基础项目C利用INT唤醒MCU实验
20.5.5基础项目D利用T/C唤醒MCU实验
20.5.6基础项目E利用RxD唤醒MCU实验
20.5.7基础项目F利用SDA唤醒MCU实验
20.5.8基础项目G利用LVD唤醒MCU实验
20.5.9基础项目H利用CMP唤醒MCU实验
第21章修房子,搞装修ISP/IAP及EEPROM编程
21.1单片机系统中的ISP/IAP技术应用
21.1.1什么是ISP/IAP技术
21.1.2简析ISP/IAP在STC8单片机中的应用
21.2样板房/大通间说EEPROM区域划分
21.3STC8系列单片机EEPROM编程运用
21.3.1相关寄存器功用及配置方法
21.3.2基础项目A自增数据掉电记忆实验(IAP方式)
21.3.3基础项目B自增数据掉电记忆实验(MOVC方式)
21.3.4进阶项目A数据读写与串口打印实验
第22章千头万绪,分身有术RTX51操作系统运用
22.1常规前后台编程框架中的任务处理
22.2while(1)死循环编程形式有局限吗
22.2.1基础项目A键控灯的困扰实验
22.2.2基础项目B改进版键控灯实验
22.3RTOS实时操作系统的引入
22.3.1怎么理解系统的实时性
22.3.2有必要在51单片机上加操作系统吗
22.4Keil C51里的好宝贝: RTX51实时操作系统
22.4.1话说RTX51 Full与RTX51 Tiny
22.4.2RTX51系统的任务处理与编程
22.4.3如何部署RTX51 Tiny系统到项目工程
22.4.4轻松解读Conf_tny.A51汇编核心
22.4.5灵活运用RTX51TNY.H现成函数
22.5体现RTX51带来的编程优势
22.5.1进阶项目A利用RTX51解除键控灯的困扰实验
22.5.2基础项目C利用os_wait2()替换delay()延时实验
22.5.3基础项目D验证任务间的信号传递实验
22.6巧用Keil C51仿真/调试模式加深RTX51理解
22.7小宇老师寄语: 熟悉一款主流RTOS是必要的
22.7.1亚马逊FreeRTOS系统简介
22.7.2睿赛德RTThread系统简介
参考文献