巧學易用單片機 — 從零基礎入門到項目實戰

王良升

  • 出版商: 清華大學
  • 出版日期: 2023-02-01
  • 定價: $714
  • 售價: 8.5$607
  • 語言: 簡體中文
  • ISBN: 7302626898
  • ISBN-13: 9787302626893
  • 相關分類: 8051ArduinoSTM32
  • 立即出貨 (庫存 < 4)

  • 巧學易用單片機 — 從零基礎入門到項目實戰-preview-1
  • 巧學易用單片機 — 從零基礎入門到項目實戰-preview-2
  • 巧學易用單片機 — 從零基礎入門到項目實戰-preview-3
巧學易用單片機 — 從零基礎入門到項目實戰-preview-1

買這商品的人也買了...

商品描述

單片機是一門對綜合性知識要求非常高的課程,單片機的入門一直以來對初學者來講是個老大難題,而入門後如何將這些知識運用到實際項目中,進一步提升單片機開發使用技能又是一個難題。一般來講,實戰項目帶有很多技巧性,需要大量的知識和經驗積累。針對這些情況,本書將從入門和實用的角度出發,全面系統的介紹單片機從入門到進階及實戰的技巧。全書包含兩大部分,第一部分以單片機入門為主,通過對比8051、PIC16、MSP430、STM32多種單片機和Arduino開發平臺下I/O、中斷、定時器、擴展芯片、I2C總線、SPI總線及串口等外設模塊的使用方式,總結介紹了一套適用於通用單片機外設的開發方法;第二部分結合實際單片機項目中的方法與技巧,從工程的角度出發,圍繞讀者將會面對的工程領域電路及軟件開發方法、代碼規範、模塊化程序編寫、項目基本開發流程、實用狀態機編程、單片機操作系統思維方式編程、算法的本質及常用算法原理與應用場景、單片機中的數據結構、代碼版本管理、基於模型開發方式實例分析與移植、Arduino開發平臺介紹與基本使用方法、VS Code開發工具在單片機中的應用,讓入門讀者近距離感受工程項目中的開發方式。 本書適合作為電子信息類本、專科學生入門與進階單片機知識的參考書,也可作為電子愛好者實戰參考書,對於單片機或嵌入式工程師來講也是一本不錯的參考書籍。

目錄大綱

 

 

目錄

 

 

入門篇

 

第1章經典的LED例子

 

1.18051單片機點亮LED

 

1.2PIC單片機點亮LED

 

1.3MSP430單片機點亮LED

 

1.4STM32單片機點亮LED

 

1.5Arduino點亮LED

 

第2章LED點亮例子剖析

 

2.1LED電路解析

 

2.2單片機科普

 

2.2.1電腦主板

 

2.2.2手機CPU

 

2.2.3單片機內部組成

 

2.3單片機運行程序解剖

 

2.3.1CPU運行程序的本質

 

2.3.2點亮一顆LED匯編代碼剖析

 

第3章初學者搭建電路神器——麵包板

 

3.1初學者使用麵包板的好處

 

3.2麵包板使用簡介

 

3.3麵包板在實際項目中的妙用

 

3.3.1原型電路驗證

 

3.3.2單片機連接分立元器件或模塊

 

3.3.3多平臺、多模塊系統驗證

 

第4章開發環境搭建

 

4.18051單片機Keil開發環境搭建

 

4.1.18051單片機軟件安裝與編譯

 

4.1.2STC系列8051單片機固件下載

 

4.2STM32單片機開發環境搭建

 

4.2.1STM32單片機軟件安裝與編譯

 

4.2.2STM32單片機固件下載

 

4.3MSP430開發環境搭建

 

4.3.1軟件安裝與編譯

 

4.3.2代碼下載

 

4.4PIC開發環境搭建

 

4.4.1軟件安裝與編譯

 

4.4.2PIC單片機代碼下載

 

4.5Arduino開發環境搭建

 

4.5.1Arduino IDE開發環境搭建

 

4.5.2Arduino IDE代碼下載

 

4.5.3MSP430 Arduino開發環境搭建

 

4.6Proteus模擬環境搭建

 

第5章I/O埠的基本輸出——多變的輸出控制

 

5.1I/O基本知識

 

