入門(mén)篇
第1章經(jīng)典的LED例子
1.18051單片機(jī)點(diǎn)亮LED
1.2PIC單片機(jī)點(diǎn)亮LED
1.3MSP430單片機(jī)點(diǎn)亮LED
1.4STM32單片機(jī)點(diǎn)亮LED
1.5Arduino點(diǎn)亮LED
第2章LED點(diǎn)亮例子剖析
2.1LED電路解析
2.2單片機(jī)科普
2.2.1計(jì)算機(jī)主板
2.2.2手機(jī)CPU
2.2.3單片機(jī)內(nèi)部組成
2.3單片機(jī)運(yùn)行程序解剖
2.3.1CPU運(yùn)行程序的本質(zhì)
2.3.2點(diǎn)亮一顆LED匯編代碼剖析
第3章初學(xué)者搭建電路神器面包板
3.1初學(xué)者使用面包板的好處
3.2面包板使用簡(jiǎn)介
3.3面包板在實(shí)際項(xiàng)目中的妙用
3.3.1原型電路驗(yàn)證
3.3.2單片機(jī)連接分立元器件或模塊
3.3.3多平臺(tái)、多模塊系統(tǒng)驗(yàn)證
第4章開(kāi)發(fā)環(huán)境搭建
4.18051單片機(jī)Keil開(kāi)發(fā)環(huán)境搭建
4.1.18051單片機(jī)軟件安裝與編譯
4.1.2STC系列8051單片機(jī)固件下載
4.2STM32單片機(jī)開(kāi)發(fā)環(huán)境搭建
4.2.1STM32單片機(jī)軟件安裝與編譯
4.2.2STM32單片機(jī)固件下載
4.3MSP430開(kāi)發(fā)環(huán)境搭建
4.3.1軟件安裝與編譯
4.3.2代碼下載
4.4PIC開(kāi)發(fā)環(huán)境搭建
4.4.1軟件安裝與編譯
4.4.2PIC單片機(jī)代碼下載
4.5Arduino開(kāi)發(fā)環(huán)境搭建
4.5.1Arduino IDE開(kāi)發(fā)環(huán)境搭建
4.5.2Arduino IDE代碼下載
4.5.3MSP430 Arduino開(kāi)發(fā)環(huán)境搭建
4.6Proteus仿真環(huán)境搭建
第5章I/O端口的基本輸出多變的輸出控制
5.1I/O基本知識(shí)
5.1.1萬(wàn)物皆有電阻
5.1.2歐姆定律
5.1.3I/O專(zhuān)業(yè)術(shù)語(yǔ)
5.2單片機(jī)I/O端口輸出電路內(nèi)部剖析
5.2.1STC單片機(jī)I/O端口
5.2.2PIC16單片機(jī)I/O端口
5.2.3MSP430單片機(jī)I/O端口
5.2.4STM32單片機(jī)I/O端口
5.3I/O作為輸出使用的幾種方式
5.3.1小電流輸出驅(qū)動(dòng)
5.3.2電平匹配或小功率驅(qū)動(dòng)
5.3.3大功率大電壓驅(qū)動(dòng)
5.3.4設(shè)備工作電壓遠(yuǎn)高于安全電壓
第6章I/O端口的基本輸入不限于按鍵輸入
6.1開(kāi)關(guān)基礎(chǔ)知識(shí)普及
6.1.1微動(dòng)開(kāi)關(guān)
6.1.2感應(yīng)開(kāi)關(guān)
6.1.3電容觸摸開(kāi)關(guān)
6.1.4人體感應(yīng)模塊
6.1.5普通66按鍵
6.2單片機(jī)I/O輸入模式
6.2.1上拉輸入
6.2.2下拉輸入
6.2.3浮空輸入
6.3單片機(jī)I/O端口輸入電路內(nèi)部剖析
6.3.18051單片機(jī)I/O輸入
6.3.2PIC16單片機(jī)I/O輸入
6.3.3MSP430單片機(jī)I/O輸入
6.3.4STM32單片機(jī)I/O輸入
6.4幾種常用的輸入方式
6.4.1直連單片機(jī)I/O端口
6.4.2匹配電平后連接單片機(jī)I/O端口
6.4.3超過(guò)安全電壓或跨距離信號(hào)輸入
第7章單片機(jī)引腳不夠用外掛擴(kuò)展芯片
7.1使用擴(kuò)展芯片情形及步驟
7.28051單片機(jī)驅(qū)動(dòng)8線(xiàn)譯碼器
7.38051單片機(jī)實(shí)現(xiàn)74HC245收發(fā)器驅(qū)動(dòng)
7.48051單片機(jī)驅(qū)動(dòng)74HC573鎖存器
第8章中斷單片機(jī)一心多用卻不落下重要事情
8.1生活中的中斷場(chǎng)景
8.28051單片機(jī)外部中斷
8.3PIC16單片機(jī)中斷
8.4MSP430單片機(jī)中斷
8.5STM32單片機(jī)中斷
8.6Arduino外部中斷
8.7外部中斷總結(jié)
第9章不甘只為定時(shí)器它還有很多妙用
9.18051單片機(jī)定時(shí)器
9.2PIC16定時(shí)器
9.3MSP430定時(shí)器
9.4STM32定時(shí)器
9.5Arduino定時(shí)器
9.6定時(shí)器使用總結(jié)
第10章較少引腳多做事總線(xiàn)
10.1總線(xiàn)的誕生
10.2總線(xiàn)初探
10.2.1手動(dòng)模擬驅(qū)動(dòng)74HC595
10.2.28051單片機(jī)驅(qū)動(dòng)74HC595
10.3SPI總線(xiàn)原理與使用
10.3.1SPI總線(xiàn)介紹
10.3.28051單片機(jī)驅(qū)動(dòng)MCP23S08輸出
10.3.38051單片機(jī)讀取MCP23S08按鍵值
10.4I2C總線(xiàn)驅(qū)動(dòng)PCA9554
10.4.1I2C總線(xiàn)簡(jiǎn)單介紹
10.4.2輸出控制流水燈
10.4.3讀取I2C輸入數(shù)據(jù)控制LED
第11章串口通信單片機(jī)與外界溝通常用方式
11.1原始通信方式與基本模式
11.1.1單工通信模式
11.1.2半雙工通信模式
11.1.3全雙工通信模式
11.2串口通信由來(lái)
11.3串口通信單片機(jī)實(shí)現(xiàn)
11.3.18051單片機(jī)串口通信
11.3.2PIC16單片機(jī)串口通信
11.3.3MSP430單片機(jī)串口通信
11.3.4STM32單片機(jī)串口通信
11.3.5Arduino單片機(jī)串口通信
11.3.6串口通信總結(jié)
11.4同是串口通信,別被接口和協(xié)議弄糊涂
11.4.1串口通信物理接口
11.4.2串口通信協(xié)議
第12章非常重要卻常被忽略的技能調(diào)試
12.1使用硬件調(diào)試器
12.1.1PIC單片機(jī)調(diào)試
12.1.2MSP430單片機(jī)調(diào)試
12.1.3STM32調(diào)試
12.1.4單片機(jī)調(diào)試器使用總結(jié)
12.2一顆LED能反饋的信息眾多
12.2.1定時(shí)器中斷中使用LED調(diào)試
12.2.2串口通信中使用LED調(diào)試
12.2.3LED直接顯示設(shè)備狀態(tài)
12.3使用最方便的調(diào)試方式串口
12.4任何時(shí)候要有快速找到解決問(wèn)題的辦法
12.4.1軟硬件問(wèn)題確定
12.4.2盡可能用熟悉的東西,找可靠渠道購(gòu)買(mǎi)
第13章有趣的顯示方式
13.1生活中的LED變形記
13.2單總線(xiàn)全彩燈
第14章A/D數(shù)字與模擬世界溝通的橋梁
14.1A/D原理
14.2PIC單片機(jī)A/D
14.3MSP430單片機(jī)A/D
14.4STM32單片機(jī)A/D
14.5Arduino A/D
第15章以為只是PWM,沒(méi)想到有這么多魔法
15.1PWM介紹
15.1.1多種方式實(shí)現(xiàn)PWM
15.1.2專(zhuān)用名詞解釋
15.2呼吸燈原理剖析
15.3舵機(jī)控制
15.4步進(jìn)電動(dòng)機(jī)控制
15.4.1步進(jìn)電動(dòng)機(jī)原理
15.4.2步進(jìn)電動(dòng)機(jī)控制實(shí)現(xiàn)
15.5PWM直流電動(dòng)機(jī)調(diào)速
提高篇
第16章學(xué)了很多東西,實(shí)際項(xiàng)目中如何用硬件部分
16.1實(shí)際項(xiàng)目電路與單片機(jī)入門(mén)電路差距
16.2供電電路
16.2.1開(kāi)發(fā)板供電
16.2.2消費(fèi)電子產(chǎn)品供電
16.2.3工業(yè)控制器供電
16.2.4車(chē)用控制器供電
16.2.5電源電路總結(jié)
16.3輸入電路
16.3.1開(kāi)發(fā)板輸入電路
16.3.2工業(yè)輸入電路
16.3.3車(chē)用輸入電路
16.4輸出電路
16.4.1工業(yè)功率輸出電路
16.4.2車(chē)用功率輸出電路
16.5A/D采集電路
16.5.1工業(yè)A/D輸入電路
16.5.2車(chē)用A/D輸入電路
16.6通信電路
16.6.1開(kāi)發(fā)板通信電路
16.6.2車(chē)用通信電路
16.7對(duì)比分析總結(jié)
第17章別讓單片機(jī)學(xué)習(xí)停留在點(diǎn)亮LED
17.1初學(xué)者單片機(jī)軟件能力徘徊不前
17.2怎么改變這種現(xiàn)狀
17.2.1項(xiàng)目分解能力
17.2.2程序框架搭建能力
17.2.3算法能力
17.3單片機(jī)成長(zhǎng)捷徑
17.4站在巨人的肩膀上
17.4.1Arduino平臺(tái)
17.4.2開(kāi)源代碼托管平臺(tái)
第18章要想路走得遠(yuǎn),編程規(guī)范少不了
18.1組織結(jié)構(gòu)
18.1.1工程文件組織結(jié)構(gòu)
18.1.2文件夾代碼組織結(jié)構(gòu)
18.1.3程序結(jié)構(gòu)
18.2標(biāo)識(shí)符命名
18.2.1命名基本原則
18.2.2宏與常量命名
18.2.3變量命名
18.2.4函數(shù)命名
18.2.5文件命名
18.3代碼排版
18.3.1代碼縮進(jìn)
18.3.2代碼分行
18.3.3頭文件
18.3.4注釋排版
18.3.5代碼可讀性
18.4注釋
18.4.1注釋基本原則
18.4.2文件注釋
18.4.3函數(shù)與代碼注釋
18.6變量、結(jié)構(gòu)、常量、宏
18.7函數(shù)規(guī)范
18.7.1函數(shù)命名
18.7.2函數(shù)參數(shù)
18.8變量和結(jié)構(gòu)規(guī)范
18.9宏表達(dá)式與常量規(guī)范
18.10表達(dá)式規(guī)范
第19章模塊化程序編寫(xiě)
19.1點(diǎn)亮LED模塊化程序改造
19.1.1.h文件編寫(xiě)
19.1.2.c文件編寫(xiě)
19.2模塊化程序編寫(xiě)進(jìn)階
19.3打造可重復(fù)利用的軟件模塊
第20章多功能電子鐘項(xiàng)目開(kāi)發(fā)基本流程
20.1項(xiàng)目需求
20.2項(xiàng)目規(guī)格說(shuō)明
20.3項(xiàng)目總體方案
20.4項(xiàng)目概要設(shè)計(jì)
20.4.1硬件概要方案
20.4.2軟件概要設(shè)計(jì)
20.5項(xiàng)目詳細(xì)設(shè)計(jì)
20.6項(xiàng)目調(diào)試與驗(yàn)證
20.7項(xiàng)目測(cè)試
20.8項(xiàng)目批量階段
第21章網(wǎng)紅樓梯燈
21.1項(xiàng)目需求
21.2項(xiàng)目規(guī)格說(shuō)明
21.3項(xiàng)目總體方案
21.4項(xiàng)目概要設(shè)計(jì)
21.4.1硬件概要方案
21.4.2軟件概要方案
21.5項(xiàng)目詳細(xì)設(shè)計(jì)
21.5.1硬件詳細(xì)方案
21.5.2軟件詳細(xì)方案
21.6項(xiàng)目調(diào)試與驗(yàn)證
21.7項(xiàng)目測(cè)試
第22章?tīng)顟B(tài)機(jī)編程,不止于按鍵
22.1狀態(tài)機(jī)實(shí)現(xiàn)按鍵功能
22.2狀態(tài)機(jī)基本原理與實(shí)現(xiàn)
22.3狀態(tài)機(jī)串口接收協(xié)議
22.3.1簡(jiǎn)單版串口協(xié)議
22.3.2實(shí)用串口協(xié)議
第23章可以不用操作系統(tǒng),但是要會(huì)操作系統(tǒng)方式編程
23.1不要被操作系統(tǒng)嚇到,其實(shí)它也可以很簡(jiǎn)單
23.2動(dòng)手寫(xiě)一個(gè)簡(jiǎn)單操作系統(tǒng)
23.2.1構(gòu)造一個(gè)簡(jiǎn)單的調(diào)度器
23.2.2任務(wù)更新與啟動(dòng)
23.3與市面主流系統(tǒng)對(duì)比
第24章算法和程序是兩碼事
24.1程序和算法
24.1.1算法本質(zhì)
24.1.2程序本質(zhì)及與算法之間聯(lián)系
24.2單片機(jī)項(xiàng)目中的典型算法
24.2.1濾波算法
24.2.2PID算法
24.2.3校驗(yàn)算法
24.3別在程序上花太多時(shí)間,算法才是值得付出的
第25章Windows和單片機(jī)平臺(tái)算法對(duì)比
25.1貪吃蛇
25.1.1貪吃蛇游戲?qū)崿F(xiàn)要點(diǎn)
25.1.2貪吃蛇原理解析
25.2Windows系統(tǒng)下貪吃蛇代碼解析
25.2.1游戲區(qū)域初始化
25.2.2繪制食物與蛇身
25.2.3檢測(cè)蛇碰撞
25.2.4蛇吃食物
25.2.5蛇身移動(dòng)坐標(biāo)更新
25.2.6蛇身變換方向
25.3單片機(jī)實(shí)現(xiàn)貪吃蛇
25.3.1游戲變量與宏定義
25.3.2復(fù)位蛇身與游戲開(kāi)始
25.3.3按鍵檢測(cè)與設(shè)定蛇運(yùn)動(dòng)方向
25.3.4蛇身移動(dòng)坐標(biāo)更新
25.3.5吃食物檢測(cè)
25.3.6產(chǎn)生新食物
25.3.7碰撞檢測(cè)
25.3.8顯示蛇與食物
25.4俄羅斯方塊
25.4.1俄羅斯方塊類(lèi)型
25.4.2方塊下落顯示區(qū)域
25.4.3預(yù)覽方塊和分?jǐn)?shù)顯示
25.4.4按鍵檢測(cè)和移動(dòng)方塊
25.4.5旋轉(zhuǎn)方塊
25.4.6方塊消除
第26章數(shù)據(jù)結(jié)構(gòu)感受不到你的存在
26.1鏈表多任務(wù)調(diào)度
26.1.1單向鏈表
26.1.2雙向鏈表
26.2隊(duì)列通信緩沖
26.2.1環(huán)形隊(duì)列基本操作
26.2.28051單片機(jī)隊(duì)列操作示例
26.2.3隊(duì)列操作在實(shí)時(shí)系統(tǒng)中的應(yīng)用
第27章代碼版本工具讓代碼管理更規(guī)范
27.1混亂的代碼管理方式
27.1.1復(fù)制粘貼標(biāo)題命名法
27.1.2復(fù)制粘貼日期管理法
27.3使用工具科學(xué)管理代碼,讓重復(fù)的代碼不再重復(fù)
27.3.1代碼管理軟件介紹
27.3.2代碼管理軟件安裝
27.3.3代碼管理軟件打開(kāi)與使用
27.4Git科普及作用
27.4.1Git簡(jiǎn)介
27.4.2Git能夠解決的問(wèn)題
27.4.3Git實(shí)現(xiàn)原理
第28章不用寫(xiě)一行代碼的開(kāi)發(fā)方式基于模型開(kāi)發(fā)
28.1一個(gè)基于模型的簡(jiǎn)單例子
28.2當(dāng)你以寫(xiě)代碼為榮時(shí),殊不知正在被機(jī)器悄悄取代
28.3任意單片機(jī)使用基于模型開(kāi)發(fā)
28.3.18051單片機(jī)使用Simulink模型開(kāi)發(fā)
28.3.2Simulink生成模型代碼簡(jiǎn)單剖析
28.3.3其他單片機(jī)模型移植
28.4基于模型開(kāi)發(fā)方式進(jìn)階思考
第29章打造實(shí)用的Arduino平臺(tái)
29.1打造個(gè)人的Arduino開(kāi)發(fā)平臺(tái)
29.1.1添加Arduino支持的單片機(jī)類(lèi)型
29.1.2添加Arduino軟件庫(kù)
29.2Arduino IDE多文件工程建立
29.3多種仿真平臺(tái)總有一個(gè)適合你
29.3.1使用Proteus仿真Arduino
29.3.2在線(xiàn)TinkerCAD仿真
29.3.3使用在線(xiàn)Wokwi仿真
第30章萬(wàn)能開(kāi)發(fā)工具VS Code
30.1VS Code簡(jiǎn)介
30.2VS Code開(kāi)發(fā)環(huán)境搭建
30.3單片機(jī)開(kāi)發(fā)平臺(tái)PlatformIO
30.3.1添加PlatformIO擴(kuò)展插件
30.3.2PlatformIO新建8051單片機(jī)工程
30.3.3PlatformIO新建Arduino工程