
本书将教学机器人引入单片机课程,采用基于系统化项目的教学方法,将单片机的I/O端口资源、定时器和中断系统、键盘接口技术、A/D和D/A扩展等教学内容融入循序渐进的教学机器人制作和比赛项目中,使读者直接在项目应用和比赛过程中学习单片机技术,提升学习效率,最后通过归纳总结,获得整个机器人单片机应用系统设计的知识和技能。本书所有项目都使用C语言作为开发语言,这样可以使读者进一步强化C语言学习效果,同时在毕业时具备应用C语言和单片机完成机器人应用系统开发的能力。本书打破了传统的单片机教学方法和教学体系结构,解决了单片机课程抽象、难学和学习效果差的难题。本书可作为应用型本科、高职院校“单片机技术及应用”或“机器人制作与开发”相关课程的教材和教学参考书,也可作为工程训练和单片机、机器人课程设计的实践教材及相关专业课程的综合实践教材,同时可供广大希望从事嵌入式系统开发和单片机C语言程序设计的学生自学使用。
前 言 新工科是以互联网、大数据和云计算等为代表的现代信息技术与传统工程学科结合产生的新兴工程学科,包括智能制造、智慧城市、智能交通、智能物流和智慧农业等。新工科的核心是机器人和智能装备。相对于传统的工科内核,新工科机器人工程专业要在原有工科内核的基础上增加人工智能和系统集成,而人工智能则是系统集成的灵魂。 无论是人工智能还是系统集成,都离不开计算机软件(编程)和硬件。从现有的技术角度来讲,所有的人工智能基本上都是通过计算机系统实现的,而所有系统集成的核心也是计算机软件和硬件。因此,无论将计算机应用系统设计能力提高到新工科人才要求的何种高度,都不为过。现在新工科专业无法实现创新人才培养的瓶颈就在于学生创新系统设计能力的缺失。 要想真正具备创新系统设计能力,不能只学习应用软件的设计,还必须深入计算机内部,真正了解和掌握计算机硬件的原理,开发出高质量的应用系统。新工科建设之路·机器人技术与应用系列教材编委会经过几次集中研讨,在综合了卓越工程师计划和CDIO 教学成果的基础上,博采众长,决定出版一套循序渐进的教材,如表1所示。 表1 新工科建设之路·机器人技术与应用系列教材 序号 课程名称 教材名称 面向层次 1 C语言程序设计 《机器人程序设计(C语言)》(第2版) 本科(大一) 2 单片机技术及应用 《机器人制作与开发(单片机技术及应用)》(第2版) 本科(大二上) 3 移动机器人基础 《移动机器人基础—基于STM32小型机器人》 本科(大三)、高职毕业设计 4 工业机器人基础 《工业机器人系统设计》 本科(大三) 5 机器人系统设计 《机器人系统设计—基于STM32小型机器人》 本科毕业设计、综合实践课程设计 6 机器视觉 《机器视觉》 本科(大三、大四) 7 机器人操作系统 《机器人操作系统ROS应用实践》 本科(大三) 8 智能机器人系统设计 《中型智能移动机器人设计与制作》 本科毕业设计、综合实践、课程设计 系列教材严格遵循了循序渐进、赛学合一、以终为始和全面综合的编写原则,是一个有机的整体,旨在为培养创新型人才提供帮助。 本书创造性地以机器人作为单片机的应用开发平台,以C 语言作为开发语言,辅以比赛机器人作为综合实践对象,将单片机技术及应用的学习与一系列循序渐进的趣味机器人项目结合起来,寓教于乐,化被动学习为主动学习,提高单片机技术及应用课程的教学效率和教学水平,帮助学生全面掌握嵌入式机器人创新系统的设计能力。 秦志强
目 录 第1章 单片机最小系统及其搭建 1 单片机最小系统 1 搭建AT89S52单片机最小系统所需的元件清单 1 任务1.1 AT89S52单片机最小系统的搭建 2 时钟电路的搭建 2 复位电路的搭建 3 下载电路的搭建 4 电源电路的搭建 4 任务1.2 用搭建的最小系统控制两轮机器人运动 5 编写单片机最小系统控制两轮机器人运动的程序 6 扩展阅读 8 单片机的内部结构 8 AT89S52单片机的引脚功能 9 工程素质和技能归纳 11 科学精神的培养 11 第2章 单片机并行I/O端口应用——机器人信息显示 12 任务2.1 控制8个LED闪烁 12 电路设计和搭建 12 控制8个LED闪烁的源程序 13 任务2.2 流水灯控制 14 流水灯的源程序 14 任务2.3 数码管显示 15 LED数码管简介 15 电路设计和搭建 17 共阴数码管显示的源程序 17 任务2.4 字符型液晶显示(LED)模块和广告机器人的制作 18 字符型LCD1602模块简介 19 电路设计和搭建 20 LCD1602模块的源程序 20 扩展阅读 24 LCD1602模块的引脚功能 24 教学板的制作 25 工程素质和技能归纳 25 科学精神的培养 26 第3章 定时器和中断系统——机器人速度测量与控制 27 任务3.1 简易数字编码器的安装和电机转速的测量 27 简易数字编码器介绍 27 简易数字编码器的测速原理 28 简易数字编码器的安装 28 用简易数字编码器进行电机转速的测量 30 任务3.2 用PID控制算法控制小车速度 34 PID控制算法简介 34 PID控制算法的编程实现 36 基于PID控制算法的速度控制 36 任务3.3 简易里程计的设计 43 简易里程计设计原理 43 简易里程计的程序设计 43 扩展阅读 47 T0和T1的工作方式寄存器TMOD 47 T0和T1的控制寄存器TCON 48 T0和T1的计数寄存器TH0、TL0和TH1、TL1 48 T2的T2CON寄存器和T2MOD寄存器 48 T2的T2CON寄存器 49 T2的模式控制寄存器T2MOD 49 捕获方式 50 中断相关知识及中断寄存器介绍 50 3个定时/计数器的初始化与中断函数 52 工程素质和技能归纳 53 科学精神的培养 53 第4章 单片机计时与键盘接口技术——机器人计时 54 任务4.1 用8位八段数码管制作简易秒表 54 8位八段数码管和扩展学习板简介 54 简易秒表的制作与程序设计 59 任务4.2 裁判机器人的制作——测量选手的反应时间 62 裁判机器人的制作要求 62 测量选手反应时间的程序 63 任务4.3 具有简单设置功能的计时机器人制作 65 4×4矩阵键盘简介 65 矩阵键盘电路和数码管电路 66 矩阵键盘编码和扫描程序说明 67 键盘接口程序的实现 69 任务4.4 具有简单设置功能的时钟机器人制作 75 时钟机器人的设计思路 75 时钟机器人的程序实现 76 工程素质和技能归纳 81 科学精神的培养 81 第5章 A/D、D/A转换接口与漫游机器人制作 82 任务5.1 基于红外测距导航的漫游机器人的制作和编程 82 SHARP红外传感器的测量原理 83 A/D转换电路的设计与搭建 83 机器人漫游程序 84 程序说明 86 拓展阅读 88 任务5.2 红外测距云台导航机器人的制作 89 角度舵机 89 角度舵机的安装和电路连接 90 云台导航机器人的完整程序 90 程序说明 93 任务5.3 D/A转换和机器人LED的亮度控制 94 DAC0832的主要引脚功能 94 LM324运算放大器 95 电路的设计与搭接 95 LED亮度控制程序 96 工程素质和技能归纳 97 科学精神的培养 97 第6章 SPI与温湿度检测机器人的制作 98 任务6.1 温湿度传感器与温湿度测量 98 Sensirion温湿度传感器简介 98 Sensirion温湿度传感器的通信接口 100 读取和发送温湿度传感器数据的程序 101 程序说明 105 任务6.2 温湿度检测机器人的制作 106 工程素质和技能归纳 106 科学精神的培养 106 第7章 综合比赛项目——“机器人高铁游中国”比赛 107 任务7.1 采用RFID读卡器读取RFID卡号 108 RFID读卡器介绍 108 RFID读卡器的安装和电路连接 110 RFID读卡器读取RFID标签信息程序 111 任务7.2 利用语音芯片播报景点 116 WT588D语音芯片介绍 116 WT588D语音芯片功能概述 116 WTW500-16语音模块的引脚说明 116 语音芯片三线控制时序及驱动控制程序 118 任务7.3 实现“机器人高铁游中国”比赛任务 119 机器人相关传感器安装 119 “机器人高铁游中国”程序设计 121 工程素质和技能归纳 137 科学精神的培养 137 第8章 综合比赛项目——“机器人智能消防”比赛 138 任务8.1 确定完成比赛所需的传感器和灭火装置 139 任务8.2 确定超声波传感器连接端口和编写测距函数 141 任务8.3 安装火焰传感器和灭火风扇,编写寻找火源和灭火程序 143 任务8.4 “机器人智能消防”程序设计 144 根据超声波测距信息编写导航程序 144 完成灭火主程序的编写 153 工程素质和技能归纳 153 科学精神的培养 153 附录 154 教学机器人基础车体组装步骤 154