第1章 从零开始动手制作51单片机小项目
1.1我的单片机自学经历
1.2我眼中的单片机
1.3零基础搭建一个最小电路
1.3.1搭建电路的地盘
1.3.2单片机运行的最简单条件
1.3.3动手搭建最简单电路——点亮1个LED灯
1.3.4点亮多个LED灯
1.4单片机怎样下载程序
1.4.1了解串口
1.4.2自己制作串口下载线
1.5制作USB下载线
1.5.1关于USB下载的概念
1.5.2用USB转TTL模块接口下载程序
1.6自己搭建流水灯
1.6.1实验说明
1.6.2实验原理图
1.6.3器件清单与连接方法
1.6.4程序下载
1.6.5代码分析
1.6.6实验现象
1.7按键控制LED灯
1.7.1实验说明
1.7.2实验原理图
1.7.3器件清单与操作步骤
1.7.4程序下载
1.7.5代码分析
1.7.6实验现象
1.8按键控制蜂鸣器
1.8.1实验说明
1.8.2实验原理图
1.8.3器件清单与连接方法
1.8.4程序下载
1.8.5代码分析
1.8.6实验现象
1.9动手搭建电路点亮1602液晶屏
1.9.1实验说明
1.9.2实验原理图
1.9.3器件清单与连接方法
1.9.4程序下载
1.9.5代码分析
1.9.6实验现象
第2章 51单片机理论深入
2.1怎样学好单片机
2.1.1初学者的困难
2.1.2学习单片机的四个步骤
2.1.3学习单片机的准备工作
2.2单片机芯片入门理解
2.2.1处理器如何控制一个智能产品
2.2.2处理器芯片引脚的理解
2.2.3处理器是怎么认识下载进去的程序代码的
2.2.4为什么采用二进制,而不采用三进制、四进制
2.2.5处理器硬件上如何实现存储二进制数
2.2.6单片机芯片的选型
2.351单片机资料阅读方法
2.3.1如何阅读51单片机的芯片手册
2.3.251单片机的引脚是如何被控制的
2.4从零开始搭建51编程环境
2.4.1环境搭建
2.4.2实现现象
2.4.3main.c源代码(可以直接运行)
2.4.4硬件原理图说明
2.4.5软件架构和代码分析(只有一个main.c文件)
2.4.6while语句
2.4.7for语句
2.5KEIL仿真及延时语句的精确计算
2.6不带参数函数的写法及调用
2.7带参数函数的写法及调用
2.8利用C51库函数实现流水灯
2.9硬件基础
2.9.1电磁干扰
2.9.2去耦电容
2.9.3三极管
2.9.4晶振电路
2.9.5复位电路
2.9.6单片机I/O口的状态
2.9.7上下拉电阻
第3章 51单片机全方位实战
3.1如何下载第一个程序到单片机里
3.1.1什么是冷启动
3.1.2环境搭建
3.1.3开始下载第一个程序
3.2如何驱动发光二极管
3.2.1发光二极管的介绍
3.2.2发光二极管的发光原理
3.2.3硬件原理图连接
3.2.4例程01单片机I/O输出——点亮1个LED灯方法
3.2.5例程02单片机I/O输出——点亮1个LED灯方法
3.2.6例程03单片机I/O输出——点亮1个LED灯方法
3.2.7更多LED例程
3.3按键
3.3.1按键的介绍
3.3.2单片机检测小弹性按键的原理
3.3.3硬件连接原理图
3.3.4例程01一个独立按键控制LED(无消抖)
3.3.5例程02一个独立按键控制LED(消抖动)
3.3.6更多按键的例程
3.4共阳数码管
3.4.1共阳数码管的介绍
3.4.2共阳数码管的内部原理
3.4.3共阳数码管的硬件连接原理
3.4.4例程01共阳数码管静态显示数字
3.4.5例程02共阳数码管静态显示数字
3.4.6例程03共阳数码管循环显示数字0~
3.4.7更多共阳数码管例程
3.5共阴数码管
3.5.18位共阴数码管简介
3.5.28位共阴数码管的工作方式
3.5.3硬件原理图连接
3.5.4例程018位数码管显示其中之一
3.5.5更多有关共阴数码管例程
3.6定时器
3.6.1定时器的由来
3.6.2定时器实现原理与作用
3.6.3时钟周期、机器周期、指令周期、总线周期的区别
3.6.4单片机的定时器响应方式
3.6.5定时器的4种不同工作模式
3.6.6例程01用定时器使得LED灯闪烁
3.6.7更多有关定时器例程
3.7外部中断
3.7.1什么是中断
3.7.2什么是单片机的中断
3.7.3什么是中断的来源
3.7.4什么是中断的优先级
3.7.5单个中断的响应过程
3.7.6多个中断的嵌套响应过程
3.7.7单片机中的中断如何被管理
3.7.8硬件原理说明
3.7.9例程01外部中断0电平触发
3.7.10更多有关外部中断例程
3.8蜂鸣器(喇叭)
3.8.1蜂鸣器简介
3.8.2无源电磁式蜂鸣器的工作原理
3.8.3硬件原理与连接
3.8.4例程01喇叭发声原理
3.8.5更多蜂鸣器的例程
3.9看门狗
3.9.1看门狗的简单介绍
3.9.2看门狗的原理和软件设计思想
3.9.3例程01看门狗溢出复位实验
3.9.4更多看门狗的例程
3.10红绿双色点阵
3.10.1对LED点阵的初步了解
3.10.2红绿双色LED点阵的内部结构
3.10.3红绿双色LED点阵显示原理
3.10.4硬件原理图描述
3.10.5例程01双色点阵1种颜色显示
3.10.6更多红绿双色点阵例程
3.11串口通信的收与发
3.11.1什么是串口通信
3.11.2串口通信的属性
3.11.3什么是单片机的TTL电平
3.11.4NPN和PNP三极管的基础知识
3.11.5RS232电平与TTL电平的转换
3.11.6神舟51+ARM独特的USB转串口的TTL电平模块设计
3.11.7串口波特率的理解
3.11.851单片机内部的UART串口简介
3.11.9单片机串口硬件连接原理
3.11.10例程01DB9串口输出一个字符
3.11.11更多串口通信例程
3.12555脉冲发生器
3.12.1555脉冲发生器简介
3.12.2555定时器的工作原理
3.12.3硬件原理及连接
3.12.4例程01555多谐振荡器蜂鸣实验
3.12.5更多555脉冲发生器例程
3.13矩阵键盘
3.13.1矩阵按键简介
3.13.2矩阵按键的原理与识别
3.13.3矩阵按键的几种扫描方法
3.13.4硬件原理图
3.13.5例程01矩阵键盘实现
3.13.6更多矩阵键盘例程
3.14串转并扩展(74HC595)
3.14.174HC595简介
3.14.2串转并扩展(74HC595)的工作原理
3.14.3硬件原理与连接
3.14.4例程0174HC595控制多个LED灯点亮
3.15并转串扩展(74HC165)
3.15.1并转串扩展74HC165简介
3.15.2并转串扩展(74HC165)的工作原理
3.15.3硬件原理与连接
3.15.4例程0174HC165读按键功能
3.16译码实验(74HC138)
3.16.1什么是译码器
3.16.2译码器的实现原理
3.16.374HC138译码器芯片介绍
3.16.4硬件原理与连接
3.16.5例程0138译码器点亮1个LED灯
3.16.6更多74HC138译码器例程
3.17锁存器(74HC573)
3.17.1什么是锁存器
3.17.2锁存器的实现原理
3.17.3锁存器74HC573芯片介绍
3.17.4硬件原理与连接
3.17.5例程01I/O口高低电平控制点亮1个LED灯
3.17.6更多有关74HC573锁存器例程
3.18PS/2键盘输入
3.18.1PS/2接口简介
3.18.2PS/2键盘鼠标的硬件接口
3.18.3PS/2的协议
3.18.4键盘与PS/2协议实例分析
3.18.5单片机与PS/2设备连接的硬件原理图
3.18.6例程01PS/2键盘输入在LED数码管显示
3.18.7更多PS/2的例程以及分析
3.19A/D和D/A(PCF8591)
3.19.1名词解释
3.19.2模拟转数字信号和数字转模拟信号产生的背景
3.19.3A/D转换原理
3.19.4D/A转换原理
3.19.5A/D与D/A的主要指标
3.19.6A/D与D/A芯片PCF8591介绍
3.19.7硬件原理图说明
3.19.8例程01PCF8591第1路A/D转换值数码管显示
3.19.9更多有关A/D和D/A的例程以及分析
3.20RTC实时时钟(DS1302)
3.20.1RTC实时时钟简介
3.20.2DS1302时钟芯片简介
3.20.3DS1302时钟芯片工作原理
3.20.4DS1302硬件连接原理
3.20.5例程01DS1302数码管显示实时时钟
3.20.6更多DS1302实时时钟的例程以及分析
3.211602液晶屏
3.21.11602字符型液晶屏简介
3.21.21602液晶屏显示的基本原理
3.21.3如何控制1602液晶屏(寄存器的介绍)
3.21.4硬件连接原理
3.21.5例程011602液晶屏静态显示实验
3.21.6更多有关1602液晶屏的例程
3.22红外遥控器收发
3.22.1红外收发简介
3.22.2红外收发的特点与用途
3.22.3红外发送的工作原理
3.22.4红外接收头的物理结构
3.22.5红外接收头的工作原理
3.22.6红外接收的过程描述
3.22.7硬件原理图与连接
3.22.8例程01红外控制LED灯闪烁
3.22.9更多有关红外遥控器的例程
3.23热敏、光敏电阻
3.23.1为什么会有热敏、光敏电阻出现
3.23.2热敏电阻的工作和制造原理
3.23.3光敏电阻的工作和制造原理
3.23.4硬件电路原理图
3.23.5例程01热敏电阻数码管显示
3.23.6例程02光敏电阻数码管显示
3.24RS485通信
3.24.1串行通信
3.24.2RS485串行通信介绍
3.24.3RS485串行通信结构
3.24.4RS485串行通信原理
3.24.5MAX485收发器芯片介绍
3.24.6硬件原理图说明
3.24.7例程01RS485通信实验
3.2518B20温度传感器
3.25.1为什么会有温度传感器出现
3.25.2什么是温度传感器
3.25.3DS18B20温度传感器的特性
3.25.4DS18B20温度传感器的实现原理
3.25.5DS18B20硬件原理图分析
3.25.6例程01DS18B20初始化程序
3.25.7更多有关DS18B20温度传感器的例程
3.26直流电机
3.26.1直流电机的介绍
3.26.2直流电机的内部结构
3.26.3直流电机和步进电机的区别
3.26.4直流电机的分类
3.26.5直流电机的工作原理
3.26.6直流电机的控制原理
3.26.7直流电机的控制电路
3.26.8硬件原理图与连接
3.26.9例程01直流电机恒速转动
3.27步进电机
3.27.1什么是步进电机
3.27.2步进电机和普通直流电机的区别
3.27.3步进电机的分类
3.27.4步进电机的转动
3.27.5步进电机驱动器件的介绍
3.27.6硬件原理与连接
3.27.7例程01步进电机转动原理
3.27.8更多有关步进电机的例程
3.28继电器
3.28.1继电器简介
3.28.2电磁继电器的工作原理
3.28.3硬件原理
3.28.4例程01继电器1 s切换一次
3.28.5更多有关继电器的例程
3.29315M无线模块
3.29.1无线模块简介
3.29.2315M无线模块的特点
3.29.3315M无线模块内部架构实现
3.29.4例程01315M无线模块任意按键控制LED实验
3.29.5更多有关315M无线模块的例程
3.302.4G无线模块
3.30.12.4G无线模块简介
3.30.2nRF24L01无线模块的工作原理
3.30.3单片机串口硬件连接原理
3.30.4例程01两块2.4G无线模块测试实验
3.30.5例程02两块2.4G无线模块通信实验
3.315110液晶屏
3.31.15110液晶屏简介
3.31.25110液晶屏的原理和特点
3.31.35110液晶屏连接方式
3.31.45110液晶屏引脚分析
3.31.55110液晶屏字模生成方法
3.31.6如何控制5110液晶屏
3.31.7硬件连接原理
3.31.8例程01NOKIA5110液晶屏显示英文
3.31.9更多有关5110液晶屏显示等的例程
3.32TFT彩色液晶屏
3.32.1术语解释
3.32.2TFT彩屏硬件原理简介
3.32.3液晶显示原理剖析
3.32.4控制器命令分析
3.32.5TFT硬件设计
3.32.6例程01TFT彩屏显示红色
3.32.7更多有关彩屏例程
3.33μC/OSII操作系统的基础理解
3.33.1操作系统简介
3.33.2理解操作系统的小例子
3.33.3μC/OSII的任务及其状态
3.33.4μC/OSII任务的控制块OS_TCB
3.33.5μC/OSII的就绪表
3.33.6μC/OSII的任务调度
3.33.7μC/OSII的调度器上锁、开锁
3.33.8μC/OSII的空闲任务
3.33.9μC/OSII中的中断
3.33.10μC/OSII的时钟节拍
3.33.11μC/OSII的初始化
3.33.12μC/OSII的启动
3.33.13例程01μC/OSII单任务运行
3.33.14例程02μC/OSII多任务运行
第4章 ARM理论基础深入
4.151单片机与ARM处理器的区别
4.1.1传统理念对51单片机和ARM的理解
4.1.251单片机与ARM芯片内部的真正区别
4.1.3芯片的性价比与选型
4.2从51到ARM的学习方法
4.2.1精通51之后再来学习ARM
4.2.2市场上的ARM种类
4.2.3ARM是硬件还是软件
4.2.4嵌入式开发需要的辅助调试工具
4.2.5资深工程师眼中的嵌入式操作系统
4.2.6资深工程师眼中的嵌入式产品的开发流程
4.2.7ARM开发板的优点与缺点
4.3ARM编程入门
4.3.1如何阅读STM32的芯片手册
4.3.2STM32芯片的单个引脚是如何被控制的
4.4分析一个最简单的程序
4.4.1硬件原理图说明
4.4.2main.c源代码(可以直接运行)
4.4.3环境搭建
4.4.4实验现象
4.4.5例程软件架构和代码分析(只有一个main.c文件)
4.4.6代码剖析1——代码的定义如何与芯片内部资源挂钩
4.4.7代码剖析2——代码如何映射到芯片内部的寄存器
4.4.8代码剖析3——main函数寄存器级分析(重点)
4.4.9代码下载方式1——通过JFlash下载
4.4.10代码下载方式2——通过KEIL软件直接下载
4.5从零开始搭建一个最简单的模板
4.5.1如何去官网下载最新的STM32资料
4.5.2获取ST库源码
4.5.3开始新建工程
4.5.4MDK环境设置
4.5.5使用JLINK V8仿真器硬件调试配置
4.6通过程序的分析总结51和ARM的区别
第5章 ARM实战
5.1神舟51+ARM模块如何使用
5.1.1神舟51+ARM模块与最小系统的区别
5.1.2如何把ARM模块扣在神舟51单片机板上
5.1.3扣上ARM模块后51单片机板上的原理图怎么看
5.2神舟51+ARM模块的硬件电路分析
5.2.1神舟51+ARM的原理图
5.2.2神舟51+ARM的功能特点
5.2.3STM32F103C8T6处理器
5.2.4LED指示灯
5.2.5USART接口
5.2.6复位系统
5.2.7标准的JTAG/SWD仿真调试下载接口
5.2.8USB全速接口
5.2.9连接器的说明
5.3通用输入/输出(GPIO)
5.3.1引脚特性
5.3.2GPIO应用领域
5.3.3引脚分配
5.3.4GPIO引脚内部硬件电路原理剖析
5.3.5STM32的GPIO引脚深入分析
5.3.6在STM32中如何配置片内外设使用的I/O端口
5.3.7例程01单个LED点灯闪烁程序
5.3.8例程02LED双灯闪烁实验
5.3.9例程03LED三个灯同时亮同时灭
5.3.10例程04LED流水灯程序
5.4时钟
5.4.1什么是时钟
5.4.2STM32的时钟
5.4.3STM32时钟的深入分析
5.4.4例程01STM32芯片32 MHz频率下跑马灯程序
5.4.5例程02STM32芯片40 MHz频率下跑马灯程序
5.4.6例程03STM32芯片72 MHz频率下跑马灯程序
5.5独立按键
5.5.1按键的分类
5.5.2按键的属性
5.5.3STM32的位带操作
5.5.4例程01STM32芯片按键点灯(无防抖)
5.5.5例程02STM32芯片按键点灯增加了防抖的代码
5.6串口通信的收与发
5.6.1串口通信
5.6.2例程01最简单的串口打印$字符
5.6.3例程02单串口打印www.armjishu.com字符(初级)
5.6.4例程03单串口打印www.armjishu.com字符(中级)
5.6.5例程04单串口打印www.armjishu.com字符(高级)
5.6.6例程05USARTCOM1串口接收与发送实验(初级)
5.6.7例程06USARTCOM1串口接收与发送实验(中级)
5.6.8例程05USARTCOM1串口接收与发送实验(高级)
5.7更多ARM例程(包括详细代码分析)
第6章 嵌入式高手进阶之路
6.1各种角色搭配组成
6.1.1产品经理
6.1.2技术总监
6.1.3研发部经理
6.1.4普通研发人员
6.1.5售前工程师
6.1.6售后工程师
6.1.7销售
6.2硬件专家之STM32神舟团队20年工作经验心得总结
6.2.1需求定义
6.2.2处理器的选择之I/O引脚数量篇
6.2.3处理器的选择之接口需求篇
6.2.4处理器的选择之内存容量需求篇
6.2.5处理器的选择之中断数量篇
6.2.6处理器的选择之实时处理篇
6.2.7处理器的选择之芯片厂商篇
6.2.8处理器的选择之芯片速度篇
6.2.9处理器的选择之只读存储器(ROM)选择篇
6.2.10处理器的选择之电源要求篇
6.2.11处理器的选择之设备工作环境要求篇
6.2.12处理器的选择之芯片寿命篇
6.2.13处理器的选择之资料获取篇
6.2.14开发成本的预测和估计
6.2.15产品开发设计文档之硬件文档撰写思路
6.2.16产品开发设计文档之软件文档撰写思路
6.2.17嵌入式高手对技术的理解(精华体验)
6.3PCB设计建议
6.3.1PCB设计干扰的相关基础知识
6.3.2电磁干扰三要素
6.3.3电磁干扰源分类
6.3.4电磁干扰传播途径
6.3.5印制电路板
6.3.6器件位置
6.3.7接地和供电(VSS、VDD)
6.3.8数字电路与模拟电路的共地处理
6.3.9信号线布在电源层或地层上
6.3.10焊盘与产品质量的关系
6.3.11应关注的其他信号
6.3.12未用到的I/O引脚
6.4软件领域专家
6.4.1STM32库函数到底是什么
6.4.2STM32库函数的好处
6.4.3千人大项目如何分配工作
6.5以人为本,从实际出发
参考文献
· · · · · · (
收起)