图书简介:
目 录
第1章 开始学习单片机 1
1.1 单片机及应用 2
1.1.1 什么是单片机 2
1.1.2 单片机的广泛应用 2
1.1.3 准备学习工具、软件和器材 3
1.2 AT89S51/52单片机 6
1.2.1 AT89S52方框图 6
1.2.2 AT89S51/52主要性能 6
1.2.3 AT89S51/52引脚 7
1.2.4 特殊功能寄存器 9
1.2.5 单片机的最小系统 10
1.3 第一个C51工程 11
1.3.1 任务书 11
1.3.2 创建工程 11
1.3.3 新建源程序文件 13
1.3.4 编写程序 16
1.3.5 在Keil中调试程序 18
1.3.6 用Proteus ISIS仿真 19
1.3.7 仿真器的使用 21
1.3.8 烧写芯片 22
第2章 基本输入与输出 24
2.1 单片机I/O口 25
2.1.1 并行I/O口的内部结构 25
2.1.2 读—修改—写操作 26
2.1.3 并行I/O口的负载能力 26
2.2 控制LED发光二极管 27
2.2.1 单片机驱动发光二极管 27
2.2.2 点亮发光二极管 27
2.2.3 闪亮发光二极管 31
2.2.4 延时函数探讨 35
2.2.5 发光二极管特效闪亮 39
2.3 控制三极管 42
2.3.1 单片机驱动三极管 42
2.3.2 分组控制 43
2.3.3 读回三极管的工作状态 46
2.3.4 输出/输入口刷新问题 47
2.4 钮子开关 47
2.4.1 开关与单片机电路连接 47
2.4.2 一个开关也有趣 48
2.4.3 一个开关控制两个灯 51
2.4.4 两个开关控制一个灯 53
2.4.5 停电自锁与来电提示 55
2.5 微动按钮 56
2.5.1 双按钮控制电动机启停 56
2.5.2 一个按钮控制一个灯 57
2.5.3 按钮点亮延时自动关灯 59
2.5.4 一个按钮控制多个灯 61
2.5.5 多按钮联合控制 63
2.5.6 按钮四状态 66
2.5.7 消键抖动探讨 67
2.5.8 待键释放探讨 68
2.6 矩阵键盘 70
2.6.1 电路分析 70
2.6.2 判断有无键按下 71
2.6.3 扫描法取键值 73
2.6.4 反转法取键值 76
2.6.5 单按钮判断法 77
2.6.6 键盘控制方式 78
2.6.7 键输入程序的设计 78
2.7 百变流水灯 80
2.7.1 流水灯介绍 80
2.7.2 用位操作实现流水灯 81
2.7.3 用字节操作实现流水灯 82
2.7.4 用位移指令实现流水灯 83
2.7.5 用for循环实现流水灯 84
2.7.6 用主循环实现流水灯 86
2.7.7 用数组实现流水灯 87
2.7.8 用函数实现流水灯 89
2.7.9 用定时器实现流水灯 90
2.7.10 用指针实现流水灯 92
2.7.11 用动态扫描实现流水灯 94
2.7.12 用户可编程流水灯 97
第3章 字符显示技术 100
3.1 数码管显示 101
3.1.1 数码管静态显示 101
3.1.2 动态扫描显示 108
3.1.3 YL-236实验台数码管显示电路 114
3.1.4 显示技巧 120
3.1.5 计算器 127
3.2 YL-236实验台点阵显示 135
3.2.1 点阵驱动电路分析 135
3.2.2 动态扫描显示函数 136
3.2.3 8×16字符显示 147
3.2.4 16×16汉字显示 151
3.2.5 特效显示 158
3.3 液晶显示器1602 164
3.3.1 LCD1602原理 164
3.3.2 操作函数 168
3.3.3 显示字符 171
3.3.4 特殊应用 172
3.4 液晶显示器12864 176
3.4.1 LCD12864原理 176
3.4.2 操作函数 179
3.4.3 显示函数 181
3.4.4 显示变量值及字符串 183
3.4.5 特殊效果 185
第4章 定时与计数 188
4.1 定时器详解 189
4.1.1 定时器控制与状态寄存器 189
4.1.2 定时器0和定时器1的定时方式 191
4.1.3 AT89S52的定时/计数器2 194
4.1.4 使用定时/计数器 198
4.2 定时控制 199
4.2.1 定时器初值的计算 199
4.2.2 按1Hz闪亮的发光管 199
4.2.3 自动路灯 200
4.2.4 交通灯 201
4.2.5 单片机演奏音乐 203
4.3 事件计数 206
4.3.1 寻检计数法 206
4.3.2 外部事件计数器 208
4.3.3 扩展量程 208
4.4 测量频率 209
4.4.1 频率测量原理 209
4.4.2 简易频率计 209
4.4.3 扩展量程 211
4.5 测量时间 211
4.5.1 测量周期 211
4.5.2 脉宽测量 214
4.5.3 弈棋计时器 214
4.6 电子钟 217
4.6.1 基本电子钟 217
4.6.2 调校时钟的各种方法 220
4.6.3 可设5个点的闹钟 225
4.6.4 显示农历的日历钟 227
第5章 中断编程 232
5.1 中断基础知识 233
5.1.1 中断概念 233
5.1.2 中断控制 233
5.1.3 中断响应 235
5.2 外部中断 236
5.2.1 使用外部中断 236
5.2.1 中断键盘 236
5.2.2 中断计数 237
5.2.3 中断实现通信 238
5.3 定时/计数中断 240
5.3.1 定时/计数中断的使用 240
5.3.2 记录电动机转数 241
5.3.3 计数器实现外部中断 241
5.4 串行中断 242
展开
前 言
单片机技术的应用越来越广泛,电子技术的应用领域中,几乎可以说“想得到就用得上”。为了推广单片机技术,推动电工电子类专业课程改革,全国技能大赛电工电子类设置了“单片机控制装置安装与调试”竞赛项目。为了满足广大师生对单片机教学及参加技能大赛训练的需要,特编撰此书奉献给读者。
本书以行动导向的思想为指导,通过大量实例,围绕单片机控制装置,由浅入深、由简到繁地安排训练项目。将单片机硬件知识和C语言编程知识分解到实例中,通过“做中学”来教授单片机硬件知识和编程知识,特别适合“做、学、教”一体化教学方案。书中既有基础知识和基本技能的训练,又有满足大赛需要的高级技术、技巧。
单片机编程有汇编语言和C语言两种。采用C语言编程具有代码短、可读性强、可移植性强、开发周期短的优点,特别是在较大规模的单片机运用场合及比较复杂的算法实现上,C语言明显优于汇编语言。因此本书采用C语言进行编程。
笔者在编写过程中,针对每一个模块,总是尽量采用多种程序算法和列举较多的应用实例,以拓展读者思维。例如,对一个简单的“开关控制LED”实验,介绍if语句法、问号语句法、赋值法、函数法等;矩阵键盘取键值的函数,介绍扫描法、反转法、单键判断法等;流水灯效果,介绍十余种程序算法;各种显示器,不但介绍基本的显示技术,还介绍许多显示特效的程序算法;对定时器的应用,给出计数器、频率计、脉宽测量、交通灯、音乐演奏、电子钟、闹钟、农历日历钟等大量实例。
书中实例涵盖全国单片机技能大赛指定设备的所有模块,但不限于大赛模块,还介绍了并行存储器、I2C存储器、I2C实时时钟芯片、压力传感器、PS2键盘、非接触式IC卡、USB接口等大量其他常用模块的应用。
本书还特别介绍了基于RTX-51 Tiny多任务操作系统的编程,使读者面对复杂应用系统的开发也能应对自如。
作为综合应用系统设计示例,书中介绍了物料搬运、微波炉、电梯等典型控制系统,还对全国单片机大赛试题进行了详细解析。
即使您是一个单片机“外行”,相信通过本书的学习和实战训练,也一定能快速成长,成为能独立运用单片机技术解决实际问题的技术人才。
本书配套光盘中提供书中所有示例的源程序,同时提供Proteus ISIS仿真电路,方便读者进行实验。
在本书的编写过程中,王莉负责大量文稿处理和校对工作,雷磊负责源程序验证实验工作,在此表示感谢!
由于作者水平有限,书中难免存在一些错误和不足之处,希望广大读者批评指正。
编 者
2011年1月
展开