第1章 单片机的基本知识 1
1.1概述 1
1.2单片机技术发展 2
1.3单片机的应用领域 3
1.4典型单片机芯片的简介 4
习题 6
第2章MCS-51单片机基础知识 7
2.1 MCS-51单片机的基本知识 7
【实例1】正数加法溢出实例 9
【实例2】负数加法溢出实例 9
【实例3】工作寄存器区的选择实例 10
2.2 MCS-51的引脚功能 11
2.3 CPU时钟电路与时序 13
2.3.1时钟电路 13
2.3.2 CPU时序 14
2.4复位方式和复位电路 15
2.4.1复位操作 15
2.4.2复位方式 16
2.4.3复位电路 16
2.4.4单片机执行指令的过程 17
2.5 MCS-51的存储器结构 17
2.5.1程序存储器 18
2.5.2数据存储器 19
2.6 MCS-51单片机的并行输入输出端口 22
2.6.1 MSC-51内部并行端口结构 22
2.6.2 MCS-51单片机I/O端口工作原理 22
【实例4】 P1口输入实例 24
2.7单片机最小系统应用 26
【实例5】 P1口输出实例 26
【实例6】基本输入输出实例 27
习题 29
第3章 开发工具介绍 31
3.1创建一个Keil C51应用程序 31
3.2建立一个工程项目 31
3.2.1运行μVision2软件 31
3.2.2建立新工程 31
3.2.3为工程选择目标器件 34
3.2.4为所创建的工程建立程序文件 34
3.2.5编辑程序源代码 36
【实例7】 keil练习实例一 37
3.2.6保存文件 37
3.2.7将程序文件添加到工程项目中 38
3.3程序文件的编译和连接 40
3.3.1编译连接环境的设置 40
3.3.2程序文件的编译和连接 42
3.3.3程序文件调试 43
【实例8】 keil练习实例二 44
习题 45
第4章C语言基本语句 46
4.1 C语言数据类型 46
【实例9】特殊功能寄存器应用实例 47
【实例10】位操作实例 47
4.2常量 48
4.2.1常量的数据类型 48
【实例11】常量使用说明实例 49
4.3变量 49
【实例12】 sfr定义方法实例 49
【实例13】位变量使用实例一 50
【实例14】位变量使用实例二 50
【实例15】位变量使用实例三 50
【实例16】位变量使用实例四 50
4.4重新定义数据类型 51
【实例17】重新定义数据类型应用实例一 51
【实例18】重新定义数据类型应用实例二 51
【实例19】重新定义数据类型应用实例三 51
【实例20】重新定义数据类型应用实例四 51
4.5运算符和表达式 52
【实例21】赋值运算符应用实例 52
【实例22】算术运算符应用实例 53
【实例23】增量和减量运算符应用实例一 53
【实例24】增量和减量运算符应用实例二 54
【实例25】关系运算符应用实例一 54
【实例26】关系运算符应用实例二 54
【实例27】逻辑运算符应用实例一 56
【实例28】逻辑运算符应用实例二 56
【实例29】位运算符应用实例 57
【实例30】复合赋值运算符应用实例 58
【实例31】逗号运算符应用实例 59
【实例32】条件运算符应用实例 59
【实例33】指针和地址运算符应用实例 60
【实例34】强制类型转换运算符应用实例一 60
【实例35】强制类型转换运算符应用实例二 60
【实例36】 Sizeof运算符应用实例一 61
【实例37】 Sizeof运算符应用实例二 61
4.6 C程序设计的基本语句 62
4.6.1表达式语句 62
【实例38】表达式语句应用实例一 62
【实例39】表达式语句应用实例二 62
4.6.2复合语句 63
【实例40】复合语句应用实例一 63
【实例41】复合语句应用实例二 63
4.6.3条件语句 64
【实例42】条件语句应用实例一 64
【实例43】条件语句应用实例二 64
4.6.4开关语句 64
【实例44】开关语句应用实例 65
4.6.5循环语句 65
【实例45】 While语句应用实例 66
【实例46】 Do while语句应用实例 67
【实例47】 For语句应用实例 68
【实例48】 Return语句应用实例 69
【实例49】 Goto语句应用实例 70
习题 70
第5章 函数 71
5.1函数定义 71
【实例50】函数应用实例 72
5.2函数的调用 72
5.2.1函数的调用形式 72
【实例51】函数参数应用实例 73
【实例52】函数表达式应用实例 73
5.2.2函数的参数和函数的返回值 73
5.2.3实际参数的传递方式 74
5.3中断函数 75
【实例53】中断函数应用实例 76
习题 77
第6章数组与指针 78
6.1数组 78
6.1.1一维数组 78
【实例54】一维数组应用实例一 78
【实例55】一维数组应用实例二 78
【实例56】一维数组应用实例三 79
【实例57】一维数组应用实例四 79
6.1.2字符数组 79
【实例58】字符数组置初值应用实例一 79
【实例59】字符数组置初值应用实例二 79
6.2指针 80
【实例60】指针应用实例 81
习题 83
第7章C语言程序设计 84
7.1顺序结构程序设计 84
【实例61】顺序程序设计实例 84
7.2分支(选择)结构程序设计 84
【实例62】递归实例 84
7.3循环程序设计 85
【实例63】 For单循环实例 85
【实例64】 For双循环实例 86
【实例65】 For三循环实例 86
【实例66】 While语句单循环实例 87
【实例67】 While语句双循环实例 87
7.4单片机I/O口控制程序 88
【实例68】 P1口实例 88
【实例69】控制显示口实例 88
【实例70】节日彩灯实例 88
习题 90
第8章 中断控制、定时/计数器 91
8.1 MCS-51单片机中断系统 91
8.1.1中断系统概述 91
8.1.2 MCS-51系列单片机中断系统的结构 92
8.1.3与中断优先级 93
8.1.4中断控制寄存器 93
8.1.5中断响应条件 96
8.1.6中断处理 96
8.1.7中断请求的撤除 97
8.1.8中断系统应用 98
【实例71】中断系统应用实例 98
8.2 MCS-51单片机定时/计数器 99
8.2.1与定时/计数器相关的SFR寄存器 100
8.2.2 MCS-51定时/计数器的电路结构与工作模式 101
【实例72】计算定时器初值实例 102
8.2.3定时/计数器应用 103
【实例73】定时/计数器查询方式实例 103
【实例74】定时/计数器中断方式实例 104
【实例75】定时器应用实例 104
习题 106
第9章 单片机串行通信系统 107
9.1单片机串行通信概述 107
9.1.1串行通信的种类 107
9.1.2串行通信的制式 109
9.1.3 RS232C串行接口标准 110
9.1.4 MCS-51串行通信口控制及初始化 111
9.1.5串行通信控制寄存器 112
9.2 MCS-51单片机串行通信工作方式 114
9.2.1串行口的工作方式 114
【实例76】方式1发送数据实例 115
【实例77】方式1接收数据实例 116
【实例78】方式2、3发送数据实例 117
【实例79】方式2、3接收数据实例 117
9.3 MCS-51单片机串行通信应用 117
【实例80】MCS-51单片机串行通信应用实例 117
9.4双机通信 118
9.5多机串行通信技术 119
【实例81】多机通信具体流程实例 119
习题 120
第10章 输入输出接口技术 121
10.1简单I/O口的扩展 121
10.1.1用74LSTTL芯片扩展简单的I/O口 121
10.2可编程并行I/O接口8255A 123
10.3可编程RAM/IO接口芯片8155 127
10.4单片机键盘接口 131
10.4.1键盘工作原理 132
10.4.2键盘结构 132
【实例82】行列式键盘接收实例 134
10.6单片机显示器接口 135
10.6.1 LED显示器接口 135
【实例83】数码管显示实例一 137
【实例84】数码管显示实例二 137
【实例85】数码管显示实例三 137
【实例86】数码管显示实例四 137
10.7 MCS-51单片机与D/A转换器的接口和应用 138
10.7.1 D/A转换器简介 138
10.8 MCS-51单片机与A/D转换器的接口和应用 142
10.8.1 A/D转换器简介 142
10.8.2 MCS-51单片机与ADC0809的接口 144
【实例87】 ADC0809接口实例 144
【实例88】转换数据读取实例 145
习题 145
第11章综合开发实例 147
【实例89】键盘接收实例 147
【实例90】动态显示实例 147
【实例91】加一显示实例 149
【实例92】简易电子琴实例 150
【实例93】 LED点阵显示实例 154
【实例94】直流电机调速实例 160
【实例95】步进电机调速实例 162
【实例96】串行通信实例 164
【实例97】 ADC转换实例 166
【实例98】 DAC转换实例 168
【实例99】温度传感器应用实例 171
【实例100】 日历时钟芯片应用实例 180