第1章 虚拟仿真平台Proteus的使用 1
1.1 Proteus功能概述 1
1.2 Proteus ISIS的虚拟仿真 2
1.3 Proteus ISIS环境简介 2
1.3.1 Proteus ISIS各窗口简介 4
1.3.2 主菜单栏 5
1.3.3 主工具栏 8
1.3.4 工具箱 9
1.3.5 仿真工具栏 11
1.3.6 元件列表 11
1.3.7 预览窗口 12
1.3.8 原理图编辑窗口 12
1.4 Proteus ISIS的编辑环境设置 13
1.4.1 选择模板 13
1.4.2 选择图纸 14
1.4.3 设置文本编辑器 14
1.4.4 网格开关与格点间距设置 14
1.5 Proteus ISIS的系统运行环境设置 15
1.6 单片机系统的原理电路设计与虚拟仿真 15
1.6.1 原理电路设计与虚拟仿真步骤 16
1.6.2 新建或打开一个设计文件 17
1.6.3 选择需要的元件到元件列表 17
1.6.4 放置元件并连接电路 19
1.6.5 加载目标代码文件、设置时钟频率及仿真运行 23
第2章 Proteus的各种虚拟仿真调试工具 27
2.1 虚拟信号源 27
2.1.1 直流信号源 27
2.1.2 正弦波信号源 28
2.1.3 单周期数字脉冲信号源 31
2.1.4 数字时钟信号源 32
2.2 虚拟仪器 33
2.2.1 虚拟示波器 34
2.2.2 虚拟终端 36
2.2.3 12C调试器 38
2.2.4 SPI调试器 40
2.2.5 计数器/定时器 43
2.2.6 电压表和电流表 45
2.3 图表仿真 47
2.4 诊断模式的设定 49
2.5 硬件断点的设置 50
第3章 C51语言开发环境KeilμVision3的使用 53
3.1 Keil μVision3开发环境简介 53
3.2 Keil μVision3的基本操作 53
3.3 添加用户源程序文件 56
3.4 程序的编译与调试 58
3.5 工程的设置 61
3.6 Proteus 与KeilμVision3的联调 64
第4章 开关、键盘输入与显示的设计 67
4.1 单片机控制发光二极管显示与开关检测 67
例4-1 控制流水灯由上至下再由下至上点亮 67
例4-2 开关检测案例1 70
例4-3 开关检测案例2 71
例4-4 开关控制的流水灯 73
4.2 单片机控制LED数码管的显示 78
例4-5 控制单只LED数码管轮流显示奇数与偶数 78
例4-6 控制2只LED数码管的静态显示 80
例4-7 控制8只LED数码管滚动显示单个数字 81
例4-8 检测开关的状态并在数码管上显示 83
4.3 单片机控制LED点阵显示器的显示 84
例4-9 控制16×16 LED点阵显示器的字符显示 84
例4-10 电梯运行控制的楼层显示 88
4.4 单片机控制液晶显示模块LCD 1602显示 93
例4-11 单片机控制字符型液晶显示模块LCD 1602的显示 93
4.5 键盘接口设计案例 105
例4-12 查询方式的独立式键盘设计案例1 105
例4-13 查询方式的独立式键盘设计案例2 107
例4-14 中断扫描方式的独立式键盘设计 111
例4-15 查询方式的矩阵式键盘设计 114
例4-16 采用专用芯片HD7279A的键盘/显示器 117
第5章 中断系统、定时器的应用设计 130
例5-1 单一外中断应用案例1 130
例5-2 单一外中断应用案例2 131
例5-3 两个同级别的外中断应用 133
例5-4 中断优先级嵌套设计 136
例5-5 控制8只LED每0.5s闪亮一次 138
例5-6 秒定时器的设计 140
例5-7 计数器对外部脉冲计数 142
例5-8 计数器的应用 143
例5-9 控制AT89C51单片机P1.0引脚上产生频率为500Hz的方波 144
例5-10 利用T1控制AT89C51单片机发出1kHz的音频信号 146
例5-11 百毫秒计时表的制作 148
例5-12 秒计时表的制作 151
例5-13 LCD显示的时钟设计 153
例5-14 测量脉冲宽度——门控位GATEx的应用 157
例5-15 脉冲分频器的设计 160
例5-16 60秒倒计时时钟设计 162
例5-17 用定时器设计的门铃 164
例5-18 LCD显示的定时闹钟制作 167
例5-19 LED显示的十字路口交通灯控制器 178
例5-20 时间可调的十字路口交通灯控制器 183
第6章 AT89S51单片机串行口设计案例 191
例6-1 串行口方式0扩展并行输出端口 191
例6-2 串行口方式0扩展并行输入端口 193
例6-3 方式1单工串行通信 195
例6-4 方式1半双工串行通信 197
例6-5 方式1全双工串行通信 203
例6-6 甲机通过串行口控制乙机LED闪烁 206
例6-7 波特率可选的双机串行通信 212
例6-8 双机的全双工串行通信 219
例6-9 方式3(方式2)的应用设计 220
例6-10 多机串行通信 223
例6-11 单片机与PC机串行通信的设计 229
例6-12 PC机向单片机发送数据 231
第7章 系统的并行扩展与串行扩展 234
例7-1 单片机扩展并行I/O接口芯片82C55的开关指示器 234
例7-2 单片机扩展82C55芯片控制交通灯 235
例7-3 单片机控制82C55芯片产生500Hz方波 238
例7-4 单总线DS18B20测温系统案例设计1 240
例7-5 单总线DS18B20测温系统案例设计2 247
例7-6 单片机外扩数据存储器RAM6264的设计 257
例7-7 采用I2C总线的AT24C02存储器IC卡设计 259
例7-8 I2C总线的AT24C02存储器记录按下键次数并显示 267
第8章 DAC、ADC的应用 276
例8-1 单片机控制DAC0832芯片的程控电压源 276
例8-2 AT89S51扩展10位串行DAC——TLC5615 277
例8-3 单片机控制DAC0832芯片的波形发生器 281
例8-4 单片机控制ADC0809芯片进行A/D转换 287
例8-5 单片机控制ADC0809芯片两路数据采集 289
例8-6 两路查询方式的数字电压表设计 293
例8-7 两路中断方式的数字电压表设计 297
例8-8 单片机扩展串行8位ADC——TLC549 300
例8-9 单片机扩展串行12位ADC——TLC2543 304
第9章 电机控制 310
例9-1 步进电机的正反转控制 310
例9-2 步进电机正反转与转速的控制 312
例9-3 单片机控制直流电机 316
例9-4 小直流电机调速控制系统 318
例9-5 单片机控制三相单三拍步进电机 322
例9-6 单片机控制三相双三拍步进电机 327
例9-7 电机转速测量 330
第10章 综合设计案例 334
例10-1 8位竞赛抢答器设计 334
例10-2 电话拨号的模拟 340
例10-3 频率计的设计 346
例10-4 基于时钟/日历芯片DS1302的电子钟设计 349
例10-5 LCD显示的定时闹钟 356
例10-6 LCD显示的音乐倒计时时钟 367
例10-7 简易音乐音符发生器的制作 375
例10-8 乐曲播放器的设计 378
例10-9 基于热敏电阻的数字温度计设计 385
例10-10 I2C总线多个存储器AT24C02的读/写 389
附录1 头文件“LCD1602.h”清单 395
附录2 头文件“DS1302.h”清单 397
参考书目 403