《51单片机逆向学习实战教程》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:刘韶轩,尚弘琳编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2016
  • ISBN:9787302434627
  • 页数:258 页
图书介绍:以制作简易信号发生器为过程,以学习51单片机为目的,两者交互进行。在学习过程中,带领读者思考各种问题,例如为什么低电平点亮LED,而不是高电平点亮LED,又或者当单片机自身驱动能力不足时,该如何使用外部驱动能力强的器件。更主要的是提高读者克服困难的能力,在调试过程中遇到问题时,如何通过排查确定问题点,确定以后,如何查找答案。

第1部分 从项目起步,学习单片机 3

第1章 单片机的前世今生 3

1.1 老生常谈单片机 3

1.1.1 你好,单片机 3

1.1.2 为什么学习51单片机 5

1.1.3 常见的单片机类型 6

1.2 因材施教,因物施法 7

1.2.1 通过Proteus仿真学习单片机 7

1.2.2 通过开发板学习单片机 8

1.2.3 逆向学习 8

1.3 软件入门基础 9

1.3.1 汇编语言与C语言的那些事 9

1.3.2 C语言入门五式 10

1.3.3 加减乘除 13

1.3.4 数制三变 14

1.3.5 与或反 15

1.3.6 常用数据类型与大小 16

1.4 单片机资料准备 17

1.4.1 找到datasheet 17

1.4.2 认识STC89C52 18

1.4.3 STC89C52与AT89S52 19

第2章 项目的确定与准备 21

2.1 知己知彼 21

2.1.1 我们的目标 21

2.1.2 起步的门槛 22

2.2 项目的准备工作 23

2.2.1 准备器件 23

2.2.2 安装Keil软件 24

2.2.3 安装CH340的驱动程序 27

2.2.4 用Keil新建一个工程 29

第2部分 动手吧,做个信号发生器 37

第3章 搞定电源 37

3.1 线性稳压器 37

3.1.1 什么是线性稳压器 37

3.1.2 7805及其应用电路 38

3.1.3 AMS1117及其应用电路 40

3.1.4 低静态电流的MCP1790 41

3.1.5 线性稳压器的优点与缺点 42

3.2 DC-DC 43

3.2.1 什么是DC-DC 43

3.2.2 LM2576及其应用电路 44

3.2.3 MP2307及其应用电路 46

3.2.4 DC-DC的优点与缺点 48

3.3 方案的选择与思考 49

3.3.1 电源芯片的主要参数 49

3.3.2 可调电源的一点联想 50

第4章 Hello,LED 52

4.1 51最小系统板 52

4.2 时钟 53

4.2.1 晶体与晶振 53

4.2.2 3个周期 56

4.3 驱动LED 57

4.3.1 初识LED 57

4.3.2 点亮LED 58

4.3.3 程序的编译与下载 59

4.3.4 特殊功能寄存器的位定义 63

4.3.5 引脚的驱动能力 64

4.3.6 LED闪烁 65

4.3.7 Keil仿真 66

4.4 程序的风格 69

4.5 流水灯与子函数 72

4.5.1 流水灯1 72

4.5.2 流水灯2 75

4.6 头文件 77

4.6.1 什么是头文件 77

4.6.2 头文件的种类 79

第5章 攻克定时中断 81

5.1 中断 81

5.1.1 揭掉中断的面纱 81

5.1.2 中断的种类与优先级 82

5.1.3 中断相关的寄存器 83

5.2 定时器 85

5.2.1 什么是定时器 85

5.2.2 定时相关寄存器 85

5.3 定时中断与LED 86

5.3.1 定时中断控制LED闪烁 86

5.3.2 自动装载模式控制LED闪烁 89

5.4 PWM 90

5.4.1 了解PWM波形 90

5.4.2 自动装载模式与PWM 91

5.4.3 PWM与呼吸灯 92

5.5 函数的定义与声明 94

第6章 征服数码管 97

6.1 三极管与蜂鸣器 97

6.1.1 什么是三极管 97

6.1.2 什么是蜂鸣器 98

6.1.3 三极管驱动蜂鸣器 98

6.1.4 蜂鸣器驱动电路优化 99

6.1.5 开关三极管的使用误区 101

6.2 认知数码管 102

6.2.1 什么是数码管 102

6.2.2 数码管的驱动电路 104

6.2.3 数码管编码 107

6.3 点亮数码管 108