5.1.1萬物皆有電阻

 

5.1.2歐姆定律

 

5.1.3I/O專業術語

 

5.2單片機I/O埠輸出電路內部剖析

 

5.2.1STC單片機I/O埠

 

5.2.2PIC16單片機I/O埠

 

5.2.3MSP430單片機I/O埠

 

5.2.4STM32單片機I/O埠

 

5.3I/O作為輸出使用的幾種方式

 

5.3.1小電流輸出驅動

 

5.3.2電平匹配或小功率驅動

 

5.3.3大功率大電壓驅動 

 

5.3.4設備工作電壓遠高於安全電壓

 

第6章I/O埠的基本輸入——不限於按鍵輸入

 

6.1開關基礎知識普及

 

6.1.1微動開關

 

6.1.2感應開關

 

6.1.3電容觸摸開關

 

6.1.4人體感應模塊

 

6.1.5普通6×6按鍵

 

6.2單片機I/O輸入模式

 

6.2.1上拉輸入

 

6.2.2下拉輸入

 

6.2.3浮空輸入

 

6.3單片機I/O埠輸入電路內部剖析

 

6.3.18051單片機I/O輸入

 

6.3.2PIC16單片機I/O輸入

 

6.3.3MSP430單片機I/O輸入

 

6.3.4STM32單片機I/O輸入

 

6.4幾種常用的輸入方式

 

6.4.1直連單片機I/O埠

 

6.4.2匹配電平後連接單片機I/O埠

 

6.4.3超過安全電壓或跨距離信號輸入

 

第7章單片機引腳不夠用——外掛擴展芯片

 

7.1使用擴展芯片情形及步驟

 

7.28051單片機驅動——8線解碼器

 

7.38051單片機實現74HC245收發器驅動

 

7.48051單片機驅動74HC573鎖存器

 

第8章中斷——單片機“一心多用”卻不落下重要事情

 

8.1生活中的中斷場景

 

8.28051單片機外部中斷

 

8.3PIC16單片機中斷

 

8.4MSP430單片機中斷

 

8.5STM32單片機中斷

 

8.6Arduino外部中斷

 

8.7外部中斷總結

 

第9章不甘只為定時器——它還有很多妙用

 

9.18051單片機定時器

 

9.2PIC16定時器

 

9.3MSP430定時器

 

9.4STM32定時器

 

9.5Arduino定時器

 

9.6定時器使用總結

 

第10章較少引腳多做事——總線

 

10.1總線的誕生

 

10.2總線初探

 

10.2.1手動模擬驅動74HC595

 

10.2.28051單片機驅動74HC595

 

10.3SPI總線原理與使用

 

10.3.1SPI總線介紹

 

10.3.28051單片機驅動MCP23S08輸出

 

10.3.38051單片機讀取MCP23S08按鍵值

 

10.4I2C總線驅動PCA9554

 

10.4.1I2C總線簡單介紹

 

10.4.2輸出控制流水燈

 

10.4.3讀取I2C輸入數據控制LED 

 

第11章串口通信——單片機與外界溝通常用方式

 

11.1原始通信方式與基本模式

 

11.1.1單工通信模式

 

11.1.2半雙工通信模式

 

11.1.3全雙工通信模式

 

11.2串口通信由來

 

11.3串口通信單片機實現

 

11.3.18051單片機串口通信

 

11.3.2PIC16單片機串口通信

 

11.3.3MSP430單片機串口通信

 

11.3.4STM32單片機串口通信

 

11.3.5Arduino單片機串口通信

 

11.3.6串口通信總結

 

11.4同是串口通信,別被接口和協議弄糊塗

 

11.4.1串口通信物理接口

 

11.4.2串口通信協議

 

第12章非常重要卻常被忽略的技能——調試

 

12.1使用硬件調試器

 

12.1.1PIC單片機調試

 

12.1.2MSP430單片機調試

 

12.1.3STM32調試

 

12.1.4單片機調試器使用總結

 

12.2一顆LED能反饋的信息眾多

 

12.2.1定時器中斷中使用LED調試

 

12.2.2串口通信中使用LED調試

 

12.2.3LED直接顯示設備狀態

 

12.3使用最方便的調試方式——串口

 

12.4任何時候要有快速找到解決問題的辦法

 

