• 沒有找到結果。

C51 单片机编程环境与机器人智能

单片机与C51系列单片机

什么是单片机?

一台能够工作的计算机要有这样几个部份:CPU(Central Processing Unit,中央处理单 元:进行运算、控制)、RAM(Random Access Memory,随机存储器:数据存储)、ROM(Read Only Memory,只读存储器:程序存储)、输入/输出设备(串行口、并行口等)。在个人计算 些品种,如8031,8051,8751 等,其中 8051 是最典型的产品,该系列单片机都是在 8051 的基础上进行功能的增、减、改变而来的,所以人们习惯于用 8051 来称呼 MCS51 系列单

AT89S52 是一种高性能、低功耗的 8 位单片机,内含 8k 字节 ISP(In-system Programmable,

系统在线编程)可反复擦写1000 次的 FLASH 只读程序存储器,器件采用 ATMEL 公司的高

二进制的位,而非十进制的位。AT89S528位的单片机,意味着它如果要处理16位数据 的话就应该分两次处理。

嵌入式系统

嵌入式系统是指嵌入到工程对象中能够完成某些相对简单或者某些特定功能的计算机 系统。与从8位机迅速向16位、32位、64位过渡的通用计算机系统相比,嵌入式系统有其 功能的特殊要求和成本的特殊考虑,从而决定了嵌入式系统在高、中、低端系统三个层次共 存的局面。在低端嵌入式系统中,8位单片机从20世纪70年代初期诞生至今还一直在工业 生产和日常生活中广泛使用。

嵌入式系统嵌入到对象系统中,并在对象环境下运行。与对象领域相关的操作主要是对 外界物理参数进行采集、处理,对对象实现控制,并与操作者进行人机交互等。

鉴于嵌入式低端应用对象的有限响应要求、嵌入式系统低端应用的巨大市场以及8位机

具有的计算能力,可以预测在未来相当长的时间内,8位机仍然是嵌入式应用中的主流机型。

早期的单片机应用程序开发通常需要仿真机、编程机等配套工具,要配置这些工具需要 一笔不小的投资。本教材采用的AT89S52,不需要仿真机和编程机,只需运用 ISP 电缆就可 以对单片机的FLASH 反复擦写 1000 次以上,因此使用起来特别方便简单,尤其适合初学 者使用,而且配置十分灵活,可扩展性特别强。

In-system ProgrammableISP,系统在线编程)

In-system programmable 是指用户可把已编译好的程序代码通过一条“下载线”直接写

入到器件的编程(烧录)方法,已经编程的器件也可以用ISP方式擦除或再编程。ISP所用

的“下载线”并非不需要成本,但相对于传统的“编程器”成本已经大大下降了。通常FLASH

型芯片会具备ISP下载能力。

本教材将引导你如何运用 AT89S52 作为机器人的大脑制作一款教育机器人,并采用 C 语言对AT89S52 进行编程,使机器人实现下述四个基本智能任务:

1.安装传感器以探测周边环境;

2.基于传感器信息做出决策;

3.控制机器人运动(通过操作带动轮子旋转的电机);

4.与用户交换信息;

通过这些任务的完成,使你在无限的乐趣之中,不知不觉地掌握 C51 单片机原理与应 用开发技术,以及C 语言程序设计技术,轻松走上嵌入式系统开发之路。

为了方便单片机微控制器与电源、ISP 下载电缆、串口线以及各种传感器和电机的连接,

需要制作一个电路板,并将单片机插在教学板上,如图 1-1 所示。本教材将此电路板叫做教 学板。

图 1-1 C51 单片机教学板

机器人与C51单片机

图 1-2 所示的是本教材使用的机器人工程对象,它采用 AT89S52 单片机作为大脑,通过 教学板安装在机器人底盘上。本教材将以此机器人作为典型工程对象,完成上节提到的机器 人所需具备的四种基本能力,使机器人具有基本的智能。本教材假设你已经学习过《基础机 器人制作》课程,并已经组装好该机器人的机械套件和伺服电机,且已经调试好了机器人伺 服电机的零点。如果没有学习过《基础机器人制作与编程》,也不要紧,可以在边学习该课 程的同时,参考《基础机器人制作与编程》的相关章节,在后面的任务中,如果需要,会给 出相关指引。

图 1-2 采用 C51 单片机的机器人

本章首先通过以下步骤告诉你如何安装和使用 C51 单片机的 C 语言编程开发环境,如何 开发第一个简单机器人程序,并在机器人上如何运行你写的这个程序。本章的具体任务包括:

z 寻找并安装开发编程软件

z 连接机器人到电池或者供电的电源

z 连接单片机教学板 ISP 接口到计算机,以便编程 z 连接单片机教学板串行接口到计算机,以便调试和交互

z 运用 C 语言初次编写少量的程序,运用编译器编译生成可执行文件,然后下载到单片 机上,通过串口观察机器人上的单片机教学板的执行结果

z 完成后断开电源

任务一 获得软件

在本课程的学习中,你将反复用到三款软件:Keil uVision2 IDE 集成开发环境、SL ISP 下载软件、串口调试软件等。

1.Keil uVision2 IDE 集成开发环境

该软件是德国 KEIL 公司出品的 51 系列单片机 C 语言集成开发系统。如果你已经学习过

《基础机器人制作与编程》,并掌握了 PBASIC 语言编程思想和基本技能,你将会发现,C 语言在语法结构上更加灵活,功能更加强大,但同时学习和理解起来也稍困难些。

