3dwoo大學簡體電腦書店
STC15單片機實戰指南(C語言版)——從51單片機DIY、四軸飛行器到優秀產品設計
( 簡體 字)
作者:劉平 劉釗類別:1. -> 電腦組織與體系結構 -> 單晶片 -> 8051
   2. -> 電子工程 -> 無人機
出版社:清華大學出版社STC15單片機實戰指南(C語言版)——從51單片機DIY、四軸飛行器到優秀產品設計 3dWoo書號: 45071
詢問書籍請說出此書號!
有庫存
NT售價: 300
出版日:9/1/2016
頁數:532
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787302436584 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
學習說明1

贊譽3

前言5

第一部分入門篇

第1章藉馬歇門,踏神圣路:邁進STC15單片機的大門

1.1單片機概述

1.1.1單片機廠家簡介

1.1.2STC15單片機簡述

1.2為何要學習STC15單片機

1.3如何玩轉單片機

1.3.1做有準備的人

1.3.2經驗分享

第2章欲善其事,必利其器:軟硬件平臺的搭建和使用

2.1硬件平臺——FSST15開發板

2.1.1FSST15開發板功能框圖

2.1.2FSST15開發板基本配置

2.2開發環境——KeilμVision5

2.2.1KeilμVision5的安裝

2.2.2KeilμVision5中的工程創建過程

2.3我的第一個程序——點亮LED

2.4輔助開發工具

2.4.1CH340驅動的安裝

2.4.2單片機編程軟件——STCISP

2.5課后學習

第二部分初級篇

第3章端倪初現,小試牛刀:基本元器件與LED

3.1電阻的應用概述

3.1.1初識電阻

3.1.2電流與電阻的關系

3.2電容的應用概述

3.2.1初識電容

3.2.2電容的用途

3.2.3實例解說儲能和濾波

3.3二極管的應用概述

3.3.1二極管的特性

3.3.2二極管的應用

3.3.3發光二極管

3.4三極管應用概述及使用誤區

3.4.1三極管的基本開關電路

3.4.2開關三極管的使用誤區

3.5MOS管的應用概述

3.5.1MOS管基礎

3.5.2MOS管的應用

3.6運算放大器的基本應用

3.6.1負反饋

3.6.2同相放大電路

3.6.3反相放大電路

3.7STC15系列單片機的I/O口概述

3.7.1I/O口的工作模式及配置

3.7.2I/O口各種不同的工作模式結構框圖

3.8LED的原理解析

3.8.1LED的原理說明

3.8.2LED的硬件電路

3.9LED的應用實例

3.9.1LED閃爍實例

3.9.2LED跑馬燈實例

3.9.3LED流水燈實例

3.10課后學習

第4章排兵布陣,步步扣殺:模塊化編程

4.1夯實基礎——數值的換算以及邏輯運算

4.1.1各進制之間的換算關系

4.1.2數字電路和C語言中的邏輯運算

4.2簡述單片機的開發流程

4.3Keil5的進階應用——建模

4.4單片機的模塊化編程

4.4.1模塊化編程的說明

4.4.2用實踐解釋

4.5模塊化編程的應用實例

4.6課后學習

第5章點段融合,一氣呵成:C語言的編程規范與數碼管的應用

5.1夯實基礎——C語言的編程規范

5.1.1程序的排版

5.1.2程序的注釋

5.2基于STC15的單片機最小系統

5.2.1電源

5.2.2晶體振蕩電路(晶振)

5.2.3復位電路

5.2.4程序下載電路

5.3數碼管的原理解析

5.3.1數碼管的原理說明

5.3.2數碼管的硬件電路設計

5.3.3知識拓展——74HC595

5.3.4數碼管的真值表與基本的編程實例

5.4數碼管的應用實例

5.4.1數碼管的靜態顯示例程

5.4.2數碼管的動態顯示實例

5.5課后學習

第6章審時度勢,伺機而動:C語言的數據類型與定時器的應用

6.1夯實基礎——C語言的數據類型

6.1.1變量與常量

6.1.2變量的作用域

6.1.3變量的存儲類別

6.1.4變量的命名規則

