《C51单片机应用与C语言程序设计 基于机器人工程对象的项目实践》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:秦志强编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2016
  • ISBN:9787121281594
  • 页数:229 页
图书介绍:本书以两轮小型移动机器人的制作与编程项目为主线,通过循序渐进地构建机器人的控制器和传感器电路,并对机器人实现编程和控制,将C51单片机的外围接口特性、内部结构原理、综合应用设计和C语言程序设计等知识和技能传授给学生,彻底打破了传统的先理论后实验的教学方法和教学体系结构,解决了单片机原理与应用,以及C语言程序设计等核心专业基础课程抽象、枯燥与教学效果差的老大难问题。

第1讲 机器人大脑:从BS2微控制器到C51单片机 1

单片机和微控制器 1

学习单片机的意义 2

C51系列单片机 2

机器人与C51单片机 4

任务1 获得软件 4

任务2 安装软件 5

安装Keil μVision2 5

任务3 硬件连接 5

串口的连接 6

USBASP下载器的连接 6

电源的连接 6

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

任务4 第一个程序 7

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

例程:HelloRobot.c 9

程序调试 11

下载可执行文件到单片机 12

用串口调试软件查看单片机输出信息 13

HelloRobot.c是如何工作的 14

printf函数 14

HelloRobotYourTurn.c是如何工作的 16

任务5 做完实验关断电源 19

第2讲 C51接口与伺服电机控制 20

C51单片机的输入/输出接口 20

任务1 单灯闪烁控制 21

LED电路元件 21

LED电路搭建 21

例程:HighLowLed.c 22

HighLowLed.c是如何工作的 22

任务2 机器人伺服电机控制信号 26

例程:BothServoClockwise.c 28

任务3 计数并控制循环次数 29

例程:ControlServoRunTimes.c 31

例程:BothServosThreeSeconds.c 32

任务4 用计算机来控制机器人的运动 33

例程:ControlServoWithComputer.c 34

ControlServoW ithComputer.c是如何工作的 35

第3讲 C语言函数与机器人巡航控制 37

任务1 基本巡航动作 37

例程:RobotForwardThreeSeconds.c 38

RobotForwardThreeSeconds.c是如何工作的 38

向后走、原地转弯和绕轴旋转 39

例程:ForwardLeftRightBackward.c 40

任务2 匀加速/减速运动 43

编写匀加速运动程序 43

例程:StartAndStopWithRamping.c 44

任务3 用函数调用简化运动程序 46

例程:MovementsWithFunctions.c 49

例程:MovementsWithOneFuntion.c 51

任务4 高级主题——用数组建立复杂运动 52

字符型数据 53

数组 54

例程:NavigationWithSwitch.c 56

NavigationWithSwitch.c是如何工作的 58

例程:NavigationWithValues.c 59

第4讲 C51接口与触觉导航 62

触觉导航与单片机输入接口 62

任务1 安装并测试机器人“胡须” 63

安装“胡须” 63

测试“胡须” 64

例程:TestWhiskers.c 64

位操作符 65

if语句 66

?操作符 66

任务2 通过“胡须”导航 69

编程使机器人基于“胡须”导航 69

关系与逻辑运算符 70

例程:RoamingWithWhiskers.c 71

“胡须”导航机器人怎样行走 74

任务3 机器人进入死区后的人工智能决策 75

编程逃离墙角死区 75

例程:EscapingCorners.c 76

EscapingCorners.c是如何工作的 79

第5讲 C51接口与红外线导航 81

使用红外线发射和接收器件探测道路 81

红外前灯 81

任务1 搭建并测试IR发射和探测器对 82

元件清单 82

搭建红外线前灯 82

这里为何要使用三极管9013 84

测试红外发射探测器 84

例程:TestLeftIrPair.c 85

排错 86

函数延时的不精确性 87

任务2 探测和避开障碍物 87

改变“胡须”程序,使其适用于IR探测和躲避 88

例程:RoamingWithIr.c 89

任务3 高性能的IR导航 92

在每个脉冲之间采样以避免碰撞 93

