第1章 基于PROTEUS的单片机系统仿真 1
1.1 PROTEUS ISIS编辑环境 1
1.1.1 PROTEUS ISIS操作界面 1
1.1.2 主菜单和主工具栏 4
1.1.3 PROTEUS ISIS编辑环境设置 4
1.1.4 PROTEUS ISIS系统参数设置 9
1.2 电路图绘制 14
1.2.1 绘图工具 14
1.2.2 导线的操作 21
1.2.3 对象的操作 22
1.2.4 PROTEUS电路绘制实例 23
1.2.5 电路图绘制进阶 28
1.3 电路分析与仿真 33
1.3.1 激励源 33
1.3.2 虚拟仪器 34
1.3.3 探针 35
1.3.4 图表 35
1.3.5 基于图表的仿真 39
1.3.6 交互式仿真 43
1.4 基于PROTEUS的51单片机仿真——源代码控制系统 48
1.4.1 在PROTEUS VSM中创建源代码文件 48
1.4.2 编辑源代码程序 50
1.4.3 生成目标代码文件 51
1.4.4 代码生成工具 52
1.4.5 定义第三方源代码编辑器 52
1.4.6 使用第三方IDE 53
1.5 基于PROTEUS的51单片机仿真——源代码调试 53
1.5.1 单步调试 53
1.5.2 使用断点调试 54
1.5.3 Multi-CPU调试 54
1.6 基于PROTEUS的51单片机仿真——弹出式窗口 54
1.6.1 显示弹出式窗口 54
1.6.2 源代码调试窗口 56
1.6.3 变量窗口 57
1.6.4 观测窗口 58
1.7 基于PROTEUS的51单片机仿真 62
1.7.1 原理图输入 62
1.7.2 编辑源代码 62
1.7.3 生成目标代码 64
1.7.4 调试 65
第2章 Keil μVision4集成开发环境 66
2.1 μVision4开发环境 66
2.2 创建基于Keil的C语言程序 82
2.3 PROTEUS与Keil整合的实现 87
2.3.1 在Keil中调用PROTEUS进行MCU外围器件的仿真 87
2.3.2 在Keil中生成*.OMF文件 89
2.3.3 Keil中断源的矢量位置 91
第3章 Protel 99 SE入门 92
3.1 Protel 99 SE概述 92
3.1.1 Protel 99 SE的Client/Server结构 92
3.1.2 项目管理 93
3.1.3 多图纸设计 95
3.1.4 原理图与PCB同步设计 96
3.1.5 PCB制板 98
3.1.6 3D预览 102
3.2 绘制电路原理图前的准备 102
3.2.1 设计环境定制 102
3.2.2 创建设计数据库文件 105
3.2.3 创建设计绘图页 108
3.2.4 Protel 99 SE电路原理图绘制预备知识 110
3.3 绘制电路原理图 114
3.3.1 Protel 99 SE绘制电路原理图——放置元件 114
3.3.2 Protel 99 SE绘制电路原理图——制作元件 122
3.3.3 Protel 99 SE绘制电路原理图——连线 127
3.3.4 Protel 99 SE绘制电路原理图——编辑与调整 129
3.3.5 规则检查与网络表生成 132
3.3.6 其他报表的输出 136
3.4 PCB设计的预备知识 138
3.4.1 PCB板层 138
3.4.2 元件封装技术 140
3.4.3 电路板形状及尺寸定义 152
3.4.4 PCB布局 153
3.4.5 PCB布线 156
3.4.6 电路板测试 160
3.5 PCB设计 160
3.5.1 创建PCB文件 161
3.5.2 制作元件封装 164
3.5.3 规划电路板及参数设置 173
3.5.4 载入网络表 174
3.5.5 元件布局 177
3.5.6 布线前的规则设置 180
3.5.7 元件布线 186
3.5.8 添加测试点 190
3.5.9 补泪滴 192
3.5.10 铺铜 194
3.6 创建Gerber文件 198
3.6.1 Gerber文件的设置与生成 198
3.6.2 Gerber文件解释 198
第4章 单片机系统开发流程及相关概念 200
4.1 单片机系统的开发流程 200
4.1.1 单片机系统开发的可行性分析 200
4.1.2 单片机系统开发的总体方案设计 201
4.1.3 单片机系统开发的系统实施 202
4.1.4 单片机系统开发的系统调试 203
4.2 单片机系统开发的相关概念 204
第5章 跑马灯的设计 207
5.1 系统要求及单片机相关知识 207
5.1.1 AT89S51器件功能概述 207
5.1.2 AT89S51存储器 211
5.1.3 AT89S51 I/O端口 218
5.1.4 AT89S51工作的基本时序与晶振电路 222
5.1.5 AT89S51复位电路 224
5.1.6 AT89S51在系统编程 227
5.2 基于AT89S51的跑马灯电路 229
5.2.1 基于AT89S51的单片机最小系统设计 230
5.2.2 基于AT89S51的跑马灯电路设计 231
5.3 基于AT89S51的跑马灯程序 232
5.3.1 跑马灯汇编语言程序设计 233
5.3.2 基于PROTEUS的跑马灯电路仿真 233
5.3.3 跑马灯C语言程序设计及电路仿真 235
5.4 基于万用电路板的跑马灯电路板制作 239
5.5 跑马灯程序下载 240
5.6 硬件调试 242
第6章 8×8点阵图形显示电路设计 243
6.1 系统要求及相关知识 243
6.1.1 8×8点阵LED显示器的组成原理及控制方式 243
6.1.2 8×8点阵LED显示方式 244
6.1.3 8×8点阵LED显示器与单片机的接口 246
6.2 基于AT89S51的8×8点阵LED图形显示 248
6.2.1 LED点阵的测试 248
6.2.2 PROTEUS中搭建仿真电路 249
6.3 基于AT89S51的8×8点阵LED图形显示 253
6.3.1 图形信号提取 253
6.3.2 基于AT89S51的8×8点阵LED图形显示程序 254
6.3.3 基于PROTEUS的8×8点阵LED图形显示电路仿真 255
6.4 基于万用电路板的8×8点阵LED图形显示电路板制作 257
6.5 硬件调试 259
6.6 启发设计:双色图形显示电路设计 260
第7章 16×16点阵汉字显示电路设计 265
7.1 基于并行方式的16×16点阵汉字静态显示系统设计 265
7.1.1 16×16点阵LED显示器的组成原理及驱动方式 265
7.1.2 汉字取模 266
7.1.3 基于PROTEUS的电路仿真 267
7.2 基于串行方式的16×16点阵汉字静态显示系统设计 272
7.2.1 基于CD4094的串行16×16点阵LED显示器的驱动电路 272
7.2.2 基于74HC595的串行16×16点阵LED显示器的驱动电路 277
7.3 16×16点阵多汉字静态显示系统设计 281
7.4 16×16点阵汉字显示电路电路板制作 286
7.5 启发设计——16×16点阵汉字动态显示系统设计 289
7.5.1 汉字滚动显示原理 289
7.5.2 汉字滚动显示电路设计 290
第8章 数字钟设计 297
8.1 数字钟设计要求及其相关知识 297
8.1.1 AT89S51的中断系统 297
8.1.2 AT89S51的定时器/计数器 301
8.1.3 键盘接口 306
8.2 基于AT89S51定时器/计数器的数字钟设计 308
8.2.1 数字钟硬件设计方案 308
8.2.2 数字钟硬件电路 308
8.2.3 数字钟软件程序设计 310
8.2.4 基于PROTEUS的数字钟电路仿真 315
8.2.5 基于MAX7219扫描数码管的数字钟电路 316
8.2.6 数字钟电路制作 327
8.3 启发式设计(1)——基于DS1302的数字钟 329
8.3.1 DS1302芯片 329
8.3.2 基于DS1302芯片的数字钟电路 331
8.3.3 基于DS1302芯片的数字钟电路软件程序 331
8.4 启发式设计(2)——模拟交通灯系统设计 340
8.4.1 交通灯系统设计要求 340
8.4.2 模拟交通灯系统硬件电路搭建 341
8.4.3 模拟交通灯系统软件程序设计 341
第9章 电子八音盒 351
9.1 电子八音盒设计要求及其相关知识 351
9.1.1 发音原理 351
9.1.2 音符频率与定时器初值 351
9.1.3 节拍频率的产生 353
9.1.4 音乐编码 353
9.1.5 蜂鸣器的驱动 354
9.2 电子八音盒硬件设计 354
9.3 电子八音盒软件程序设计 355
9.4 基于PROTEUS的电子八音盒电路仿真 360
9.5 启发式设计——简易音乐播放器 361
9.5.1 简易音乐播放器的硬件电路 361
9.5.2 简易音乐播放器的软件设计 362
9.5.3 简易音乐播放器的PROTEUS仿真 367
第10章 多点温度测量系统 369
10.1 基于DS18B20的单点温度测量系统设计 369
10.1.1 单总线数据温度传感器DS18B20 369
10.1.2 单点温度测量系统硬件电路 372
10.1.3 单点温度测量系统软件程序设计 373
10.1.4 基于PROTEUS环境的电路仿真 379
10.2 多点温度测量系统设计 380
10.2.1 LCD字符汉字显示原理 380
10.2.2 LCD12232液晶显示器使用方法 381
10.2.3 基于LCD12232液晶显示器的多点温度测量系统硬件电路搭建 386
10.2.4 基于LCD12232液晶显示器的多点温度测量系统软件程序设计 387
10.2.5 基于PROTEUS的电路仿真 420
10.2.6 多点温度检测系统电路制作 422
10.3 启发式设计——温、湿度检测系统设计 423
10.3.1 数字温、湿度传感器SHT15 423
10.3.2 液晶点阵屏1602 425
10.3.3 基于SHT15的温、湿度测量系统硬件电路图 430
10.3.4 基于SHT15的温、湿度测量系统软件程序设计 430
10.3.5 基于SHT15的温、湿度测量系统仿真 439
第11章 电子密码锁 440
11.1 简易电子密码锁设计 440
11.1.1 简易电子密码锁硬件电路设计 440
11.1.2 简易电子密码锁软件程序设计 441
11.1.3 基于PROTEUS的简易电子密码锁仿真 449
11.2 启发式设计——基于AT24C02的电子密码锁设计 451
11.2.1 AT24C02 EEPROM存储器 452
11.2.2 AT89S51与AT24C02的接口 454
11.2.3 基于AT24C02的电子密码锁硬件电路设计 455
11.2.4 基于AT24C02的电子密码锁软件程序设计 456
11.2.5 基于PROTEUS的密码锁电路仿真 474
11.2.6 基于AT24C02的电子密码锁制作 477
第12章 电机控制系统设计 485
12.1 基于AT89S51的直流电机控制系统设计 485
12.1.1 直流电机工作原理 485
12.1.2 直流电机调速原理 485
12.1.3 基于AT89S51的PWM信号产生 487
12.1.4 直流电机驱动L298 488
12.1.5 基于L298驱动的直流电机调速硬件电路设计 491
12.1.6 基于L298驱动的直流电机调速软件程序设计 492
12.1.7 基于PROTEUS环境的直流电机调速系统仿真 498
12.1.8 直流电机调速系统的测速电路设计 501
12.2 基于AT89S51的步进电机控制系统设计 502
12.2.1 步进电机工作原理 502
12.2.2 基于单片机的步进电机控制原理 504
12.2.3 电机驱动芯片ULN2003 505
12.2.4 基于ULN2003驱动的步进电机控制 506
12.2.5 基于ULN2003驱动的步进电机控制程序设计 506
12.2.6 基于PROTEUS的步进电机控制系统仿真 515
12.3 启发式设计——模拟电梯控制系统 518
12.3.1 基于AT89S51的模拟电梯控制系统设计要求 519
12.3.2 模拟电梯控制系统硬件电路设计 519
12.3.3 模拟电梯控制系统软件程序设计 519
12.3.4 模拟电梯控制系统仿真 526
第13章 串行通信系统的设计 528
13.1 AT89S51串行口通信功能 528
13.1.1 串行通信基本原理 528
13.1.2 串行通信接口电路 530
13.1.3 AT89S51串行口 531
13.2 AT89S51与PC串行通信 534
13.2.1 电平转换芯片MAX232 535
13.2.2 AT89S51与PC串行通信硬件电路设计 535
13.2.3 AT89S51与PC串行通信软件程序设计 536
13.2.4 基于PROTEUS的串口通信电路仿真 541
13.3 启发式设计——基于LabView的串口温度采集监控系统设计 543
13.3.1 下位机系统 544
13.3.2 上位机程序 548
13.3.3 基于LabView的串口温度采集监控系统调试 550
第14章 AT89S51看门狗 551
14.1 看门狗工作原理及使用方法 551
14.1.1 看门狗定时器 551
14.1.2 使用看门狗 551
14.1.3 掉电和空闲时的看门狗 552
14.2 激活看门狗及喂狗程序 552
14.3 启发式设计——公交车报站系统设计(使用看门狗) 553
第15章 单片机系统设计中的常见问题 560
15.1 单片机系统设计中的端口驱动及接口电路 560
15.1.1 AT89S51 I/O口驱动能力 560
15.1.2 AT89S51 I/O接口电路 561
15.2 单片机系统的可靠性及抗干扰技术 563
15.2.1 元器件本身的可靠性 563
15.2.2 单片机系统硬件抗干扰技术 564
15.2.3 单片机系统软件抗干扰技术 566
参考文献 568