6.2STC15單片機的內部結構

6.2.1STC15單片機的內部結構

6.2.2中央處理器(CPU)

6.2.3只讀存儲器(ROM)和隨機存儲器(RAM)

6.2.4IAP15W4K58S4單片機的存儲結構

6.3STC15單片機的定時器/計數器

6.3.1學習定時器/計數器之前的說明

6.3.2定時器/計數器T0、T1的寄存器

6.3.3定時器/計數器T0、T1的工作模式

6.3.4定時器的簡單應用實例和初始化步驟總結

6.4IAP15W4K58S4單片機的可編程時鐘輸出

6.5定時器和時鐘輸出應用實例

6.5.1數碼管的靜態顯示例程(定時器)

6.5.2可編程時鐘輸出例程

6.6課后學習

第7章當斷不斷,反受其亂:C語言的條件判斷語句與中斷系統

7.1夯實基礎——C語言的條件判斷語句

7.1.1if…else語句

7.1.2switch…case語句

7.2單片機省電模式和看門狗的應用

7.2.1省電模式

7.2.2看門狗

7.2.3LED燈閃爍是因為“狗”餓了

7.2.4要讓系統運行正常必須實時“喂狗”

7.3單片機的中斷系統

7.3.1單片機中斷的產生背景和響應過程

7.3.2單片機中斷系統的框架和中斷源

7.3.3單片機中斷系統的寄存器

7.3.4簡單中斷應用實例及與中斷函數有關的知識點

7.3.5中斷系統的優先級

7.4中斷系統的應用實例

7.4.1數碼管動態顯示的基本應用實例

7.4.2數碼管動態刷新的改進與消影

7.5課后學習

第8章舉一反三,一呼百應:C語言的循環語句與串口的應用

8.1夯實基礎——C語言的循環語句

8.1.1while循環

8.1.2do…while循環

8.1.3for循環

8.2通信接口模塊

8.2.1通信接口的基本分類

8.2.2串行通信概述

8.3IAP15W4K58S4單片機的串行接口

8.3.1與串行通信相關的基本寄存器

8.3.2串口1的工作模式

8.3.3串口1工作模式1的波特率計算

8.3.4串口1的應用實例

8.4RS232通信接口概述

8.4.1RS232C串口通信標準與接口定義

8.4.2RS232C通信接口的電平轉換

8.5USB轉串口通信

8.6通過串口實現數據互傳的應用實例

8.7課后學習

第9章穩扎穩打,步步為營:C語言的數組、字符串與按鍵的應用

9.1夯實基礎——C語言的數組、字符串

9.1.1數組

9.1.2字符串

9.2IAP15W4K58S4單片機的可編程計數器陣列

9.2.1CCP/PCA/PWM內部結構概述

9.2.2CCP/PCA/PWM的捕獲模式應用實例

9.2.3CCP/PCA/PWM的16位軟件定時器模式應用實例

9.2.4CCP/PCA/PWM的高速脈沖輸出模式應用實例

9.3按鍵的處理方法

9.3.1獨立按鍵介紹

9.3.2矩陣按鍵的組成

9.3.3觸摸按鍵概述

9.3.4A/D采樣方式的按鍵

9.4獨立按鍵掃描方法及消抖原理

9.4.1獨立按鍵的掃描方法

9.4.2鍵盤消抖的基本原理

9.4.3帶消抖的按鍵應用程序

9.5矩陣按鍵的掃描方法和狀態機

9.5.1矩陣按鍵的掃描方法

9.5.2狀態機概述

9.5.3狀態機法的按鍵檢測

9.5.4基于狀態機的獨立按鍵掃描法

9.6按鍵掃描的應用實例

9.6.1行掃描法的矩陣按鍵應用實例

9.6.2高低電平翻轉法的矩陣按鍵應用實例

9.6.3基于狀態機的矩陣按鍵應用實例

9.7課后學習

第10章包羅萬象,森然洞天:C語言的函數與液晶的基本應用

10.1夯實基礎——C語言的函數

10.1.1函數的定義和應用

10.1.2函數的分類及命名規則

