《手把手教你学CPLD/FPGA与单片机联合设计》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:周兴华,李玉丽,傅飞峰编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2010
  • ISBN:9787512402447
  • 页数:293 页
图书介绍:本书以实践(实验)为主线,以生动短小的实例为灵魂,穿插介绍了Verilog HDL语言的语法及对Altera公司的EPM7128S(或Atmel公司的ATF1508AS)设计开发编程。本书理论与实践紧密结合,由浅入深、循序渐进地引导读者进行学习、实验,这样读者学得进、记得牢,不会产生畏难情绪,无形之中一步一步就掌握了CPLD/FPGA的联合设计。

第1章 可编程逻辑器件概述 1

1.1 可编程逻辑器件简介 1

1.1.1 可编程逻辑器件的基本结构 2

1.1.2 可编程逻辑器件的分类及特点 2

1.1.3 可编程逻辑器件的逻辑表示方法 4

1.2 CPLD/FPGA的结构与特性 5

1.2.1 基于乘积项的CPLD原理与结构 6

1.2.2 基于乘积项的CPLD逻辑实现方式 7

1.2.3 基于查找表的FPGA原理与结构 8

1.2.4 基于查找表的FPGA逻辑实现方式 9

1.2.5 CPLD与FPGA器件的差别 9

1.3 Altera公司的MAX7000系列CPLD特性介绍 12

1.3.1 逻辑阵列块(LAB) 14

1.3.2 宏单元 15

1.3.3 扩展乘积项 16

1.3.4 可编程连线阵列 17

1.3.5 I/O控制块 17

1.3.6 其他特性 18

第2章 可编程逻辑器件的设计流程及学习开发器材 20

2.1 可编程逻辑器件的设计流程 20

2.1.1 设计输入 20

2.1.2 综合 22

2.1.3 CPLD/FPGA器件适配 23

2.1.4 仿真 23

2.1.5 编程下载 24

2.2 CPLD/FPGA与单片机联合设计的学习器材介绍 24

2.2.1 Altera公司的集成开发软件MAX+plus Ⅱ及Quartus Ⅱ 24

2.2.2 Keil C51 Windows集成开发环境 25

2.2.3 MCU&CPLD DEMO综合试验板 26

2.2.4 ByteBlaster MV并口下载器 29

2.2.5 单片机USB程序下载器 30

2.2.6 9V高稳定专用稳压电源 30

第3章 开发软件的安装 32

3.1 Keil C51集成开发软件安装 32

3.2 MAX+plus Ⅱ集成开发软件安装 33

3.3 Quartus Ⅱ集成开发软件安装 38

3.4 USBasp下载器的安装与使用 49

3.4.1 USBasp下载器的安装 49

3.4.2 USBasp下载器的使用 51

3.5 Atmel并口下载软件atmelisp的安装 54

3.6 POF to JED转换软件Pof2jed的安装 55

第4章 第一个CPLD/FPGA入门实验程序 56

4.1 使用Max+plus Ⅱ集成开发软件进行入门实验 56

4.1.1 建立项目 56

4.1.2 设计输入(原理图或硬件描述语言) 56

4.1.3 选择器件并锁定引脚 59

4.1.4 编译器件 60

4.1.5 仿真 62

4.1.6 编程下载 67

4.1.7 应用 72

4.2 使用Quartus Ⅱ集成开发软件进行入门实验 72

4.2.1 建立项目 73

4.2.2 设计输入(原理图或硬件描述语言) 76

4.2.3 设计编译 79

4.2.4 仿真 79

4.2.5 引脚分配 91

4.2.6 编程下载 94

4.2.7 应用 94

第5章 Verilog HDL硬件描述语言 95

5.1 Verilog HDL模块的基本结构 95

5.1.1 模块声明 95

5.1.2 端口定义 96

5.1.3 信号类型说明 96

5.1.4 逻辑功能描述 96

5.1.5 实验程序1——缓冲器 98

5.1.6 实验程序2——反相器(非门) 98

5.2 Verilog HDL语法要素 99

5.2.1 标识符与关键字 99

5.2.2 常量、变量及数据类型 100

5.2.3 实验程序3——与门 102

5.2.4 实验程序4——与非门 103

5.2.5 实验程序5——LED的闪烁 103

5.2.6 运算符 104

5.2.7 运算符的优先级 108

5.2.8 实验程序6——或门 109

5.2.9 实验程序7——或非门 109

