C51单片机应用与C语言程序设计(第3版)——基于机器人工程对象的项目实践 🔍
秦志强编著; 秦志强 北京:电子工业出版社, Gong zuo dao xiang chuang xin shi jian jiao cai, Di 3 ban, Bei jing, 2016
中文 [zh] · PDF · 8.6MB · 2016 · 📘 非小说类图书 · 🚀/duxiu/lgli/lgrs · Save
描述
本书以两轮小型移动机器人的制作与编程项目为主线,通过循序渐进地构建机器人的控制器和传感器电路,并对机器人实现编程和控制,将C51单片机的外围接口特性、内部结构原理、综合应用设计和C语言程序设计等知识和技能传授给学生,彻底打破了传统的先理论后实验的教学方法和教学体系结构,解决了单片机原理与应用,以及C语言程序设计等核心专业基础课程抽象、枯燥与教学效果差的老大难问题。
备用文件名
lgrsnf/《C51单片机应用与C语言程序设计(第3版)——基于机器人工程对象的项目实践》.pdf
备选标题
C51单片机应用与C语言程序设计 : 基于机器人工程对象的项目实践
备用出版商
Publishing House of Electronics Industry
备用版本
China, People's Republic, China
元数据中的注释
Bookmarks: p1 (p1): 第1讲 机器人大脑:从BS2微控制器到C51单片机
p1-1 (p1): 单片机和微控制器
p1-1-1 (p2): 学习单片机的意义
p1-1-2 (p2): C51系列单片机
p1-2 (p4): 机器人与C51单片机
p1-3 (p4): 任务1 获得软件
p1-4 (p5): 任务2 安装软件
p1-4-1 (p5): 安装Keil μVision2
p1-5 (p5): 任务3 硬件连接
p1-5-1 (p6): 串口的连接
p1-5-2 (p6): USBASP下载器的连接
p1-5-3 (p6): 电源的连接
p1-5-4 (p6): 给教学板和单片机进行通电检查
p1-6 (p7): 任务4 第一个程序
p1-6-1 (p7): 创建与编辑你的第一个程序
p1-6-2 (p9): 例程:HelloRobot.c
p1-6-3 (p11): 程序调试
p1-6-4 (p12): 下载可执行文件到单片机
p1-6-5 (p13): 用串口调试软件查看单片机输出信息
p1-6-6 (p14): HelloRobot.c是如何工作的
p1-6-7 (p14): printf函数
p1-6-8 (p16): HelloRobotYourTurn.c是如何工作的
p1-7 (p19): 任务5 做完实验关断电源
p2 (p20): 第2讲 C51接口与伺服电机控制
p2-1 (p20): C51单片机的输入/输出接口
p2-2 (p21): 任务1 单灯闪烁控制
p2-2-1 (p21): LED电路元件
p2-2-2 (p21): LED电路搭建
p2-2-3 (p22): 例程:HighLowLed.c
p2-2-4 (p22): HighLowLed.c是如何工作的
p2-3 (p26): 任务2 机器人伺服电机控制信号
p2-3-1 (p28): 例程:BothServoClockwise.c
p2-4 (p29): 任务3 计数并控制循环次数
p2-4-1 (p31): 例程:ControlServoRunTimes.c
p2-4-2 (p32): 例程:BothServosThreeSeconds.c
p2-5 (p33): 任务4 用计算机来控制机器人的运动
p2-5-1 (p34): 例程:ControlServoWithComputer.c
p2-5-2 (p35): ControlServoW ithComputer.c是如何工作的
p3 (p37): 第3讲 C语言函数与机器人巡航控制
p3-1 (p37): 任务1 基本巡航动作
p3-1-1 (p38): 例程:RobotForwardThreeSeconds.c
p3-1-2 (p38): RobotForwardThreeSeconds.c是如何工作的
p3-1-3 (p39): 向后走、原地转弯和绕轴旋转
p3-1-4 (p40): 例程:ForwardLeftRightBackward.c
p3-2 (p43): 任务2 匀加速/减速运动
p3-2-1 (p43): 编写匀加速运动程序
p3-2-2 (p44): 例程:StartAndStopWithRamping.c
p3-3 (p46): 任务3 用函数调用简化运动程序
p3-3-1 (p49): 例程:MovementsWithFunctions.c
p3-3-2 (p51): 例程:MovementsWithOneFuntion.c
p3-4 (p52): 任务4 高级主题——用数组建立复杂运动
p3-4-1 (p53): 字符型数据
p3-4-2 (p54): 数组
p3-4-3 (p56): 例程:NavigationWithSwitch.c
p3-4-4 (p58): NavigationWithSwitch.c是如何工作的
p3-4-5 (p59): 例程:NavigationWithValues.c
p4 (p62): 第4讲 C51接口与触觉导航
p4-1 (p62): 触觉导航与单片机输入接口
p4-2 (p63): 任务1 安装并测试机器人“胡须”
p4-2-1 (p63): 安装“胡须”
p4-2-2 (p64): 测试“胡须”
p4-2-3 (p64): 例程:TestWhiskers.c
p4-2-4 (p65): 位操作符
p4-2-5 (p66): if语句
p4-2-6 (p66): ?操作符
p4-3 (p69): 任务2 通过“胡须”导航
p4-3-1 (p69): 编程使机器人基于“胡须”导航
p4-3-2 (p70): 关系与逻辑运算符
p4-3-3 (p71): 例程:RoamingWithWhiskers.c
p4-3-4 (p74): “胡须”导航机器人怎样行走
p4-4 (p75): 任务3 机器人进入死区后的人工智能决策
p4-4-1 (p75): 编程逃离墙角死区
p4-4-2 (p76): 例程:EscapingCorners.c
p4-4-3 (p79): EscapingCorners.c是如何工作的
p5 (p81): 第5讲 C51接口与红外线导航
p5-1 (p81): 使用红外线发射和接收器件探测道路
p5-1-1 (p81): 红外前灯
p5-2 (p82): 任务1 搭建并测试IR发射和探测器对
p5-2-1 (p82): 元件清单
p5-2-2 (p82): 搭建红外线前灯
p5-2-3 (p84): 这里为何要使用三极管9013
p5-2-4 (p84): 测试红外发射探测器
p5-2-5 (p85): 例程:TestLeftIrPair.c
p5-2-6 (p86): 排错
p5-2-7 (p87): 函数延时的不精确性
p5-3 (p87): 任务2 探测和避开障碍物
p5-3-1 (p88): 改变“胡须”程序,使其适用于IR探测和躲避
p5-3-2 (p89): 例程:RoamingWithIr.c
p5-4 (p92): 任务3 高性能的IR导航
p5-4-1 (p93): 在每个脉冲之间采样以避免碰撞
p5-4-2 (p93): 例程:FastIrRoaming.c
p5-4-3 (p95): FastIrRoaming.c是如何工作的
p5-5 (p97): 任务4 俯视的探测器
p5-5-1 (p97): 推荐材料
p5-5-2 (p97): 用绝缘带模拟桌子的边沿
p5-5-3 (p98): 边沿探测编程
p5-5-4 (p99): 例程:AvoidTableEdge.c
p5-5-5 (p101): AvoidTableEdge.c是如何工作的
p6 (p104): 第6讲 C51定时器与机器人的距离检测
p6-1 (p104): 用同样的IR LED/探测电路检测距离
p6-1-1 (p104): 推荐工具和原料
p6-2 (p104): 任务1 定时/计数器的运用
p6-2-1 (p105): 定时/计数器的控制
p6-2-2 (p106): 工作模式
p6-2-3 (p106): 定时/计数器初值的计算
p6-2-4 (p106): 例程:TimeApplication.c
p6-2-5 (p107): TimeApplication.c是如何工作的
p6-2-6 (p108): 中断
p6-2-7 (p109): 中断优先级
p6-3 (p110): 任务2 测试扫描频率
p6-3-1 (p110): 红外线探测器频率探测
p6-3-2 (p110): 用频率扫描进行编程做距离探测
p6-3-3 (p111): 例程:TestLeftFrequencySweep.c
p6-3-4 (p112): TestLeftFrequencySweep.c是如何工作的
p6-3-5 (p114): 例程:DisplayBothDistances.c
p6-4 (p114): 任务3 尾随小车
p6-4-1 (p116): 对尾随车编程
p6-4-2 (p117): 例程:FollowingRobot.c
p6-4-3 (p120): FollowingRobot.c是如何工作的
p6-5 (p121): 任务4 跟踪条纹带
p6-5-1 (p121): 搭建和测试路线
p6-5-2 (p121): 需要的材料
p6-5-3 (p122): 测试条纹带
p6-5-4 (p123): 绝缘带路径排错
p6-5-5 (p124): 编程跟踪条纹带
p6-5-6 (p124): 例程:StripeFollowingRobot.c
p7 (p126): 第7讲 C51的UART与机器人串口通信
p7-1 (p127): 串口控制寄存器SCON
p7-2 (p127): 什么是波特率
p7-3 (p127): 波特率的计算
p7-4 (p128): RS232电平与TTL电平转换
p7-5 (p129): 任务1 编写串口通信程序
p7-5-1 (p129): 例程:uart.h
p7-5-2 (p132): uart.h是如何工作的
p7-5-3 (p132): 存储器结构
p7-5-4 (p133): 串口工作流程
p7-5-5 (p134): 例程:HelloRobot.c——printf(“Hello,this is a message from your Robot\n”)
p7-5-6 (p134): 例程:Control ServoWithComputer.c——scanf(“6818992”,&PulseDuration)
p8 (p136): 第8讲 C51显示接口编程与机器人应用
p8-1 (p136): LED数码管的介绍
p8-2 (p136): 任务1 数码管显示
p8-2-1 (p138): 任务目的
p8-2-2 (p138): 任务要求
p8-2-3 (p138): 元件清单
p8-2-4 (p138): 电路设计
p8-2-5 (p140): 阴极数码管显示的源程序
p8-2-6 (p141): 电路实物
p8-2-7 (p142): LCD显示器的介绍
p8-3 (p142): 任务2 认识LCD显示器
p8-3-1 (p142): LCD显示器与C51单片机的连接
p8-3-2 (p143): LCD控制器接口说明
p8-4 (p145): 任务3 编写LCD模块驱动程序
p8-4-1 (p146): 元件清单
p8-4-2 (p146): 线路连接
p8-4-3 (p146): 例程:LCDdisplay.c
p8-4-4 (p150): LCDdisplay.c是如何工作的
p8-4-5 (p151): 指针
p8-5 (p152): 任务4 用LCD显示机器人运动状态
p8-5-1 (p152): C语言的编译预处理
p8-5-2 (p156): 例程:MoveWithLCDDisplay.c
p8-5-3 (p158): MoveWithLCDDisplay.c是如何工作的
p9 (p160): 第9讲 多传感器智能机器人
p9-1 (p160): 任务1 多传感器信息与C语言结构体的使用和编程
p9-1-1 (p160): 结构体
p9-1-2 (p164): 例程:IRRoaming WithWithStructLCDDisplay.c
p9-1-3 (p165): IRRoamingWithWithStructLCDDisplay.c是如何工作的
p9-2 (p169): 任务2 智能机器人的行为控制策略和编程
p9-2-1 (p171): 例程:NavigationWithSensors.c
p9-2-2 (p173): NavigationWithSensors.c是如何工作的
p10 (p175): 第10讲 机器人循线竞赛
p10-1 (p175): 竞赛任务
p10-2 (p176): 任务1 QTI传感器及其通信接口
p10-3 (p177): 任务2 安装QTI传感器到机器人前端
p10-4 (p178): 任务3 编写QTI传感器的测试程序
p10-4-1 (p180): Test4QTI.c是如何工作的
p10-5 (p182): 任务4 设计算法实现机器人无接触传感器游中国
p10-5-1 (p186): RobotTourChina.c是如何工作的
p10-5-2 (p187): 执行调试
p10-6 (p188): 任务5 修改算法实现机器人游中国
p10-7 (p193): 任务6 用数组实现机器人游中国比赛
p10-8 (p199): 任务7 改进运动执行程序提升执行的可靠性
p10-8-1 (p203): 函数
p11 (p208): 附录A C语言概要归纳
p11-1 (p208): C语言概述
p11-2 (p208): 数据类型、运算符与表达式
p11-3 (p210): 分支结构程序
p11-4 (p212): 循环控制
p11-5 (p214): 数组
p11-6 (p215): 函数
p11-7 (p215): 预处理命令
p11-8 (p217): 指针
p11-9 (p218): 结构体
p11-10 (p219): 位运算
p12 (p221): 附录B 微控制器原理归纳
p12-1 (p221): 引言
p12-2 (p221): 一些概念
p12-3 (p222): 中央处理器(CPU)
p12-4 (p223): RAM和ROM
p12-5 (p223): 地址总线、数据总线和控制总线
p12-6 (p224): 微处理器和微控制器
p13 (p225): 附录C 无焊锡面包板
p14 (p228): 附录D LCD模块电路
p15 (p229): 附录E 本书所使用的机器人零配件清单
备用描述
扉页
内容 简 介
前言
目录
第1 讲 机器人大脑:从BS2微控制器到C51 单片机
单片机和微控制器
学习单片机的意义
C51 系列单片机
机器人与 C51 单片机
任务 1 获得软件
任务 2 安装软件
安装 Keil μVision2
任务 3 硬件连接
串口的连接
USBASP 下载器的连接
电源的连接
给教学板和单片机进行通电检查
任务 4 第一个程序
创建与编辑你的第一个程序
例程:HelloRobot.c
程序调试
下载可执行文件到单片机
用串口调试软件查看单片机输出信息
HelloRobot.c 是如何工作的
printf 函数
HelloRobotYourTurn.c 是如何工作的
任务 5 做完实验关断电源
第2 讲 C51 接口与伺服电机控制
C51 单片机的输入/输出接口
任务 1 单灯闪烁控制
LED 电路元件
LED 电路搭建
例程:HighLowLed.c
HighLowLed.c 是如何工作的
任务 2 机器人伺服电机控制信号
例程:BothServoClockwise.c
任务 3 计数并控制循环次数
例程:ControlServoRunTimes.c
例程:BothServosThreeSeconds.c
任务 4 用计算机来控制机器人的运动
例程:ControlServoWithComputer.c
ControlServoWithComputer.c 是如何工作的
第3 讲 C 语言函数与机器人巡航控制
任务 1 基本巡航动作
例程:RobotForwardThreeSeconds.c
RobotForwardThreeSeconds.c 是如何工作的
向后走、原地转弯和绕轴旋转
例程:ForwardLeftRightBackward.c
任务 2 匀加速/减速运动
编写匀加速运动程序
例程:StartAndStopWithRamping.c
任务 3 用函数调用简化运动程序
例程:MovementsWithFunctions.c
例程:MovementsWithOneFuntion.c
任务 4 高级主题——用数组建立复杂运动
字符型数据
数组
例程:NavigationWithSwitch.c
NavigationWithSwitch.c 是如何工作的
例程:NavigationWithValues.c
第 4 讲 C51 接口与触觉导航
触觉导航与单片机输入接口
任务1 安装并测试机器人“胡须”
安装“胡须”
测试“胡须”
例程:TestWhiskers.c
位操作符
if 语句
?操作符
任务 2 通过“胡须”导航
编程使机器人基于“胡须”导航
关系与逻辑运算符
例程:RoamingWithWhiskers.c
“胡须”导航机器人怎样行走
任务3 机器人进入死区后的人工智能决策
编程逃离墙角死区
例程:EscapingCorners.c
EscapingCorners.c 是如何工作的
第5 讲 C51 接口与红外线导航
使用红外线发射和接收器件探测道路
红外前灯
任务1 搭建并测试IR 发射和探测器对
元件清单
搭建红外线前灯
这里为何要使用三极管9013
测试红外发射探测器
例程:TestLeftIrPair.c
排错
函数延时的不精确性
任务2 探测和避开障碍物
改变“胡须”程序,使其适用于IR 探测和躲避
例程:RoamingWithIr.c
任务3 高性能的IR 导航
在每个脉冲之间采样以避免碰撞
例程:FastIrRoaming.c
FastIrRoaming.c 是如何工作的
任务4 俯视的探测器
推荐材料
用绝缘带模拟桌子的边沿
边沿探测编程
例程:AvoidTableEdge.c
AvoidTableEdge.c 是如何工作的
第6 讲 C51 定时器与机器人的距离检测
用同样的IR LED/探测电路检测距离
推荐工具和原料
任务1 定时/计数器的运用
定时/计数器的控制
工作模式
定时/计数器初值的计算
例程:TimeApplication.c
TimeApplication.c 是如何工作的
中断
中断优先级
任务2 测试扫描频率
红外线探测器频率探测
用频率扫描进行编程做距离探测
例程:TestLeftFrequencySweep.c
TestLeftFrequencySweep.c 是如何工作的
例程:DisplayBothDistances.c
任务3 尾随小车
对尾随车编程
例程:FollowingRobot.c
FollowingRobot.c 是如何工作的
任务4 跟踪条纹带
搭建和测试路线
需要的材料
测试条纹带
绝缘带路径排错
编程跟踪条纹带
例程:StripeFollowingRobot.c
第 7 讲 C51 的UART 与机器人串口通信
串口控制寄存器 SCON
什么是波特率
波特率的计算
RS232 电平与TTL 电平转换
任务 1 编写串口通信程序
例程:uart.h
uart.h 是如何工作的
存储器结构
串口工作流程
例程:HelloRobot.c——printf("Hello,this is a message from your Robot\n")
例程:ControlServoWithComputer.c——scanf("%d",&PulseDuration)
第 8 讲 C51 显示接口编程与机器人应用
LED 数码管的介绍
任务 1 数码管显示
任务目的
任务要求
元件清单
电路设计
阴极数码管显示的源程序
电路实物
LCD 显示器的介绍
任务 2 认识LCD 显示器
LCD 显示器与C51 单片机的连接
LCD 控制器接口说明
任务 3 编写LCD 模块驱动程序
元件清单
线路连接
例程:LCDdisplay.c
LCDdisplay.c 是如何工作的
指针
任务 4 用LCD 显示机器人运动状态
C 语言的编译预处理
例程:MoveWithLCDDisplay.c
MoveWithLCDDisplay.c 是如何工作的
第 9 讲 多传感器智能机器人
任务 1 多传感器信息与C 语言结构体的使用和编程
结构体
例程:IRRoamingWithWithStructLCDDisplay.c
IRRoamingWithWithStructLCDDisplay.c 是如何工作的
任务 2 智能机器人的行为控制策略和编程
例程:NavigationWithSensors.c
NavigationWithSensors.c 是如何工作的
第10 讲 机器人循线竞赛
竞赛任务
任务 1 QTI 传感器及其通信接口
任务 2 安装QTI 传感器到机器人前端
任务 3 编写QTI 传感器的测试程序
Test4QTI.c 是如何工作的
任务 4 设计算法实现机器人无接触传感器游中国
RobotTourChina.c 是如何工作的
执行调试
任务 5 修改算法实现机器人游中国
任务 6 用数组实现机器人游中国比赛
任务 7 改进运动执行程序提升执行的可靠性
函数
附录A C 语言概要归纳
C 语言概述
数据类型、运算符与表达式
分支结构程序
循环控制
数组
函数
预处理命令
指针
结构体
位运算
附录B 微控制器原理归纳
引言
一些概念
中央处理器(CPU)
RAM 和ROM
地址总线、数据总线和控制总线
微处理器和微控制器
附录C 无焊锡面包板
附录D LCD 模块电路
附录E 本书所使用的机器人零配件清单
反侵权盗版声明
备用描述
本书以两轮小型移动机器人的制作与编程项目为主线,通过构建机器人的控制器和传感器电路,对机器人实现编程和控制,介绍了C51单片机的外围接口特性、内部结构原理、综合应用设计和C语言程序设计等方面的内容
开源日期
2023-11-19
更多信息……

