第1部分:基础篇 3
第1章 单片机与编译环境 3
1.1MCS-51简介 3
1.2“Winbond78E516B”芯片功能详解 4
1.2.1芯片概述 4
1.2.2引脚描述 5
1.2.3功能框图 6
1.2.4功能描述 7
1.2.5时序波形图 11
1.2.6电气特性 16
1.3编译环境 16
1.3.1“KeilμVision2”主界面介绍 17
1.3.2创建项目 21
1.3.3编译与连接 21
1.3.4程序调试 25
1.4本章小结 26
第2部分:工程硬件篇 29
第2章 工程项目介绍 29
2.1信息采集终端的工程背景 29
2.2系统硬件方案设计 29
2.2.1硬件设计框图 29
2.2.2系统原理图 30
2.3本章小结 34
第3章 单片机最小系统 35
3.1最小系统功能介绍 35
3.2电路设计 35
3.2.1单片机最小系统电路图 35
3.2.2电源模块 35
3.2.3时钟电路 36
3.2.4复位电路 37
3.3软件设计一“hello,world!”工程项目构建 38
3.4本章小结 41
第4章 看门狗电路 42
4.1看门狗原理介绍 42
4.1.1软件看门狗采用纯软件程序来实现看门狗功能 42
4.1.2硬件看门狗 43
4.2电路设计 44
4.2.1系统电路图 44
4.2.2“MAX813L”芯片介绍 44
4.2.3看门狗电路 47
4.3软件设计——清狗功能实现 48
4.4本章小结 49
第5章 系统电源设计 50
5.1工程实例背景及功能分析 50
5.2电路设计 52
5.2.1系统电源电路 52
5.2.2双电源选择输入电路 54
5.2.3“MAX1659”芯片介绍 55
5.2.4唤醒电源VCI电路 56
5.2.5主电源Vcc电路 57
5.2.6液晶背光控制电源“LED+” 57
5.2.7“MODEM”控制电源 58
5.2.8传感器供电控制电路 58
5.3软件设计——电源控制功能的实现 59
5.4本章小结 60
第6章 外部数据存储器扩展 61
6.1工程实例背景及功能分析 61
6.1.1系统总线结构 61
6.1.2存储器扩展方式 62
6.1.3工程实例应用 64
6.2电路设计 64
6.2.1系统电路图 64
6.2.2“DS1230Y”芯片介绍 64
6.2.3“MC74HC573”芯片介绍 71
6.2.4片外RAM扩展电路及功能说明 71
6.3软件设计 72
6.3.1KeilC51编译器环境下存储空间的访问 72
6.3.2程序举例 74
6.4本章小结 76
第7章 基本“I/O”功能及扩展 77
7.1单片机基本“I/O”原理 77
7.1.1四个输入/输出(I/O)口介绍 77
7.1.2“I/O”口的设计 78
7.2工程实例背景及功能分析 78
7.3电路设计 79
7.3.1系统电路图 79
7.3.2报警电路图及功能说明 79
7.3.3“74HC138”芯片介绍 82
7.3.4“74HC02”和“74HC00”芯片介绍 83
7.3.5基本“I/O”扩展电路 84
7.3.6并口扩展电路 85
74软件设计 86
7.4.1基本“I/O”口的操作 86
7.4.2报警功能实现 87
7.4.3基本“I/O”扩展实现 88
7.5本章小结 90
第8章 实时时钟电路 91
8.1工程实例背景及功能分析 91
8.1.1实时时钟概述 91
8.1.2RTC的应用 92
8.2单片机中断系统原理 92
8.2.1中断和中断嵌套 92
8.2.2“W78E516B”中断系统 93
8.2.3中断响应过程 96
8.2.4外部中断方式 97
8.3电路设计 98
8.3.1系统电路图 98
8.3.2“DS12C887”芯片介绍 98
8.3.3实时时钟电路及功能说明 106
8.3.4片选信号DS_CS的产生 106
8.4软件设计 107
8.4.1设置时钟时间 107
8.4.2读取时钟实现 110
8.4.3KeilC51环境下的中断编程 112
8.4.4时钟定时启动单片机 112
8.5本章小结 115
第9章 键盘输入和电源指示电路 116
9.1工程实例背景及功能分析 116
9.1.1键盘工作原理 116
9.1.2独立式按键接口设计 117
9.1.3工程实际应用 118
9.2系统电路图 118
9.2.1键盘输入电路及功能说明 118
9.2.2键盘唤醒电路及功能说明 123
9.2.3电源指示电路及功能说明 124
9.3软件设计 124
9.3.1键盘软件处理方式介绍 124
9.3.2键盘驱动实现 125
9.4本章小结 134
第10章 LCD显示的实现 135
10.1工程实例背景及功能分析 135
10.2图形液晶模块“VPG19264”介绍 135
10.2.1显示模块外部接口引脚 135
10.2.2内部工作原理 136
10.2.3指令系统 138
1.3电路设计 139
10.3.1系统电路图 139
10.3.2LCD接口电路及功能说明 143
10.4软件设计 144
10.4.1汉字显示原理 144
10.4.2系统配置头文件“config.h” 145
10.4.3LCD显示驱动头文件“LCDControl.h” 146
10.4.4字库头文件“ziku.h” 147
10.4.5LCD显示驱动实现 150
10.4.6主函数实例 161
10.4.7文件结构 162
10.5本章小结 163
第11章 采样接口与A/D转换电路 164
11.1工程实例背景及功能分析 164
11.1.1传感器在工程中的应用 164
11.1.2采样接口电路在工程中的应用 164
11.1.3A/D转换电路在工程中的应用 165
11.2电路设计 166
11.2.1系统电路图 166
11.2.2“TLC2543”芯片说明 170
11.2.3“MC1403”芯片说明 175
11.2.4采样接口电路及功能说明 176
11.2.5A/D转换电路及功能说明 177
11.3软件设计 178
11.3.1文件结构 178
11.3.2“ADControl.c”源文件功能说明 179
11.3.3“ADControl.h”头文件 184
11.3.4“config.h”头文件 185
11.3.5“main.c”文件 187
11.4本章小结 189
第12章 RS-232C通信电路 190
12.1工程实例背景及功能分析 190
12.1.1串行通信基础知识 190
12.1.2MCS-51的串口结构 192
12.1.3RS-232C在工程实例中的应用 193
12.2RS-232C标准介绍 194
12.2.1RS-232C引脚定义 194
12.2.2RS-232C接口连接 194
12.2.3RS-232C电气特性 196
12.2.4RS-232C电平转换 196
12.3电路设计 196
12.3.1系统电路图 196
12.3.2“TL16C550B”芯片介绍 200
12.3.3“MAX235E”芯片介绍 210
12.3.4RS-232C接口电路图及功能说明 212
12.4软件设计 214
12.4.1软件实例功能说明 214
12.4.2通信协议说明 214
12.4.3文件结构 215
12.4.4“UART.h”头文件说明 215
12.4.5“UART.c”源文件功能说明 218
12.4.6“config.h”头文件 221
12.4.7“main.c”文件 223
12.5本章小结 232
第3部分:工程软件篇 235
第13章 嵌入式实时操作系统SmallRTOS51 235
13.1嵌入式实时操作系统基本概念 235
13.1.1实时系统 235
13.1.2实时操作系统 236
13.1.3代码的临界区 236
13.1.4任务 236
13.1.5任务优先级 237
13.1.6任务切换 237
13.1.7占先式内核 237
13.1.8信号量 238
13.1.9消息队列 241
13.1.10中断 242
13.1.11时钟节拍 243
13.2SmallRTOS51简介 243
13.2.1SmallRTOS51的特点 243
13.2.2运行条件 244
13.2.3存储器需求 244
13.2.4任务堆栈的计算 244
13.2.5对51系列单片机寄存器段的要求 244
13.2.6对局部变量的要求 245
13.3SmallRTOS51内核原理 247
13.3.1堆栈工作原理 247
13.3.2信号量原理 248
13.3.3消息队列原理 250
13.3.4系统时钟节拍中断原理 253
13.4SmallRTOS51使用方法 253
13.4.1SmallRTOS51的安装及目录结构 253
13.4.2头文件 254
13.4.3初始化和启动 254
13.4.4建立任务 255
13.4.5编写用户任务 256
13.4.6系统配置 256
13.4.7信号量的使用方法 257
13.4.8消息队列的使用方法 257
13.5SmallRTOS51系统配置手册 259
13.6SmallRTOS51函数快速查阅手册 261
13.7本章小结 265
第14章 软件系统设计 266
14.1软件设计的工程背景 266
14.2软件功能设计 267
14.3SmallRTOS51的移植 268
14.3.1与系统相关的宏 268
14.3.2与编译器无关的变量类型 269
14.3.3OSStart() 269
14.3.4OSTickISR() 271
14.3.5OSIdIe() 272
14.3.6OSIntCtxSw() 273
14.3.7OS_TASK_SW() 273
14.4工程文件结构 274
14.5基于RTOS51的驱动程序组 274
14.5.1LCD驱动程序 275
14.5.2时钟芯片“DS12C887”驱动程序 279
14.5.3A/D转换芯片“TLC2543”驱动程序 280
14.5.4键盘操作驱动程序 282
14.5.5异步收发器“TL16C550B”驱动程序 288
14.5.6通信协议驱动程序 292
14.6任务组 296
14.6.1任务功能区分 296
14.6.2任务优先级分配 297
14.6.3任务间通信 299
14.7任务功能分析 301
14.8本章小结 317
参考文献 318