《C51單片機應用與C語言程式設計(第3版)——基於機器人工程物件的專案實踐》

《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

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *