平凡

单片机应用与接口技术(新书出版)

0
阅读(1862)

前     言
本书融进了作者多年教学、科研实践所获取的经验及实例,更是在作者对单片机课程进行教学改革的基础上编写的。本书的内容采用 “以任务为中心”的教学模式来编排。

简介
全书分为15课题,每个课题都包含若干个任务。以任务为核心,配置为完成该任务而必须掌握的指令、硬件结构知识、软件操作知识等,学完这些知识以后完成这一任务。通过这种方式将学生普遍感到比较困难的该部分知识分解,把一个较高的学习台阶变成若干较较低的学习台阶,使得学习者从一开始就能体会到成功的喜悦,有利于学习的顺利进行;在课程内容的安排上,打破学科体系的束缚,以学习者的实际需求为目标。本书将定时器/计数器、中断、串行接口等内容安排在指令部分的前面,但在进行这些内容的教学时,需要通过使用一些指令编写程序来学习。在作者实际教学过程中,并没有因为指令部分未学而不举例子,而是直接将指令拿来使用。实践证明,学习者并不会因为尚未学“指令”、“程序”这些概念而无法接受这些内容;同时,单片机的指令部分内容枯燥乏味又较抽象,是教学中的另一个难点,按此种方式安排教学内容,在学习指令部分的知识之前,学习者已掌握多条指令的用法。更重要的是,读者通过前面内容的学习,学习者能够理解一些指令的用途,因此,学习指令部分变得比较轻松。
 
内容安排
为了给读者一个完整的练习环境,作者使用Proteus设计了一系列的仿真文件,读者既可以直接利用这些仿真文件来练习LED显示、键盘操作、数码管显示、串行通信等程序,也可利用Proteus软件来完成更多的仿真设计。读者获得的不仅是一本文字教材,更是一个完整的学习环境。
在本书内容取舍方面,着重从中等职业学校、中等技术学校、业余电子爱好者的实际出发,适当增加常用计算机基础知识,内容力求深入浅出,尽量结合实例说明问题。
绪论部分介绍了单片机的基本知识,计算机中数据的表示方法,计算机中常用的基本术语,存储器的工作原理及分类。
要学好单片机课程,必须要有一个好的学习环境,因此课题1和课题2分别介绍了建立单片机软件实验环境和硬件实验环境的方法。
课题3~课题6分别介绍了单片机片内常用外围部件即I/O口中、中断系统、定时/计数器、串行接口部分的结构特点,编程方法。每个课题由多个任务组成,如I/O口部分由“单片机控制LED”、“用单片机发声”、“用指拔开关设置音调”、“用单片机制作风火轮玩具”等4个任务组成;围绕这些任务配置知识点,如单片机I/O口的结构、单片机的时序、单片机的内存等;通过一些指令编写的简单程序来实现相应的功能;通过Proteus模拟看到、听到效果,同时提供硬件实现的方法。学习者既可以模拟的方法来观察效果,也可以做出硬件,成为一个“小作品”。
课题7和课题8是单片机的指令系统和程序设计初步。在课题3~课题6中已接触到部分指令、程序的基础上来全面和综合地学习这一部分内容,可以比较容易地掌握这一部分知识。
课题9~课题15是单片机各种接口电路部分,它们包括如下一些内容:显示接口、模拟量转换接口、键盘接口、I2C串行接口总线、实时钟芯片及其应用、液晶显示屏及其应用。这些内容,同样通过一系列的任务来实现,如键盘部分通过“键控风火轮”、“可预置倒计时钟”、“智能仪器键盘”等3个任务,将键盘接口、消除键抖动、键号与功能等知识点融于各个任务中。其他各个部分也采用同样的方法来学习,读者既可以通过仿真来观察各部分的运行效果,同样也可以用硬件制作出“小产品”。教师在教授这部分内容时,可以按照项目教学法的要求来组织教学。
 
