本书按照单片机初学者的学习过程,由浅入深逐步讲解51单片机基础、典型实例、单片机C语言以及综合实例,全书分5篇,共25章。
本书语言通俗、实例丰富、代码分析详尽,有较强的实用性和参考价值,适合大专院校计算机、电子、电气、控制及相关专业学生学习参考,也可供单片机开发人员和系统设计人员参考使用。
网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | 51单片机开发入门与典型实例(附光盘) |
分类 | |
作者 | 王守中 |
出版社 | 人民邮电出版社 |
下载 | |
简介 | 编辑推荐 本书按照单片机初学者的学习过程,由浅入深逐步讲解51单片机基础、典型实例、单片机C语言以及综合实例,全书分5篇,共25章。 本书语言通俗、实例丰富、代码分析详尽,有较强的实用性和参考价值,适合大专院校计算机、电子、电气、控制及相关专业学生学习参考,也可供单片机开发人员和系统设计人员参考使用。 内容推荐 本书以51单片机为主线,按照初学者学习的一般步骤,详细介绍了单片机开发的入门知识和经典实例。全书分5篇,共25章,首先介绍单片机开发环境的构建方法、单片机应用程序开发流程、单片机指令系统和单片机C语言基础等单片机入门知识, 然后详细讲解实际开发中常用的单片机汇编语言开发实例和单片机C语言开发实例,最后讲解时钟设计、液晶显示和制作单片机实验板等单片机应用开发综合实例。 本书语言通俗、实例丰富、代码分析详尽,有较强的实用性和参考价值,适合大专院校计算机、电子、电气、控制及相关专业学生学习参考,也可供单片机开发人员和系统设计人员参考使用。 目录 51单片机快速入门篇 第1章 单片机的历史和分类 3 1.1 单片机名称的由来 3 1.1.1 单片机名称的由来 3 1.1.2 单片机的特点 3 1.1.3 单片机的应用 4 1.2 单片机的分类 5 1.2.1 按用途分类 5 1.2.2 按位数分类 5 1.2.3 按系列分类 5 1.3 入门级单片机的选择 6 1.3.1 入门学习选择什么样的单片机 6 1.3.2 80C51与AT89C51的区别 6 1.3.3 AT89S51与AT89C51的区别 6 第2章 单片机开发环境的建立 8 2.1 学习单片机的必备工具 8 2.1.1 计算机 8 2.1.2 单片机集成开发系统软件 8 2.1.3 51编程器 9 2.1.4 实验板 9 2.2 集成开发软件的下载和安装 9 2.2.1 从网上免费下载集成开发软件 9 2.2.2 MedWin集成开发软件的安装 10 2.3 编程器的安装与使用 11 2.3.1 编程器的连接 11 2.3.2 安装编程器软件 12 2.3.3 编程器的使用 12 2.4 实验板的使用 13 第3章 单片机程序开发流程 15 3.1 编写一个简单的单片机程序 15 3.1.1 目的 15 3.1.2 工作原理 15 3.1.3 用汇编语言编写程序 16 3.2 用MedWin开发单片机程序 16 3.2.1 编写源程序 16 3.2.2 创建项目 17 3.2.3 编译/汇编 17 3.2.4 输出Intel HEX文件 17 3.3 把目标文件写入单片机 18 3.3.1 选择单片机型号 18 3.3.2 进行擦除 18 3.3.3 写入文件 19 3.4 在实验板上实验 19 第4章 单片机寄存器 20 4.1 80C51单片机引脚简介 20 4.2 单片机工作的基本条件 21 4.2.1 接电源 22 4.2.2 接石英晶体振荡器 22 4.2.3 单片机内装入程序 22 4.3 单片机的存储器 22 4.3.1 单元与位 23 4.3.2 字、字节和数制 23 4.3.3 程序存储器 24 4.3.4 数据存储器 24 4.4 单片机工作的基本原理 26 4.4.1 引脚与寄存器的关系 27 4.4.2 单片机中0和1的作用 27 4.4.3 工作基本原理 28 第5章 单片机指令 29 5.1 学习单片机指令与编程的经验与技巧 29 5.2 单片机编程语言概述 30 5.2.1 编程语言概述 30 5.2.2 单片机使用的编程语言 31 5.2.3 80C51汇编语言的语句结构 32 5.3 80C51单片机指令系统 33 5.3.1 数据传送类指令 33 5.3.2 控制转移类指令 33 5.3.3 逻辑运算及移位类指令 34 5.3.4 算数运算类指令 34 5.3.5 位操作类指令 34 5.4 常用的伪指令 35 5.4.1 伪指令与80C51指令的不同点 35 5.4.2 常用的伪指令 35 51单片机典型实例篇 第6章 跑马灯 41 6.1 点亮一只灯 41 6.1.1 硬件设计 41 6.1.2 程序设计 42 6.1.3 代码详解 42 6.1.4 实例测试 43 6.1.5 经验总结 44 6.2 模拟仿真 44 6.2.1 进入模拟仿真状态 44 6.2.2 展现观察窗口 44 6.2.3 选择调试方式 45 6.2.4 观察寄存器值的变化 45 6.3 点亮6只灯 46 6.3.1 程序设计 47 6.3.2 代码详解 47 6.3.3 模拟仿真 48 6.3.4 实例测试 48 6.3.5 经验总结 48 6.4 亮灯循环左移 48 6.4.1 程序设计 49 6.4.2 代码详解 49 6.4.3 模拟仿真 51 6.4.4 实例测试 51 6.4.5 经验总结 51 6.5 亮灯循环右移 51 6.5.1 程序设计 52 6.5.2 代码详解 53 6.5.3 模拟仿真 54 6.5.4 实例测试 54 6.5.5 经验总结 54 6.6 延时时间的计算 54 6.6.1 机器周期和指令周期 55 6.6.2 单重循环短暂延时 55 6.6.3 多重循环较长时间延时 55 6.6.4 对延时程序的改进 56 6.7 亮灯左移与右移循环 57 6.7.1 程序设计 57 6.7.2 代码详解 58 6.7.3 模拟仿真 58 6.7.4 实例测试 58 6.7.5 经验总结 59 6.8 双灯左移右移加闪烁 59 6.8.1 程序设计 59 6.8.2 代码详解 60 6.8.3 模拟仿真 61 6.8.4 实例测试 61 6.8.5 经验总结 61 6.9 用取表方式实现灯移动 63 6.9.1 程序设计 63 6.9.2 代码详解 64 6.9.3 模拟仿真 66 6.9.4 实例测试 67 6.9.5 经验总结 67 第7章 LED显示 68 7.1 数码管工作原理及显示码 68 7.1.1 LED数码管结构 68 7.1.2 工作原理 68 7.1.3 数码管显示码 69 7.2 让数码管静态显示6 69 7.2.1 硬件设计 70 7.2.2 程序设计 70 7.3.3 代码详解 71 7.2.4 模拟仿真 72 7.2.5 实例测试 72 7.2.6 经验总结 72 7.3 循环显示0~9 72 7.3.1 程序设计 72 7.3.2 代码详解 74 7.3.3 模拟仿真 74 7.3.4 实例测试 74 7.3.5 经验总结 75 7.4 两位数码管显示00~99 75 7.4.1 硬件设计 75 7.4.2 程序设计 75 7.4.3 代码详解 77 7.4.4 模拟仿真 79 7.4.5 实例测试 79 7.4.6 经验总结 79 第8章 键盘控制 80 8.1 用8位DIP开关控制LED 80 8.1.1 硬件设计 80 8.1.2 程序设计 81 8.1.3 代码详解 81 8.1.4 模拟仿真 82 8.1.5 实例测试 82 8.1.6 经验总结 82 8.2 用4位DIP开关控制数码管显示 82 8.2.1 硬件设计 82 8.2.2 程序设计 83 8.2.3 代码详解 84 8.2.4 模拟仿真 85 8.2.5 实例测试 86 8.2.6 经验总结 86 8.3 按键开关控制指示灯 86 8.3.1 硬件设计 86 8.3.2 程序设计 86 8.3.3 代码详解 88 8.3.4 模拟仿真 88 8.3.5 实例测试 89 8.3.6 经验总结 89 8.4 键盘控制概述 89 8.4.1 按键的特性 89 8.4.2 键盘输入中要解决的问题 90 8.4.3 独立按键式键盘 90 8.4.4 矩阵式按键键盘 90 8.5 用独立式键盘控制灯移动 91 8.5.1 硬件设计 91 8.5.2 程序设计 91 8.5.3 代码详解 93 8.5.4 模拟仿真 94 8.5.5 实例测试 95 8.5.6 经验总结 95 8.6 用矩阵式键盘控制显示器 95 8.6.1 硬件设计 96 8.6.2 程序设计 96 8.6.3 代码详解 97 8.6.4 模拟仿真 101 8.6.5 实例测试 102 8.6.6 经验总结 102 第9章 中断 103 9.1 中断控制功能的作用 103 9.1.1 什么是中断 103 9.1.2 实现中断的好处 103 9.1.3 中断处理过程 104 9.1.4 中断源及入口地址 104 9.2 中断的控制及设置 105 9.2.1 中断允许控制寄存器IE 105 9.2.2 中断优先级控制寄存器IP 106 9.2.3 定时器控制寄存器TCON 107 9.2.4 串行口控制寄存器SCON 108 9.3 用外部中断控制灯闪烁 108 9.3.1 硬件设计 108 9.3.2 程序设计 109 9.3.3 代码详解 110 9.3.4 模拟仿真 112 9.3.5 实例测试 112 9.3.6 经验总结 113 9.4 用多级外部中断控制灯移动 113 9.4.1 硬件设计 113 9.4.2 程序设计 114 9.4.3 代码详解 116 9.4.4 模拟仿真 117 9.4.5 实例测试 117 9.4.6 经验总结 117 第10章 定时器/计数器 118 10.1 定时器/计数器的用途及工作原理 118 10.1.1 定时器/计数器的用途 118 10.1.2 定时器/计数器的结构 118 10.1.3 定时器/计数器的工作原理 118 10.2 定时器/计数器的控制寄存器 120 10.2.1 工作模式控制寄存器TMOD 120 10.2.2 定时器控制寄存器TCON 121 10.2.3 4种工作模式的特点 121 10.3 定时器/计数器的初始化设置 122 10.3.1 模式0的初始化步骤 122 10.3.2 模式1的初始化步骤 123 10.3.3 模式2的初始化步骤 123 10.3.4 模式3的初始化步骤 123 10.4 使用定时器延时 124 10.4.1 硬件设计 124 10.4.2 程序设计 124 10.4.3 代码详解 125 10.4.4 模拟仿真 126 10.4.5 实例测试 127 10.4.6 经验总结 127 10.5 定时器加软件计数延时 127 10.5.1 程序设计 127 10.5.2 代码详解 129 10.5.3 模拟仿真 129 10.5.4 实例测试 130 10.5.5 经验总结 130 10.6 定时与计数演示灯 130 10.6.1 硬件设计 130 10.6.2 程序设计 131 10.6.3 代码详解 132 10.6.4 实例测试 132 10.6.5 经验总结 133 第11章 音乐发声 134 11.1 发声实验 134 11.1.1 硬件设计 134 11.1.2 程序设计 134 11.1.3 代码详解 135 11.1.4 模拟仿真 135 11.1.5 实例测试 136 11.1.6 经验总结 136 11.2 变频报警 136 11.2.1 程序设计 136 11.2.2 代码详解 137 11.2.3 模拟仿真 138 11.2.4 实例测试 138 11.2.5 经验总结 138 11.3 歌曲演奏 139 11.3.1 编程演奏器原理 139 11.3.2 程序设计 141 11.3.3 代码详解 143 11.3.4 模拟仿真 144 11.3.5 实例测试 145 11.3.6 经验总结 145 11.4 电子琴 145 14.4.1 硬件设计 145 11.4.2 程序设计 146 11.4.3 代码详解 148 11.4.4 模拟仿真 149 11.4.5 实例测试 149 11.4.6 经验总结 149 第12章 串行通信 150 12.1 单片机串行通信功能 150 12.1.1 单片机串行通信的作用 150 12.1.2 串行通信中双方基本约定 150 12.1.3 串行口的结构和通信过程 151 12.2 串行口的控制 152 12.2.1 电源和数据传输率控制寄存器PCON 152 12.2.2 串行口控制寄存器SCON 152 12.2.3 串行口的4种工作方式 153 12.3 扩展8个输出端口 153 12.3.1 硬件设计 153 12.3.2 程序设计 154 12.3.3 代码详解 156 12.3.4 模拟仿真 156 12.3.5 实例测试 157 12.3.6 经验总结 157 12.4 扩展8个输入端口 157 12.4.1 硬件设计 157 12.4.2 程序设计 158 12.4.3 代码详解 159 12.4.4 模拟仿真 160 12.4.5 实例测试 160 12.4.6 经验总结 160 12.5 向计算机发送一封信 160 12.5.1 硬件设计 161 12.5.2 程序设计 161 12.5.3 代码详解 162 12.5.4 模拟仿真 163 12.5.5 实例测试 163 12.5.6 经验总结 163 第13章 LCD模块及其应用 164 13.1 LCD模块 164 13.1.1 LCD的分类 164 13.1.2 LCD模块的引脚 164 13.1.3 寄存器选择及显示器地址 165 13.1.4 LCM控制指令 166 13.2 一个简单的液晶显示程序 167 13.2.1 硬件设计 167 13.2.2 程序设计 167 13.2.3 代码详解 170 13.2.4 实例测试 171 13.2.5 经验总结 171 13.3 使LCD显示两行字符 172 13.3.1 程序设计 172 13.3.2 代码详解 173 13.3.3 实例测试 174 13.3.4 经验总结 174 13.4 LCD显示字符串 175 13.4.1 程序设计 175 13.4.2 代码详解 177 13.4.3 实例测试 178 13.4.4 经验总结 178 13.5 LCD循环显示 178 13.5.1 程序设计 178 13.5.2 代码详解 181 13.5.3 实例测试 182 13.5.4 经验总结 182 13.6 自编图形显示 183 13.6.1 程序设计 183 13.6.2 代码详解 186 13.6.3 实例测试 187 13.6.4 经验总结 187 第14章 AD与DA及其应用 188 14.1 信号转换概述 188 14.1.1 模拟信号 188 14.1.2 数字信号 188 14.1.3 信号转换 188 14.2 简单DA转换程序 189 14.2.1 硬件设计 189 14.2.2 程序设计 190 14.2.3 代码详解 190 14.2.4 实例测试 190 14.2.5 经验总结 191 14.3 指拔开关控制输出电压 191 14.3.1 硬件设计 191 14.3.2 程序设计 191 14.3.3 代码详解 192 14.3.4 模拟仿真 192 14.3.5 实例测试 192 14.3.6 经验总结 193 14.4 DAC输出锯齿波 193 14.4.1 程序设计 193 14.4.2 代码详解 194 14.4.3 模拟仿真 194 14.4.4 实例测试 194 14.4.5 经验总结 194 14.5 单线数字温度传感器 195 14.5.1 引脚及其与单片机的连接方式 195 14.5.2 DS18B20的主要特性 195 14.5.3 内部结构 196 14.5.4 高速暂存存储器 196 14.5.5 DS18B20通信协议 197 14.5.6 使用注意事项 198 14.6 数字温度计 198 14.6.1 硬件设计 198 14.6.2 程序设计 199 14.6.3 代码详解 203 14.6.4 实例测试 204 14.6.5 经验总结 204 第15章 步进电机的控制 205 15.1 步进电机的工作原理 205 15.1.1 步进电机的种类 205 15.1.2 步进电机工作原理 205 15.1.3 小型步进电机驱动电路 207 15.2 步进电机正转 207 15.2.1 硬件设计 207 15.2.2 程序设计 207 15.2.3 代码详解 209 15.2.4 模拟仿真 209 15.2.5 实例测试 210 15.2.6 经验总结 210 15.3 步进电机反转 210 15.3.1 程序设计 211 15.3.2 代码详解 212 15.3.3 模拟仿真 213 15.3.4 实例测试 213 15.3.5 经验总结 213 15.4 步进电机转速控制 213 15.4.1 程序设计 213 15.4.2 代码详解 215 15.4.3 模拟仿真 216 15.4.4 实例测试 216 15.4.5 经验总结 216 15.5 开关控制步进电机正反转 217 15.5.1 硬件设计 217 15.5.2 程序设计 217 15.5.3 代码详解 220 15.5.4 模拟仿真 222 15.5.5 实例测试 222 15.5.6 经验总结 222 51单片机C语言基础篇 第16章 单片机C语言入门 225 16.1 C语言与C51 225 16.1.1 C语言与C51 225 16.1.2 C语言编程的优点 225 16.1.3 C语言和汇编语言混合编程 225 16.2 学习C51的准备工作 226 16.2.1 计算机 226 16.2.2 51单片机C语言编译器 226 16.2.3 51编程器和实验板 226 16.3 单片机C语言程序开发流程 226 16.4 单片机C语言入门实例 227 16.4.1 程序工作原理 227 16.4.2 源程序 228 16.4.3 程序说明 228 16.5 单片机C语言编程特点 228 16.5.1 程序工作原理 228 16.5.2 用两种语言编写 229 16.5.3 C语言程序编写特点 230 16.6 单片机C程序的基本结构 231 16.6.1 主函数 231 16.6.2 函数 231 16.6.3 头文件 231 16.7 C51数据类型、常量与变量 232 16.7.1 C51的数据类型 232 16.7.2 常量 233 16.7.3 变量 234 16.7.4 数组 235 16.8 C51常用的运算符 235 16.8.1 赋值运算符 235 16.8.2 增量和减量运算符 236 16.8.3 关系运算符 236 16.8.4 逻辑运算符 236 16.8.5 位运算符 237 16.8.6 运算符的运算优先次序 239 16.9 C51流程控制语句 239 16.9.1 流程结构及其流程图 239 16.9.2 流程控制语句按功能分类 240 16.9.3 循环语句 241 16.9.4 选择语句 243 16.10 C51函数 244 16.10.1 C51函数定义的一般形式 245 16.10.2 C51库函数 246 16.10.3 C51中断函数 246 第17章 Keil C51的使用 248 17.1 Keil C51的安装 248 17.2 用Keil C51开发单片机 250 17.2.1 编写源程序 250 17.2.2 建立工程项目文件 251 17.2.3 产生可执行的HEX文件 255 17.3 Keil中的软件仿真 256 17.3.1 操作的一般步骤 257 17.3.2 仿真举例说明 258 17.3.3 几个常用命令使用区别 262 51单片机C语言实例篇 第18章 节日彩灯设计 265 18.1 彩灯闪烁 265 18.1.1 硬件设计 265 18.1.2 程序设计 266 18.1.3 代码详解 267 18.2 延时模块 267 18.2.1 延时原理 267 18.2.2 软件延时 267 18.2.3 利用定时器延时 268 18.3 彩灯由右向左侧逐渐点亮 269 18.3.1 程序设计 269 18.3.2 代码详解 270 18.4 单组彩灯循环左右移动 270 18.4.1 程序设计 270 18.4.2 代码详解 272 18.4.3 经验总结 273 18.5 采用制表方法实现彩灯变化 274 18.5.1 程序设计 274 18.5.2 代码详解 275 第19章 开关输入设计 277 19.1 单开关输入状态指示灯 277 19.1.1 硬件设计 277 19.1.2 程序设计 278 19.1.3 代码详解 278 19.1.4 经验总结 279 19.2 多路开关输入状态指示灯 279 19.2.1 硬件设计 279 19.2.2 程序设计 280 19.2.3 代码详解 281 19.3 多路开关控制灯 281 19.3.1 硬件设计 281 19.3.2 程序设计 282 19.3.3 代码详解 283 19.4 按钮开关次数显示灯 283 19.4.1 硬件设计 283 19.4.2 程序设计 283 19.4.3 代码详解 285 19.5 一键多功能控制 285 19.5.1 程序设计 285 19.5.2 代码详解 286 第20章 报警声设计 288 20.1 发出1kHz声音 288 20.1.1 硬件设计 288 20.1.2 程序设计 288 20.1.3 代码详解 289 20.2 发出嘀、嘀声 289 20.2.1 程序设计 290 20.2.2 代码详解 290 20.2.3 经验总结 291 20.3 救护车声 291 20.3.1 程序设计 291 20.3.2 代码详解 292 20.4 闹钟铃声 292 20.4.1 程序设计 292 20.4.2 代码详解 293 20.4.3 经验总结 293 20.5 发出20次的报警声 294 20.5.1 程序设计 294 20.5.2 代码详解 294 20.5.3 经验总结 295 20.6 警报的同时LED闪烁 295 20.6.1 硬件设计 295 20.6.2 程序设计 295 20.6.3 代码详解 296 第21章 交通灯信号控制 298 21.1 采用定时器延时 298 21.1.1 硬件设计 298 21.1.2 程序设计 299 21.1.3 代码详解 300 21.1.4 经验总结 300 21.2 灯交互闪烁 301 21.2.1 硬件设计 301 21.2.2 程序设计 301 21.2.3 代码详解 303 21.2.4 经验总结 303 21.3 交通信号灯控制 303 21.3.1 硬件设计 304 21.3.2 程序设计 304 21.3.3 代码详解 306 21.3.4 经验总结 307 21.4 改进的交通信号灯控制 307 21.4.1 硬件设计 307 21.4.2 程序设计 307 21.4.3 代码详解 310 21.4.4 经验总结 310 第22章 通信测试 311 22.1 发送一个字符 311 22.1.1 硬件设计 311 22.1.2 程序设计 311 22.1.3 代码详解 313 22.1.4 经验总结 313 22.2 发送一个字符串 313 22.2.1 程序设计 313 22.2.2 代码详解 315 22.2.3 经验总结 316 22.3 接收指令 316 22.3.1 程序设计 316 22.3.2 代码详解 317 22.3.3 经验总结 317 22.4 发送接收测试程序 317 22.4.1 程序设计 318 22.4.2 代码详解 319 22.4.3 经验总结 320 51单片机综合实例篇 第23章 时钟设计综合实例 323 23.1 简单时钟设计 323 23.1.1 学习单片机时钟设计目的 323 23.1.2 时钟结构与原理 324 23.1.3 走时功能的设计 325 23.1.4 显示部分的设计 326 23.1.5 调整时间部分的设计 328 23.1.6 喇叭和指示灯等子程序 330 23.1.7 时钟主程序 331 23.1.8 简单时钟程序清单 333 23.2 带定时功能的闹铃时钟设计 339 23.2.1 闹钟结构与原理 340 23.2.2 闹铃功能主要子程序 340 23.2.3 闹钟主程序 344 23.2.4 闹钟程序清单 346 23.3 带定时和倒计时功能的时钟设计 356 23.3.1 结构与原理 356 23.3.2 倒计时功能主要子程序 357 23.3.3 带倒计时闹钟程序清单 360 23.4 简单时钟的C语言程序设计 373 23.4.1 时钟结构和使用方法 373 23.4.2 走时功能的设计 373 23.4.3 显示功能的设计 374 23.4.4 调整时间功能的设计 375 23.4.5 按键扫描等其他函数 376 23.4.6 时钟主函数 377 23.4.7 简单时钟C语言程序清单 378 第24章 液晶显示应用实例 383 24.1 液晶显示秒表 383 24.1.1 硬件设计 383 24.1.2 程序设计 383 24.1.3 代码详解 393 24.1.4 操作说明 394 24.2 液晶显示温度控制器 395 24.2.1 硬件设计 395 24.2.2 程序设计 395 24.2.3 代码详解 414 24.2.4 操作说明 416 第25章 动手制作单片机实验板 417 25.1 制作实验板准备工作 417 25.1.1 制作实验板的目的 417 25.1.2 制作前的准备工作 418 25.1.3 焊接技巧 419 25.2 单片机外围常用元器件及其检测方法 420 25.2.1 发光二极管和LED数码管 420 25.2.2 三极管 421 25.2.3 电阻和电容 423 25.3 实验板制作过程 425 25.3.1 实验板功能简介 425 25.3.2 简单稳压电源的制作 427 25.3.3 单片机最小系统的制作 428 25.3.4 LED数码管显示模块的制作 429 25.3.5 其他实验电路的制作 430 25.3.6 单片机端口插针座连接线 433 附录A 80C51单片机指令速查表 435 附录B 数的制式转换表 441 附录C 光盘使用说明 442 |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。