5.2.10 实验程序8——异或门 110

5.2.11 实验程序9——异或非门 111

5.2.12 实验程序10——三态门 111

5.3 Verilog HDL的行为语句 112

5.3.1 赋值语句 113

5.3.2 过程语句 113

5.3.3 块语句 115

5.3.4 条件语句 117

5.3.5 循环语句 118

5.3.6 编译预处理 119

5.3.7 任务和函数 121

5.4 Verilog HDL数字逻辑单元结构的设计 122

5.4.1 结构描述方式 122

5.4.2 实验程序——门级结构描述设计的基本门电路 125

5.4.3 数据流描述方式 127

5.4.4 行为描述方式 127

第6章 组合逻辑电路的设计实验 129

6.1 2选1数据选择器 129

6.1.1 2选1数据选择器简介 129

6.1.2 采用数据流描述方式的设计 130

6.1.3 采用行为描述方式的设计 131

6.2 4选1数据选择器 131

6.2.1 4选1数据选择器简介 131

6.2.2 采用数据流描述方式的设计 132

6.2.3 采用行为描述方式的设计 133

6.3 3位二进制优先编码器(8-3优先编码器) 134

6.3.1 3位二进制优先编码器简介 134

6.3.2 3位二进制优先编码器的设计 135

6.4 3位二进制译码器(3-8译码器) 136

6.4.1 3位二进制译码器简介 136

6.4.2 3位二进制译码器的设计 137

6.5 BCD-7段译码器 139

6.5.1 BCD-7段译码器简介 139

6.5.2 BCD-7段译码器的设计 139

6.6 半加器 141

6.6.1 半加器简介 141

6.6.2 采用门级描述方式的半加器设计 142

6.6.3 采用数据流描述方式的半加器设计 142

6.6.4 采用行为描述方式的半加器设计 143

6.7 全加器 144

6.7.1 全加器简介 144

6.7.2 全加器的设计 144

第7章 触发器的设计实验 146

7.1 RS触发器 146

7.1.1 RS触发器简介 146

7.1.2 RS触发器的设计 146

7.2 JK触发器 148

7.2.1 JK触发器简介 148

7.2.2 JK触发器的设计 148

7.3 带有复位的JK触发器 150

7.3.1 带有复位的JK触发器简介 150

7.3.2 带有复位的JK触发器的设计 150

7.4 D触发器 152

7.4.1 D触发器简介 152

7.4.2 D触发器的设计 153

7.5 带有复位的D触发器 154

7.5.1 带有复位的D触发器简介 154

7.5.2 带有复位的D触发器的设计 154

7.6 带有复位的异步T触发器 156

7.6.1 带有复位的异步T触发器简介 156

7.6.2 带有复位的异步T触发器的设计 156

7.7 带有复位的同步T触发器 158

7.7.1 带有复位的同步T触发器简介 158

7.7.2 带有复位的同步T触发器的设计 158

第8章 时序逻辑电路的设计实验 160

8.1 寄存器 160

8.1.1 寄存器简介 160

8.1.2 寄存器的设计 161

8.2 锁存器 162

8.2.1 锁存器简介 162

8.2.2 锁存器的设计 163

8.3 移位寄存器 164

8.3.1 移位寄存器简介 164

8.3.2 移位寄存器的设计 165

8.4 计数器 167

8.4.1 4位二进制异步加法计数器简介 167

8.4.2 4位二进制异步加法计数器的设计 168

8.4.3 十进制(任意进制)同步加法计数器简介 170

8.4.4 十进制同步加法计数器的设计 170

第9章 CPLD/FPGA的设计应用 172

9.1 跑马灯实验 172

9.1.1 实验要求 172

9.1.2 实现方法 172

9.1.3 程序设计 172

9.2 多位数码管的动态扫描显示 174

9.2.1 实验要求 174

9.2.2 实现方法 174

9.2.3 程序设计 174

9.3 蜂鸣器发声实验 177

9.3.1 实验要求 177

9.3.2 实现方法 177

9.3.3 程序设计 177

9.4 简易电子琴实验 178

9.4.1 实验要求 178

9.4.2 实现方法 178

9.4.3 程序设计 179

9.5 驱动字符型液晶显示器实验 180

9.5.1 实验要求 180

9.5.2 字符型液晶控制器的指令简介 180

9.5.3 字符型液晶控制器的工作时序 183

