单片机和微控制器
一台能够工作的计算机包括CPU(Central Processing Unit,中央处理单元:进行运算、控制)、RAM(Random Access Memory,随机存储器:数据存储)、ROM(Read Only Memory,只读存储器:程序存储)、输入/输出设备(串行口、并行口等)。在个人计算机上这些部分被分成若干块芯片或者插卡,安装在一个称之为主板的印制线路板上。而在单片机中,这些部分全部被做在一块集成电路芯片中,因此被称为单片机。单片机真正需要工作,还需要稳定的电源、晶振、外部存储器和编程调试接口,就像计算机需要工作也还需要电源、晶振、硬盘或其他大容量外部存储器和操作系统一样。微控制器就是将单片机真正能够独立工作所需的电源适配器、晶振、外部存储器和串口转换电路等部门封装到一个模块上,这样,微控制器就能够直接与PC连接进行编程开发,教学板上几乎没有任何其他的芯片和电路。
学习单片机的意义
与个人计算机、笔记本电脑相比,单片机的功能是很小的。实际生活中并不是任何需要计算机的场合都要求计算机有很高的性能,比如空调温度的控制、冰箱温度的控制等都不需要很复杂很高级的计算机。关键是看是否够用,是否有很好的性能价格比。
单片机具有体积小、质量轻、价格便宜等优势,已经渗透到我们生活的各个领域:导弹的导航装置、飞机上各种仪表的控制、工业自动化过程的实时控制和数据处理、广泛使用的各种智能IC卡、民用豪华轿车的安全保障系统、录像机、摄像机、全自动洗衣机、程控玩具、电子宠物等,更不用说自动控制领域的机器人、智能仪表和医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用、嵌入式系统设计与智能化控制的科学家和工程师,同时,学习使用单片机也是了解通用计算机原理与结构的最佳选择。
嵌入式系统
嵌入式系统是指嵌入到工程对象中能够完成某些相对简单或者某些特定功能的计算机系统。与从8位机迅速向16位、32位、64位过渡的通用计算机系统相比,嵌入式系统有其功能的特殊要求和成本的特殊考虑,从而决定了嵌入式系统在高、中、低端系统三个层次共存的局面。在低端嵌入式系统中,8位单片机从20世纪70年代初期诞生至今还一直在工业生产和日常生活中广泛使用。
嵌入式系统嵌入到对象系统中,并在对象环境下运行。与对象领域相关的操作主要是对外界物理参数进行采集、处理,对对象实现控制,并与操作者进行人机交互等。
鉴于嵌入式低端应用对象的有限响应要求、嵌入式系统低端应用的巨大市场,以及8位机具有的计算能力,可以预测在未来相当长的时间内,8位机仍然是嵌入式应用中的主流机型。
C51系列单片机
一提到单片机,就会经常听到这样一些名词:MCS51、8051、C51等,它们之间究竟是什么关系呢?
MCS51是指由美国INTEL公司生产的一系列单片机的总称。这一系列单片机包括很多品种,如8031、8051、8751等,其中8051是最典型的产品。该系列单片机都是在8051的基础上进行功能的增减和改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机。
INTEL公司将MCS51的核心技术授权给了很多公司,所以许多公司都在做以8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求。其中较典型的一款单片机AT89C51(简称C51)是由美国ATMEL公司以8051为内核开发生产的。本书使用的AT89S52单片机就是在此基础上改进而来的。
AT89S52是一种高性能、低功耗的8位单片机,内含8K字节ISP(In-system Programmable,系统在线编程)可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS51指令系统及其引脚结构。在实际工程应用中,功能强大的AT89S52已成为许多高性价比嵌入式控制应用系统的解决方案。
早期的单片机应用程序开发通常需要仿真机、编程机等配套工具,要配置这些工具需要一笔不小的投资。本书采用的AT89S52不需要仿真机和编程机,只需运用ISP电缆就可以对单片机的Flash反复擦写1000次以上,因此使用起来特别方便简单,尤其适合初学者使用,而且配置十分灵活,可扩展性特别强。
In-system Programmable(ISP,系统在线编程)
In-system Programmable是指用户可把已编译好的程序代码通过一条“下载线”直接写入到器件的编程(烧录)方法,已经编程的器件也可以用ISP方式擦除或再编程。ISP所用的“下载线”并非不需要成本,但相对于传统的“编程器”成本已经大大降低了。通常Flash型芯片会具备ISP下载能力。
本书将引导你如何运用AT89S52作为机器人的大脑制作一款教育机器人,并采用C语言对AT89S52进行编程,使机器人实现下述4个基本智能任务。
(1)安装传感器以探测周边环境;
(2)基于传感器信息做出决策;
(3)控制机器人运动(通过操作带动轮子旋转的电机);
(4)与用户交换信息。
通过这些任务的完成,使你在无限的乐趣之中,不知不觉地掌握C51单片机原理与应用开发技术,以及C语言程序设计技术,轻松走上嵌入式系统开发之路。
为了方便单片机与电源、ISP下载电缆、串口线,以及各种传感器和电机的连接,需要制作一个电路板,并将单片机插在该电路板上,本书将此电路板叫做教学板,如图1-1所示。
图1-1 C51单片机教学板