12.4.1軟硬件問題確定

 

12.4.2盡可能用熟悉的東西,找可靠渠道購買

 

第13章有趣的顯示方式

 

13.1生活中的LED變形記

 

13.2單總線全彩燈

 

第14章A/D——數字與模擬世界溝通的橋梁

 

14.1A/D原理

 

14.2PIC單片機A/D

 

14.3MSP430單片機A/D

 

14.4STM32單片機A/D

 

14.5Arduino A/D

 

第15章以為只是PWM,沒想到有這麽多“魔法”

 

15.1PWM介紹

 

15.1.1多種方式實現PWM

 

15.1.2專用名詞解釋

 

15.2呼吸燈原理剖析

 

15.3舵機控制

 

15.4步進電動機控制

 

15.4.1步進電動機原理

 

15.4.2步進電動機控制實現

 

15.5PWM直流電動機調速

 

提高篇

 

第16章學了很多東西,實際項目中如何用——硬件部分

 

16.1實際項目電路與單片機入門電路差距

 

16.2供電電路

 

16.2.1開發板供電

 

16.2.2消費電子產品供電

 

16.2.3工業控制器供電

 

16.2.4車用控制器供電

 

16.2.5電源電路總結

 

16.3輸入電路

 

16.3.1開發板輸入電路

 

16.3.2工業輸入電路

 

16.3.3車用輸入電路

 

16.4輸出電路

 

16.4.1工業功率輸出電路

 

16.4.2車用功率輸出電路

 

16.5A/D採集電路

 

16.5.1工業A/D輸入電路

 

16.5.2車用A/D輸入電路

 

16.6通信電路

 

16.6.1開發板通信電路

 

16.6.2車用通信電路

 

16.7對比分析總結

 

第17章別讓單片機學習停留在點亮LED

 

17.1初學者單片機軟件能力徘徊不前

 

17.2怎麽改變這種現狀

 

17.2.1項目分解能力

 

17.2.2程序框架搭建能力

 

17.2.3算法能力

 

17.3單片機成長捷徑

 

17.4站在巨人的肩膀上

 

17.4.1Arduino平臺

 

17.4.2開源代碼托管平臺

 

第18章要想路走得遠,編程規範少不了

 

18.1組織結構

 

18.1.1工程文件組織結構

 

18.1.2文件夾代碼組織結構

 

18.1.3程序結構

 

18.2標識符命名

 

18.2.1命名基本原則

 

18.2.2宏與常量命名

 

18.2.3變量命名

 

18.2.4函數命名

 

18.2.5文件命名

 

18.3代碼排版

 

18.3.1代碼縮進

 

18.3.2代碼分行

 

18.3.3頭文件

 

18.3.4註釋排版

 

18.3.5代碼可讀性

 

18.4註釋

 

18.4.1註釋基本原則

 

18.4.2文件註釋

 

18.4.3函數與代碼註釋

 

18.6變量、結構、常量、宏

 

18.7函數規範

 

18.7.1函數命名

 

18.7.2函數參數

 

18.8變量和結構規範

 

18.9宏表達式與常量規範

 

18.10表達式規範

 

第19章模塊化程序編寫

 

19.1點亮LED模塊化程序改造

 

19.1.1.h文件編寫

 

19.1.2.c文件編寫

 

19.2模塊化程序編寫進階

 

19.3打造可重復利用的軟件模塊

 

第20章多功能電子鐘——項目開發基本流程

 

20.1項目需求

 

20.2項目規格說明

 

20.3項目總體方案

 

20.4項目概要設計

 

20.4.1硬件概要方案

 

20.4.2軟件概要設計

 

20.5項目詳細設計

 

20.6項目調試與驗證

 

20.7項目測試

 

20.8項目批量階段

 

第21章網紅樓梯燈

 

21.1項目需求

 

21.2項目規格說明

 

21.3項目總體方案

 

21.4項目概要設計

 

21.4.1硬件概要方案

 

21.4.2軟件概要方案

 

21.5項目詳細設計

 

21.5.1硬件詳細方案

 

21.5.2軟件詳細方案

 

21.6項目調試與驗證

 

21.7項目測試

 

第22章狀態機編程,不止於按鍵

 

