巧學易用單片機 — 從零基礎入門到項目實戰
王良升
買這商品的人也買了...
-
$330$314 -
$301實戰 Python 設計模式:可復用面向對象軟件開發實踐
-
$500$395 -
$419$398 -
$270$257 -
$294$279 -
$500ESP32-C3 物聯網工程開發實戰
相關主題
商品描述
單片機是一門對綜合性知識要求非常高的課程,單片機的入門一直以來對初學者來講是個老大難題,而入門後如何將這些知識運用到實際項目中,進一步提升單片機開發使用技能又是一個難題。一般來講,實戰項目帶有很多技巧性,需要大量的知識和經驗積累。針對這些情況,本書將從入門和實用的角度出發,全面系統的介紹單片機從入門到進階及實戰的技巧。全書包含兩大部分,第一部分以單片機入門為主,通過對比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工程