C51單片機應(yīng)用與C語言程序設(shè)計(第4版) ――基于機器人工程對象的項目實踐
定 價:49.8 元
- 作者:秦志強著
- 出版時間:2022/1/1
- ISBN:9787121379291
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP368.1
- 頁碼:240
- 紙張:
- 版次:01
- 開本:16開
本書以兩輪小型移動機器人的制作與編程項目為主線,通過循序漸進地構(gòu)建機器人的控制器和傳感器電路,并對機器人實現(xiàn)編程和控制,將C51單片機的外圍接口特性、內(nèi)部結(jié)構(gòu)原理、綜合應(yīng)用設(shè)計和C語言程序設(shè)計等知識和技能傳授給學生,徹底打破了傳統(tǒng)的先理論后實驗的教學方法和教學體系結(jié)構(gòu),解決了單片機原理與應(yīng)用,以及C語言程序設(shè)計等核心專業(yè)基礎(chǔ)課程抽象、枯燥與教學效果差的老大難問題。
秦志強,男,全童科教(東莞)有限公司CEO,長期致力于青少年STEAM教育研究和實踐工作,中國教育機器人大賽的創(chuàng)辦者。擁有全年齡段的機器人教育解決方案和配套教具。編著多部教材,多部教材獲得十二五國家規(guī)劃教材。
第1講 從Arduino到C51單片機\t(1)
單片機和微控制器\t(1)
學習單片機的意義\t(1)
C51系列單片機\t(2)
機器人與C51單片機\t(3)
任務(wù)1 獲得軟件\t(4)
任務(wù)2 安裝軟件\t(5)
安裝Keil μVision4\t(5)
任務(wù)3 硬件連接\t(5)
連接到計算機上\t(5)
電源的連接\t(6)
對教學板和單片機進行通電檢查\t(6)
對教學板和單片機進行通信連接\t(6)
任務(wù)4 第一個程序\t(7)
創(chuàng)建與編輯你的第一個程序\t(7)
第一個C語言程序:HelloRobot.c\t(9)
編譯你的第一個程序\t(10)
程序調(diào)試\t(11)
下載可執(zhí)行文件到單片機\t(12)
用串口調(diào)試軟件查看單片機輸出信息\t(13)
HelloRobot.c是如何工作的\t(13)
printf函數(shù)\t(14)
“while(1);”的作用\t(15)
HelloRobotYourTurn.c是如何工作的\t(16)
任務(wù)5 做完實驗關(guān)斷電源\t(18)
第2講 C51接口與伺服電機控制\t(20)
C51單片機的輸入/輸出接口\t(20)
任務(wù)1 單燈閃爍控制\t(21)
LED電路元件\t(21)
LED電路搭建\t(21)
例程:HighLowLed.c\t(22)
HighLowLed.c是如何工作的\t(22)
任務(wù)2 機器人伺服電機控制信號\t(26)
例程:BothServoClockwise.c\t(28)
任務(wù)3 計數(shù)并控制循環(huán)次數(shù)\t(29)
例程:ControlServoRunTimes.c\t(31)
例程:BothServosThreeSeconds.c\t(33)
任務(wù)4 用計算機來控制機器人的運動\t(34)
例程:ControlServoWithComputer.c\t(34)
ControlServoWithComputer.c是如何工作的\t(35)
第3講 C語言函數(shù)與機器人運動控制\t(38)
任務(wù)1 基本運動動作\t(38)
例程:RobotForwardThreeSeconds.c\t(39)
RobotForwardThreeSeconds.c是如何工作的\t(39)
向后走、原地轉(zhuǎn)彎和繞軸旋轉(zhuǎn)\t(40)
例程:ForwardLeftRightBackward.c\t(41)
任務(wù)2 勻加速/減速運動\t(44)
編寫勻加速運動程序\t(44)
例程:StartAndStopWithRamping.c\t(45)
任務(wù)3 用函數(shù)調(diào)用簡化運動程序\t(47)
例程:MovementsWithFunctions.c\t(50)
例程:MovementsWithOneFuntion.c\t(52)
任務(wù)4 高級主題―用數(shù)組建立復(fù)雜運動\t(53)
字符型數(shù)據(jù)\t(54)
數(shù)組\t(55)
例程:NavigationWithSwitch.c\t(57)
NavigationWithSwitch.c是如何工作的\t(59)
例程:NavigationWithValues.c\t(60)
第4講 C51接口與觸覺導(dǎo)航\t(63)
觸覺導(dǎo)航與單片機輸入接口\t(63)
任務(wù)1 安裝并測試機器人“胡須”\t(63)
安裝“胡須”\t(64)
測試“胡須”\t(65)
例程:TestWhiskers.c\t(65)
位操作符\t(66)
if語句\t(67)
?操作符\t(67)
任務(wù)2 通過“胡須”導(dǎo)航\t(70)
編程使機器人基于“胡須”導(dǎo)航\t(70)
關(guān)系與邏輯運算符\t(71)
例程:RoamingWithWhiskers.c\t(72)
“胡須”導(dǎo)航機器人怎樣行走\t(75)
任務(wù)3 機器人進入死區(qū)后的人工智能決策\t(75)
編程逃離墻角死區(qū)\t(75)
例程:EscapingCorners.c\t(76)
EscapingCorners.c是如何工作的\t(79)
第5講 C51接口與紅外線導(dǎo)航\t(83)
使用紅外線發(fā)射和接收器件探測道路\t(82)
紅外前燈\t(82)
任務(wù)1 搭建并測試紅外發(fā)射和檢測器對\t(83)
元件清單\t(83)
搭建紅外前燈\t(83)
測試紅外發(fā)射和檢測器對\t(84)
例程:TestLeftIrPair.c\t(85)
排錯\t(87)
函數(shù)延時的不精確性\t(87)
任務(wù)2 探測和避開障礙物\t(88)
改變“胡須”程序,使它適用于IR檢測和機器人躲避\t(88)
例程:RoamingWithIr.c\t(89)
任務(wù)3 高性能的IR導(dǎo)航\t(93)
在每個脈沖信號之間采樣以避免碰撞\t(93)
例程:FastIrRoaming.c\t(93)
FastIrRoaming.c是如何工作的\t(95)
任務(wù)4 俯視的紅外發(fā)射和檢測器對\t(97)
推薦材料\t(97)
用絕緣帶模擬桌子的邊沿\t(98)
編程檢測邊沿\t(98)
例程:AvoidTableEdge.c\t(99)
AvoidTableEdge.c是如何工作的\t(101)
第6講 C51定時器與機器人的距離檢測\t(104)
用同樣的IR組電路檢測距離\t(104)
推薦工具和材料\t(104)
任務(wù)1 定時/計數(shù)器的運用\t(104)
定時/計數(shù)器的控制\t(105)
工作模式\t(105)
定時/計數(shù)器初值的計算\t(106)
例程:TimeApplication.c\t(106)
TimeApplication.c是如何工作的\t(107)
中斷\t(108)
中斷優(yōu)先級\t(108)
任務(wù)2 測試掃描頻率\t(109)
紅外檢測器頻率檢測\t(109)
用頻率掃描法進行編程,做距離檢測\t(110)
例程:TestLeftFrequencySweep.c\t(110)
TestLeftFrequencySweep.c是如何工作的\t(112)
例程:DisplayBothDistances.c\t(114)
任務(wù)3 尾隨小車\t(114)
對尾隨車編程\t(116)
例程:FollowingRobot.c\t(117)
FollowingRobot.c是如何工作的\t(119)
任務(wù)4 跟蹤條紋帶\t(121)
搭建和測試路徑\t(121)
需要的材料\t(121)
測試條紋帶\t(121)
絕緣帶路徑排錯\t(123)
編程跟蹤條紋帶\t(123)
例程:StripeFollowingRobot.c\t(124)
第7講 C51單片機的UART與機器人串口通信\t(126)
串口控制寄存器SCON\t(127)
什么是波特率\t(127)
波特率的計算\t(128)
RS232電平與TTL電平轉(zhuǎn)換\t(128)
任務(wù)1 編寫串口通信程序\t(129)
例程:uart.h\t(129)
uart.h是如何工作的\t(132)
存儲器結(jié)構(gòu)\t(132)
串口工作流程\t(133)
例程:HelloRobot.c―printf(\"Hello,this is a message from your Robot\
\")\t(134)
例程:ControlServoWithComputer.c―scanf(\"%d\",&PulseDuration)\t(134)
第8講 C51單片機顯示接口編程與機器人應(yīng)用\t(136)
LED數(shù)碼管\t(136)
任務(wù)1 數(shù)碼管顯示\t(136)
元件清單\t(138)
電路設(shè)計\t(138)
共陰極數(shù)碼管顯示的源程序\t(140)
電路連接\t(141)
任務(wù)2 認識LCD顯示器\t(142)
LCD顯示器\t(142)
LCD顯示器與C51單片機的連接\t(142)
LCD接口說明\t(143)
任務(wù)3 編寫LCD驅(qū)動程序\t(145)
元件清單\t(146)
電路連接\t(146)
例程:LCDdisplay.c\t(146)
LCDdisplay.c是如何工作的\t(150)
指針\t(151)
任務(wù)4 用LCD顯示機器人運動狀態(tài)\t(152)
C語言的編譯預(yù)處理\t(152)
例程:MoveWithLCDDisplay.c\t(156)
MoveWithLCDDisplay.c是如何工作的\t(158)
第9講 多傳感器智能機器人\t(160)
任務(wù)1 多傳感器信息與C語言結(jié)構(gòu)體的使用和編程\t(160)
結(jié)構(gòu)體\t(160)
例程:IRRoamingWithWithStructLCDDisplay.c\t(164)
IRRoamingWithWithStructLCDDisplay.c是如何工作的\t(165)
任務(wù)2 智能機器人的行為控制策略和編程\t(169)
例程:NavigationWithSensors.c\t(171)
NavigationWithSensors.c是如何工作的\t(173)
第10講 機器人循線競賽\t(175)
任務(wù)1 QTI傳感器及其通信接口\t(176)
任務(wù)2 安裝QTI傳感器到機器人前端\t(177)
任務(wù)3 編寫QTI傳感器的測試程序\t(178)
測試程序:Test4QTI.c\t(179)
Test4QTI.c是如何工作的\t(180)
任務(wù)4 設(shè)計算法實現(xiàn)機器人無接觸傳感器游中國\t(182)
例程:RobotTourChina.c\t(183)
RobotTourChina.c是如何工作的\t(186)
執(zhí)行調(diào)試\t(187)
任務(wù)5 修改算法實現(xiàn)機器人游中國\t(188)
任務(wù)6 用數(shù)組實現(xiàn)機器人游中國比賽\t(193)
任務(wù)7 改進運動執(zhí)行程序,提升執(zhí)行的可靠性\t(199)
函數(shù)\t(203)
附錄A C語言概要歸納\t(208)
C語言概述\t(208)
數(shù)據(jù)類型、運算符與表達式\t(208)
分支結(jié)構(gòu)程序\t(210)
循環(huán)控制\t(212)
數(shù)組\t(214)
函數(shù)\t(215)
預(yù)處理命令\t(215)
指針\t(217)
結(jié)構(gòu)體\t(218)
位運算\t(219)
附錄B 微控制器原理歸納\t(221)
引言\t(221)
一些概念\t(221)
中央處理器(CPU)\t(222)
RAM和ROM\t(223)
地址總線、數(shù)據(jù)總線和控制總線\t(223)
微處理器和微控制器\t(224)
附錄C 無焊料面包板\t(225)
附錄D LCD模塊電路\t(228)
附錄E 本書所使用的機器人零配件清單\t(228)