第1章 简单了解51单片机(教学视频:77分钟) 1
1.1 51单片机硬件简述 1
1.1.1 51单片机的逻辑结构及信号引脚 2
1.1.2 51单片机的存储器 4
1.1.3 51单片机的时钟电路和时序 10
1.1.4 51单片机的复位电路 11
1.1.5 增强型51单片机AT89C52的特点介绍 12
1.2 51单片机的程序设计语言和软件编译环境 13
1.2.1 来看一段汇编语言吧 13
1.2.2 看看更容易理解的C语言吧 13
1.2.3 两种程序编程语言的关系及相互的优缺点 14
1.2.4 51单片机的编译开发环境介绍 15
1.3 51单片机开发环境Keil的介绍 15
1.3.1 Keil开发环境的介绍 15
1.3.2 项目建立的方法 16
1.4 51单片机学习的利器——仿真软件Proteus 19
1.4.1 Proteus简介 20
1.4.2 用Proteus建立一个51单片机最小系统的电路图 25
1.5 通过一个小实例了解51单片机开发 27
1.5.1 在Keil中编译一段程序 27
1.5.2 在Proteus中演示程序 30
1.6 习题及操作练习 32
第2章 从I/O端口开始学51单片机(教学视频:53分钟) 35
2.1 从一个漂亮的流水灯看I/O端口 35
2.1.1 演示流水灯实例 35
2.1.2 流水灯电路图的绘制 37
2.1.3 P1端口介绍 43
2.1.4 流水灯程序设计流程图 45
2.2 用汇编语言实现流水灯 47
2.2.1 用汇编语言小试牛刀 47
2.2.2 测试流水灯汇编程序 48
2.2.3 51单片机汇编语言指令介绍——数据传送指令 52
2.3 用C语言实现流水灯 53
2.3.1 根据流程图来编写程序 53
2.3.2 当代最优秀的程序设计语言——C语言介绍 55
2.4 I/O端口的输入控制 62
2.4.1 用开关控制流水灯 63
2.4.2 程序设计流程 64
2.4.3 汇编语言实现开关控制流水 64
2.4.4 汇编语言知识扩充——专用寄存器介绍 66
2.4.5 用C语言实现开关控制流水灯 69
2.4.6 C语言知识扩展 71
2.5 习题和扩展练习 73
第3章 51单片机对中断的控制(教学视频:89分钟) 76
3.1 流水灯汇编程序的改进 76
3.1.1 流水灯程序改进的思路 76
3.1.2 改进后的汇编语言流水灯 78
3.1.3 软件仿真介绍 82
3.2 流水灯C语言的改进 89
3.2.1 新流水灯C语言设计思路 90
3.2.2 软件仿真C语言项目 93
3.3 外中断控制概述 98
3.3.1 51单片机的中断源 98
3.3.2 外部中断的执行方式 99
3.3.3 外中断控制电路 100
3.4 汇编语言控制外中断 101
3.4.1 汇编知识介绍 101
3.4.2 编写中断控制汇编语言 104
3.4.3 在Proteus中仿真效果 106
3.5 用C语言完成中断控制 107
3.5.1 C语言相关知识介绍 107
3.5.2 编写C语言外中断程序 110
3.5.3 软件仿真C语言外中断程序 112
3.6 习题和实例演练 117
第4章 51单片机对时间的控制(教学视频:177分钟) 119
4.1 51单片机的软件定时 119
4.1.1 汇编语言实现精确定时 119
4.1.2 用C语言实现延时的方法 125
4.2 51单片机定时器概述 131
4.2.1 51单片机定时器的功能 131
4.2.2 定时器/计数器相关寄存器 131
4.3 定时工作方式0 134
4.3.1 定时工作方式0概述 134
4.3.2 用定时器方式0做方波信号发生器 135
4.3.3 在工作方式0下,利用查询方法实现方波信号发生器 137
4.3.4 汇编语言实现定时器在工作方式0的中断控制方法 142
4.3.5 C语言实现定时器在工作方式0的中断控制 147
4.3.6 在Proteus中仿真中断实例 148
4.4 定时工作方式1 149
4.4.1 定时器工作方式1概述 149
4.4.2 实例设计方案 150
4.4.3 汇编语言实现可编程定时 152
4.4.4 C语言实现可编程定时 155
4.4.5 Proteus仿真可编程定时 156
4.4.6 软件仿真可编程定时 157
4.5 定时工作方式2 160
4.5.1 定时工作方式2概述 160
4.5.2 实例规划 161
4.5.3 用汇编语言实现目标 163
4.5.4 用C语言实现编程 164
4.5.5 在Proteus中进行仿真 166
4.6 定时工作式3 168
4.6.1 定时工作方式3概述 168
4.6.2 实例规划 169
4.6.3 用汇编语言实现编程 171
4.6.4 用C语言实现编程 173
4.6.5 在Proteus中进行仿真 174
4.7 习题和实例扩展 175
第5章 数码管显示技术(教学视频:92分钟) 177
5.1 数码管静态显示 177
5.1.1 数码管介绍 177
5.1.2 汇编语言对数据存储器(RAM)的空间的攫取 180
5.1.3 利用C语言实现对数据存储器(RAM)的存取 189
5.1.4 汇编语言对程序存储器(ROM)的开拓 193
5.1.5 C语言对程序存储器的读取 198
5.2 数码管动态显示 199
5.2.1 动态显示思路 200
5.2.2 用Proteus绘制数码管动态显示电路图 200
5.2.3 汇编语言实现动态显示 203
5.2.4 C语言实现动态显示 206
5.3 汇编语言实现数码显示计数器 209
5.3.1 总体规划 210
5.3.2 汇编基础知识扩展——算数运算指令 212
5.3.3 分模块编写程序 213
5.3.4 在Proteus中仿真实例 219
5.3.5 在Keil中仿真 220
5.4 习题和实例扩展 223
第6章 通信利器——串口(教学视频:127分钟) 225
6.1 一个实例来说明串口通讯 225
6.1.1 新式流水灯 225
6.1.2 串行通信基本概述 227
6.1.3 RS-232总线标准 228
6.1.4 51单片机串行口以及控制寄存器 229
6.1.5 51单片机串行通信工作方式 230
6.1.6 串行工作方式0实例详述 232
6.2 双机通信 237
6.2.1 准备电路图 237
6.2.2 程序设计方案 239
6.2.3 汇编语言实现双机通信 241
6.2.4 C语言实现双机通信 244
6.2.5 仿真观察双机通信 248
6.3 单片机和电脑通信 248
6.3.1 硬件电路的实现 248
6.3.2 程序设计方案 251
6.3.3 汇编语言编写实例程序 252
6.3.4 C语言实现编程 255
6.3.5 实例在Proteus中的仿真 256
6.4 习题和实例扩展 260
第7章 数字电子时钟的设计(教学视频:157分钟) 262
7.1 电子时钟总体规划 262
7.1.1 电子时钟整机电路图 262
7.1.2 数码管显示 263
7.1.3 串口修改数值 265
7.1.4 时钟工作单元 266
7.1.5 键盘控制 266
7.2 键盘分析 268
7.2.1 键值获取 269
7.2.2 根据键值执行相应程序 273
7.2.3 各按键子程序 274
7.3 电子时钟其他模块设计 277
7.3.1 程序预定义变量 277
7.3.2 主程序程序设计 279
7.3.3 显示子程序 281
7.3.4 定时器控制单元 283
7.3.5 串行修改单元 285
7.4 C语言知识扩展 286
7.4.1 函数定义的形式 286
7.4.2 指针变量 288
7.4.3 加1子程序的分析 292
7.5 习题和实例扩展 293
第8章 更先进的电子时钟(教学视频:191分钟) 295
8.1 字符和ASCII码 295
8.1.1 ASCII码的概念 295
8.1.2 汇编语言中运用字符 296
8.1.3 C语言中表达字符 296
8.1.4 串行口输出字符 298
8.2 字符型液晶1602 302
8.2.1 字符液晶1602简介 302
8.2.2 在编程中学习液晶驱动 305
8.2.3 液晶显示其他接口函数 309
8.3 时钟模块研究 312
8.3.1 DS1302介绍 312
8.3.2 DS1302控制方式 313
8.3.3 时钟程序编写 315
8.4 文件的分割管理 325
8.4.1 C项目的分割方法 325
8.4.2 汇编语言分割方式 328
8.5 习题和实例扩展 335
第9章 51单片机外设扩展(教学视频:72分钟) 337
9.1 外部数据存储器的扩展 337
9.1.1 数据存储芯片介绍 337
9.1.2 外扩RAM分析 340
9.1.3 外部设备数据传送指令 342
9.1.4 用实例验证对外部RAM的存取过程 345
9.2 LCD的扩展 347
9.2.1 实现总线控制LCD的电路分析 347
9.2.2 汇编语言实现编程方式 349
9.2.3 C语言实现编程方法 351
9.3 更多外设的扩展方法 352
9.3.1 实现多个外设扩展的电路实现方法 352
9.3.2 综合运用外设实例 356
9.3.3 汇编语言实现实例要求 358
9.3.4 C语言实现实例目标 361
9.4 习题和实例扩展 364
第10章 点阵液晶LCD和矩阵键盘(教学视频:84分钟) 366
10.1 点阵液晶12864 366
10.1.1 12864液晶概述 366
10.1.2 12864直接控制方式底层驱动程序 370
10.1.3 12864点阵液晶接口函数 373
10.1.4 实例显示成果 386
10.2 矩阵键盘 392
10.2.1 矩阵键盘的电路图及实现原理 392
10.2.2 矩阵键盘判键程序 394
10.2.3 矩阵键盘在12864液晶上的演示 397
10.3 习题和实例扩展 401
第11章 计算器程序分析与设计(教学视频:82分钟) 403
11.1 汇编语言知识补充 403
11.1.1 汇编语言执行跳转指令 403
11.1.2 汇编语言伪指令扩充 404
11.2 C语言库函数介绍 407
11.2.1 C51库函数简介 407
11.2.2 典型库函数介绍 409
11.3 Proteus自带计算器分析(汇编语言编写) 413
11.3.1 实例电路分析 414
11.3.2 外设模块程序分析 416
11.3.3 程序分配布局 419
11.3.4 编译信息观察及程序总结 425
11.4 C语言计算器分析和改进 425
11.4.1 Proteus提供的计算器分析 426
11.4.2 改造C51计算器 431
11.4.3 项目设置和仿真效果 437
11.5 习题和实例扩展 438
第12章 ZLG/GUI在51单片机中的移植及运用(教学视频:44分钟) 440
12.1 C语言基础知识补充 440
12.1.1 C51结构体 440
12.1.2 C51枚举类型 445
12.1.3 C51共用体 446
12.1.4 类型定义符typedef 448
12.2 ZLG/GUI介绍 449
12.2.1 ZLG/GUI的文件浏览 449
12.2.2 CONFIG.H文件 454
12.2.3 ZLG/GUI的配置 455
12.3 移植ZLG/GUI 457
12.3.1 LCD底层驱动 457
12.3.2 ZLG/GUI的移植文件 459
12.3.3 底层程序编写 462
12.3.4 Keil配置 465
12.4 ZLG/GUI的应用举例 466
12.4.1 实现基本画图函数 466
12.4.2 字符绘制 468
12.4.3 汉字显示和图形显示 469
12.4.4 窗口显示 475
12.4.5 菜单功能和按钮 477
12.5 习题和实例扩展 480
附录A 51单片机汇编指令集 482
附录B ASCII码表 486
附录C C语言运算符及其优先级 488