C51單片機應用與C語言程序設計(第4版) ——基於機器人工程對象的項目實踐

C51單片機應用與C語言程序設計(第4版) ——基於機器人工程對象的項目實踐

作者: 秦志強
出版社: 電子工業
出版在: 2022-01-01
ISBN-13: 9787121379291
ISBN-10: 7121379295
總頁數: 240 頁





內容描述


本書以兩輪小型移動機器人的製作與編程項目為主線,通過循序漸進地構建機器人的控制器和傳感器電路,並對機器人實現編程和控制,將C51單片機的外圍接口特性、內部結構原理、綜合應用設計和C語言程序設計等知識和技能傳授給學生,徹底打破了傳統的先理論後實驗的教學方法和教學體系結構,解決了單片機原理與應用,以及C語言程序設計等核心專業基礎課程抽象、枯燥與教學效果差的老大難問題。


目錄大綱


1講從Ardui到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) 
例程:StartAndSWithRamping.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) 
附錄AC語言概要歸納(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)




相關書籍

IPv6 解析, 3/e (IPv6 Essentials, 3/e)

作者 Silvia Hagen 柳百郁 譯

2022-01-01

C Programming for the PIC Microcontroller: Demystify Coding with Embedded Programming

作者 Ward Hubert Henry

2022-01-01

C++17 入門經典, 5/e (Beginning C++ 17 )

作者 [美]艾佛?霍爾頓(Ivor Horton) 彼得?範維爾特(Peter Van Weert) 盧旭紅 張駿溫 譯

2022-01-01