第1章 51系列单片机系统结构概述 1
1.1 51单片机概述 1
1.1.1 单片机的分类 1
1.1.2 8051单片机的应用 3
1.1.3 8051单片机的开发 3
1.1.4 8051单片机型号的选择 4
1.1.5 单片机学习的要点 4
1.2 51单片机基本系统结构 4
1.2.1 51单片机的结构框图及引脚 4
1.2.2 MCS-51系列单片机主要功能部件 6
1.2.3 典型时钟电路和复位电路 7
1.2.4 8051单片机I/O结构 7
1.3 51单片机存储器结构 8
1.3.1 程序存储器 9
1.3.2 外部数据存储器 10
1.3.3 内部数据存储器空间 11
1.3.4 MCS-51单片机特殊功能寄存器 13
1.3.5 常用特殊功能寄存器 14
1.4 51单片机的指令系统及汇编语言设计要点 16
1.4.1 指令格式 16
1.4.2 伪指令 17
1.4.3 寻址方式 19
1.4.4 指令类型 21
1.5 汇编程序设计 34
1.5.1 三种基本的程序结构 34
1.5.2 汇编程序设计的要点 35
1.6 51单片机主要扩展功能部件 39
1.6.1 MCS-51单片机定时/计数器 39
1.6.2 中断系统 47
1.6.3 串行口 54
第2章 C51应用基础 62
2.1 KeilC51简介 62
2.2 C51程序设计基础知识 63
2.2.1 C语言的特点 63
2.2.2 一个简单的C51例子 63
2.2.3 C51的基础知识 64
2.2.4 存储空间定义 64
2.2.5 C51数据类型 65
2.2.6 C51存储空间的定义 67
2.2.7 C51的常量 67
2.2.8 C51常用运算符 68
2.2.9 C51表达式 73
2.2.10 C51的基本语句 74
2.3 C51的函数与数组 80
2.3.1 函数的定义 81
2.3.2 数组 83
2.3.3 结构(struct) 86
2.3.4 联合(union) 87
2.4 C51基本应用 90
2.4.1 I/O口字节操作应用 90
2.4.2 I/O口位操作应用 90
2.4.3 计数器应用 91
2.4.4 外部中断应用 91
2.4.5 串行口中断应用 92
2.4.6 键盘显示程序 93
第3章 铁电单片机VRS51L3074 104
3.1 VRS51L3074概述 104
3.1.1 功能说明 104
3.1.2 引脚说明 106
3.1.3 指令系统 109
3.2 VRS51L3074的存储器结构 113
3.2.1 内部数据存储区 114
3.2.2 特殊功能寄存器区 114
3.2.3 外部数据存储器组织 120
3.2.4 外部数据总线访问 123
3.2.5 FRAM铁电存储器的使用 127
3.3 VRS51L3074芯片配置 133
3.3.1 系统时钟配置 133
3.3.2 处理器工作模式控制 135
3.3.3 功能模块使能控制 136
3.3.4 功能模块I/O映射与优先级 137
3.4 通用I/O口 138
3.4.1 I/O口结构 139
3.4.2 I/O口方向配置 139
3.4.3 I/O口输入使能控制 140
3.4.4 I/O口锁存器 140
3.4.5 I/O口驱动能力 141
3.4.6 I/O口状态变化监控 141
3.5 定时/计数器 142
3.5.1 定时/计数器T0、T1 143
3.5.2 定时/计数器T2 147
3.5.3 定时器级联 150
3.5.4 定时器应用例程 151
3.6 脉冲宽度计数器(PWC) 151
3.6.1 PWC模块配置寄存器 153
3.6.2 PWC模块配置操作 155
3.6.3 PWC模块例程 155
3.7 串行口 156
3.7.1 串行口UART0 157
3.7.2 串行口UART1 159
3.7.3 串行通信波特率计算 161
3.7.4 UART0和UART1引脚映射 162
3.7.5 串行口例程 163
3.8 SPI接口 166
3.8.1 SPI运行控制 167
3.8.2 SPI配置和状态监控 168
3.8.3 SPI传输字长 171
3.8.4 SPI数据寄存器 172
3.8.5 SPI数据输入/输出 173
3.8.6 可变位数据传输 174
3.9 I2C接口 175
3.9.1 I2C运行控制 175
3.9.2 I2C从机在线状态检查 178
3.9.3 从机ID设置与I2C高级配置 180
3.9.4 I2C例程 181
3.10 脉冲宽度调制器(PWMs) 184
3.10.1 PWM输出波形控制 185
3.10.2 PWM模块时钟配置 188
3.10.3 PWM模块例程 188
3.10.4 PWM模块的定时器工作模式 191
3.11 增强型算术单元(AU) 194
3.11.1 算术单元控制寄存器 195
3.11.2 算术单元数据寄存器 198
3.11.3 桶式移位器 200
3.11.4 增强型算术单元整体结构 201
3.11.5 算术单元基本运算例程 201
3.12 看门狗定时器(WDT) 202
3.12.1 看门狗定时器的控制 203
3.12.2 采用外部时钟的情况下WDT的复位控制 204
3.12.3 WDT基本配置例程 204
3.13 中断系统 205
3.13.1 中断系统概述 205
3.13.2 中断允许控制 207
3.13.3 中断源选择 208
3.13.4 中断优先级 209
3.13.5 引脚变化中断 209
3.14 VRS51L3074JTAG接口 211
3.14.1 激活JTAG接口对系统的影响 211
3.14.2 板级JTAG接口的实现 212
3.14.3 VRS51L3074调试器 212
3.15 Flash编程接口(FPI) 212
3.15.1 与FPI模块相关的特殊功能寄存器 212
3.15.2 Flash存储器读操作 215
3.15.3 Flash存储器擦除 217
3.15.4 Flash存储器写操作 218
第4章 LED显示屏工作原理 224
4.1 LED发光原理及其发展状况、趋势 224
4.1.1 LED发光原理 224
4.1.2 LED发展历史及趋势 225
4.2 LED显示屏基本模块介绍 226
4.2.1 光学和人眼视觉知识 226
4.2.2 LED器件主要参数 227
4.2.3 双基色点阵LED模块简介 228
4.3 常用双基色LED显示屏基本控制单元 229
4.3.1 室内双基色LED单元板结构介绍 229
4.3.2 驱动方式分析 230
4.3.3 室内双基色单元板电路分析 232
4.4 LED显示屏分类及亮度、灰度控制 237
4.4.1 LED显示屏分类 237
4.4.2 LED显示屏亮度及灰度控制理论 238
4.5 LED显示屏工程应用及维护概述 241
4.5.1 LED显示屏的方案设计 241
4.5.2 LED显示屏的安装 243
4.5.3 LED显示屏的维修 244
第5章 LED显示屏显示数据的组织 245
5.1 LED显示屏控制系统对单片机的基本要求 245
5.1.1 LED显示屏对单片机控制系统的基本要求 245
5.1.2 LED显示屏对单片机数据处理方式的基本要求 247
5.1.3 指令优化对字节处理时间的影响 248
5.2 LED显示屏静态显示数据的组织 251
5.2.1 静态显示的LED显示屏数据组织 251
5.2.2 静态屏的滚动显示 255
5.3 LED显示屏动态显示数据的组织 258
5.3.1 动态显示的LED显示屏数据组织 258
5.3.2 显示区域中X、Y坐标与存储单元字节地址i、位地址j之间的关系 261
5.4 显示效果与占用显示数据存储器大小的关系 263
5.4.1 显示效果与占用显示数据存储器大小的关系 263
5.4.2 采用双RAM并行输出降低显示数据存储器的占用 267
5.4.3 多RAM并行输出时双RAM并行输出方式的扩展 270
第6章 基于51系列单片机的小型LED显示屏控制系统 270
6.1 单片机直接驱动LED显示屏 272
6.1.1 显示数据存储在程序存储器中 272
6.1.2 显示数据存储在扩展的外部并行数据存储器中 278
6.2 利用单片机外部读写信号驱动LED显示屏 279
6.2.1 单片机外部数据存储器扩展 279
6.2.2 多个外部数据存储器扩展 280
6.3 利用单片机SPI接口驱动LED显示屏 287
6.3.1 SPI接口的特点 287
6.3.2 利用SPI接口驱动LED显示屏 288
6.4 单片机直接驱动LED显示屏应用实例 291
第7章 单片机扩展外部地址计数器驱动大型LED显示屏 291
7.1 单片机访问外部数据存储器时间上的限制 297
7.2 利用单片机多RAM技术驱动大型LED显示屏 301
7.2.1 并行RAM方式 301
7.2.2 串行存储器方式 307
7.3 利用LED显示屏单元板排列方式驱动超长LED显示屏 308
7.3.1 超长LED显示屏面临的问题 308
7.3.2 LED显示屏的双向排列方式 308
7.3.3 超长LED显示屏的数据组织与硬件实现 309
7.4 利用多单片机系统驱动超大型LED显示屏 313
7.5 基于DSP与FPGA的LED显示屏控制系统的设计 315
7.5.1 DSP的特点及在LED显示屏控制系统中的应用 315
7.5.2 基于FPGA的系统时序电路设计 316
7.5.3 显示存储器模块设计 317
7.5.4 LED显示屏分区 317
7.5.5 显示存储器扫描时序控制电路 318
第8章 LED显示屏的系统软件编程 320
8.1 汉字字库的生成与使用 320
8.1.1 汉字编码简介 321
8.1.2 点阵汉字字库 321
8.1.3 在Windows环境下提取字模的工作原理 322
8.1.4 提取字模的程序设计 322
8.2 控制卡与PC机的协议制定 324
8.2.1 控制命令字约定 325
8.2.2 配置文本编辑 326
8.2.3 直接数据格式定义 329
8.2.4 存储器地址位置 331
8.2.5 PC机端串行口通信模块 331
8.3 汉字字形的提取及图片的嵌入 333
8.3.1 汉字字形提取 334
8.3.2 图片的嵌入 339
8.4 PC机对下载数据的预处理 339
8.4.1 LED屏显示信息编辑及提取 340
8.4.2 LED显示数据生成 340
8.4.3 INTER格式数据转换 342
第9章 LED显示屏单片机控制系统编程 346
9.1 基于SPI的Flash存储器读写 346
9.1.1 SST25系列串行Flash存储器 346
9.1.2 基于51单片机SPI接口的串行Flash驱动程序 350
9.2 字符控制及处理程序设计 359
9.2.1 字符控制处理程序设计 360
9.2.2 字符点阵字模提取程序设计 367
9.3 显示程序 372
9.3.1 显示程序指令表 372
9.3.2 读显示程序指令表 378
9.3.3 执行显示程序指令表 381
9.3.4 单场显示程序设计 384
9.4 串行口通信模块设计 385
9.4.1 51单片机端串行口收发模块 385
9.4.2 51单片机端串行口扩展程序模块 388
9.5 基于DS1302时钟模块程序设计 391
9.5.1 DS1302的结构及工作原理 391
9.5.2 DS1302的控制字节说明 391
9.5.3 复位 392
9.5.4 数据输入/输出 392
9.5.5 DS1302的寄存器 392
9.5.6 DS1302在LED控制卡上的硬件电路及软件设计 393
9.6 基于DS18B20温度传感器的模块设计 395
9.6.1 DS18B20的工作时序 396
9.6.2 DS18B20的程序设计 397
第10章 VRS51L3074在LED显示屏控制系统中的应用 401
10.1 VRS51L3074与标准51单片机的比较 401
10.1.1 VRS51L3074运行速度 401
10.1.2 VRS51L3074的高速增强型SPI接口 402
10.1.3 VRS51L3074的定时/计数器 402
10.1.4 VRS51L3074的增强型算术运算单元 402
10.1.5 VRS51L3074的其他部件 403
10.2 VRS513074的基本应用 403
10.3 VRS51L3074的RAM扩展应用 407
10.4 VRS51L3074扩展硬件地址计数器 409
10.5 VRS51L3074的扩展“双端口”串行FRAM 412
附录A ASCII码表 415
附录B MCS-51单片机常用资料 416
附录C C51中的关键字和常用函数 425
附录D KeilμVision3中高性能铁电单片机(VRS51L2xxx/3xxx)的相关配置简介 435
附录E 常用芯片引脚图 440
E.1 CPU 440
E.2 驱动芯片 442
E.3 其他 444
附录F 异步室内双基色LED显示屏故障排查简明手册 449
附录G LED双基色单元板原理图 451
参考文献 455