🚀 快速下载

成为会员以支持书籍、论文等的长期保存。为了感谢您对我们的支持,您将获得高速下载权益。❤️
如果您在本月捐款,您将获得双倍的快速下载次数。

🐢 低速下载

由可信的合作方提供。 更多信息请参见常见问题解答。 (可能需要验证浏览器——无限次下载!)

所有选项下载的文件都相同,应该可以安全使用。即使这样,从互联网下载文件时始终要小心。例如,确保您的设备更新及时。
  • 对于大文件,我们建议使用下载管理器以防止中断。
    推荐的下载管理器:JDownloader
  • 您将需要一个电子书或 PDF 阅读器来打开文件,具体取决于文件格式。
    推荐的电子书阅读器:Anna的档案在线查看器ReadEraCalibre
  • 使用在线工具进行格式转换。
    推荐的转换工具:CloudConvertPrintFriendly
  • 您可以将 PDF 和 EPUB 文件发送到您的 Kindle 或 Kobo 电子阅读器。
    推荐的工具:亚马逊的“发送到 Kindle”djazz 的“发送到 Kobo/Kindle”
  • 支持作者和图书馆
    ✍️ 如果您喜欢这个并且能够负担得起,请考虑购买原版,或直接支持作者。
    📚 如果您当地的图书馆有这本书,请考虑在那里免费借阅。