22.1狀態機實現按鍵功能 

 

22.2狀態機基本原理與實現

 

22.3狀態機串口接收協議

 

22.3.1簡單版串口協議

 

22.3.2實用串口協議

 

第23章可以不用操作系統,但是要會操作系統方式編程

 

23.1不要被操作系統嚇到,其實它也可以很簡單

 

23.2動手寫一個簡單操作系統

 

23.2.1構造一個簡單的調度器

 

23.2.2任務更新與啟動

 

23.3與市面主流系統對比

 

第24章算法和程序是兩碼事

 

24.1程序和算法

 

24.1.1算法本質

 

24.1.2程序本質及與算法之間聯系

 

24.2單片機項目中的典型算法

 

24.2.1濾波算法

 

24.2.2PID算法

 

24.2.3校驗算法

 

24.3別在程序上花太多時間,算法才是值得付出的

 

第25章Windows和單片機平臺算法對比

 

25.1貪吃蛇

 

25.1.1貪吃蛇游戲實現要點

 

25.1.2貪吃蛇原理解析

 

25.2Windows系統下貪吃蛇代碼解析

 

25.2.1游戲區域初始化

 

25.2.2繪制食物與蛇身

 

25.2.3檢測蛇碰撞

 

25.2.4蛇吃食物

 

25.2.5蛇身移動坐標更新

 

25.2.6蛇身變換方向

 

25.3單片機實現貪吃蛇

 

25.3.1游戲變量與宏定義

 

25.3.2復位蛇身與游戲開始

 

25.3.3按鍵檢測與設定蛇運動方向

 

25.3.4蛇身移動坐標更新

 

25.3.5吃食物檢測

 

25.3.6產生新食物

 

25.3.7碰撞檢測

 

25.3.8顯示蛇與食物

 

25.4俄羅斯方塊

 

25.4.1俄羅斯方塊類型

 

25.4.2方塊下落顯示區域

 

25.4.3預覽方塊和分數顯示

 

25.4.4按鍵檢測和移動方塊

 

25.4.5旋轉方塊

 

25.4.6方塊消除

 

第26章數據結構——感受不到你的存在

 

26.1鏈表——多任務調度

 

26.1.1單向鏈表

 

26.1.2雙向鏈表

 

26.2隊列——通信緩沖

 

26.2.1環形隊列基本操作

 

26.2.28051單片機隊列操作示例

 

26.2.3隊列操作在實時系統中的應用

 

第27章代碼版本工具——讓代碼管理更規範

 

27.1混亂的代碼管理方式

 

27.1.1復制粘貼——標題命名法

 

27.1.2復制粘貼——日期管理法

 

27.3使用工具科學管理代碼,讓重復的代碼不再重復

 

27.3.1代碼管理軟件介紹

 

27.3.2代碼管理軟件安裝

 

27.3.3代碼管理軟件打開與使用

 

27.4Git科普及作用

 

27.4.1Git簡介

 

27.4.2Git能夠解決的問題

 

27.4.3Git實現原理

 

第28章不用寫一行代碼的開發方式——基於模型開發

 

28.1一個基於模型的簡單例子

 

28.2當你以寫代碼為榮時,殊不知正在被機器悄悄取代

 

28.3任意單片機使用基於模型開發

 

28.3.18051單片機使用Simulink模型開發

 

28.3.2Simulink生成模型代碼簡單剖析

 

28.3.3其他單片機模型移植

 

28.4基於模型開發方式進階思考

 

第29章打造實用的Arduino平臺

 

29.1打造個人的Arduino開發平臺

 

29.1.1添加Arduino支持的單片機類型

 

29.1.2添加Arduino軟件庫

 

29.2Arduino IDE多文件工程建立

 

29.3多種模擬平臺總有一個適合你

 

29.3.1使用Proteus模擬Arduino

 

29.3.2在線TinkerCAD模擬

 

29.3.3使用在線Wokwi模擬

 

第30章萬能開發工具VS Code

 

30.1VS Code簡介

 

30.2VS Code開發環境搭建

 

30.3單片機開發平臺PlatformIO

 

30.3.1添加PlatformIO擴展插件

 

30.3.2PlatformIO新建8051單片機工程

 

30.3.3PlatformIO新建Arduino工程