第一篇硬件电路设计与制作 1
目 录 1
第1章功能定义 5
附录Ⅶ实验指导 31 5
第2章方案选定 10
第3章电路原理图设计 16
3.1 电路设计基本知识 16
3.1.1 Protel基本操作 17
3.1.2 Protel DDB文件的组成 26
3.1.3 Protel 中各种文件之间的关系 28
3.2建立自己的库 30
3.2.1原理图库定义 30
3.2.2元件封装库定义 37
3.3原理图层次设计 45
3.4.2 AT89C51SND1最小系统设计 50
3.4MP3原理图设计 50
3.4.1如何进行原理图设计 50
第4章采购元件 62
4.1生成元件清单 62
4.2购买元件 63
第12章硬件接口程序设计与调试 1 66
第5章印制电路板设计 68
5.1 PCB设计的基本流程 68
5.2元件布置 72
5.2.1元件分类 72
5.2.2确定电路板外形 74
5.2.3布置元件 76
5.3手动布线 83
14.3设备的连接方式 1 86
5.4自动布线 87
5.5设计结果检查及调整 92
第6章电路板加工 98
6.1 电路板加工的基本概念 98
6.2 电路板加工中的注意事项 99
6.3实验电路板的使用 100
7.1 电路焊接基本知识 101
7.1.1焊接必备工具 101
第7章 电路焊接与硬件调试 101
7.1.2元件焊接基本方法 104
7.2电路板调试 106
7.2.1焊接与调试方案的制定 107
7.2.2电源系统调试 108
7.2.3单片机最小系统调试 118
7.2.4外围接口设备调试 125
7.2.5 U盘功能调试 128
7.2.6 D/A转换及音频放大电路调试 130
7.2.7 MP3功能与U盘功能的整合 131
小结 132
第二篇C51程序设计 135
8.1机器语言、汇编语言与高级语言 139
第8章C51程序设计基本概念 139
8.2程序的编译与链接 140
8.3单片机固件执行过程 140
8.4单任务与多任务 141
8.5单片机程序与PC软件 141
8.6 C51程序设计基本流程 142
第9章C51程序设计初步 143
9.1 数据类型 143
9.1.1数据的存储方式 143
9.1.2特殊功能寄存器 144
9.1.3位寻址 145
9.2运算符 146
9.2.1赋值运算符与关系运算符 146
9.2.2增量与减量运算符:++、— 146
9.2.4位运算符 147
9.2.3逻辑运算符 147
9.2.5复合赋值运算符 149
9.2.6条件运算符 149
9.3.1 C51语句的种类 150
9.2.7指针与地址运算符 150
9.3语句 150
9.3.2程序结构语句 151
第10章C精华:函数与指针 154
10.1函数 154
10.1.1 声明与定义 154
10.1.2函数的调用形式 155
10.1.3 函数的参数与函数的返回值 155
10.1.4实际参数的传递方式 156
10.2.2指针 157
10.2.1数组 157
10.2数组与指针 157
10.2.4指针的地址计算 159
10.2.3数组的指针 159
第1 1章C51程序设计中的技巧 160
11.1模块化思想 160
11.2结构化程序设计 160
11.3软硬件接口的技巧 161
11.4程序结构与框架 162
11.5及时备份 164
11.6 C51程序设计中常见陷阱 165
12.1程序调试方法 166
12.2程序调试的步骤 166
12.3键盘调试 167
12.4 Flash接口调试 168
第13章MP3程序设计过程 172
13.1 MP3播放器部分的设计 172
13.2 MP3与U盘功能的整合 174
13.3 MP3功能按钮设计 175
小结 178
第三篇USB海量存储设备(U盘)设计 179
14.1包罗万象的USB设备 183
第14章无处不在的USB 183
14.2USB何德何能 184
第15章计算机通信基本概念 188
15.1 串行通信 188
15.2并行通信 190
第16章USB通信基本原理 192
16.1通用串行总线 192
16.2信号在USB总线上的传递 193
16.3USB通信的完全实现 196
17.1总线构成 199
第17章USB通信数据流模型 199
17.2 USB通信流 202
17.3传输类型 203
17.4数据转换与封装 206
第18章USB Mass Storage、Bulk_Only与SCSI 209
18.1 USB Mass Storage协议 209
18.1.1设备描述符 210
18.1.2配置描述符 210
18.1.3接口描述符 211
18.1.4端点描述符 212
18.1.5传输协议和命令块规范 213
18.2 Bulk_Only传输协议 214
18.3 SCSI指令集 215
第19章Flash存储与文件系统 219
19.1 Flash存储器 219
19.1.1 Flash盘的FAT结构 219
19.1.2 Flash的读写 220
19.2 FAT16文件系统 221
19.2.1 FAT文件系统结构 221
19.2.2硬盘结构 224
20.2 USB接口芯片的选择 227
第20章海量存储设备设计流程 227
20.1系统结构、功能定义 227
20.3 与USB接口和MCU的接口电路 228
20.4固件编程 230
20.5设备调试 230
20.6 PC端驱动程序开发 231
20.7系统联合调试 232
第21章USB设备的C语言程序设计 233
21.1 U盘固件程序结构框架 233
21.2接口芯片初始化编程 235
21.2.1时钟设置和控制器使能 236
21.2.2端点设置 239
21.3设备配置阶段程序设计 241
21.4批量传输阶段(Bulk_Only)程序设计 248
21.4.1Bulk_Out端点数据处理 248
21.4.2 Bulk_In端点状态处理 249
21.5 SCSI命令集处理 250
21.5.1 SCSI命令集处理 250
21.5.2读U盘处理 252
21.5.3写U盘处理 255
22.2.1 串口 260
22.1 USB调试的特点 260
第22章USB通信的调试方法 260
22.2 USB调试手段 260
22.2.2 BusHound 261
22.3 U盘的调试步骤 262
步骤1测试开发环境 262
步骤2测试USB寄存器读写与USB通信中断产生 263
步骤3建立USB标准请求处理框架 266
步骤4处理各USB标准请求 267
步骤5建立Bulk_Out端点数据处理框架 270
步骤6处理各SCSI请求 271
小结 277
附录Ⅰ AT89C51 SND1开发环境介绍 279
附录Ⅱ Keil 51编译环境介绍 291
附录Ⅲ串口调试助手 297
附录Ⅳ Source Insight使用简介 301
附录Ⅴ主要寄存器功能介绍 307
附录Ⅵ MP3套件介绍与使用指南 312
参考文献 327