本书特点
本书编写时考虑读者的实际情况,在讲解例子时,立足于自力更生,书中不仅使用文字对有关实验过程进行细致的介绍,而且在附带的光盘上还大量应用动画形式提供实验过程和效果以供参考,对于部分内容还提供完整的操作过程的动画记录,保证读者可以无师自通。
作者为本书的写作使用Proteus设计了多个仿真文件,设计了实验电路板。随书光盘提供了作者所设计的Protues仿真文件;书中所有的例子;记录使用实验仿真板实验过程的动画等。读者获得的不仅是一本文字教材,更是一个完整的学习环境。
本书安排的例子大部份是由作者编写的,部分是参考其他资料改写而成,全部程序都由作者调试并通过,对于例子的使用说明也尽量详细,力争让读者“看则能用,用则能成”,保证读者在动手的过程中常常体会到成功的乐趣,而不是常常遇到挫折。
本书在提供文字教材的同时通过网络为广大读者提供服务,欢迎读者与我探讨。
网站:平凡单片机工作室(http://www.mcustudio.com)。
常州轻工职业技术学院龚益民、冷雪锋两位老师分别编写第9章、10章和11章、12章,并负责全书Proteus软件相关的绘图、仿真调试等工作,无锡机电高等学校顾德祥和蔡妍娜两位老师分别编写第14和第15章。其余各章节由周坚编写,全书由周坚统稿。
 
绪  论... 1
0.1 单片机简介... 1
0.2 常见的单片机品种... 2
0.3 计算机中数据的表示... 4
0.3.1  常用的进位计数制... 4
0.3.2  二进制的算术运算... 6
0.3.3  数制间的转换... 6
0.3.4  数的表示方法及常用计数制的对应关系... 7
0.3.5  逻辑数据的表示... 8
0.4 计算机中常用的基本术语... 9
0.5  存储器... 10
0.5.1  存储器的工作原理... 10
0.5.2  半导体存储器的分类... 12
课题1 80C51单片机软件实验环境的建立... 14
任务1 Keil软件简介、安装与使用... 14
1.1.1 Keil软件简介... 14
1.1.2 安装Keil软件... 14
1.1.3 使用Keil软件... 15
任务2  PROTEUS软件简介、安装与使用... 23
1.2.1 Proteus软件简介... 23
1.2.2  安装Proteus软件... 24
1.2.2  使用Proteus软件... 25
课题2 80C51单片机硬件实验环境的建立... 34
任务1 使用 STC89C51单片机制作实验电路板... 34
2.1.1电路原理图... 34
2.1.2 电路板的制作与程序的写入... 35
任务2 让实验电路板具有仿真功能... 39
2.2.1 仿真的概念... 39
2.2.1 仿真芯片制作... 39
任务3 认识和使用成品实验板... 42
2.3.1 实验板功能简介... 42
2.3.2 硬件结构... 43
2.3.3 实验电路板的基本使用方法... 45
课题3:认识80C51单片机I/O口... 48
任务1 用单片机控制LED.. 48
3.1.1  分析... 48
3.1.2 用Proteus仿真来实现... 50
任务2 用单片机发出声音... 50
3.2.1  单片机控制扬声器发声的方法... 51
3.2.2  用Proteus仿真来实现... 51
3.2.3  延时工作过程的分析... 53
任务3:用指拔开关设置音调... 57
3.3.1 音名与频率的关系... 57
3.3.2 用Proteus仿真来实现... 57
3.3.3 单片机内部的并行I/O口... 60
任务4 用单片机制作风火轮玩具... 64
3.4.1 用Proteus仿真来实现... 64
3.4.2 用硬件仿真来实现... 65
3.4.3 单片机的内部结构... 67
课题4:80C51单片机的中断系统... 72
任务1:紧急停车控制器... 72
4.1.1  中断的概念... 72
4.1.2  用Proteus仿真来实现... 73
4.1.3  80C51的中断结构... 74
任务2:通过外部信号来改变风火轮的转速... 76
4.2.1 任务分析... 77
4.2.2 用Proteus仿真来实现... 77
4.2.3 中断响应分析... 78
课题5  80C51单片机的定时器/计数器... 81
任务1 包装流水线中的计数器... 81
5.1.1  定时/计数的基本知识... 81
5.1.2 用Proteus仿真来实现... 82
5.1.3  单片机中的定时器/计数器... 84
任务2  用单片机来唱歌... 89
5.2.1 歌谱与歌曲的基本知识... 89
5.2.2 用定时中断来产生不同频率的信号... 90
5.2.3 单片机唱歌的实现... 92
课题6:80C51的串行接口与串行通信... 96
任务1 使用串行口扩展并行接口... 96
6.1.1 用串行口扩展并行输出... 96
6.2.2 用串行口扩展并行输入... 98
6.2.3 80C51单片机的串行接口... 100
任务2 单片机与PC机通信... 102
6.2.1 串行通信的基本知识... 102
6.2.2 任务的实现... 105
6.2.3串行口工作方式与波特率设置... 108
课题7:80C51单片机的指令系统... 112
任务1:指令的概念... 112
7.1.1  有关指令与程序的基本概念... 112
7.1.2  汇编语言格式... 113
任务2:指令的寻址方式... 113
7.2.1 寻址的概念... 113
7.2.2 寻址方式... 114
7.2.3  指令中的操作数标记... 116
任务3:数据传送类指令... 117
7.3.1 数据传送类指令... 117
7.3.2 用仿真软件进行指令练习... 121
任务4 算术运算指令... 124
任务5 逻辑运算类指令... 126
任务6 控制转移类指令... 129
任务7 位操作类指令... 134
 课题8:程序设计初步... 138
任务1:数制转换程序    ………………………………………………………………138
任务2:双字节数运算    ………………………………………………………………139
任务3:多字节移位程序    …………………………………………………………141
任务4:子程序设计    ………………………………………………………………142
课题9:显示接口... 145
任务1:一位计数器... 145
9.1.1 单个数码管的结构... 145
9.1.2 用单个数码管显示数字... 146
9.1.3 数码管显示中的其他问题... 147
任务2  银行利率屏的制作... 150
9.2.1 相关知识... 151
9.2.2 任务实现... 151
9.3.3 使用普通I/O扩展串行口... 153
任务3 秒表的制作... 153
9.3.1 LED显示器动态接口原理... 154
9.3.2 动态显示程序编写... 155
9.3.3 秒表的实现... 160
课题10:模拟量转换接口... 165
任务1  数字电压表的制作... 165
10.1.1 A/D转换器工作原理... 165
10.1.2 数字电压的制作... 167
任务2  数字化波形发生器... 169
10.2.1  D/A转换器工作原理... 169
10.2.2 数字信号发生器的实现... 173
课题11:键盘接口... 179
任务1  键控风火轮... 179
11.1.1 单片机键盘简介... 179
11.1.2 键控风火轮的实现... 180
任务2  可预置数的倒计时钟... 183
11.2.1倒计时钟功能描述... 183
11.2.2倒计时钟的实现... 183
11.2.3 单片机键盘处理的方法... 189
任务3 智能仪器的键盘... 190
11.3.1相关知识... 190
11.3.2 智能仪器键盘功能的实现... 191
课题12:I2C串行接口总线... 197
任务1  I2C串行接口与VIIC软件包... 197
12.1.1  I2C总线简介... 197
12.1.2 典型I2C总线接口芯片AT24系列EEPROM.. 198
任务2  AT24C01A编程器的制作... 202
12.2.1 编程器功能描述... 202
12.2.2 编程器的制作... 202
课题13 实时钟芯片及其应用... 210
任务1 认识DS1302芯片... 210
任务2 用DS1302制作实时钟... 213
任务3 使用DS1302片内RAM存取数据... 219
课题15 液晶显示屏及其应用... 240
任务1:小小迎宾屏... 240
15.1.1字符型液晶显示器简介... 240
15.1.2 字符型液晶显示屏驱动程序... 241
15.1.3 小小迎宾屏的实现... 245
任务2 认识点阵式液晶显示屏... 247
15.2.1  FM12864I及其控制芯片HD61202. 248
15.2.2  HD61202 及其兼容控制驱动器的特点... 248
15.2.3  HD61202 及其兼容控制驱动器的指令系统... 249
任务3 用LCM显示汉字... 250
15.3.1 硬件电路... 250
15.3.2 字模生成... 251
15.3.3 编程实现