9.5.4 时序参数 184

9.5.5 实现方法 184

9.5.6 程序设计 184

9.6 串口接收实验 188

9.6.1 实验要求 188

9.6.2 实现方法 188

9.6.3 程序设计 188

9.7 串口发送实验 192

9.7.1 实验要求 192

9.7.2 实现方法 193

9.7.3 程序设计 193

9.8 RS232收发实验 197

9.8.1 实验要求 197

9.8.2 实现方法 197

9.8.3 程序设计 198

9.9 RS232收发不同内容的实验 204

9.9.1 实验要求 204

9.9.2 实现方法 205

9.9.3 程序设计 205

9.10 简易数字电子钟 212

9.10.1 实验要求 212

9.10.2 实现方法 212

9.10.3 程序设计 212

第10章 51单片机的基本知识 217

10.1 51单片机的基本结构 217

10.2 80C51基本特性及引脚定义 218

10.2.1 80C51的基本特征 218

10.2.2 80C51的引脚定义及功能 219

10.3 80C51的内部结构 220

10.4 80C51的存储器配置和寄存器 222

第11章 单片机C语言基础知识 225

11.1 C语言的标识符与关键字 225

11.2 数据类型 227

11.3 常量、变量及存储类型 227

11.4 数组 230

11.4.1 一维数组的定义 231

11.4.2 二维及多维数组的定义 231

11.4.3 字符数组 232

11.4.4 数组元素赋初值 232

11.4.5 数组作为函数的参数 233

11.5 C语言的运算 233

11.5.1 算术运算符 233

11.5.2 关系运算符 234

11.5.3 逻辑运算符 234

11.5.4 赋值运算符 235

11.5.5 自增和自减运算符 235

11.5.6 逗号运算符 236

11.5.7 条件运算符 236

11.5.8 位运算符 236

11.5.9 sizeof运算符 236

11.6 流程控制 237

11.6.1 条件语句与控制结构 237

11.6.2 循环语句 239

11.7 函数 241

11.7.1 函数定义的一般形式 241

11.7.2 函数的参数和函数返回值 242

11.7.3 函数调用的三种方式 242

11.8 指针 243

11.8.1 指针与地址 244

11.8.2 指针变量的定义 244

11.8.3 指针变量的引用 244

11.8.4 数组指针与指向数组的指针变量 245

11.8.5 指针变量的运算 246

11.8.6 指向多维数组的指针和指针变量 246

11.9 结构体 247

11.9.1 结构体的概念 247

11.9.2 结构体类型变量的定义 247

11.9.3 结构体类型需要注意的地方 249

11.9.4 结构体变量的引用 249

11.9.5 结构体变量的初始化 250

11.9.6 结构体数组 250

11.9.7 指向结构体类型数据的指针 250

11.9.8 用指向结构体变量的指针引用结构体成员 251

11.9.9 指向结构体数组的指针 251

11.9.10 将结构体变量和指向结构体的指针作函数参数 251

11.10 共用体 252

11.10.1 共用体类型变量的定义 252

11.10.2 共用体变量的引用 253

11.11 中断函数 253

11.11.1 什么是中断 253

11.11.2 中断响应及C51编程 254

11.11.3 51单片机的常用中断源和中断向量 255

11.11.4 编写51单片机中断函数时应严格遵循的规则 255

第12章 CPLD/FPGA与单片机的接口及数据传输 257

12.1 CPLD/FPGA与单片机AT89S51的接口连接及数据传输实验 257

12.1.1 实验要求 257

12.1.2 实现方法 257

12.1.3 CPLD/FPGA程序设计 258

12.1.4 单片机程序设计 260

12.2 单片机直接访问方式驱动液晶 267

12.2.1 实验要求 267

12.2.2 实现方法 267

12.2.3 CPLD/FPGA程序设计 268

12.2.4 单片机程序设计 269

12.3 单片机间接控制方式驱动液晶 273

12.3.1 实验要求 273

12.3.2 实现方法 273

12.3.3 CPLD/FPGA程序设计 274

12.3.4 单片机程序设计 274

第13章 CPLD/FPGA与单片机的联合设计实例——液晶显示频率计 279

13.1 设计要求 279

13.2 实现方法 279

13.2.1 CPLD/FPGA的功能设计 279

13.2.2 单片机的功能设计 280

13.3 CPLD/FPGA程序设计 280

13.4 单片机程序设计 286

参考文献 293