例程:FastIrRoaming.c 93

FastIrRoaming.c是如何工作的 95

任务4 俯视的探测器 97

推荐材料 97

用绝缘带模拟桌子的边沿 97

边沿探测编程 98

例程:AvoidTableEdge.c 99

AvoidTableEdge.c是如何工作的 101

第6讲 C51定时器与机器人的距离检测 104

用同样的IR LED/探测电路检测距离 104

推荐工具和原料 104

任务1 定时/计数器的运用 104

定时/计数器的控制 105

工作模式 106

定时/计数器初值的计算 106

例程:TimeApplication.c 106

TimeApplication.c是如何工作的 107

中断 108

中断优先级 109

任务2 测试扫描频率 110

红外线探测器频率探测 110

用频率扫描进行编程做距离探测 110

例程:TestLeftFrequencySweep.c 111

TestLeftFrequencySweep.c是如何工作的 112

例程:DisplayBothDistances.c 114

任务3 尾随小车 114

对尾随车编程 116

例程:FollowingRobot.c 117

FollowingRobot.c是如何工作的 120

任务4 跟踪条纹带 121

搭建和测试路线 121

需要的材料 121

测试条纹带 122

绝缘带路径排错 123

编程跟踪条纹带 124

例程:StripeFollowingRobot.c 124

第7讲 C51的UART与机器人串口通信 126

串口控制寄存器SCON 127

什么是波特率 127

波特率的计算 127

RS232电平与TTL电平转换 128

任务1 编写串口通信程序 129

例程:uart.h 129

uart.h是如何工作的 132

存储器结构 132

串口工作流程 133

例程:HelloRobot.c——printf(“Hello,this is a message from your Robot\n”) 134

例程:Control ServoWithComputer.c——scanf(“6818992”,&PulseDuration) 134

第8讲 C51显示接口编程与机器人应用 136

LED数码管的介绍 136

任务1 数码管显示 136

任务目的 138

任务要求 138

元件清单 138

电路设计 138

阴极数码管显示的源程序 140

电路实物 141

LCD显示器的介绍 142

任务2 认识LCD显示器 142

LCD显示器与C51单片机的连接 142

LCD控制器接口说明 143

任务3 编写LCD模块驱动程序 145

元件清单 146

线路连接 146

例程:LCDdisplay.c 146

LCDdisplay.c是如何工作的 150

指针 151

任务4 用LCD显示机器人运动状态 152

C语言的编译预处理 152

例程:MoveWithLCDDisplay.c 156

MoveWithLCDDisplay.c是如何工作的 158

第9讲 多传感器智能机器人 160

任务1 多传感器信息与C语言结构体的使用和编程 160

结构体 160

例程:IRRoaming WithWithStructLCDDisplay.c 164

IRRoamingWithWithStructLCDDisplay.c是如何工作的 165

任务2 智能机器人的行为控制策略和编程 169

例程:NavigationWithSensors.c 171

NavigationWithSensors.c是如何工作的 173

第10讲 机器人循线竞赛 175

竞赛任务 175

任务1 QTI传感器及其通信接口 176

任务2 安装QTI传感器到机器人前端 177

任务3 编写QTI传感器的测试程序 178

Test4QTI.c是如何工作的 180

任务4 设计算法实现机器人无接触传感器游中国 182

RobotTourChina.c是如何工作的 186

执行调试 187

任务5 修改算法实现机器人游中国 188

任务6 用数组实现机器人游中国比赛 193

任务7 改进运动执行程序提升执行的可靠性 199

函数 203

附录A C语言概要归纳 208

C语言概述 208

数据类型、运算符与表达式 208

分支结构程序 210

循环控制 212

数组 214

函数 215

预处理命令 215

指针 217

结构体 218

位运算 219

附录B 微控制器原理归纳 221

引言 221

一些概念 221

中央处理器(CPU) 222

RAM和ROM 223

地址总线、数据总线和控制总线 223

微处理器和微控制器 224

附录C 无焊锡面包板 225

附录D LCD模块电路 228

附录E 本书所使用的机器人零配件清单 229