第1讲 从Arduino到C51单片机 (1)
单片机和微控制器 (1)
学习单片机的意义 (1)
C51系列单片机 (2)
机器人与C51单片机 (3)
任务1 获得软件 (4)
任务2 安装软件 (5)
安装Keil μVision4 (5)
任务3 硬件连接 (5)
连接到计算机上 (5)
电源的连接 (6)
对教学板和单片机进行通电检查 (6)
对教学板和单片机进行通信连接 (6)
任务4 个程序 (7)
创建与编辑你的个程序 (7)
个C语言程序:HelloRobot.c (9)
编译你的个程序 (10)
程序调试 (11)
下载可执行文件到单片机 (12)
用串口调试软件查看单片机输出信息 (13)
HelloRobot.c是如何工作的 (13)
printf函数 (14)
“while(1);”的作用 (15)
HelloRobotYourTurn.c是如何工作的 (16)
任务5 做完实验关断电源 (18)
第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 (33)
任务4 用计算机来控制机器人的运动 (34)
例程:ControlServoWithComputer.c (34)
ControlServoWithComputer.c是如何工作的 (35)
第3讲 C语言函数与机器人运动控制 (38)
任务1 基本运动动作 (38)
例程:RobotForwardThreeSeconds.c (39)
RobotForwardThreeSeconds.c是如何工作的 (39)
向后走、原地转弯和绕轴旋转 (40)
例程:ForwardLeftRightBackward.c (41)
任务2 匀加速/减速运动 (44)
编写匀加速运动程序 (44)
例程:StartAndStopWithRamping.c (45)
任务3 用函数调用简化运动程序 (47)
例程:MovementsWithFunctions.c (50)
例程:MovementsWithOneFuntion.c (52)
任务4 高级主题—用数组建立复杂运动 (53)
字符型数据 (54)
数组 (55)
例程:NavigationWithSwitch.c (57)
NavigationWithSwitch.c是如何工作的 (59)
例程:NavigationWithValues.c (60)
第4讲 C51接口与触觉导航 (63)
触觉导航与单片机输入接口 (63)
任务1 安装并测试机器人“胡须” (63)
安装“胡须” (64)
测试“胡须” (65)
例程:TestWhiskers.c (65)
位操作符 (66)
if语句 (67)
?操作符 (67)
任务2 通过“胡须”导航 (70)
编程使机器人基于“胡须”导航 (70)
关系与逻辑运算符 (71)
例程:RoamingWithWhiskers.c (72)
“胡须”导航机器人怎样行走 (75)
任务3 机器人进入死区后的人工智能决策 (75)
编程逃离墙角死区 (75)
例程:EscapingCorners.c (76)
EscapingCorners.c是如何工作的 (79)
第5讲 C51接口与红外线导航 (83)
使用红外线发射和接收器件探测道路 (82)
红外前灯 (82)
任务1 搭建并测试红外发射和检测器对 (83)
元件清单 (83)
搭建红外前灯 (83)
测试红外发射和检测器对 (84)
例程:TestLeftIrPair.c (85)
排错 (87)
函数延时的不精确性 (87)
任务2 探测和避开障碍物 (88)
改变“胡须”程序,使它适用于IR检测和机器人躲避 (88)
例程:RoamingWithIr.c (89)
任务3 高性能的IR导航 (93)
在每个脉冲信号之间采样以避免碰撞 (93)
例程:FastIrRoaming.c (93)
FastIrRoaming.c是如何工作的 (95)
任务4 俯视的红外发射和检测器对 (97)
推荐材料 (97)
用绝缘带模拟桌子的边沿 (98)
编程检测边沿 (98)
例程:AvoidTableEdge.c (99)
AvoidTableEdge.c是如何工作的 (101)
第6讲 C51定时器与机器人的距离检测 (104)
用同样的IR组电路检测距离 (104)
推荐工具和材料 (104)
任务1 定时/计数器的运用 (104)
定时/计数器的控制 (105)
工作模式 (105)
定时/计数器初值的计算 (106)
例程:TimeApplication.c (106)
TimeApplication.c是如何工作的 (107)
中断 (108)
中断优先级 (108)
任务2 测试扫描频率 (109)
红外检测器频率检测 (109)
用频率扫描法进行编程,做距离检测 (110)
例程:TestLeftFrequencySweep.c (110)
TestLeftFrequencySweep.c是如何工作的 (112)
例程:DisplayBothDistances.c (114)
任务3 尾随小车 (114)
对尾随车编程 (116)
例程:FollowingRobot.c (117)
FollowingRobot.c是如何工作的 (119)
任务4 跟踪条纹带 (121)
搭建和测试路径 (121)
需要的材料 (121)
测试条纹带 (121)
绝缘带路径排错 (123)
编程跟踪条纹带 (123)
例程:StripeFollowingRobot.c (124)
第7讲 C51单片机的UART与机器人串口通信 (126)
串口控制寄存器SCON (127)
什么是波特率 (127)
波特率的计算 (128)
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)
例程:ControlServoWithComputer.c—scanf("%d",&PulseDuration) (134)
第8讲 C51单片机显示接口编程与机器人应用 (136)
LED数码管 (136)
任务1 数码管显示 (136)
元件清单 (138)
电路设计 (138)
共阴极数码管显示的源程序 (140)
电路连接 (141)
任务2 认识LCD显示器 (142)
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)
例程:IRRoamingWithWithStructLCDDisplay.c (164)
IRRoamingWithWithStructLCDDisplay.c是如何工作的 (165)
任务2 智能机器人的行为控制策略和编程 (169)
例程:NavigationWithSensors.c (171)
NavigationWithSensors.c是如何工作的 (173)
第10讲 机器人循线竞赛 (175)
任务1 QTI传感器及其通信接口 (176)
任务2 安装QTI传感器到机器人前端 (177)
任务3 编写QTI传感器的测试程序 (178)
测试程序:Test4QTI.c (179)
Test4QTI.c是如何工作的 (180)
任务4 设计算法实现机器人无接触传感器游中国 (182)
例程:RobotTourChina.c (183)
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 本书所使用的机器人零配件清单 (228)