10.2Keil5的軟件仿真、硬件仿真及延時

10.2.1基于Keil5的軟件仿真應用實例

10.2.2軟件仿真與延時

10.2.3基于Keil5與IAP系列單片機的硬件仿真應用實例

10.31602液晶的應用概述

10.3.11602液晶模組和電路設計

10.3.21602液晶的控制指令和時序圖

10.3.31602液晶的基本應用實例

10.41602液晶的應用實例

10.4.11602液晶移屏指令

10.4.2液晶CGRAM的操作實例

10.4.3串口和1602液晶的綜合應用實例

10.5課后學習

第11章沙場點兵,見風使舵:C語言的指針與LED點陣屏的應用

11.1夯實基礎——C語言的指針

11.1.1指針的基本用法

11.1.2指針與數組

11.1.3指針與函數

11.2同步串行外圍接口(SPI)的應用概述

11.2.1SPI介紹

11.2.2單片機內部SPI的寄存器

11.2.3SPI的數據通信方式與時序圖

11.2.4SPI的應用模式與串行Flash的應用實例

11.3LED點陣屏的原理及應用

11.3.1LED點陣屏的內部原理

11.3.2LED點陣屏的硬件電路設計

11.3.3LED點陣屏的基本顯示實例

11.4LED點陣屏的應用實例

11.4.1通過移屏方式顯示字符——IU

11.4.2LED點陣屏的移屏簡易算法

11.5課后學習

第三部分中級篇

第12章一脈相承,本源同宗:I2C總線與庫開發

12.1I2C總線的通信協議

12.1.1對I2C總線的初步認識

12.1.2I2C總線的時序格式

12.2AT24C02的基本應用

12.2.1AT24C02的簡述和硬件電路設計

12.2.2AT24C02的通信協議與時序圖

12.2.3基于AT24C02的I2C總線協議與軟件分析

12.3復合數據類型

12.3.1結構體

12.3.2枚舉

12.3.3typedef關鍵字的應用

12.4STC15系列單片機內部E2PROM的應用

12.4.1與單片機內部E2PROM有關的寄存器

12.4.2單片機內部E2PROM的應用實例

12.5庫函數與應用實例

12.5.1STC15系列庫函數

12.5.2庫函數的應用實例

12.6課后學習

第13章重巒疊嶂,矩陣方形:PWM的初步認識與相關應用

13.1PWM的初步認識

13.2利用可編程計數陣列產生PWM

13.2.1脈寬調制模式(PWM)

13.2.2利用CCP/PCA輸出PWM的應用實例

13.2.3利用CCP/PCA高速脈沖輸出功能實現兩路PWM

13.2.4用T0輸出PWM

13.3增強型高精度PWM的基本應用

13.3.1與高精度PWM相關的功能寄存器

13.3.2蜂鳴器和PWM的應用實例

13.3.3LED燈和PWM的應用實例

13.4常用的電動機驅動方式

13.4.1對電動機驅動芯片L298的初步認識

13.4.2H橋驅動電路簡介

13.5三種常用電動機的驅動方法

13.5.1直流電動機

13.5.2簡易步進電動機及其應用

13.5.3舵機的基本操作實例

13.6課后學習

第14章亦步亦趨,咫尺天涯:數模(D/A)與模數(A/D)的轉換

14.1D/A和A/D轉換的初步介紹

14.1.1D/A轉換原理

14.1.2A/D轉換原理

14.2STC15單片機內部的ADC

14.2.1STC15系列單片機內部ADC的結構

14.2.2與ADC有關的寄存器

14.2.3ADC的簡單應用實例

14.3基于ADC的獨立按鍵檢測

14.4電容感應式觸摸按鍵(PWM+ADC)

14.5基于PWM與RC濾波器的SPWM

14.6課后學習

第15章狂風暴雨,定海神針:邏輯分析儀與紅外編解碼

15.1Saleae邏輯分析儀

15.1.1示波器和邏輯分析儀的比較

15.1.2邏輯分析儀的工作原理和分類

15.1.3邏輯分析儀概述

15.1.4Saleae邏輯分析儀的使用步驟