6.3.1 宏定义 108

6.3.2 数字静止显示 109

6.4 数组 110

6.4.1 一维数组的定义及使用 110

6.4.2 数字循环显示 111

6.4.3 code的用法 112

6.4.4 数码管动态显示 113

6.4.5 局部变量与全局变量 116

6.5 指针 118

6.5.1 指针与指针变量 118

6.5.2 指针与数组 118

6.5.3 指针、数组、数码管 119

第7章 玩转按键 121

7.1 扫描检测 121

7.1.1 检测单个按键 121

7.1.2 按键消抖 123

7.1.3 按键控制蜂鸣器 125

7.1.4 检测矩阵键盘 127

7.1.5 函数返回值 132

7.1.6 函数返回值的注意事项 133

7.2 中断检测 134

7.2.1 外部中断的介绍 134

7.2.2 低电平中断检测按键 135

7.2.3 下降沿中断检测按键 137

7.2.4 按键与计数器 138

7.3 扫描检测与中断检测的优缺点 141

第8章 拿下IIC和DAC 143

8.1 关于PCF8591 143

8.1.1 什么是数/模转换 143

8.1.2 PCF8591的主要参数 144

8.1.3 DAC的主要指标 145

8.1.4 什么是IIC 146

8.2 PCF8591的外围电路 147

8.2.1 PCF8591的应用电路 147

8.2.2 硬件地址 148

8.2.3 基准源 148

8.2.4 IIC总线接口和时序 149

8.2.5 PCF8591的输出电路 153

8.3 输出多少,你说了算 153

8.3.1 学会看datasheet 153

8.3.2 相关寄存器 155

8.3.3 跑起来吧,PCF8591 156

8.3.4 基于D/A的呼吸灯 160

8.3.5 多个C源文件 162

8.3.6 extern的用法 165

第9章 诞生吧,信号发生器 166

9.1 诞生前的准备 166

9.1.1 程序流程图 166

9.1.2 信号发生器的流程图 167

9.1.3 程序调试思路 168

9.1.4 确定原理图 169

9.1.5 波形取值 170

9.2 频率不可调 171

9.2.1 定时、查表、输出 171

9.2.2 中断、优化、补偿 173

9.2.3 波形、频率、显示 177

9.3 频率可调 179

9.3.1 频率上限与下限 179

9.3.2 输入与算法 180

9.3.3 第一个波形 181

9.4 波形可调 184

9.4.1 方波、三角波取值 184

9.4.2 波形、频率可调 185

9.5 指针与优化 189

9.5.1 数组与指针 189

9.5.2 中断、再次优化 190

第3部分 查漏补缺,方案与能力的升级 195

第10章 迟到的UART口 195

10.1 UART口的第一次接触 195

10.1.1 什么是UART口 195

10.1.2 UART口应用电路 196

10.1.3 波特率 198

10.1.4 寄存器与工作方式 199

10.2 UART口的应用 201

10.2.1 UART与LED 201

10.2.2 UART与ASCⅡ码表 204

10.2.3 UART与内码 207

10.3 串口的用途 210

10.3.1 调试 210

10.3.2 信号发生器方案大变样 210

第11章 遗忘的A/D采样 212

11.1 模/数转换 212

11.1.1 什么是模/数转换 212

11.1.2 PCF8591的模/数转换 213

11.2 采样与输出 215

11.2.1 电位器采样 215

11.2.2 NTC与光敏电阻 217

第12章 杂七杂八 219

12.1 1602液晶 219

12.1.1 液晶屏相关参数 219

12.1.2 操作时序及指令 221

12.1.3 液晶显示例程 222

12.2 红外遥控 227

12.2.1 红外遥控的初步接触 227

12.2.2 红外遥控的通信方式 229

12.2.3 红外遥控编程实例 231

12.2.4 433模块的解码 235

12.3 温度传感器DS18B20 237

12.3.1 DS18B20的初步了解 237

12.3.2 控制DS18B20的指令 239

12.3.3 DS18B20的工作时序 241

12.3.4 DS18B20的实例 243

第13章 善假于物 249

13.1 百度与搜索 249

13.1.1 直接搜索 249

13.1.2 关键字搜索 251

13.2 QQ与求人 252

13.2.1 技术讨论群 252

13.2.2 QQ群提问的忌讳 253

13.2.3 提问的艺术 253

参考文献 256

后记 257