《C51單片機應用與C語言程式設計(第3版)——基於機器人工程物件的專案實踐》
《8051單片機應用與C語言程式設計(第3版)——基於機器人工程物件的專案實踐》
GITHUB: https://github.com/jash-git/Jash-good-idea-20220101-001/tree/main/HW/8051
扉頁; 1
內容 簡 介; 2
前言; 3
目錄; 7
第1 講 機器人大腦:從BS2微控制器到C51 單片機; 15
單片機和微控制器; 15
學習單片機的意義; 16
C51 系列單片機; 16
機器人與 C51 單片機; 18
任務 1 獲得軟體; 18
任務 2 安裝軟體; 19
安裝 Keil μVision2; 19
任務 3 硬體連接; 19
串口的連接; 20
USBASP 下載器的連接; 20
電源的連接; 20
給教學板和單片機進行通電檢查; 20
任務 4 第一個程式; 21
創建與編輯你的第一個程式; 21
常式:HelloRobot.c; 23
程式調試; 25
下載可執行檔到單片機; 26
用串口調試軟體查看單片機輸出資訊; 27
HelloRobot.c 是如何工作的; 28
printf 函數; 28
HelloRobotYourTurn.c 是如何工作的; 30
任務 5 做完實驗關斷電源; 33
第2 講 C51 介面與伺服電機控制; 34
C51 單片機的輸入/輸出介面; 34
任務 1 單燈閃爍控制; 35
LED 電路元件; 35
LED 電路搭建; 35
常式:HighLowLed.c; 36
HighLowLed.c 是如何工作的; 36
任務 2 機器人伺服電機控制信號; 40
常式:BothServoClockwise.c; 42
任務 3 計數並控制迴圈次數; 43
常式:ControlServoRunTimes.c; 45
常式:BothServosThreeSeconds.c; 46
任務 4 用電腦來控制機器人的運動; 47
常式:ControlServoWithComputer.c; 48
ControlServoWithComputer.c 是如何工作的; 49
第3 講 C 語言函數與機器人巡航控制; 51
任務 1 基本巡航動作; 51
常式:RobotForwardThreeSeconds.c; 52
RobotForwardThreeSeconds.c 是如何工作的; 52
向後走、原地轉彎和繞軸旋轉; 53
常式:ForwardLeftRightBackward.c; 54
任務 2 勻加速/減速運動; 57
編寫勻加速運動程式; 57
常式:StartAndStopWithRamping.c; 58
任務 3 用函式呼叫簡化運動程式; 60
常式:MovementsWithFunctions.c; 63
常式:MovementsWithOneFuntion.c; 65
任務 4 高級主題——用陣列建立複雜運動; 66
字元型資料; 67
陣列; 68
常式:NavigationWithSwitch.c; 70
NavigationWithSwitch.c 是如何工作的; 72
常式:NavigationWithValues.c; 73
第 4 講 C51 介面與觸覺導航; 76
觸覺導航與單片機輸入介面; 76
任務1 安裝並測試機器人“鬍鬚”; 77
安裝“鬍鬚”; 77
測試“鬍鬚”; 78
常式:TestWhiskers.c; 78
位操作符; 79
if 語句; 80
?操作符; 80
任務 2 通過“鬍鬚”導航; 83
程式設計使機器人基於“鬍鬚”導航; 83
關係與邏輯運算子; 84
常式:RoamingWithWhiskers.c; 85
“鬍鬚”導航機器人怎樣行走; 88
任務3 機器人進入死區後的人工智慧決策; 89
程式設計逃離牆角死區; 89
常式:EscapingCorners.c; 90
EscapingCorners.c 是如何工作的; 93
第5 講 C51 介面與紅外線導航; 95
使用紅外線發射和接收器件探測道路; 95
紅外前燈; 95
任務1 搭建並測試IR 發射和探測器對; 96
元件清單; 96
搭建紅外線前燈; 96
這裡為何要使用三極管9013; 98
測試紅外發射探測器; 98
常式:TestLeftIrPair.c; 99
排錯; 100
函數延時的不精確性; 101
任務2 探測和避開障礙物; 101
改變“鬍鬚”程式,使其適用於IR 探測和躲避; 102
常式:RoamingWithIr.c; 103
任務3 高性能的IR 導航; 106
在每個脈衝之間採樣以避免碰撞; 107
常式:FastIrRoaming.c; 107
FastIrRoaming.c 是如何工作的; 109
任務4 俯視的探測器; 111
推薦材料; 111
用絕緣帶模擬桌子的邊沿; 111
邊沿探測程式設計; 112
常式:AvoidTableEdge.c; 113
AvoidTableEdge.c 是如何工作的; 115
第6 講 C51 計時器與機器人的距離檢測; 118
用同樣的IR LED/探測電路檢測距離; 118
推薦工具和原料; 118
任務1 定時/計數器的運用; 118
定時/計數器的控制; 119
工作模式; 120
定時/計數器初值的計算; 120
常式:TimeApplication.c; 120
TimeApplication.c 是如何工作的; 121
中斷; 122
中斷優先順序; 123
任務2 測試掃描頻率; 124
紅外線探測器頻率探測; 124
用頻率掃描進行程式設計做距離探測; 124
常式:TestLeftFrequencySweep.c; 125
TestLeftFrequencySweep.c 是如何工作的; 126
常式:DisplayBothDistances.c; 128
任務3 尾隨小車; 128
對尾隨車程式設計; 130
常式:FollowingRobot.c; 131
FollowingRobot.c 是如何工作的; 134
任務4 跟蹤條紋帶; 135
搭建和測試路線; 135
需要的材料; 135
測試條紋帶; 136
絕緣帶路徑排錯; 137
程式設計跟蹤條紋帶; 138
常式:StripeFollowingRobot.c; 138
第 7 講 C51 的UART 與機器人串口通信; 140
串口控制寄存器 SCON; 141
什麼是串列傳輸速率; 141
串列傳輸速率的計算; 141
RS232 電平與TTL 電平轉換; 142
任務 1 編寫串口通信程式; 143
常式:uart.h; 143
uart.h 是如何工作的; 146
記憶體結構; 146
串口工作流程; 147
常式:HelloRobot.c——printf(“Hello,this is a message from your Robot\\n”); 148
常式:ControlServoWithComputer.c——scanf(“%d”,&PulseDuration); 148
第 8 講 C51 顯示介面程式設計與機器人應用; 150
LED 數碼管的介紹; 150
任務 1 數碼管顯示; 150
任務目的; 152
任務要求; 152
元件清單; 152
電路設計; 152
陰極數碼管顯示的來源程式; 154
電路實物; 155
LCD 顯示器的介紹; 156
任務 2 認識LCD 顯示器; 156
LCD 顯示器與C51 單片機的連接; 156
LCD 控制器介面說明; 157
任務 3 編寫LCD 模組驅動程式; 159
元件清單; 160
線路連接; 160
常式:LCDdisplay.c; 160
LCDdisplay.c 是如何工作的; 164
指針; 165
任務 4 用LCD 顯示機器人運動狀態; 166
C 語言的編譯預處理; 166
常式:MoveWithLCDDisplay.c; 170
MoveWithLCDDisplay.c 是如何工作的; 172
第 9 講 多感測器智慧型機器人; 174
任務 1 多感測器資訊與C 語言結構體的使用和程式設計; 174
結構體; 174
常式:IRRoamingWithWithStructLCDDisplay.c; 178
IRRoamingWithWithStructLCDDisplay.c 是如何工作的; 179
任務 2 智慧型機器人的行為控制策略和程式設計; 183
常式:NavigationWithSensors.c; 185
NavigationWithSensors.c 是如何工作的; 187
第10 講 機器人循線競賽; 189
競賽任務; 189
任務 1 QTI 感測器及其通信介面; 190
任務 2 安裝QTI 感測器到機器人前端; 191
任務 3 編寫QTI 感測器的測試程式; 192
Test4QTI.c 是如何工作的; 194
任務 4 設計演算法實現機器人無接觸感測器遊中國; 196
RobotTourChina.c 是如何工作的; 200
執行調試; 201
任務 5 修改演算法實現機器人游中國; 202
任務 6 用陣列實現機器人游中國比賽; 207
任務 7 改進運動執行程式提升執行的可靠性; 213
函數; 217
附錄A C 語言概要歸納; 222
C 語言概述; 222
資料類型、運算子與運算式; 222
分支結構程式; 224
迴圈控制; 226
陣列; 228
函數; 229
預處理命令; 229
指針; 231
結構體; 232
位運算; 233
附錄B 微控制器原理歸納; 235
引言; 235
一些概念; 235
中央處理器(CPU); 236
RAM 和ROM; 237
位址匯流排、資料匯流排和控制匯流排; 237
微處理器和微控制器; 238
附錄C 無焊錫麵包板; 239
附錄D LCD 模組電路; 242
附錄E 本書所使用的機器人零配件清單; 243
反侵權盜版聲明; 244