15.2紅外遙控的原理

15.3紅外解碼過程分析

15.4紅外解碼的具體實現例程

15.5紅外編碼與發射的過程分析

15.6紅外編碼與發射的應用例程

15.7課后學習

第16章有的放矢,運籌帷幄:RTX51Tiny實時操作系統

16.1實時操作系統概述

16.2RTX51Tiny操作系統

16.2.1RTX51Tiny操作系統概述

16.2.2任務程序的分類

16.2.3RTX51Tiny的工作原理

16.2.4RTX51Tiny的配置

16.2.5RTX51Tiny的使用步驟

16.2.6RTX51Tiny的常用函數

16.3RTX51Tiny的應用實例

16.3.1流星慧燈(基于RTX51Tiny)

16.3.2簡易交通燈(基于RTX51Tiny)

16.4課后學習

第17章按圖索驥,彗泛畫涂:PCB的基本知識與軟件學習

17.1PCB設計流程

17.2PCB特性與設計規則

17.2.1PCB板材類型

17.2.2PCB布局與布線規則

17.2.3PCB封裝元件的線寬

17.3繪制PCB的軟件介紹

17.3.1AltiumDesigner2014使用方法

17.3.2PADS9.5的使用過程

17.4課后學習

第四部分高級篇

第18章范水模山,雙管齊下:串口擴展與一鍵自動下載項目

18.1軟件模擬串口應用實例

18.1.1使用定時器0軟件模擬一個全雙工串口

18.1.2使用兩路PCA模擬一個全雙工串口

18.2一鍵自動下載項目的功能要求與設計思想

18.3一鍵自動下載項目的硬件電路設計

18.3.1下載模式切換控制核心——STC15W104E

18.3.2開關電路的設計

18.4一鍵自動下載項目的軟件編程

18.5課后學習

第19章地無遺利,心隨你動:項目開發與多功能收音機

19.1RDM項目管理作業流程

19.1.1項目要求與需求分析

19.1.2項目立項與評估

19.1.3項目分工和總體的結構框架

19.2技術準備與難關突破

19.3溫度傳感器——LM75A

19.3.1LM75A的寄存器列表

19.3.2LM75A的I2C硬件接口電路

19.3.3LM75A的通信協議與時序特性

19.3.4LM75A的應用實例與軟件分析

19.4實時時鐘——PCF8563T

19.4.1PCF8563T的功能特點

19.4.2PCF8563T的內部寄存器

19.4.3PCF8563F的IC硬件接口電路

19.4.4PCF8563F的通信協議與時序特性

19.5程序總體框架和功能劃分

19.6各個子功能和總體程序的編寫

19.7課后學習

第20章天上天下,唯它獨尊:PID算法與四軸飛行器的設計

20.1PID算法

20.1.1PID算法概述

20.1.2PID算法的分類與應用實例

20.1.3位置式PID算法

20.2四軸飛行器硬件模型的建立

20.2.1搭建四軸飛行器的主板

20.2.2搭建四軸飛行器的遙控器

20.3四軸飛行器的軟件算法

20.3.1四軸飛行器的運行狀況與電動機轉動的關系

20.3.2PID控制電動機的參數整定

20.3.3四元數與濾波算法

20.4四軸飛行器主板的綜合程序

20.5四軸飛行器遙控器的綜合程序

20.6課后學習