你可以在KEIL公司的网站www.keil.com上获得该软件的安装包。

2.SL ISP软件下载工具

该软件是广州天河双龙电子有限公司推出的一款ISP下载软件,使用该软件你可以将可 执行文件下载到你的机器人单片机上。该软件的使用需要你的计算机有并行口。

3.串口调试软件

如今有两大著名的搜索引擎,国内的www.baidu.com,全球的www.google.com,只要你输 入关键字,你就可以找到相关的任何东西;比如你想找Keil软件,你可以先打开google网,

然后输入关键字“Keil 下载”,你就可以找到很多相关的网站。如 http://bbs.mcu123.net/bbs/dispbbs.asp?boardID=7&ID=6352&page=1

任务二 安装软件

到目前为止,你已从网站上,或从教材配套光盘中获得了软件安装包。在教材配套光盘 中提供了几个文件夹,它们分别是 Keil uVision2 安装包、ISP 软件安装包、串口调试终端、

头文件和本书例程的源码。

软件的安装很简单,与你安装的其他软件过程一样。

安装 Keil uVision2

1. 执行 Keil uVision2 安装程序,选择安装 Eval Version 版进行安装

2. 在 后 续 出 现 的 窗 口 中 全 部 选 择 Next 按 钮 , 将 程 序 默 认 安 装 在 C:\Program Files\Keil 文件目录下

3. 将光盘“头文件”文件夹中的文件拷贝到 C:\Program Files\Keil\C51\INC 文件夹 里

Keil uVision IDE 软件安装到你的电脑上的同时,会在你的计算机桌面建立一个快捷 方式。

如果你使用的是 Windows98 操作系统,在使用该适配器 调试程序前,你还需要给适配器安装驱动程序,相关步骤请 按照适配器硬件和软件安装说明书进行。如果是 Windows2000 以上的操作系统,则通常可以直接使用,无需安装驱动程序。

1-3 USB 转串口适配器

图 1-4 ISP 下载线

机器人程序通过连接到 PC 机或者笔记本电脑的并口上的 ISP 下载线来下载到教学板上 的单片机内。图 1-4 所示为 ISP 下载线。下载线一端连接到 PC 机或者笔记本的并行接口上,

而另一端(小端)连接到教学板上的程序下载口上。

电池的安装

本教材使用的机器人采用五号碱性电池给机器人电机和教学板供电,在继续下面的任务 前,请先检查机器人底部电池盒内是否已经装好电池,并是否有正常的电压输出。如果没有,

请更换新的电池。更换过程中,确保每颗电池都按照塑料盒子里面标记的电池极性(“+”

和“-”)方向装入。

给教学板和单片机进行通电检查

教学底板上有一个三位开关(见图 1-5),当开 关拨到“0”位断开教学底板电源。无论你是否将电 池组或者其它电源连接到教学底板上,只要三位开 关位于“0”位,那么设备就处于关闭状态。

现在将三位开关由“0”位拨至“1”位,打开 教学板电源,如图 1-6 所示。检查教学底板上标有

“Pwr”的绿色 LED 电源指示灯是否变亮。如果没有,

检查电池盒里的电池和电池盒的接头是否已经插到 教学板的电源插座上。

开关“2”你将会在后续章节中用到。将开关拨至“2”后,电源不仅要结教学板供电,

同时还会给机器人的执行机构——伺服电机供电,同样的,此时绿色 LED 电源指示灯仍然会 变亮。

任务四 你的第一个程序

你编写和测试的第一个 C 语言程序将告诉 AT89S52 单片机控制器,让它在执行程序时发 送一条信息给 PC 机(或笔记本电脑)。

创建与编辑你的第一个程序

双击 Keil uVision IDE 的图标,启动 Keil uVision IDE 程序,你会得到图 1-7 所示的 Keil uVision2 IDE 的主界面。通过用 Project 菜单中的 New Project 命令建立项目文件,

过程如下:

1-5 处于关闭状态的三位开关

1-6 处于 1 位状态的三位开关

1-7 Keil uVision IDE的主界面

1. 点击 Project,会出现图 1-8 所示的菜单画面,然后选择“New Project”,将出 现图 1-9 所示对话框。

1-8 Project菜单画面 图1-9 Create New Project对话框

2. 在文件名中输入如“HelloRoBot”,保存在你想保存的位置(如 D:\中级机器人制 作与编程\程序\Chapter 1),可不用加后缀名,点击“保存”,后会出现图 1-10 所示的窗口。

3. 这里要求我们选择芯片的类型,Keil uVision2 IDE 几乎支持所有的 51 核心单片 机,并以列表的形式给出。本教材使用的是 Atmel 公司的 AT89S52,在 Keil uVision2 IDE 提供的数据库(Data base)列表中找到此款芯片,然后点击确定,会出现图 1-11 所示的窗口,询问你是否加载 8051 启动代码,在这里我们选择“否”,不加载。

(如果你选择“是”,对你的程序没有任何影响。若你感兴趣,可选择“是”,看 看编译器加载了哪些代码。)之后会出现图 1-12 画面,此时即得到了项目文件。

图 1-10 单片机型号选择窗口

图 1-11 是否加载 8051 启动代码提示窗口 图 1-12 目标工程窗口 项目文件创建后,这时只有一个框架,紧接着需要向项目文件中添加程序文件内容。Keil

图 1-11 是否加载 8051 启动代码提示窗口 图 1-12 目标工程窗口 项目文件创建后,这时只有一个框架,紧接着需要向项目文件中添加程序文件内容。Keil