热门关键字:  听力密码  单词密码  新概念美语  巧用听写练听力  零起点
图书信息

单片机原理及应用技术(C语言版)

中国水利水电出版社
    【作 者】周国运 鲁庆宾 赵天翔 编著 【I S B N 】978-7-5170-7709-1 【责任编辑】张玉玲 【适用读者群】本科 【出版时间】2019-06-12 【开 本】16开 【装帧信息】平装(光膜) 【版 次】第1版第1次印刷 【页 数】260 【千字数】396 【印 张】16.25 【定 价】42 【丛 书】应用型高等院校教学改革创新教材 【备注信息】
图书详情

    本书以应用最广泛的MCS-51增强型单片机为对象,系统地讲解了单片机结构原理、编程方法、接口及应用。本书内容包括单片机概述,MCS-51单片机结构原理,单片机C语言基础,开发工具,I/O口及应用,中断系统,定时器/计数器,串行口,常用总线接口,单片机与模拟、开关量接口技术,以及单片机应用系统设计。

    本书从教学和初学者的角度讲解单片机的基本内容和应用,结构科学、概念清晰、准确易懂、材料数据可靠;以C语言为基础讲解、举例和编程;以程序开发软件Keil C、电路设计模拟运行软件Proteus为教学、学习和训练工具,理论与实践紧密结合。

    本书适用于具有C语言基础的计算机、电子、通信、自动化、电气、测控技术与仪器等专业的本科学生作为教材,也可以作为各种培训机构的教材,以及工程技术人员、自学者的参考书。

    结构清晰、科学、先进,内容选取精炼,讲解清晰、准确。

    例题习题丰富,软硬件结合,理论与实践紧密结合。

    详细讲解了C51 函数在串行口操作中的应用。

    创新性地提出了多个概念及键盘识别和编程方法。

    前 言

    自《单片机原理及应用(C语言版)》出版到现在,已过去了十年的时间。在这十年里,计算机技术、网络技术、嵌入式系统、芯片技术等得到了快速发展,并且这些技术迅速得到了广泛的应用。虽然在嵌入式系统、物联网等领域使用高性能32位微控制器越来越多,但易学易用、开发成本低、性价比高的8位单片机依然不失主流,并且单片机也是嵌入式系统一种重要的微控制器,而且单片机是学习嵌入式系统的基础。

    随着科学技术及其应用的发展,单片机的教学内容和方法应该作相应的改革。回想之前出版的两本单片机图书,《单片机原理及应用(C语言版)》(中国水利水电出版社)主要是加入了单片机C语言,因为讲得透彻、改变了编程方法、提高了编程效率,所以得到了同行的认可。《单片机原理及应用教程(C语言版)》(中国水利水电出版社)主要是加入了虚拟仿真工具Proteus,改变了实验方法,学生可以在自己的计算机上随时进行仿真实验,并且实验程序与硬件电路密切结合,提高了学习效率和应用技能,所以也得到了同行的认可。

    近几年单片机的教材有不少从项目驱动教学方面进行改革,是一种注重于实用性、趣味性的探索尝试。本版仍然以知识的科学性、逻辑性为原则,搭建知识结构,组织教学内容,其主要变化是优化了结构、更新和完善了内容。

    一、本书主要作的修改

    (1)优化了知识的结构。主要是组建了“单片机I/O口及应用”一章,使整书结构更加科学,逻辑关系更加合理。

    (2)更新了过时的内容。一是把原来8位、单通道、并行接口的DAC0832,换成了12位、4通道、SPI接口的DAC124S085;二是把原来8位、8通道、并行接口的ADC0809,换成了8位、4通道、SPI接口的ADC0834;三是更新了Keil C和Proteus的相关内容。

    (3)修改、完善了一些内容。如增加了RS-422/485接口、USB接口,增加了串行口C语言编程一节,详细讲解了相关的函数;修改、完善了总线接口技术一章的内容,其内容包括并行总线接口技术,SPI、IIC总线接口技术;丰富了“单片机应用系统设计”一章的内容,增加了“环境检测系统设计”一节。

    (4)删除了“指令系统与汇编程序设计”一章,以满足对这部分内容没有要求的读者。

    (5)修改了书中的各种错误。

    二、本书的主要特点与特色

    经过以上几个方面的修改,在保留了前几版的特色(以89C52为对象讲解、以C语言为主要编程语言、与单片机紧密结合的C语言内容、Proteus仿真实验)的基础上,又有创新和提高。具体来说,本版具有如下特色:

    (1)本书结构清晰、科学、先进;内容选取精炼、讲解清晰、准确;例题习题丰富、联系实际;软硬件结合、理论与实践紧密结合;勇于探索、开拓创新。

    (2)突出了输入/输出端口及应用。单列一章(第5章)讲解输入/输出端口结构原理及应用。这样设置,既突出了I/O口的重要性,增加了对I/O口的应用(专门编写了I/O口应用方面的十几道编程题),并且解决了键盘、显示器内容滞后的问题。

    (3)注意接口方法与能力的培养。一是接口概念明确,真正理解接口的含义;二是用一章介绍常用总线(并行总线、SPI总线、IIC总线)的接口技术,增加了SPI总线;三是重视接口时序分析和应用,几乎在每个接口中都有体现,使读者能够正确使用各种接口芯片;四是增加了串行口的接口技术,其内容包括单片机与RS-232、RS-422/485、USB的接口技术,这些内容都很实用。本书通过“总线接口、芯片接口、接口时序、操作函数、接口应用”这五个方面众多实例的学习与训练,使读者能够通过阅读手册,使用新的芯片,即能够写出基本操作函数,编写应用程序。

    (4)所有的A/D、D/A转换器都采用SPI接口的芯片。淘汰了传统的并行三总线接口的A/D、D/A转换器,这些转换器在实际中已经很少使用。书中所讲的这些转换器,不仅接口方便,而且应用广泛、价格便宜、编程简单,在Proteus器件库中都可以找到,能够仿真调试运行。

    (5)“单片机应用系统设计”一章关注基础性、普适性和实用性,是第10章的延续与提升。简易计算器设计,在软件方面示范了键盘、数码管及其驱动芯片的使用方法及系统构成,其程序示范了如何从键盘获得数值型变量值、怎样处理功能键;万年历设计为读者提供了时钟芯片的使用方法,以及完整的万年历程序;环境检测系统设计示范了数字温湿度传感器、光照度传感器等环境检测中常用的器件的使用方法和应用程序。这几个例子有如下特点:一是基本上不包含专业性、行业性较强的内容,因此,程序容易阅读、学习;二是例子中示范的器件应用广泛,是一般应用系统中必不可少的部分;三是例子中的程序可以直接用到其他应用系统中。

    (6)详细讲解了C51函数在串行口操作中的应用。C51的输入/输出函数在很多应用中特别方便,如对GPRS、GPS等模块的操作。现有单片机图书对输入/输出函数在串行口中的应用介绍较少,深入、透彻讲解的更少。本书在串行口一章用一节的篇幅,对输入/输出函数的特点、应用方法、注意的问题等,作了详细的讲解。

    (7)在“C51位变量的定义”一节,专门写了“位操作应用”小节,讲解了判断位值、查找0/1位、逐位发送、逐位接收这些位操作的方法及编程,这些方法在键盘识别、串行总线(SPI、IIC、单总线)接口操作中会广泛用到,解决了读者学习这些内容的相关问题。

    (8)创新性地提出了多个概念及键盘识别和编程方法。在第4章提出了“变量存储区(域)”和“设备变量”的概念。“变量存储区(域)”的概念(其他单片机书中称为“存储类别”)符合单片机变量保存位置区域的特征,容易理解并且与ANSI C变量的“存储类型”属性不冲突。“设备变量”的概念虽然不是必须的,但“设备变量”本身访问过程的复杂性和它的特指性,对于初学者理解、掌握这类访问过程复杂的变量有显著的作用,对于教师则方便讲解,书中不仅给出了概念的定义、特征描述,还给出了“设备变量”的多种定义方法之比较及最佳定义方法。在第5章提出了“行列快速扫描法”键盘识别方法,与常用的“行扫描法”“行列反转法”相比,该方法更简单、更容易理解、更容易编程。

    (9)其他方面。如所有延时都有确定的时间,长的到1000ms、2000ms,短的至5μs、1μs,不存在延时时间模糊、读者存疑的情况。在IIC、SPI等总线操作中,注释了一些关键部分的操作时间。又如,思考题例题丰富,便于学习、训练参考。再如,所截电路图紧凑、布局恰当、突出重点、清晰、大小适中。

    三、几点说明

    (1)本书中的单片机型号都标示为“89C52”,在实际应用开发中选用的多为我国宏晶公司的STC系列单片机,但Proteus仿真软件中没有该系列,选用的是“AT89C52”,标示为“89C52”。

    (2)书中的Proteus仿真电路都省略了晶振、复位、电源等电路,也省略了数码管等电路的驱动,请读者注意。

    (3)关于单片机的学习,除了重视单片机的结构、原理、编程之外,还要重视芯片的结构、原理、接口方法和接口时序,能够写出操作函数。

    本书由周国运主持编写、组织内容及统稿。本书编写分工如下:周国运编写了第2章~第4章和5.1、8.4.3、8.5、11.1.1节及附录,鲁庆宾编写了第5、第8、第10、第11章,赵天翔编写了第1、第6、第7、第9章。

    由于编者水平有限,书中难免存在错误和不妥之处,敬请同行和读者批评指正。作者邮箱:zhouguoyun@sina.com。

    编 者

    2019年3月

    前言

    第1章 单片机概述 1
    1.1 单片机的基本概念 1
    1.2 单片机的发展历史 1
    1.3 单片机的特点及应用 3
    1.3.1 单片机的特点 3
    1.3.2 单片机的应用 3
    1.4 常见MCS-51单片机简介 4
    1.4.1 MCS-51系列单片机 4
    1.4.2 ATMEL89系列单片机 4
    1.4.3 STC系列单片机 5
    思考题与习题 6
    第2章 MCS-51单片机结构原理 7
    2.1 MCS-51单片机内部结构及CPU 7
    2.1.1 MCS-51单片机结构及特点 7
    2.1.2 MCS-51单片机内部原理结构 8
    2.1.3 MCS-51单片机的CPU 8
    2.2 MCS-51单片机引脚信号 11
    2.2.1 MCS-51单片机引脚信号及功能 11
    2.2.2 MCS-51单片机外部总线结构 14
    2.3 MCS-51单片机存储器结构 15
    2.3.1 程序存储器结构 15
    2.3.2 片内数据存储器结构 16
    2.3.3 片外数据存储器结构 19
    2.4 MCS-51单片机时钟及CPU时序 20
    2.4.1 时钟电路及时钟信号 20
    2.4.2 CPU时序 22
    2.5 MCS-51单片机的复位 24
    2.5.1 复位状态 24
    2.5.2 复位电路 24
    2.6 MCS-51单片机低功耗工作方式 25
    2.6.1 低功耗结构及控制 25
    2.6.2 空闲工作方式 26
    2.6.3 掉电工作方式 27
    思考题与习题 27
    第3章 单片机C语言基础 29
    3.1 C51概述 29
    3.1.1 C语言编程的优势 29
    3.1.2 C51与ANSI C的区别 30
    3.1.3 C51扩充的关键字 31
    3.2 C51数据类型及存储 31
    3.2.1 C51的数据类型 31
    3.2.2 C51数据的存储 33
    3.3 C51一般变量的定义 34
    3.3.1 C51变量的定义格式 34
    3.3.2 C51变量的存储类型 34
    3.3.3 C51变量的存储区 35
    3.3.4 C51变量定义举例 36
    3.3.5 C51变量的存储模式 36
    3.3.6 C51变量的绝对定位 37
    3.3.7 C51设备变量 38
    3.4 C51特殊功能寄存器的定义 38
    3.4.1 8位特殊功能寄存器的定义 39
    3.4.2 16位特殊功能寄存器的定义 39
    3.5 C51位变量的定义 39
    3.5.1 bit型位变量的定义 39
    3.5.2 sbit型位变量的定义 40
    4.5.3 位操作应用 41
    3.6 C51指针与结构体的定义 44
    3.6.1 通用指针 44
    3.6.2 存储器专用指针 44
    3.6.3 指针变换 45
    3.6.4 C51指针应用 45
    3.6.5 C51结构体定义 48
    3.7 C51函数的定义 49
    3.7.1 C51函数定义的一般格式 49
    3.7.2 C51中断函数的定义 50
    思考题与习题 51
    第4章 单片机开发工具 53
    4.1 单片机程序开发软件Keil C简介 53
    4.1.1 Keil C集成开发工具简介 53
    4.1.2 Keil C的操作工具 54
    4.1.3 Keil C程序开发方法 58
    4.1.4 Keil C调试运行方法 61
    4.2 单片机系统模拟软件Proteus简介 64
    4.2.1 Proteus主界面 65
    4.2.2 Proteus ISIS的操作工具 65
    4.2.3 Proteus ISIS原理图设计方法 71
    4.2.4 Proteus ISIS原理图设计举例 74
    4.2.5 Proteus ISIS仿真方法 76
    思考题与习题 77
    第5章 单片机I/O口及应用 79
    5.1 单片机I/O口结构原理 79
    5.1.1 P1口 79
    5.1.2 P2口 81
    5.1.3 P3口 81
    5.1.4 P0口 82
    5.1.5 端口负载能力和接口要求 83
    5.2 数码管及显示控制 84
    5.2.1 数码管显示器结构原理 84
    5.2.2 数码管显示方式 85
    5.2.3 数码管显示控制 86
    5.3 键盘及识别控制 87
    5.3.1 键盘分类及按键识别 87
    5.3.2 独立式键盘及按键识别 88
    5.3.3 行列式键盘及按键识别 89
    5.3.4 中断方式扫描键盘 92
    5.3.5 键盘应用举例 92
    5.4 LCD显示器及控制 95
    5.4.1.LM016L引脚信号 95
    5.4.2 LM016L操作指令 95
    5.4.3 LM016L数据存储器 96
    5.4.4 LM016L基本操作函数 97
    5.4.5 LM016L应用编程 98
    思考题与习题 99
    第6章 单片机中断系统 101
    6.1 中断系统概述 101
    6.1.1 中断的基本概念 101
    6.1.2 中断的功能 101
    6.2 中断系统的结构与原理 102
    6.2.1 中断系统的结构 102
    6.2.2 中断系统的原理 102
    6.2.3 外部中断触发方式 103
    6.2.4 中断请求标志 104
    6.3 中断系统控制 105
    6.3.1 中断允许控制 105
    6.3.2 中断优先级控制 106
    6.4 中断响应与处理 108
    6.4.1 中断响应 108
    6.4.2 中断处理 109
    6.5 外部中断应用举例 109
    6.5.1 中断应用程序结构及初始化 109
    6.5.2 应用举例 111
    思考题与习题 113
    第7章 单片机定时器/计数器 115
    7.1 单片机定时器/计数器的结构 115
    7.2 定时器/计数器T0、T1 116
    7.2.1 T0、T1的特殊功能寄存器 116
    7.2.2 T0、T1的工作模式 117
    7.2.3 T0、T1的使用方法 119
    7.3 定时器/计数器T2 122
    7.3.1 T2的特殊功能寄存器 122
    7.3.2 T2的工作方式 123
    7.4 定时器应用举例 127
    思考题与习题 133
    第8章 单片机串行口 134
    8.1 串行通信基础知识 134
    8.1.1 数据通信 134
    8.1.2 异步通信和同步通信 135
    8.1.3 波特率 136
    8.1.4 通信方向 136
    8.1.5 串行通信接口种类 137
    8.2 串行口结构及控制 137
    8.2.1 单片机串行口结构 137
    8.2.2 串行口特殊功能寄存器 138
    8.2.3 波特率设计 139
    8.3 串行口工作方式 142
    8.3.1 串行口方式0 142
    8.3.2 串行口方式1 144
    8.3.3 串行口方式2和方式3 145
    8.4 串行口接口技术 146
    8.4.1 RS-232接口 146
    8.4.2 RS-422/485接口 148
    8.4.3 USB接口 150
    8.5 串行口的C51操作方法 152
    8.5.1 串行口输出函数 152
    8.5.2 串行口输入函数 155
    8.6 串行口应用举例 157
    8.6.1 串行口方式0应用 157
    8.6.2 串行口方式1、方式3应用 160
    思考题与习题 162
    第9章 单片机常用总线接口 164
    9.1 接口的基本概念 164
    9.1.1 单片机应用系统构成 164
    9.1.2 接口的概念 165
    9.1.3 接口的基本功能 165
    9.1.4 接口的结构 165
    9.1.5 端口及其编址 166
    9.2 并行总线及存储器接口 167
    9.2.1 单片机并行总线结构 167
    9.2.2 单片机并行总线操作时序 168
    9.2.3 单片机与并行数据存储器的接口 169
    9.3 单片机与并行总线设备的接口 171
    9.3.1 8255A内部结构 171
    9.3.2 8255A引脚信号 172
    9.3.3 8255A的控制字 173
    9.3.4 8255A的工作方式 174
    9.3.5 8255A应用举例 175
    9.4 IIC总线及应用接口 176
    9.4.1 IIC总线特点 176
    9.4.2 IIC总线时序 177
    9.4.3 IIC总线操作函数 180
    9.4.4 IIC总线应用 181
    9.5 SPI总线及应用接口 183
    9.5.1 SPI总线特点 183
    9.5.2 SPI总线时序 184
    9.5.3 SPI总线操作函数 185
    9.5.4 SPI总线应用 187
    思考题与习题 191
    第10章 单片机与模拟、开关量接口技术 192
    10.1 D/A转换器及应用 192
    10.1.1 D/A转换器的主要参数 192
    10.1.2 D/A转换器TLC5615及接口技术 192
    10.1.3 D/A转换器DAC124S085及接口
    技术 195
    10.2 A/D转换器及应用 198
    10.2.1 A/D转换器的主要参数 199
    10.2.2 A/D转换器ADC0834及接口技术 199
    10.2.3 A/D转换器TLC2543及接口技术 204
    10.2.4 单片机片内A/D转换器及应用 210
    10.3 开关信号器件及应用 212
    10.3.1 光电耦合器件及接口技术 212
    10.3.2 继电器接口技术 213
    10.3.3 直流电机控制接口技术 214
    10.3.4 步进电机控制接口技术 216
    思考题与习题 217
    第11章 单片机应用系统设计 219
    11.1 简易计算器设计 219
    11.1.1 数码管与键盘接口芯片BC7277
    简介 219
    11.1.2 系统电路设计 223
    11.1.3 系统功能设计 224
    11.1.4 系统程序设计 225
    11.2 万年历设计 229
    11.2.1 时钟芯片DS1302简介 229
    11.2.2 系统电路设计 232
    11.2.3 系统功能设计 233
    11.2.4 系统程序设计 233
    11.3 环境检测系统设计 236
    11.3.1 温湿度传感器DHT11简介 236
    11.3.2 光照度传感器BH1750简介 239
    11.3.3 系统电路设计 241
    11.3.4 系统程序设计 242
    课程设计参考题目 243
    参考文献 244
    附录A 标准ASCII码表 245
    附录B C语言运算符特性表 246
    附录C C51库函数 247
    C.1 一般I/O函数 247
    C.2 内部函数 248
    C.3 绝对地址访问函数 249
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册