精彩书摘:
第1章 51单片机基本应用
本章内容为单片机基础应用知识,围绕*常见也相对简单的51单片机,学习单片机的I/O口、定时器、异步串行口、中断、存储器的应用方法。
1.1 单片机概述
1.1.1 单片机的作用
什么是单片机?首先,单片机的“机”指的是“计算机”。计算机是能够存储指令并自动执行指令、完成运算和逻辑操作的电子设备。计算机已经融入我们工作和生活的各个领域。需要计算机解决的问题千差万别、多种多样,大规模、高速度是计算机发展的一个方向,但在很多场合,如仪器仪表、测量控制等领域,需要计算机解决的是比较专一的问题,这时使用普通计算机好比是杀鸡用了宰牛刀,使用单片机则会更加适合。单片机的特点是小而全,一般是在一块芯片上集成了计算机的主要部件:算术逻辑单元(arithmetic logic unit,ALU)、存储器、输入输出端口(简称I/O口),以及各种常用接口。限于体积和规模,单片机虽然有普通计算机的特征,但不具备常用个人计算机那么大的存储容量、那么快的速度。那么单片机有什么作用呢?下面先来看看日常生活中哪些地方会使用单片机。
(1)冰箱。
冰箱的作用是产生并保持低温,产生低温需要依靠压缩机运行,低温低压的液态制冷剂在冰箱内的蒸发器中吸收冰箱内的热量后被压缩机吸入,压缩后变成高温高压的气体,送到室外冷凝器中散热后,重新变成液态回到冰箱内的蒸发器,吸收冰箱内的热量,再排热。如此循环,冰箱内的温度不断降低,到了需要的温度后,压缩机停止运行,温度回升超过允许范围时压缩机再次启动。那么怎样测量冰箱内的实际温度、控制压缩机运转、显示温度值及其他信息并接收人工设定呢?答案是单片机。图1-1是单片机在冰箱中应用的典型控制原理图。
图1-1 单片机在冰箱中应用的典型控制原理图
(2)洗衣机。
早期的洗衣机是全机械式控制,现在的全自动洗衣机几乎都是用单片机控制。图1-2是全自动洗衣机中典型的单片机控制原理图。
图1-2 洗衣机中典型的单片机控制原理图
图1-2中,单片机接收人工按键指令电源(开/关)、启动/暂停、程序选择、水位选择等,接收重力传感器的输出,控制电机运行及排水阀的开闭,控制指示灯的亮灭及数码管显示。
(3)小家电。
单片机在小家电中的应用随处可见,如电饭煲、微波炉、豆浆机、电子钟等。
在工业应用领域,尤其是测控方面,单片机系统因其具有成本低、规模小、便于数字控制、完成特定功能编程方便等特点,应用非常普遍。单片机可以构成数据采集、信号检测、无线感知系统等,结合控制部件,进行温度、时间、液位、行程、姿态等控制。在工厂流水线的智能化管理、电梯智能化控制、各种报警系统、与计算机联网构成二级控制系统、物联网系统、无人飞机、机器人等诸多方面,单片机的应用随处可见。在汽车电子中单片机的应用也非常广泛,如汽车中基于CAN总线的汽车发动机智能电子控制器、GPS导航系统、ABS防抱死系统、制动系统、胎压检测等。
在船舶导航系统中,单片机同样发挥了重要作用。例如:在自动操舵仪中以单片机为微处理器进行船舶的航向控制、航迹控制;在计程仪中用单片机进行测量采集、解算、显示速度航程、接收人工按键输入;在测深仪中用单片机控制换能器发射声波,采集回波信号并解算、显示深度;在气象仪中用单片机采集风速信号并显示,如图1-3所示。
1.1.2 单片机的发展历史及现状
单片机应用市场巨大,国际上有多家公司都有单片机产品。为满足不同的应用,单片机并没有一种固定的形式,规模大小、功能强弱、速度快慢、封装形式均是多种多样的。其中,51系列单片机是一个基础的单片机系列。那么什么是51系列单片机?这要从单片机的发展历史说起。
单片机的发展与PC的微处理器的产生大体同步,1971年美国Intel公司研制出4位处理器Intel 4004后不久,就出现了单片机。1975年,TI公司推出了4位单片机TMS-1000。随后,Intel公司推出了系列化的单片机产品,可以说是单片机产品的代表。
图1-3 应用单片机的常见导航设备
1976年,Intel公司推出了MCS-48系列8位单片机,其内集成了8位微处理器、8位并行I/O口、8位计数器/定时器、随机存储器(RAM)、只读存储器(ROM)等部件,使单片机的发展进入了实用阶段。
1980年,Intel公司推出了以8031、8051为代表的8位MCS-51系列单片机,形成了经典的8051内核。MCS-51系列单片机内集成的ROM、RAM寻址空间达到64 KB,具有16位计数器/定时器,还集成了串行通信口,具有两级中断处理能力。8位单片机的应用比较普遍,长盛不衰,具有8051内核的处理器不断推出,形成了具有经典性、生命力顽强的系列单片机。直到现在,8位单片机仍然大量使用,是单片机中的主流品种。
1982年,Intel公司推出了MCS-96系列16位单片机。但从实际应用来看,16位单片机的应用并没有8位单片机普遍。原因可能是其处于比较尴尬的位置,高不成、低不就。从大量简单的测控应用场合的需要来看,8位单片机的性能就够用了。
除Intel公司外,STC、Atmel、Philips、motorola、TI、NEC、AMD、MICROCHIP、SΛMSUNG等公司都有自己的单片机产品。
目前单片机的发展主要有以下两个特征。
(1)51内核单片机仍然大量使用,但在51内核的基础上,各公司的单片机产品又加入了自己的设计,扩展了功能,如集成了DA转换器、AD转换器、SPI接口、I2C接口、CAN接口等,一般使用Flash存储器作为只读存储器。Flash存储空间、RAM空间对简单应用足够大,用户几乎不需要考虑扩展问题,这使得单片机的应用更加便捷。
(2)各公司推出了速度快、容量大、接口丰富的高性能单片机。例如,ST公司推出的Cortex-u内核的32位STM32系列单片机,新唐公司推出的NUC140、240系列32位单片机等,包含了以太网、CAN、USB等接口,速度快,功能非常强,可以完成诸如船舶的运动控制等比较复杂的运算和控制工作,构建网络也比较方便。
不同的51内核8位单片机虽然有不同的功能扩展,但其基本部分的结果是大致相同的。单片机的内部资源都挂接在单片机内部总线上,通过内部总线传送数据和指令。51内核单片机的内部*基本结构类似,如图1-4所示。
图1-4 51内核单片机内部*基本结构
51内核单片机的内部主要包括如下*基本资源。
(1)8位数据总线的CPU,CPU是单片机内的核心部件,主要功能是产生各种控制信号、控制存储器和端口的数据传送、完成数据运算等。
(2)片内振荡器和时钟电路,配合外部晶振产生单片机工作时需要的基本时钟频率,单片机执行指令的速度以此基本时钟频率为准。
(3)片内只读存储器ROM,用于存储程序,一般为Flash存储器,4~64 KB不等。例如:Atmel公司AT89C51的Flash存储器为4 KB,AT89C52为8 KB,AT89C55为20 KB;Winbond公司的W78E58为32 KB;STC公司的STC89C516RD + 为64 KB,STC90C52RC为8 KB。Flash存储器的大小一般能从型号上看出来。
(4)片内RAM,存储大小也不等,*基本的8051为128 B,8052为256 B。增强型51单片机一般均扩展了 RAM 的存储大小,例如,Silicon Labs 公司的 C8051F340 为 4352 B,STC89C516RD + 为4 KB,STC90C52RC为512 B。
(5)16位定时器/计数器,*基本的8051有2个,8052有3个,增强型的定时器/计数器数量也增加了,多的有6个。
(6)8位并行I/O接口,基本DIP封装的Intel 8051、Intel 8052为40个引脚,均有4个8位I/O口,即P0、P1、P2、P3。很多增强型的单片机引脚增多了,常见的引脚数有44、64、100、144等;I/O口也增加了不少,需要较多I/O口时,直接选引脚多的即可。同一型号、不同的封装形式,I/O口的数量也可能不一样。例如,TQFP封装的AT89C52单片机有44个引脚,比基本DIP封装的多4个引脚,这4个引脚就作为P4口来用(只有4位)。同样,也有引脚少的单片机。例如,AT89C2051、AT89C4051有20个引脚,只有P1、P3口,没有P0、P2口。
(7)全双工异步串行接口,基本的8051、8052单片机均有1个,一些增强型的51单片机有2~4个。
(8)中断系统,可以实现外部中断、内部定时器中断、串行口中断等程序中断功能。
不同型号的单片机,内部资源也不一样,短时间内将所有的单片机型号都搞清楚是没有必要的,也是不可能的。我们学习时,需要注意两点:一是能熟练运用51单片机的基本资源;二是对增强型单片机的增强资源,会查找其资料,用到时再学习其用法。平时要多积累,了解有哪些单片机,它们分别有哪些特点和功能,这样有助于使用时选型。
表1-1~表1-4为Intel公司早期的MCS-51系列单片机和目前市场上部分常见的单片机内部主要资源。
表1-1 Intel公司早期的MCS-51系列单片机主要产品及其性能
表1-2 Atmel公司的89系列单片机部分产品及其性能
表1-3 Silicon Labs公司的C8051系列单片机主要产品及其性能
内容简介:
《船舶导航系统信息接口技术及应用实践》主要内容包括单片机基础和导航系统通用的信息接口技术两部分。单片机基础部分主要介绍51单片机基础应用和扩展应用;导航系统通用的信息接口技术包括自整角机/旋转变压器轴角-数字转换、异步串行通信、CAN总线和交换式以太网的技术基础及其在导航系统中的基本应用方法,如典型接口电路设计、数据通信协议、数据网络构建等,内容紧密联系船舶导航系统中的应用实际。单片机基础部分的内容可以为导航系统信息接口教学实践奠定基础。
目录:
目录
第1章 51单片机基本应用 1
1.1 单片机概述 2
1.1.1 单片机的作用 2
1.1.2 单片机的发展历史及现状 3
1.1.3 如何学习单片机 8
1.2 单片机开发准备 8
1.2.1 Keil C51软件的安装 9
1.2.2 USB转串口芯片CH340T驱动程序的安装 10
1.2.3 STC单片机程序下载工具软件 12
1.3 用单片机I/O口点亮LED灯 12
1.3.1 单片机的引脚和I/O口 13
1.3.2 单片机*小应用系统 13
1.3.3 LED灯的控制电路 15
1.3.4 软件设计与下载 15
1.3.5 1个LED灯的循环亮灭控制 21
1.3.6 8个LED灯的亮灭控制 22
1.4 用单片机I/O口控制数码管显示 24
1.4.1 七段数码管及其显示控制 24
1.4.2 单片机控制数码管亮灭的方法 25
1.4.3 数码管控制芯片MAX7219 27
1.4.4 基于MAX7219的数码管控制电路 31
1.4.5 数码管显示递增计数值 32
1.5 用单片机I/O口读取按键 34
1.5.1 按键布置方案 35
1.5.2 键盘消抖 36
1.5.3 读取按键的软件设计 36
1.5.4 单片机I/O口应用方法总结 42
1.6 单片机内部的定时器/计数器 43
1.6.1 单片机定时器/计数器的概念与设置 43
1.6.2 单片机定时器/计数器的工作方式 45
1.6.3 单片机定时器/计数器应用举例 47
1.7 单片机内部的异步串行通信接口UART 49
1.7.1 关于异步串行通信的几个概念 49
1.7.2 异步串行通信协议 51
1.7.3 51单片机的异步串行通信接口UART 52
1.7.4 8位方式串行通信举例 56
1.7.5 9位方式串行通信举例 57
1.7.6 51单片机P3口第二功能 59
1.8 单片机的中断 60
1.8.1 中断的概念 60
1.8.2 8051单片机的中断源与中断标志位 60
1.8.3 与中断有关的特殊功能寄存器 61
1.8.4 有关中断的单片机软件设计 64
1.8.5 中断应用举例 66
1.9 单片机的存储器 69
1.9.1 只读存储器 70
1.9.2 数据存储器 70
1.9.3 特殊功能寄存器 72
1.9.4 存储变量读取速度的测试 74
本章练习题 78
第2章 51单片机扩展应用 79
2.1 液晶显示器LCD1602的使用 80
2.1.1 字符型LCD1602简介 80
2.2.2 LCD1602的读写时序 83
2.2.3 LCD1602的指令 84
2.2.4 在LCD1602上显示字符 86
2.2 I2C总线及其应用举例 89
2.2.1 I2C总线协议 89
2.2.2 I2C总线的通信时序 91
2.2.3 I2C总线器件AT24C02 92
2.2.4 AT24C02记录开机次数 95
2.3 D/A转换与A/D转换 100
2.3.1 D/A转换原理 101
2.3.2 A/D转换原理 104
2.3.3 DA/AD转换器PCF8591 109
2.3.4 用PCF8591进行电压采样与输出 113
2.4 单片机定时器/计数器T2的应用 119
2.4.1 定时器T2的寄存器 120
2.4.2 定时器T2的三种工作模式 121
本章练习题 125
第3章 自整角机和旋转变压器信号接口技术 126
3.1 自整角机原理 127
3.1.1 控制式自整角机 128
3.1.2 力矩式自整角机 131
3.1.3 自整角机的电气零位 133
3.2 自整角机轴角数字转换技术 134
3.2.1 自整角机的信号特征 134
3.2.2 基于格雷编码的轴角数字转换 135
3.2.3 基于AD采样的轴角数字转换方法 137
3.2.4 基于轴角数字转换模块的轴角数字转换电路 139
3.3 旋转变压器原理及接口技术 144
3.3.1 正余弦旋转变压器 145
3.3.2 线性旋转变压器 146
3.3.3 用一对旋转变压器测量差角 147
3.3.4 旋转变压器轴角数字转换技术 148
3.4 数字轴角转换技术 148
3.4.1 数字-自整角机/旋转变压器转换器的原理 149
3.4.2 数字-自整角机/旋转变压器转换器的应用 150
本章练习题 151
第4章 异步串行通信及其在船舶导航系统中的应用 152
4.1 串行通信技术概述 153
4.1.1 串行通信的含义与特点 153
4.1.2 数据传送方式 153
4.1.3 信号调制解调 154
4.1.4 异步串行通信协议 155
4.1.5 同步串行通信协议 156
4.1.6 串行通信差错控制 157
4.2 异步串行通信接口电气标准 159
4.2.1 RS-232C接口标准 159
4.2.2 RS-422A接口标准 167
4.2.3 RS-485接口标准 170
4.2.4 RS-232C/RS-422A/RS-485三种接口标准电气特性比较 173
4.2.5 RS-232C/RS-422A电气特性测试实验 174
4.3 异步串行通信在船舶导航系统中的应用 176
4.3.1 国际标准IEC61162与NMEA0183 176
4.3.2 NMEA0183接口协议与数据格式 177
4.3.3 基于NMEA0183的常用导航设备输出典型报文 178
4.3.4 NMEA0183数据接收实践—GPS/BD模块报文接收显示 182
本章练习题 183
第5章 CAN总线及其在船舶导航系统中的应用 185
5.1 CAN总线概述 186
5.1.1 CAN总线的由来 186
5.1.2 CAN总线的特点 187
5.1.3 CAN总线组网方法 187
5.2 CAN总线的报文帧 190
5.2.1 帧类型 190
5.2.2 数据帧与远程帧格式 191
5.2.3 总线仲裁 194
5.2.4 位同步 195
5.2.5 位填充 196
5.3 CAN控制器SJA1000及其应用 197
5.3.1 SJA1000概述 197
5.3.2 SJA1000基本模式下的寄存器功能 199
5.3.3 SJA1000基本模式及应用实践 210
5.3.4 SJA1000扩展模式及应用实践 222
5.4 CAN收发器82C250 233
5.5 CAN总线在船舶导航系统中的应用 235
5.5.1 NMEA2000(IEC 61162-3)协议介绍 235
5.5.2 应用举例 237
本章练习题 240
第6章 交换式以太网及其在船舶导航系统中的应用 242
6.1 计算机局域网概述 243
6.1.1 局域网的拓扑结构 243
6.1.2 共享式以太网 245
6.1.3 交换式以太网 246
6.1.4 以太网标准 248
6.1.5 局域网的层次结构与协议 249
6.1.6 数据的封装 255
6.2 小型局域网组网实践 258
6.2.1 IP地址和子网掩码设置 258
6.2.2 设备配置与连接 259
6.2.3 测试网络连通性 260
6.2.4 用ARP查询MAC地址 261
6.2.5 用UDP收发工具收发数据 262
6.3 交换式以太网在船舶导航系统中的应用 265
6.3.1 国际标准IEC61162-450数据包 265
6.3.2 自定义数据格式举例 266
本章练习题 270
参考文献 271
附图
好评度