第1章 单片机入门 1
1.1 单片机简介 1
1.1.1 什么是单片机 1
1.1.2 单片机应用系统的组成及举例说明 2
1.1.3 单片机的分类 3
1.1.4 单片机的应用领域 4
1.2 用实例了解单片机应用系统的开发过程 5
1.2.1 明确控制要求并选择合适型号的单片机 5
1.2.2 设计单片机电路原理图 5
1.2.3 制作单片机电路 6
1.2.4 用Keil软件编写单片机控制程序 7
1.2.5 计算机、下载(烧录)器和单片机的连接 10
1.2.6 用烧录软件将程序写入单片机 13
1.2.7 单片机电路的供电与测试 15
1.3 与单片机有关的基础知识 17
1.3.1 单片机基础电路 17
1.3.2 数制与数制的转换 24
1.3.3 单片机的数的表示及运算 27
1.4 C51语言基础 29
1.4.1 常量 29
1.4.2 变量 30
1.4.3 运算符 31
1.4.4 关键字 34
1.4.5 数组 34
1.4.6 循环语句 36
1.4.7 选择语句 37
第2章 51单片机的硬件系统 40
2.1 8051单片机的引脚功能与内部结构 40
2.1.1 引脚功能说明 40
2.1.2 单片机与片外存储器的连接与控制 43
2.1.3 内部结构说明 44
2.2 805 1单片机I/O端口的结构与工作原理 47
2.2.1 P0端口 47
2.2.2 P1端口 48
2.2.3 P2端口 49
2.2.4 P3端口 50
2.3 8051单片机的存储器 51
2.3.1 存储器的存储单位与编址 51
2.3.2 片内、外程序存储器的使用与编址 52
2.3.3 片内、外数据存储器的使用与编址 53
2.3.4 数据存储器的分区 53
2.3.5 特殊功能寄存器(SFR) 56
2.4 STC89C5x系列单片机介绍 59
2.4.1 STC89C5x单片机的版本、封装形式和引脚功能说明 60
2.4.2 STC89C5x系列单片机的型号命名规则 63
2.4.3 STC89C5x系列单片机的常用型号的主要参数 64
2.4.4 STC89C5x系列单片机的I/O端口 64
2.4.5 STC89C5x系列单片机的程序存储器与数据存储器 68
2.4.6 STC89C5x系列单片机的特殊功能寄存器 69
第3章 Keil C51编程软件的使用 72
3.1 Keil C51软件的安装 72
3.1.1 Keil C51软件的版本及获取 72
3.1.2 Keil C51软件的安装 72
3.2 程序的编写与编译 75
3.2.1 启动Keil C51软件并新建工程文件 75
3.2.2 新建源程序文件并与工程关联起来 77
3.2.3 编写程序 79
3.2.4 编译程序 81
3.3 程序的仿真与调试 84
3.3.1 软件仿真调试 85
3.3.2 硬件仿真调试 91
第4章 单片机驱动LED与LED数码管的电路及编程 95
4.1 单片机驱动LED的电路及编程 95
4.1.1 发光二极管(LED)外形、性质与检测 95
4.1.2 单片机连接8个LED的电路 97
4.1.3 位操作与字节操作方式点亮单个LED的程序及详解 98
4.1.4 单个LED闪烁发光的程序及详解 100
4.1.5 单个LED以不同频率闪烁发光的程序及详解 101
4.1.6 位操作和字节操作方式点亮多个LED的程序及详解 102
4.1.7 多个LED以不同频率闪烁发光的程序及详解 102
4.1.8 多个LED左移和右移的程序及详解 103
4.1.9 LED循环左移和右移的程序及详解 105
4.1.10 LED左右移动并闪烁发光的程序及详解 106
4.1.11 用查表方式控制LED发光的程序及详解 107
4.1.12 LED花样发光的程序及详解 108
4.1.13 用PWM(脉宽调制)方式调节LED亮度的原理与程序 108
4.2 单片机驱动一位LED数码管显示的电路及编程 110
4.2.1 一位LED数码管外形、结构与检测 110
4.2.2 单片机连接一位LED数码管的电路 112
4.2.3 单个数码管静态显示一个字符的程序及详解 113
4.2.4 单个数码管动态显示多个字符的程序及详解 113
4.2.5 单个数码管环形转圈显示的程序及详解 114
4.2.6 单个数码管显示逻辑电平的程序及详解 115
4.3 单片机驱动8位LED数码管显示的电路及编程 115
4.3.1 多位LED数码管外形、结构与检测 115
4.3.2 单片机连接8位共阴极数码管的电路 117
4.3.3 8位数码管显示一个字符的程序及详解 118
4.3.4 8位数码管逐位显示8个字符的程序及详解 119
4.3.5 8位数码管同时显示8个字符的程序及详解 120
4.3.6 8位数码管动态显示8个以上字符的程序及详解 120
第5章 中断的使用及编程 122
5.1 中断的基本概念与处理过程 122
5.1.1 什么是中断 122
5.1.2 中断的基本概念 122
5.1.3 中断的处理过程 123
5.2 8051单片机的中断系统结构与控制寄存器 123
5.2.1 中断系统的结构 123
5.2.2 中断源寄存器 124
5.2.3 中断允许寄存器IE 125
5.2.4 中断优先级控制寄存器IP 126
5.3 中断的应用编程举例 127
5.3.1 中断使用的电路例图 127
5.3.2 外部中断0以低电平方式触发中断的程序 128
5.3.3 外部中断1以下降沿方式触发中断的程序 128
第6章 定时器/计数器的使用及编程 131
6.1 定时器/计数器的定时与计数功能 131
6.1.1 定时功能 131
6.1.2 计数功能 132
6.2 定时器/计数器的结构原理 132
6.2.1 定时器/计数器的结构 132
6.2.2 定时器/计数器的工作原理 133
6.3 定时器/计数器的控制寄存器与4种工作方式 134
6.3.1 定时器/计数器控制寄存器TCON 134
6.3.2 工作方式控制寄存器TMOD 135
6.3.3 定时器/计数器的工作方式 136
6.4 定时器/计数器的应用及编程 140
6.4.1 产生1kHz方波信号的程序及详解 140
6.4.2 产生50kHz方波信号的程序及详解 141
6.4.3 产生周期为1s方波信号的程序及长延时的方法 142
第7章 独立按键与矩阵键盘输入电路及编程 144
7.1 独立按键输入电路及编程 144
7.1.1 开关输入产生的抖动及软、硬件解决方法 144
7.1.2 8个独立按键与8个LED的单片机电路 145
7.1.3 一个按键点动控制一个LED亮灭的程序及详解 146
7.1.4 一个按键锁定控制一个LED亮灭的程序及详解 146
7.1.5 4路抢答器的程序及详解 147
7.1.6 独立按键控制LED和LED数码管的单片机电路 148
7.1.7 两个按键控制一位数字增、减并用8位数码管显示的程序及详解 149
7.1.8 两个按键控制多位数字增、减并用8位数码管显示的程序及详解 150
7.1.9 按键长按与短按产生不同控制效果的程序及详解 152
7.1.10 8个独立按键控制LED和LED数码管显示的程序及详解 154
7.2 矩阵键盘输入电路及编程 156
7.2.1 16键矩阵键盘输入与8位数码管显示的单片机电路 156
7.2.2 矩阵键盘行列扫描方式输入及显示的程序及详解 158
7.2.3 中断触发键盘行列扫描的矩阵键盘输入显示电路及程序 161
7.2.4 矩阵键盘密码锁程序及详解 166
第8章 点阵和液晶显示屏的使用及编程 170
8.1 双色LED点阵的使用及编程 170
8.1.1 双色LED点阵的外形、结构原理与检测 170
8.1.2 单片机配合74HC595芯片驱动双色LED点阵的电路 177
8.1.3 双色点阵显示一种颜色字符的程序及详解 178
8.1.4 双色点阵交替显示两种颜色字符的程序及详解 180
8.1.5 字符移入和移出点阵的程序及详解 182
8.2 1602字符型液晶显示屏的使用及编程 185
8.2.1 1602字符型液晶显示屏的硬、软件资源 185
8.2.2 单片机驱动1602液晶显示屏的电路 192
8.2.3 1602液晶显示屏静态显示字符的程序及详解 192
8.2.4 1602液晶显示屏逐个显现字符的程序及详解 194
8.2.5 1602液晶显示屏字符滚动显示的程序及详解 195
8.2.6 矩阵键盘输入与1602液晶显示屏显示的电路及程序 196
第9章 步进电动机的使用及编程 202
9.1 步进电动机与驱动芯片介绍 202
9.1.1 步进电动机的结构与工作原理 202
9.1.2 驱动芯片ULN2003 205
9.1.3 五线四相步进电动机 207
9.2 单片机驱动步进电动机的电路及编程 208
9.2.1 由按键、单片机、驱动芯片和数码管构成的步进电动机驱动电路 208
9.2.2 用单4拍方式驱动步进电动机正转的程序及详解 209
9.2.3 用双4拍方式驱动步进电动机自动正反转的程序及详解 209
9.2.4 外部中断控制步进电动机正反转的程序及详解 211
9.2.5 用按键控制步进电动机启动、加速、减速、停止的程序及详解 212
第10章 串行通信的使用及编程 216
10.1 概述 216
10.1.1 并行通信和串行通信 216
10.1.2 串行通信的两种方式 216
10.1.3 串行通信的数据传送方向 218
10.2 串行通信口的结构与原理 219
10.2.1 串行通信口的结构 219
10.2.2 串行通信口的工作原理 220
10.3 串行通信口的控制寄存器 220
10.3.1 串行控制寄存器(SCON) 220
10.3.2 电源控制寄存器(PCON) 221
10.4 4种工作方式与波特率的设置 221
10.4.1 方式0 221
10.4.2 方式1 223
10.4.3 方式2 223
10.4.4 方式3 224
10.4.5 波特率的设置 224
10.5 串行通信的应用编程 226
10.5.1 利用串行通信的方式0实现产品计数显示的电路及编程 226
10.5.2 利用串行通信的方式1实现双机通信的电路及编程 227
第11章 I2C总线通信的使用及编程 231
11.1 I2C总线介绍 231
11.1.1 概述 231
11.1.2 I2C总线通信协议 232
11.1.3 I2C总线的数据传送格式 232