项目一 单片机入门——信号灯闪烁系统设计 1
任务一 单片机简介 1
一、什么是单片机 1
二、单片机的发展历史与常见产品 2
三、单片机的应用领域与未来发展趋势 4
四、MCS-51系列单片机的特点 5
任务二 单片机中的数制与编码 6
一、单片机中的数制 6
二、数制间的转换 7
三、信息编码 10
任务三 数字电路入门 10
一、逻辑门电路 10
二、传送门电路 13
三、译码器 15
四、触发器 15
五、寄存器和锁存器 17
任务四 单片机应用系统开发——信号灯闪烁系统软硬件设计 18
一、单片机应用系统开发流程 18
二、信号灯闪烁系统设计 20
三、利用Keil C51集成开发软件编辑、编译和链接程序 22
四、利用Proteus系统仿真软件调试系统和程序 25
项目总结 30
思考与练习 31
项目二 MCS-51单片机入门——流水灯模拟系统设计 32
任务一 MCS-51系列单片机的基本结构 32
一、MCS-51的外部引脚 32
二、MCS-51的内部结构 33
任务二 MCS-51系列单片机的存储器配置 37
一、程序存储器 37
二、数据存储器 37
任务三 MCS-51 I/O端口的使用 40
一、I/O端口的结构 40
二、I/O端口的负载能力 45
任务四 时钟电路与时序 45
一、时钟电路 45
二、机器周期与指令周期 45
三、典型指令执行时序 46
任务五 MCS-51系列单片机的工作方式 47
一、复位方式 47
二、程序执行方式 49
三、低功耗方式 49
四、编程和加密方式 50
任务六 典型应用——流水灯模拟系统设计 50
一、系统整体设计 50
二、硬件设计 50
三、软件设计 51
项目总结 52
思考与练习 52
项目三 MCS-51程序设计——交通信号灯模拟系统设计 53
任务一 MCS-51指令系统入门 53
一、指令系统概述 53
二、指令格式 54
三、指令中常用符号 54
四、指令分类 55
五、寻址方式 55
任务二 指令系统 61
一、数据传送类指令 61
二、算术运算类指令 67
三、逻辑运算与移位指令 71
四、控制转移类指令 75
五、位操作指令 80
任务三 汇编语言程序设计基础 82
一、汇编语言格式 83
二、伪指令 84
三、汇编程序设计的一般步骤 87
四、汇编程序设计方法 89
任务四 典型应用——交通信号灯模拟系统设计 98
一、系统整体设计 98
二、硬件设计 98
三、软件设计 98
项目总结 100
思考与练习 100
项目四 MCS-51中断应用——报警器设计 102
任务一 中断入门 102
一、中断的基本原理 102
二、中断的好处 102
三、中断源 103
四、中断控制寄存器 103
任务二 中断处理过程 106
一、中断响应 106
二、中断处理 107
三、中断返回 107
任务三 典型应用——报警器设计 108
一、硬件设计 108
二、软件设计 109
项目总结 110
思考与练习 110
项目五 MCS-51定时/计数器应用——电子秒表设计 111
任务一 定时/计数器的结构 111
任务二 定时/计数器的工作原理 112
任务三 定时/计数器的控制寄存器 112
一、模式控制寄存器TMOD 112
二、控制寄存器TCON 113
任务四 定时/计数器的工作方式 114
一、方式0 114
二、方式1 115
三、方式2 115
四、方式3 116
任务五 定时/计数器的初始化 117
一、初始化的步骤 117
二、预置初值的计算 117
三、初始化应用举例 117
任务六 定时/计数器扩展外部中断 120
任务七 典型应用——电子秒表设计 120
一、硬件设计 121
二、软件设计 122
项目总结 128
思考与练习 128
项目六 MCS-51串行口应用——单片机与PC机通信 129
任务一 串行通信概述 129
一、串行通信方式 130
二、串行通信的制式 131
三、串行通信的波特率 131
四、RS-232C串行通讯协议 131
任务二 MCS-51串行接口 133
一、串行口的结构 133
二、串行口的工作原理 134
三、串行口的控制寄存器 134
四、串行口的工作方式 135
五、串行口的波特率设定 138
任务三 利用串行口扩展并行口 139
任务四 典型应用——单片机与PC通信 141
一、硬件设计 141
二、软件设计 142
三、仿真通信 142
项目总结 145
思考与练习 145
项目七 MCS-51系统扩展 146
任务一 存储器扩展 146
一、单片机的系统总线 146
二、存储器扩展方法 147
三、程序存储器扩展 149
四、数据存储器扩展 152
任务二 74系列芯片扩展I/O 153
一、并行接口输入扩展 153
二、并行接口输出扩展 154
三、同时扩展输入与输出口 155
任务三 8255A可编程并行输入输出接口 156
一、8255A的结构和引脚功能 156
二、8255A的控制字 158
三、8255A的工作方式 159
四、8255A与MCS-51的典型连接 161
五、8255A应用举例 162
项目总结 164
思考与练习 165
项目八 显示器接口设计与编程 166
任务一 LED显示器接口设计 166
一、数码管基础知识 167
二、LED静态显示方法 168
三、LED动态显示方法 170
任务二 LCD显示器接口设计 172
一、LCD显示器基础知识 173
二、基于HD44780的字符型芯片的功能及使用方法 174
三、接口设计 180
四、软件设计 181
项目总结 186
思考与练习 186
项目九 键盘接口设计与编程 187
任务一 独立式键盘的接口设计与编程 187
一、独立式键盘接口设计 187
二、按键抖动问题产生的原因及解决方法 188
三、键盘扫描方式及相关程序 188
任务二 矩阵式键盘的接口设计与编程 191
一、矩阵式键盘接口设计——基于行反转法 191
二、矩阵式键盘接口设计——基于扫描法 193
项目总结 197
思考与练习 197
项目十 A/D与D/A转换器接口设计与编程——数字电压表设计和数模转换电路设计 198
任务一 A/D转换器 198
一、A/D转换器的基本原理 198
二、A/D转换器的种类 199
三、A/D转换器的主要性能指标 200
四、ADC0809(8位)引脚功能与内部结构 200
任务二 典型应用——数字电压表设计 202
一、硬件设计 202
二、软件设计 204
任务三 D/A转换器 206
一、D/A转换器的原理 206
二、D/A转换器的种类 206
三、D/A转换器的主要性能指标 207
四、DAC0832引脚功能与内部结构 207
五、DAC0832的三种工作方式 208
任务四 典型应用——数模转换电路设计 210
一、硬件设计 210
二、软件设计 211
项目小结 213
思考与练习 214
附录 215
附录A MCS-51指令表 215
附录B ASCII码表 220