模块1 单片机硬件系统 1
任务1 点亮最简单的单片机系统 1
1.1 计算机中的数制 2
1.1.1 数制的基本概念 3
1.1.2 不同数制之间的相互转换 3
1.2 单片机简介 4
1.2.1 单片机的基本概念 5
1.2.2 51单片机 5
1.3 MCS-51 单片机的内部结构 7
1.3.1 8051单片机的基本内部结构 8
1.3.2 8051单片机的存储器结构 9
1.4 8051单片机的信号引脚及最小系统 14
1.4.1 信号引脚及功能 14
1.4.2 单片机最小系统 16
1.4.3 单片机应用系统 20
习题1 21
模块2 单片机开发软件系统 23
任务2 调试最简单的单片机系统点亮程序 23
2.1 单片机系统开发软件KEIL C5 1 23
2.1.1 KEIL C51软件基本知识 24
2.1.2 KEIL C51软件的使用 24
2.2 程序下载软件 28
2.2.1 下载软件的作用 28
2.2.2 STC下载软件的介绍 28
2.2.3 STC下载软件的使用步骤 28
习题2 30
模块3 并行I/O口应用与C语言基础 31
任务3 控制8个LED发光二极管闪烁 31
3.1 并行I/O端口电路结构及功能 38
3.1.1 P0口 38
3.1.2 P1口 41
3.1.3 P2口 41
3.1.4 P3口 42
3.1.5 端口的负载能力 43
3.1.6 并行口使用小结 43
3.2 C语言基础知识 43
3.2.1 C语言简介 44
3.2.2 C51简介 44
3.3 C语言数据与运算 45
3.3.1 存储区域 45
3.3.2 存储模式 46
3.3.3 数据类型 47
3.3.4 常量与变量 49
3.3.5 运算符和表达式 51
任务4 流水灯 54
3.4 C语言的基本语句 56
3.4.1 表达式语句和复合语句 56
3.4.2 选择语句 57
3.4.3 循环语句 61
习题3 66
模块4 定时与中断系统 68
任务5 定时亮灭的小灯 68
4.1 C语言函数 69
4.1.1 C51语言程序的基本结构 69
4.1.2 函数分类 71
4.1.3 函数定义 71
4.1.4 函数调用 72
4.1.5 函数的定义与调用应用举例 72
4.2 定时/计数器 75
4.2.1 定时/计数器的结构和工作原理 75
4.2.2 定时/计数器的工作方式 78
4.2.3 定时/计数器的应用 80
任务6 人工控制的小灯 84
4.3 中断系统 86
4.3.1 中断的基本概念 86
4.3.2 8051片机中断系统的结构 87
4.3.3 中断的特殊功能寄存器 88
4.3.4 中断处理过程 90
4.3.5 中断的应用 92
习题4 97
模块5 显示和键盘接口技术 99
任务7 LED数码管显示的简易秒表倒计时设计 99
5.1 数组 101
5.1.1 一维数组 101
5.1.2 字符数组 102
任务8 编制数码管动态显示程序 103
5.2 单片机与LED数码管接口 105
5.2.1 LED数码管的结构及原理 105
5.2.2 LED数码管静态显示 107
5.2.3 LED数码管动态显示 107
任务9 字符型LCD液晶显示欢迎界面 108
5.3 单片机与LCD液晶显示器接口 110
5.3.1 LCD芯片介绍 110
5.3.2 HD44780中的存储器 112
5.3.3 HD44780指令集 113
5.3.4 字符型LCD1602的基本操作与应用 116
任务10 用矩阵键盘控制8路跑马灯 118
5.4 单片机与键盘接口 124
5.4.1 按键的去抖 125
5.4.2 独立式按键 126
5.4.3 矩阵式键盘 128
习题5 129
模块6 串行口通信技术 130
任务11 单片机之间双机通信 130
6.1 串行通信基础 134
6.1.1 串行通信与并行通信 134
6.1.2 串行通信的制式 135
6.1.3 异步通信和同步通信 135
6.1.4 串行通信的校验 137
6.2 MCS-51的串行接口 137
6.2.1 MCS-51串行口的结构 137
6.2.2 串行口的工作方式 139
任务12 单片机和PC之间一对一通信 143
6.3 单片机和PC之间的串行通信 146
6.3.1 RS-232C串行通信总线标准 147
6.3.2 单片机和PC的串行通信接口 148
任务13 基于I2C串行总线的多点温度测量 150
6.4 I2C串行通信 162
6.4.1 I2C串行通信的原理 162
6.4.2 温度传感器DS 1621 165
习题6 167
模块7 综合应用 169
任务14 简易数字频率计的设计 169
习题7 178
附录A 单片机学习板说明 179
参考文献 184