本書從工程實踐的角度出發,整理了作者在單片機學習、實踐中的大量經驗,旨在引領讀者熟練應用STC公司最新的單片機。本書共20章,內容由淺入深,由點到面: 首先,從最基本的概念、開發工具入手,引領讀者走進單片機的大門,深入淺出地學習STC15單片機內部資源(如定時器、中斷、串口)和經典外圍電路(如LED、數碼管、按鍵、液晶、點陣、EEPROM、溫度傳感器、時鐘、紅外線解碼、收音機、觸摸按鍵、A/D、D/A),以及一些C語言和基礎電路的知識; 其次,擴展了一些工程中常用的知識點,如模塊化編程、PCB、實時操作系統等; 最后,以兩個工程項目為例,手把手教大家如何DIY一個屬于自己的“神器”——四軸飛行器,飛出單片機的大門。
為了方便讀者學習,特別錄制了配書視頻,同時所有的工程源碼采用模塊化編程,后面章節的程序,更是引入庫函數的概念,并且這些源碼可直接移植到以后的工作項目中,幫助讀者快速由初學者進階到高手的行列。本書還提供與之配套的單片機開發板,視頻、書籍、開發板三合一,真正做到理論、實踐相結合,達到事半功倍的效果。
本書適合剛接觸單片機的初學者自學,也可作為高等院校電子工程等相關專業的單片機教材和學生進行課程設計、畢業設計、電子競賽等的參考用書,以及電子工程技術人員的工程用書。
曾幾何時,我也懷揣夢想,踏進大學校園,以為自己會在相對開放的環境里有所作為,而現實的挫敗感,讓我開始漫無目的,找不到人生的方向。一次沉重的打擊加上一個偶然的機會,讓我結識了單片機,也就是從那時起,我便與單片機結下了不解之緣,好似遇到真愛,從此便放不下、離不開,為了它通宵達旦,廢寢忘食……
如今,我已不再那般年輕,然而回想起與單片機牽手的那些年,心頭依然會浮起滿滿的幸福。有人說,夢想就是一種讓你感到堅持就是幸福的東西。從與單片機的相識、相知,再到相伴,我是幸福的,此刻,也想把這種幸福傳遞給每位讀者,并且感謝讀者們選擇了本書,或許若干年之后,讀者們也會和我一樣,當回想起那些堅持與相伴,便會幸福,也會感激曾經奮斗的自己。
單片機技術,比起當今流行的ARM、DSP、FPGA顯得有些“遜色”,而且隨著物聯網的發展,特別是智能硬件的普及,單片機已經被集成到了某些藍牙芯片內部,但其應用的廣泛性并不亞于ARM、DSP、FPGA應用的總和。讀者不要相信“學單片機沒有技術含量”,“單片機已過時”,“學完單片機對以后找工作無幫助”這樣的話,更不要把單片機和金錢畫等號,要堅信,有些單片機的設計,值得用一生去追求。
時至今日,書已成型。數月的寫作,不僅是一段經歷,更是一次突破。這期間包含了太多的辛酸、喜悅和成長的感悟。辛酸的是有時一連幾周沒有休息日,有時晚上2、3點還在寫稿,寫著、寫著就趴在桌子上睡著了,有時甚至會焚膏繼晷、通宵達旦; 喜悅的是能得到親人、朋友、網友們的支持和對本書的關注,書雖未出版,但電子版已得到好多專業人士和網友的肯定; 成長的感悟是做事要逼自己一把,但合理的時間規劃必須得有,否則會很累,工作很重要,但身體更重要。因為身體就好比數字1,其他的,如房子、車子、票子、地位、名譽等都是數字0,只有1在時,后面的0才有意義,1不在時,再多的0還是0。像我這樣經常熬夜,對身體的摧殘是不可逆的,借此機會,向讀者們說聲: 奮斗的同時,別忘了鍛煉身體。
本書書名
《STC15單片機實戰指南(C語言版)》,表達本書注重實戰的特點。每個人,剛開始學習單片機時,都會感覺有些困難,所以本書剛開始講解時盡量會通俗易懂,讓讀者能盡快入門,但想成為高手,不是一夕而就的,單片機的學習更沒有捷徑可走,需要讀者花費大量的時間和精力。正如本書的學習,也需要讀者掌握本書的所有例程,并能自行編寫、調試程序,才能為制作四軸飛行器夯實基礎。
本書目的
本書的目的是讓那些對單片機既有興趣,又能堅持的人把單片機當作一個友好助人、易于使用、便于自學的助手。為了達到這個目標,本書采用了以下策略:
(1) 盡量使用通俗易懂的語言講述,有時也會特意用一些口語化的語言闡述問題,而不是死磕概念,這樣更能與讀者產生共鳴。
(2) 對于用語言、文字難以闡述的概念,會采用圖表的形式來陳述清楚。圖表可以刺激人的潛意識,世界潛能大師崔西就說過: “潛意識是顯意識力量的3萬倍以上”。
(3) 采用化整為零的方法,將枯燥、無味的知識分解成小部分,再一點一滴地向讀者講解。
(4) 對于難理解、難記憶的知識點,多會采用舉例的方式,這樣易于讀者理解、記憶。
本書內容
本書分為入門篇、初級篇、中級篇、高級篇四部分內容,具體內容介紹如下。
(1) 入門篇包括第1~2章。第1章主要介紹了單片機的概念及其應用,分享了“玩”單片機的方法和經驗; 第2章主要介紹了“玩”單片機需要的物質準備,包括硬件和軟件。
(2) 初級篇包括第3~11章。該篇以筆者自己開發的FSST15開發板為硬件平臺,由淺入深地帶領讀者從點亮一個LED的實例開始,經數碼管、蜂鳴器、按鍵、液晶、LED點陣等外設,再經單片機內部資源,如定時器、中斷、串口等,讓讀者徹底精通單片機,精通外設資源。同時,每章還穿插了C語言和基礎電路知識,讓讀者重拾單片機基本編程的基礎。在此過程中,用通俗易懂的語言、大量的實例、各個擊破的方式,讓讀者邊做實驗、邊掌握單片機的理論知識。
(3) 中級篇包括第12~17章。第12~15章在初級篇的基礎上,增加了庫函數、I2C協議、PWM、D/A、A/D、紅外編解碼等實際中常用的知識點,為以后做項目打下堅實的基礎; 第16章講述了實時操作系統——RTX51 Tiny,讓讀者從一開始“玩”單片機,就對操作系統的概念有個深入的理解,以便為以后學習Linux、winCE等操作系統夯實基礎; 第17章講述了硬件設計中很重要的一個知識點——PCB的設計,以現階段流行的Altium Designer 15、PADS 9.5軟件為例,一步步講解元件的封裝、原理圖的設計、PCB的繪制。
(4) 高級篇包括第18~20章。第18章主要講述串口的擴展應用,在此基礎上,以FSST15開發板上經典的一鍵下載電路為例,講述了串口的應用和編程,以及電路設計; 第19章主要講述項目的大致開發流程,然后以多功能收音機項目為例,講述了項目的整個開發流程和編程特點; 第20章講述了控制中最常用的PID算法,以及如何DIY一架四軸飛行器,這樣做的目的,就是為了讓讀者能將所學的知識熟練地應用到實際中,真正做到基于基礎、高于理論、著眼于應用。
致謝
在本書的編寫過程中,無論是例程的編寫,還是電路的設計,都得到了劉釗工程師的大力支持和協助。我們認識于“虛擬”的網絡世界,但他肯吃苦、肯鉆研、默默奉獻的精神,給我帶來正能量讓“虛擬”變為真實,在此由衷地表示感謝。
感謝為書中四軸飛行器的設計提供幫助的哈爾濱理工大學劉一桐同學。劉一桐同學在制作飛行器方面有著比較豐富的經驗,其扎實的理論基礎和出色的動手能力為書中飛行器的設計提供了穩定有效的解決方案。在研究技術的過程中,他提出了許多寶貴的意見,并且開放了其開發的四軸飛行器源碼,這是一段難忘的經歷。
感謝為本書提供技術資料的STC公司的銷售總監陶敏敏女士,以及對本書各方面工作提供幫助的賀榮、杜邦安、崔健等工程師。
感謝ChinaAET網站主任木易姐,是她的穿針引線,讓筆者和清華大學出版社有了寶貴的合作機會,認識了出版社盛東亮先生。正是有了他們的幫助,才讓我堅定信心寫完了這本與眾不同的作品。
謹以此書,獻給我身邊的每個親人、朋友、兄弟、網友,若沒有他們的支持,絕對不可能有此書的出版。
有人說電影是一門遺憾的藝術,因為在編輯完成之后總能或多或少地發現一些本來可以做得更好的地方,寫書同樣如此。由于作者技術水平有限,加之時間緊迫,書中疏漏之處在所難免,懇請各位讀者批評指正。
pagetop