描述
开 本: 16开纸 张: 胶版纸包 装: 平装是否套装: 否国际标准书号ISBN: 9787302449249丛书名: 新世纪高职高专实用规划教材——机电系列
针对单片机原理及应用,本着理论够用的原则,突出实用性、可操作性,在编排上由浅入深,循序渐进,精选内容,突出重点,适当增加了一些当今流行的新器件和新技术;对于接口技术和应用系统,提供了详细的原理说明、电路图、完整的程序代码及程序流程图。
本书可作为高职高专院校自动化、电子信息、机电、电力和计算机等专业的教材,也可以作为工程技术人员的参考书。
目 录
第1章 绪论 1
1.1 数制与编码的简单回顾 1
1.1.1 计算机中的数制及相互转换 1
1.1.2 二进制数的运算 4
1.1.3 带符号数的表示 7
1.1.4 带符号数运算时的溢出问题 8
1.1.5 定点数和浮点数 9
1.1.6 BCD码和ASCII码 9
1.2 单片机概述 11
1.2.1 电子计算机的问世及其经典
结构 11
1.2.2 微型计算机的组成及其应用
形态 11
1.2.3 单片机的发展过程 13
1.2.4 单片机的特点 13
1.2.5 单片机的应用领域 14
1.2.6 单片机的产品近况 14
1.3 单片机要怎样学 15
1.3.1 入门单片机类型和编程语言的
选择 15
1.3.2 准备一些硬件 16
1.3.3 准备一些软件 17
1.3.4 单片机的学习过程 17
1.3.5 在Proteus中搭接电路 18
1.3.6 程序的编译 21
1.3.7 程序的下载 22
习题1 23
第2章 MCS-51单片机的体系结构 25
2.1 MCS-51单片机的基本组成 25
2.1.1 80C51单片机的基本结构 25
2.1.2 MCS-51单片机的内部组成
及信号引脚 27
2.1.3 存储器的结构 30
2.1.4 80C51单片机的特殊功能
寄存器 33
2.2 并行输入/输出口的结构 35
2.2.1 P0口 36
2.2.2 P1口 37
2.2.3 P2口 38
2.2.4 P3口 39
2.2.5 并行接口的负载能力 40
2.3 时钟及复位电路 40
2.3.1 时钟电路及时序 40
2.3.2 单片机的复位电路 43
2.4 MCS-51单片机的小系统 44
2.4.1 单片机小应用系统举例 44
2.4.2 小应用系统设计 45
习题2 45
第3章 MCS-51单片机的C51程序
设计 48
3.1 C51语言概述和程序结构 48
3.1.1 C语言的特点 48
3.1.2 C51语言的程序结构 49
3.2 标识符和关键字 52
3.3 C51语言的数据类型和运算符 54
3.3.1 C51语言的数据类型 54
3.3.2 C51语言的运算符 62
3.4 C51程序的基本结构 67
3.4.1 if语句 67
3.4.2 switch语句 68
3.4.3 循环语句 69
3.5 C51函数和预处理命令 70
3.5.1 函数的分类和定义 70
3.5.2 中断服务函数 72
3.5.3 C51的库函数 73
3.5.4 编译预处理命令 75
3.6 C51程序设计举例 77
习题3 79
第4章 MCS-51中断系统及定时/
计数器 81
4.1 MCS-51的中断系统 81
4.1.1 MCS-51的中断系统结构 81
4.1.2 MCS-51的中断源 82
4.1.3 MCS-51中断的控制 84
4.2 MCS-51单片机中断处理过程 86
4.2.1 中断响应条件和时间 86
4.2.2 中断响应过程 87
4.2.3 中断返回 88
4.2.4 中断程序举例 88
4.3 MCS-51的定时/计数器 92
4.3.1 定时/计数器的结构和工作
原理 92
4.3.2 定时/计数器的控制 93
4.3.3 定时/计数器的工作方式 94
4.3.4 定时/计数器用于外部中断
扩展 96
4.3.5 定时/计数器应用举例 96
习题4 100
第5章 MCS-51单片机的串口通信 102
5.1 串口通信的基本知识 102
5.1.1 通信的基本概念 102
5.1.2 串行通信的分类 102
5.1.3 串行通信的制式 103
5.1.4 串行通信接口标准 104
5.2 MCS-51单片机的串口及控制
寄存器 106
5.2.1 MCS-51串行口的结构 106
5.2.2 MCS-51串行控制寄存器 107
5.3 串口的工作方式 108
5.3.1 方式0 108
5.3.2 方式1 109
5.3.3 方式2和方式3 110
5.3.4 波特率的计算 111
5.4 串口的应用 112
5.4.1 双机通信 112
5.4.2 多机通信 117
习题5 124
第6章 单片机的系统扩展 125
6.1 简单I/O口的控制 125
6.1.1 简单输出控制 125
6.1.2 简单输入控制 127
6.2 LED和LCD段型显示屏 129
6.2.1 段型数码管 129
6.2.2 控制程序及流程图 133
6.3 键盘及接口 135
6.3.1 键盘原理及控制电路 135
6.3.2 矩阵键盘的按键识别方法 137
6.3.3 拨码盘 139
6.4 红外线遥控 141
6.4.1 红外遥控的工作原理 142
6.4.2 红外遥控的编码协议 142
6.4.3 红外遥控结合单片机的
应用 144
6.5 LCD点阵液晶显示器 147
6.5.1 TC1602A简介 147
6.5.2 控制电路 151
6.5.3 单片机对LCD1602的控制 151
6.6 DS1302实时时钟 154
6.6.1 实时时钟DS1302 154
6.6.2 控制电路 157
6.6.3 控制程序及流程图 158
6.7 ADC功能 162
6.7.1 A/D转换器概述 162
6.7.2 典型A/D转换器芯片
ADC0809 163
6.7.3 ADC0809电压测量电路 167
6.7.4 控制程序示例 168
6.8 温湿度测控 170
6.8.1 AM2303的发送字含义 170
6.8.2 AM2303的通信协议 170
6.8.3 AM2303测温湿度的示例 171
6.9 单片机与无线遥控 175
6.9.1 无线遥控编码方式 175
6.9.2 PT2262与PT2272的通信
协议 176
6.9.3 无线遥控的应用实例 177
6.10 语音芯片 185
6.10.1 SPI是什么 186
6.10.2 ISD4003语音芯片 187
6.10.3 ISD4003语音芯片的指令
与格式 188
6.10.4 单片机的SPI功能 190
6.11 单片机数据存储器的扩展 195
6.11.1 SD卡的通信模式 195
6.11.2 SD卡的SPI通信协议 196
6.11.3 单片机读写SD卡的实验 199
习题6 204
第7章 单片机的关键技术 206
7.1 电路板的设计与制作 206
7.1.1 电路、程序的仿真与调试 206
7.1.2 电路板的制作 207
7.2 干扰的来源与应对措施 212
7.2.1 外部传导干扰 212
7.2.2 外部辐射干扰 213
7.2.3 内部滋生干扰 213
7.2.4 软件抗干扰措施 214
7.2.5 保护引脚 215
7.3 数据保障性能 216
7.3.1 热复位时RAM区数据
不丢失 216
7.3.2 热复位时输出口数据
不丢失 218
7.3.3 掉电时数据不丢失 218
7.3.4 其他数据保障 221
7.4 单片机与上位机的联机通信 221
7.4.1 上位机通信界面的设计 222
7.4.2 编辑发生事件时的控制
程序 223
7.4.3 下位机单片机程序 225
7.5 单片机的加密 227
7.5.1 新产品能增加破解难度 228
7.5.2 用带有身份证的产品加密 228
7.5.3 在程序中加入所有者的
信息 229
7.5.4 硬件方法 230
习题7 230
第8章 MCS-51单片机应用系统的
设计 232
8.1 单片机应用系统概述 232
8.1.1 单片机应用系统的特点 232
8.1.2 MCS-51单片机应用系统的
设计方法 232
8.2 课程设计–16×16 LED显示 235
8.2.1 设计要求 235
8.2.2 16×16 LED显示总体设计
方案 235
8.2.3 硬件设计 237
8.2.4 编程要点及软件设计 237
8.3 课程设计–秒表 240
8.3.1 功能说明 240
8.3.2 关键技术及控制电路 241
8.3.3 控制程序 242
8.4 课程设计–电脑钟 243
8.4.1 设计要求 243
8.4.2 电脑钟的总体设计方案 243
8.4.3 硬件设计 244
8.4.4 软件设计及流程模块 245
习题8 251
附录1 MCS-51指令表 253
附录2 ASCII码表 257
参考文献 258
再
版 前 言
本教材第1版在使用中取得了较好的效果。但是,随着单片机及相关技术的飞速发展,第1版教材的内容已略显落后。经过多位一线教师的协商和努力,历经两年的时间,在原版的基础上进行了修订与完善,终完成了第2版教材的编写。
本书仍以MCS-51系列单片机为主,介绍单片机的原理与应用,但是,与第1版相比,本版更加注重介绍单片机的学习方法、单片机开发软件、外围硬件的接口技术和工程实践中关键技术的应用。
在学习方法方面,不但介绍了怎样去学,还详细介绍了软件下载安装、仿真电路的构建、应用程序的编辑,以及程序的下载过程,尤其指明了结合串口调试软件程序的方法,为程序的开发提供极大的帮助;在软件方面,新版教材中,为读者推荐并详细讲解了多款配套应用软件,这些软件可以使读者学习起来更直观、容易,降低学习成本,也使单片机的学习更贴近工程实际。如单片机小精灵在教材中的引入,将会颠覆以前教材中对某些基本能力培养的思想,使读者再也不用花大量时间去计算延时、去配置串口通信参数、去计算定时计数器的参数了;还比如字模软件的使用,让读者可以轻松自如地实现大量多样式汉字和图案的显示。在硬件方面,推荐并详细讲解了多种工程实际中常用的硬件应用方法,提供了开发程序,并对使用头文件进行封装以方便工程应用的思想做出指导;在单片机关键技术方面所论述的内容,多是工程实际中的瓶颈技术,但这些内容在其他教材中鲜有提及,在此可引起读者注意,并给予一定的方向性指导。
本教材在程序的开发上,采用比汇编语言更高级的C语言,使程序的编辑更加得心应手,也更适合于工程开发应用。
本书共分8章,包括绪论、MCS-51单片机的体系结构、MCS-51单片机的C51程序设计、MCS-51中断系统及定时/计数器、MCS-51单片机的串口通信、单片机的系统扩展、单片机的关键技术、MCS-51单片机应用系统的设计。
本书由河南农业职业学院的姚国林副教授任主编,朱卫国和苏闯任副主编,樊留锁、张剑锋、姬素云、王海娜、郑传琴、杨灿、程海洲参加了编写。
本书由河南农业职业学院陈慕君副教授主审。
本书在编写过程中得到了许多专家和同行的大力支持和热情帮助,同时,我们也参考了有关教材、论文和著作,在此一并表示衷心的感谢。
由于新技术在不断涌现、不断发展,同时由于编者水平有限,书中难免会有错误或不妥之处,希望广大同行及读者不吝指正。
编 者
2016.9
第1版前言
单片机作为嵌入式微控制器,在工业测控系统、智能仪器和家用电器中得到了广泛的应用。虽然单片机的种类很多,但MCS-51系列单片机仍然是单片机中的主流机型。
本书以MCS-51系列单片机为主,介绍单片机的原理与应用,内容系统、全面,论述深入浅出、循序渐进,注重接口技术和应用。
本书由从事教学工作的一线教师编写,在编写过程中,融入了作者多年教学、科研的经验和应用案例。从应用的角度出发,对单片机的硬件结构、工作原理、指令系统进行了简明扼要的介绍;对程序设计方法、接口电路设计、应用系统等进行了详细的介绍,并提供了详细的原理图、电路图、完整的程序代码及程序流程图。
本书以单片机应用能力培养为主线,从应用的角度出发,按照”知识为技能服务,技能为综合能力和素质服务”的思想精心组织内容。在教学中,采用”学、练、用”相结合的构架,使学生能够循序渐进地学习和使用单片机,实现学习基础知识与开展课题训练的巧妙融合–在学中做,在做中学,为综合应用打基础;在必要的学习和训练环节结束后,综合运用所学知识,完成工程性实习项目的设计和调试。
本书在编写过程中,承蒙青岛伟立精工塑胶有限公司副总经理王明伟、经理田野给予了帮助和指导,在此特别致谢。
本书共分9章,主要内容包括绪论、单片机系统开发、MCS-51单片机的体系结构、MCS-51指令系统、汇编程序设计、MCS-51中断系统及定时/计数器、MCS-51单片机的串口通信、单片机接口及控制技术、MCS-51单片机应用系统的设计。
本书由河南农业职业学院的姚国林任主编,由河南农业职业学院的苏闯和新乡学院的张同光任副主编。河南农业职业学院的张剑锋、陈慕君、王海娜、郑传琴、史兴燕以及南阳幼儿师范学校的刘海申也参加了编写。
具体编写分工为:郑传琴编写第1章、附录1及附录2,张剑锋编写第2章,张同光编写第3章,陈慕君编写第4章,王海娜编写第5章,刘海申编写第6章,苏闯编写第7章,姚国林编写第8章,史兴燕编写第9章,后由姚国林统稿。
本书由河南农业职业学院卢宇清副教授主审,在审稿过程中提出了许多建设性的建议和意见。本书在编写过程中,得到了许多专家和同行的大力支持和热情帮助,同时,我们也参考了有关教材、论文和著作,在此一并表示衷心的感谢。
鉴于一线教师教研工作繁重,加之新的单片机芯片不断涌现,其应用技术也在不断发展,书中难免会有错误或不妥之处,希望广大同行及读者不吝指正。
编 者
第1章 绪 论
1.2 单片机概述
1.2.1
电子计算机的问世及其经典结构
1946年2月15日,台电子数字计算机ENIAC问世,这标志着计算机时代的到来。ENIAC是电子管计算机,时钟频率仅有100kHz,但能在1秒钟的时间内完成5000次加法运算。与现代的计算机相比,它有许多不足,但它的问世,开创了计算机科学技术的新纪元,对人类的生产和生活方式产生了巨大的影响。
匈牙利籍数学家冯·诺依曼在方案的设计上做出了重要的贡献。1946年6月,他又提出了”程序存储”和”二进制运算”的思想,进一步构建了由运算器、控制器、存储器、输入设备和输出设备组成的计算机经典结构,如图1-1所示。
图1-1 电子计算机的经典结构
1.2.2
微型计算机的组成及其应用形态
1. 微型计算机的组成
1971年1月,Intel公司的特德·霍夫在与日本商业通信公司合作研制台式计算器时,将原始方案的十几个芯片压缩成三个集成电路芯片。其中的两个芯片分别用于存储程序和数据,另一芯片集成了运算器和控制器及一些寄存器,称为微处理器(即Intel 4004)。微处理器、存储器加上I/O接口电路组成了微型计算机。各部分通过地址总线(AB)、数据总线(DB)和控制总线(CB)相连,如图1-2所示。
2. 微型计算机的应用形态
从应用形态上,微机可以分成3种。
(1) 多板机(系统机)。
将CPU、存储器、I/O接口电路和总线接口等组装在一块主机板(即微机主板)上,而将各种适配板卡插在主机板的扩展槽上,并与电源、软/硬盘驱动器及光驱等装在同一个机箱内,再配上系统软件,就构成了一台完整的微型计算机系统(简称系统机)。个人PC机也属于多板机。
图1-2 微型计算机的组成
(2) 单板机。
将CPU芯片、存储器芯片、I/O接口芯片和简单的I/O设备(小键盘、LED显示器)等装配在一块印刷电路板上,再配上监控程序(固化在ROM中),就构成了一台单板微型计算机(简称单板机)。
单板机的I/O设备简单,软件资源少,使用不方便,早期主要用于微型计算机原理的教学及简单的测控系统,现在已很少使用。
(3) 单片机。
在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成了单芯片微型计算机,即单片机。
微型计算机的3种应用形态如图1-3所示。
(a) 系统机 (b) 单板机 (c) 单片机
图1-3 微型计算机的3种应用形态
① 系统机(桌面应用):属于通用计算机,主要应用于数据处理、办公自动化及辅助设计。
② 单板机(嵌入式应用):属于专用计算机,主要应用于智能仪表、智能传感器、智能家电、智能办公设备、汽车及军事电子设备等应用系统。
③ 单片机:体积小、价格低、可靠性高,其非凡的嵌入式应用形态对于满足嵌入式应用需求具有独特的优势。
1.2.3
单片机的发展过程
单片机技术的发展过程可分为3个主要阶段。
1. 单芯片微机形成阶段
1976年,Intel公司推出了MCS-48系列单片机,它包含8位CPU、1KB的ROM、64字节的RAM、27根I/O线和1个8位定时/计数器。
其特点是:存储器容量较小,寻址范围小(不大于4KB),无串行接口,指令系统的功能不强。
2. 性能完善提高阶段
1980年,Intel公司推出了MCS-51系列单片机,它包含8位CPU、4KB的ROM、128字节的RAM、4个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围为64KB,并有控制功能较强的布尔处理器。
其特点是:结构体系完善,性能已大大提高,面向控制的特点进一步突出。现在,MCS-51已成为公认的单片机经典机种。
3. 微控制器化阶段
1982年,Intel推出MCS-96系列单片机,芯片内集成有16位CPU、8KB的ROM、232字节的RAM、5个8位并口、1个全双工串行口、2个16位定时/计数器,寻址范围为64KB,片上还有8路10位ADC、1路PWM输出及高速I/O部件等。
其特点是:片内面向测控系统的外围电路增强,使单片机可以方便、灵活地用于复杂的自动测控系统及设备。
1.2.4
单片机的特点
1. 控制性能好且可靠性高
单片机的实时控制功能特别强,其CPU可以对I/O端口直接进行操作,位操作能力更是其他计算机无法比拟的。另外,由于CPU、存储器及I/O接口集成在同一芯片内,各部件间的连接紧凑,数据在传送时受干扰的影响较小,且不易受环境条件的影响,所以,单片机的可靠性非常高。
近期推出的单片机产品,内部集成有高速I/O口、ADC、PWM、WDT等部件,并在低电压、低功耗、串行扩展总线、控制网络总线和开发方式(如在系统编程ISP)等方面都有了进一步的增强。
2. 体积小、价格低、易于产品化
单片机芯片实际上就是一台完整的微型计算机,对于批量大的专用场合,一方面可以在众多的单片机品种间进行匹配选择,同时,还可以专门进行芯片设计,使芯片的功能与应用具有良好的对应关系;在单片机产品的引脚封装方面,有的单片机引脚已减少到8个或更少,从而使应用系统的印制板减小、接插件减少,安装简单方便。
1.2.5
单片机的应用领域
1. 智能仪器仪表
单片机用于各种仪器仪表,一方面提高了仪器仪表的使用功能和精度,使仪器仪表智能化,同时,还简化了仪器仪表的硬件结构,从而可以方便地完成仪器仪表产品的升级换代。如各种智能电气测量仪表、智能传感器等。
2. 机电一体化产品
机电一体化产品是集机械技术、微电子技术、自动化技术和计算机技术于一体,具有智能化特征的各种机电产品。单片机在机电一体化产品的开发中可以发挥巨大的作用。典型的机电一体化产品包括机器人、数控机床、自动包装机、点钞机、医疗设备、打印机、传真机、复印机等。
3. 实时工业控制
单片机还可以用于各种物理量的采集与控制。电流、电压、温度、液位、流量等物理参数的采集和控制均可以利用单片机方便地实现。在这类系统中,利用单片机作为系统控制器,可以根据被控对象的不同特征,采用不同的智能算法,实现期望的控制指标,从而提高生产效率和产品质量。典型应用如电机转速控制、温度控制、自动生产线等。
4. 分布式系统的前端模块
在较复杂的工业系统中,经常要采用分布式测控系统完成大量的分布参数的采集。在这类系统中,采用单片机作为分布式系统的前端采集模块,系统具有运行可靠、数据采集方便灵活、成本低廉等一系列优点。
5. 家用电器
家用电器是单片机的又一重要应用领域,前景十分广阔,如空调器、电冰箱、洗衣机、电饭煲、高档洗浴设备、高档玩具等。
另外,在交通领域中,汽车、火车、飞机、航天器等均有单片机的广泛应用。如汽车自动驾驶系统、航天测控系统、黑匣子等。
1.2.6
单片机的产品近况
迄今为止,世界上的主要芯片厂家已投放市场的单片机产品多达70多个系列、500多个品种。这些产品从其结构和应用对象方面划分,大致可以分为如下4类。
1. CISC结构的单片机
CISC的含义是复杂指令集计算机(Complex Instruction Set Computer)。CISC结构的单片机数据线和指令线分时复用,称为冯·诺伊曼结构。
属于CISC结构的单片机有Intel公司的MCS-51系列、Motorola公司的M68HC系列、Atmel公司的AT89系列、中国台湾Winbond(华邦)公司的W78系列、荷兰Philips公司的PCF80C51系列等。
2. RISC结构的单片机
采用精简指令集RISC(Reduced Instruction Set Computer)的单片机数据线和指令线分离,具有所谓的哈佛(Harvard)结构。
属于RISC结构的单片机有Microchip公司的PIC系列、Zilog公司的Z86系列、Atmel公司的AT90S系列、韩国三星公司的KS57C系列4位单片机、中国台湾义隆公司的EM78系列等。
3. 基于ARM核心的32位单片机
主要是指以ARM公司的设计为核心的32位RISC嵌入式CPU芯片的单片机。
目前常见的ARM芯片有ARM7、ARM9、ARM10系列。
4. 数字信号处理器
数字信号处理器(Digital Signal Processor,DSP)是一种具有高速运算能力的单片机,与普通单片机相比,DSP器件具有较高的集成度,更快的CPU,更大容量的存储器,内置有波特率发生器和FIFO(先进先出)缓冲器。
目前国内推广应用为广泛的DSP器件是美国德州仪器(TI)公司生产的TMS320系列。
1.3 单片机要怎样学
单片机是以应用为目的、以实践为基础的学科,这就要求学习它的人要有较强的动手能力和求是精神。同时,它涉及的基础学科较多,这也要求学习者对各种基础学科都有一定的了解,并能灵活地应用。
1.3.1
入门单片机类型和编程语言的选择
如前所述,单片机产品已多达70多个系列、500多个品种。在我们初学习时,总需要有一个选择。选择的对象要普遍易得,在市场上有一定的占有率。首先,这意味着这种单片机在当前这一时间段内有一定的实用性,学会了就可以派上用场;其次,普及开来的产品,其资料很多,不是保密的,容易得到,同时,会的人较多,容易获得别人的帮助;后,大众化产品在价格上也易为人们所接受。综上所述,对于单片机入门者来说,较好的选择就是复杂指令集的51系列的8位单片机,它同时具有上述各个特点,来源相当广泛,资料更是多见,这也是各种单片机教材都选择51系列的原因所在。在学习好51系列单片机的基础上,可以触类旁通地去学习更高一级的单片机。
单片机的学习与开发的难易,在较大程度上与编程语言的选择有关系。
就应用汇编语言而言,对于一个入门学员来说,往往在学习单片机的结构、初步应用111条指令和各个寄存器单元之前,就已难到放弃。这也是”单片机课常开,而单片机高手不常有”的原因之一。
单片机的开发语言常用的有汇编语言和C语言,汇编语言与C语言相比,属于低级语言,显然不像C语言那样容易使用。用汇编语言编程,有如我们亲自去做某事;而用C语言编程,有如我们指挥别人去做某事,效率的高低是不言而喻的,同时,C语言还有许多其他的优点(详见第3章)。因此,我们强烈推荐学员采用C语言进行程序设计。但汇编语言也是要学习的,能看懂汇编程序即可。本教材将以C语言程序为主进行讲解。
1.3.2
准备一些硬件
单片机的学习必须以实践为基础,所以少不了各种硬件学习资料。
对于单片机,我们选用C51系列的,此系列中,可选的品牌很多,但一定要买不需要专用编程器、在单片机应用系统中就可以修改程序的,这样的单片机不但修改程序方便,很适合初学者,更重要的是,它的程序存储区可以反复擦写1000至10万次不等,只要你不损坏它,这么多次的擦写,足够学会单片机了。
曾几何时,单片机真的是奢侈品,一个编程器就价格不菲,且那时单片机又是OTP型的,写好写坏只一次,再要修改程序时,就得换一片。
单片机虽是核心,但绝不是全部,没有外围的器件,单片机就失去了存在的价值。我们这里且罗列学习单片机的一些必要设备。
(1) 微型计算机。一台个人微型计算机是必不可少的。从单片机程序的编辑到下载,都少不了它的参与,同时,它也是我们从网络上获得大量资料的重要途径,它还是学习单片机通信时的一个”高大上”的对象。
(2) 九针串口。计算机的九针串口是单片机程序下载时的通信端口,早期的计算机上有配的,现在的计算机上已很少见到,如果必须用,可以在主板上配一个串口卡,也可以买一条USB转串口线。
(3) 单片机实验板,这是我们学习单片机时的一个好用的器件,因价钱的高低不同,本身配备了多少不同的外围器件,可以实现数量不等的功能。可以网购一个,也可以自己动手做一个。刚开始接触单片机的入门者不一定会做出令人满意的实验板,但是可以锻炼动手能力。
(4) 下载线,是从计算机向单片机下载程序时的连接线。如果我们购买了单片机学习板,会配有下载线,并且是USB口的。如果是我们自己做学习板,也可以自己动手做一个下载线,造价不高。
(5) 电源。单片机学习时,常用的是5V直流电源。还可能用到12V和24V直流电源。单独5V直流电源可以用手机充电器代替,这个不难。如果还要配备12V和24V直流电源,也可以用电动车蓄电池串联获得。
除去上述所必需的器件外,还需要万用表(数字的和指针的好各备一块)、逻辑笔、电烙铁、焊油、焊锡、放大镜、起子、小刀、PCB板、手电钻及各型钻头、剥线钳之类。
学习器件可随着自己学习的深入,逐步到手,这些包括各种阻值的电阻、电容、二极管、常用三极管(在单片机外围电路中主要做开关管用,如8050、8550、13005)、常用频率的晶振、各色LED、杜邦线、排针、微动按钮、MAX485通信芯片、拨码盘、七段数码管、移位寄存器74595/74164、1602液晶屏、12864液晶屏、点阵模块、红外接收头和遥控器、步进电机和驱动芯片、微型直流电机、直流继电器、SSR、220V交流接触器、18B20温度传感器、AM2303温湿度传感器、电感式接近开关、光电式接近开关、PT2262/2272及发送接收模块、语音芯片、SD卡等。
综上所述,东西虽多,却不一定都要拿钱去买。其一,平时多注意收集破旧电器上的元件,也可以拿自己多余的去跟同行交换,取长补短、互通有无;其二,许多元件,如果仅仅是为了掌握,不需要实物,可以通过仿真软件学习,有一台计算机就行了。
1.3.3
准备一些软件
单片机的学习离不开众多软件的参与。
(1) 首先是编译软件。较为多用的是Keil编译软件,也可以用WAVE6000,但WAVE6000编译C语言程序时要结合Keil才可以,实际应用时,因个人习惯而异。
同时,这两个软件都具有仿真功能,但与专业仿真软件相比不够”真”。专业的编译、仿真与制板软件Proteus是一款不可多得的多功能软件,可以对电工、电子、信号分析和单片机电路进行仿真,还可以进行PCB的设计,建议一定要把这一款软件学习好。
(2) 单片机程序下载软件一定要与单片机的品牌种类及下载线配套,否则,程序是万难写进单片机的;在购置单片机时,就必须考虑这个问题;可以向销售商或生产厂家索取,一般在对应品牌的官网上可以下载。
(3) 串口调试软件是在调试单片机串口异步通信时一个很重要的辅助软件,同时,也可以直接把它作为单片机在计算机上的一个显示窗口,把我们想看到的数据在这个软件界面上显示出来。鉴于此,现在有些下载程序的软件也集成有串口调试功能。
(4) 单片机小精灵是我们进行单片机开发设计时的一个强有力的帮手,可以节省很多时间和提高程序的正确率。
(5) 字模软件与PicToCode软件是开发学习LED点阵以及图形LCD所必需的软件。
(6) VB软件是实现单片机与计算机高端通信所必需的一个易于上手的软件,在开发高端应用系统时,不但可以用于设计一个友好的界面,还可以在程序开发时,用于显示我们所关心的某些数据,以便及时发现程序错误和缺陷,缩短程序开发周期。
(7) WinHex,这是学习SD卡与U盘时的一个得力助手。
上述这些软件基本上不需要我们花钱去买,但需要我们花一点时间从网上下载,花较多的时间去学习和研究。
1.3.4
单片机的学习过程
单片机的学习过程也就是学习各种软件和硬件应用的过程。
学单片机不讲求”万事俱备只欠东风”。不要等着C语言学好了、汇编语言学好了、英文学好了、计算机知识掌握了、电子技术精通了、单片机结构弄懂了、什么硬件都准备齐了再去动手,那样是学不好单片机的。学单片机切忌空谈。纯理论上的学习不叫学习,要边学边练。针对一个实例,抱着不达目的誓不罢休的态度,什么不会就去翻书、到网上查找、请教老师同学,如此才会有长进。
对于软件,准备一台计算机,把前面所述的软件都下载并安装了。其中会有不少是英文版的。也许你的英文并不好,即便是好,如果没有学过这方面的专业英语,也会有难度,但是可以汉化,由于汉化的深度不够,英文还是很多,可以下载并安装一个金山词霸,打开屏幕取词功能,问题也就解决了。
对于相关专业的基础知识,能掌握多少则因人而异。但是,各相关专业都准备一本书总是可以的,或者就是有一条网线也足够了(可以上网搜索)。
对于单片机,就视其为我们通用的个人计算机就行。”麻雀虽小,五脏俱全。”单片机中同样有自己的ROM、RAM和CPU,有输入输出端口,还会有一些PC机所没有的东西。只是外围的东西需要去配置,内部的程序需要去编辑;后结合课本或者其他资料实例,在编译软件中一个个地输入程序,编译出十六进制机器码,直接结合Proteus或用下载线和下载软件下载到实验板单片机中验证,并在得到验证的基础上,学会自己修改一些运行参数和功能,终学会自己编写完整的程序。
在学习的过程中,会遇到许多复杂的硬件,诸如多位动态显示数码管、1602液晶屏、12864液晶屏、18B20、AM2303、DS1302等。针对这些东西,也许你花了不少时间把软件开发出来了,之后要结合其他功能一块儿应用,这时怎么办?把原来开发出来的程序再复制粘贴到新的文件里去么?不要这样,太麻烦了。
我们可以在初开发好一个硬件应用程序的时候,就把它做成头文件,并在文件里说明它需要的软件和硬件资源、需要的初始化子程序、需要的应用子程序。在新的程序里需要这样的硬件时,只须把这个头文件包含在新的程序头中,即可在初始化时调用初始化子程序,在应用时调用应用子程序。你会发现,原来几十到数百行的某个硬件的应用程序,这里只几行就可以了,这才是真正的开发,是学习单片机的真谛。
1.3.5
在Proteus中搭接电路
以下以一个简单的在单片机的P2口连接8只LED的实例,来说明在Proteus中搭接实验电路的入门级应用方法。
1. 软件中几个常用的工具
对于左上角缩略图中的绿色方框,可用鼠标在平面内全方位拖动,用于调整工作区域的显示中心。
对于工具条中的个工具,选中后,在工作区域的任何位置单击,该处将变成显示中心;对于第二、第三个工具,将以当前中心为基准进行工作区域的放大与缩小,鼠标滚轮也具有此功能;第四个工具用于缩放复位,即无论当前工作区域有多大、多小,中心在何位置,单击此工具时,工作区域都会缩放到正好一屏;第五个工具用于执行局部放大。
对于工具条中的这四个工具,需要在选中对象(单个或多个)后才能激活。个为复制工具,选中复制对象,再单击此工具,之后在需要的地方单击放置,单击一次可复制一个,单右键解除此功能。第二个为移动工具,仅在元件上定义有单击功能时需要,如按钮。这是右键菜单上的个工具。第三个为旋转工具,相当于右键菜单上的第4~8个工具,用于元件的旋转与镜像。第四个为删除工具,用于删除不需要的对象。用右键双击对象,可进行快速删除。
2. 元件选取
安装后打开Proteus软件,如图1-4所示,单击选择”元件模式”图标,再单击”从元件库选择”图标,弹出右侧的对话框,包含总目录、子目录、制造商以及右侧的选择结果。单击总目标录中的,再单击子目录中的,即可选择51系列的单片机,如果仅从仿真的角度来说,选择一个配置的单片机,在仿真时可以满足绝大多数的需要。在此,我们单击选择AT89C55,再单击右下角的OK按钮确认,之后可以在工作区域中的合适位置单击放置。可以放置多个,单击左上角的选择模式按钮,即可退出放置模式。
图1-4 Proteus元件库中元件的选择
按照同样的方法,分别再选择放置LED与限流电阻,LED为类别,电阻为类别。如果仅用于仿真,电阻的型号和阻值都不用精选,可任选一个,放置在工作区域后,双击打开其属性对话框,从中把阻值修改成自己需要的即可。
然后选择电路端子。单击端子工具,分别选择并在电路中放置DEFAULT、POWER、GROUND三种端子。
选取元件时,也可以通过左上方的关键词Keywords对话框进行选择,方便快捷。
3. 元件布置与连接
通过元件旋转与拖动,把默认端子、二极管和限流电阻布置成如图1-5左侧所示的样式,之后,在选择模式下,光标靠近元件终端时,会变成铅笔(鼠标连线笔)样式,单击并移动到需要连接的终端,再单击,即可完成两个终端的电气连接,如右侧图所示。
图1-5 元件位置布置与连接
用鼠标画方框,选中连接好的串联电路,再单击”复制”按钮,并选择合适位置,依次单击,即可复制出所需要的8个并联电路,后在右侧把电源端子连接上。依次双击每一个默认端子,把其名称改为p20~p27。用鼠标画方框,选中所有8个端子,复制粘贴到P2的右侧,再用镜像和移位工具,使各终端与P2口对齐,之后用电气连接线一一连接,即完成了所有电气连接,效果如图1-6所示。
图1-6 元件布置与连接效果
从图1-6中可以看出,单片机还没有电源、晶振与复位电路,也没有上拉,能工作吗?可以的,单片机模型本来如此,不需要连接电源和地,外部电源端子默认就是 5V,需要时,可以双击修改,地端子需要就添加,不需要完全可以没有;晶振也如电源一样,完全可以没有。当然,也可以添加上去,修改其频率时,只需双击单片机,即可在对话框中任意修改。复位电路也是一样,需要就添加,不需要可以没有,上电同样会复位的。后需要注意的是:需要连接的元件终端必须要用鼠标连线笔进行连线,只是位置上的重叠实现不了电气上的连接。
图1-6中,是采用相同标号的端子的方法进行连接的。只要几个终端具有相同标号的端子,就实现了电气上的连接。当然,也可以直接用电气连线进行连接,但这种方式在界面上元件多时,连线密密麻麻,效果很不好。
4. 程序写入
双击单片机,在弹出的对话框的对应项处,单击文件夹,从合适路径上找到需要仿真的程序,单击右上角的OK按钮,对话框退出,就完成了程序的”写入”。
5. 程序的仿真
通过单击左下角的运行、步进、暂停和停止按钮,可进行程序的仿真,如果页面上有错误,会弹出对话框,需要根据提示进行修改,如果没有错,可以在步进模式下,右击单片机,在后行的下拉菜单上可以看到单片机RAM与特殊功能寄存器的值。程序仿真之后,可进行保存,以备后用。
这些只是Proteus基本的应用,其功能和我们实际所需远不止于此,可参阅Proteus专业资料进行学习。
1.3.6
程序的编译
学习C51单片机时,程序的编译软件可用的有WAVE6000和Keil,由于Keil在开启新文件编译前的设置过于繁琐,我们以简单易用的WAVE6000为例进行说明。
1. WAVE6000编译前的设置
(1) 编译器路径设置。
如果要进行C语言程序编译,需要同时安装Keil,并需要进行如下设置:仿真器、仿真器设置、语言、编译器路径(C:KeilC51),Keil不在C盘安装时,要指明路径。
(2) 目标文件设置。
目标文件的设置路径如下:仿真器→仿真器设置→目标文件。地址选择有两个选项可选,较好的选择为,如此,不但不需要知道当前单片机ROM的结束地址,而且生成的程序相对较短,写单片机时可以很快写完;后三个选项中,勾选后两个好,,BIN文件与HEX文件等效,一个HEX即可,第二,未用程序存储器写入0x00(空操作)是较好的选择。
(3) 仿真器设置。
需要说明的是,我们只是用这个软件进行程序的编译,没有真的仿真器,也不进行仿真,这个设置只是为了迎合我们实验所用单片机而选,所以在设置中,只要所选单片机的配置高于或等效于我们的实际需要即可,设置路径为仿真器→仿真器设置→仿真器。
2. 编译
选择”文件”→”打开文件”菜单命令,或单击”打开文件”按钮,即可打开一个存在的文件,而选择”文件”→”新建文件”,或单击”新建文件”按钮,即可打开一个新的界面,新建一个文件。
新的文件编辑后,单击左上角的”编译”按钮,如果文件还未保存过,会弹出”保存”对话框,此时,选择保存路径和文件名及扩展名,如果用C语言编程扩展名,需要为”.C”,用汇编语言编程扩展名为”.ASM”,保存之后,再单击”编译”按钮,即会对程序编译,如果程序格式正确(左下角信息提示栏只显示对号),会在C文件相同的路径上生成HEX文件,这就是我们要写入单片机的十六进制文件;如果程序格式不正确,会有相应的提示,可针对性地修改。
1.3.7
程序的下载
编译好的HEX或BIN文件需要下载到单片机才能运行,此时,需要有支持目标单片机的下载软件,还需要有支持软件的下载线。下面以STC系列单片机为例进行说明。
所用的下载线硬件可以自制,并与计算机的串口连接好,如果是开发板,则用其配置的下载线。
下载并安装好STC-ISP软件后,双击打开如图1-7所示的界面。
图1-7 STC-ISP下载界面
做好以下三项选择。
步骤1:选择单片机型号。从下拉选项中选择要下载程序的目标单片机类型,否则不会下载成功。
步骤2:打开文件。这个也就是要下载到单片机的目标文件,从打开的路径上找到我们要下载到单片机的HEX或BIN文件并确定,之后,会在程序文件缓冲区看到打开的十六进制文件,如果需要,还可以进行编辑。
步骤3:选择串行口、波特率。无论你用的是计算机的9针串口还是USB转串口线,都可以通过右击”我的电脑”,在快捷菜单中选择”管理”→”设备管理器”→”端口”查看,之后从”端口”下拉菜单中选择即可。端口不可以复用,如果还有别的软件(如VB、另外一个串口助手)占用这一个端口,在下载时会提示端口被占用,此时,需要退出另一个软件。本软件的串口占用时,一旦有下载任务,会自动退出。
以上这三项是保证下载程序成功的基本选项,是必须做的。其他选项可根据需要选择。需要说明的是,此界面上的某些选项会因所选择单片机型号的不同而有所不同。
下载程序前,单片机需要处于断电状态,各选项选择好后,即可单击按钮下载。此时,如果选中的端口可用,右侧的指示灯会由灰色变成绿色,否则会提示当前串口状态。稍等片刻后,会提示,此时再给单片机上电,数秒钟程序即可下载完毕,并给出类似图1-8的提示。
图1-8 程序下载成功的提示
习 题 1
一、简答题
(1) 什么是BCD码和ASCII码?
(2) 什么是原码、反码和补码?为什么要采用补码运算?
(3) 什么是定点数和浮点数?
(4) 根据冯·诺依曼的”存储程序”的思想,微型计算机由哪几部分构成?
(5) 微处理器与微型计算机有何区别?
(6) 什么叫单片机?其主要特点有哪些?
(7) 微型计算机有哪些应用形式?各适用于什么场合?
(8) 当前单片机的主要产品有哪些?各有何特点?
二、计算题
(1) 将下列十进制数分别转化为二进制数和十六进制数:
113
56.125
73.75
(2) 将下列二进制数分别转化为十进制数和十六进制数:
110101.101
10110101
10011111.01
(3) 将下列十六进制数分别转化为十进制数和二进制数:
3AE
24.7C
318
三、实践题
(1) 请从网上查找了解单片机种类的资料,并把它下载和记录下来。
(2) 请从网上下载并安装常用的软件Proteus,从元件库中找到80C58单片机,以及LED、电容、电阻、电源、接地等常用元件,并把它保存为模板。
(3) 配合Proteus软件,金山词霸也是必需的,请下载和安装。
(4) 单片机程序编译软件常用的是Keil,请下载并安装。
(5) 在编制程序时,单片机小精灵对我们有很大的帮助,请从网上下载备用。
(6) 计算机通过P3.0和P3.1引脚,给单片机下载程序和连接串行通信用的数据线,实际上其内部是一个电平转换器,在RS232与TTL电平之间相互转换,可以用专用的芯片来实现,也可以用散件组装来实现,图1-9和1-10是这两种电路图。请准备元件,把它焊接成电路以备后用。散件与集成电路相比不太美观,但实践证明非常可靠。
图1-9 PC机与单片机通信用的数据线原理图(采用专用芯片)
图1-10 PC机与单片机通信用的数据线原理图(采用散件)
评论
还没有评论。