基本信息
書名:從零開始學51單片機作 者:賀亮 編著
出 版 社:電子工業出版社
出版時間:2012-9-1
版 次:1
頁 數:269
字 數:455000
印刷時間:2012-9-1
開 本:16開
內容簡介
本書由淺入深、全面、系統地介紹了單片機C51開發技術。本書提供了大量實例,供讀者實戰演練。另外,作者專門為每一章的內容設定了練習題,用來加深、鞏固對每一章知識的理解,有些章節設定了擴展式的練習,留給讀者去思考、提高。本書共分5篇。第1篇介紹單片機的發展史、套用領域、軟體開發環境Keil C μVision3的搭建、硬體最小系統的製作、編程器的製作和STC燒錄工具的使用;第2篇介紹51單片機C語言編程中常用的數據類型、運算符與表達式、流程控制語句、函式、數組和指針、結構體與共用體等;第3篇介紹51單片機的片內資源,包括單片機的I/O編程、中斷系統、定時器/計數器、USART通用串列接口、片內EEPROM和看門狗;第4篇介紹增強型單片機的功能,包括第2通用串列接口USART2、同步外圍串列接口SPI、PWM脈寬調製、A/D轉換;第5篇設計了一個完整的套用實例,詳細介紹了整個系統的開發過程,以提高讀者實戰水平。本書涉及面廣,從C語言編程知識到硬體電路原理,再到單片機片內功能模組的配置和使用,最後到項目開發,幾乎涉及51單片機開發的所有重要知識。本書拋開了單片機複雜的內部資源,弱化了對數量龐大的暫存器的講解,把重點放在原理設計和功能實現上。目錄
第1篇 入門與提高第1章 認識51系列單片機
1.1 單片機的發展史
1.2 單片機的套用
1.3 51單片機的開發環境——Keil μVision
1.4 快速掌握單片機的開發要點
1.5 STC89C51RC/RD+系列單片機
1.5.1 STC89C51系列單片機選型
1.5.2 常見的封裝類型
1.6 STC89C51RC/RD+系列單片機的外部引腳
1.7 小結
1.8 習題
第2章 開發環境的搭建
2.1 軟體開發環境
2.1.1 安裝Keil C μVision3開發環境
2.1.2 增加對STC型號的支持
2.1.3 建立第一個工程
2.1.4 開發中經常用到的功能
2.2 必要的硬體環境
2.2.1 10元DIY單片機最小系統
2.2.2 動手製作一個編程器
2.3 STC燒錄工具
2.4 小結
2.5 習題
第2篇 51單片機C語言編
第3章 單片機C語言的基本數據類型
3.1 常量與變數
3.2 基本數據類型
3.2.1 整型
3.2.2 長整型
3.2.3 字元型
3.2.4 位類型
3.2.5 浮點數
3.2.6 雙精度浮點數
3.3 小結
3.4 習題
第4章 運算符與表達式
4.1 算術運算符與表達式
4.2 關係運算符與表達式
4.3 邏輯運算符與表達式
4.4 位運算符與表達式
4.5 賦值運算符與表達式
4.6 小結
4.7 習題
第5章 流程控制
5.1 條件語句if
5.1.1 條件語句if的3種表達方式
5.1.2 條件語句if嵌套
5.2 開關語句switch … case
5.2.1 開關語句的語法格式
5.2.2 開關語句的執行過程
5.2.3 注意事項
5.3 循環語句for
5.3.1 循環語句for的語法格式
5.3.2 循環語句for的執行過程
5.3.3 循環語句for嵌套
5.4 另一種循環語句while和do…while
5.4.1 循環語句while和do…while的語法格式
5.4.2 循環語句while和do…while的執行過程
5.5 無條件跳轉語句goto
5.6 中斷語句break/continue
5.6.1 中斷語句break
5.6.2 中斷語句continue
5.7 小結
5.8 習題
第6章 函式
6.1 定義函式的一般形式
6.2 函式的參數和返回值
6.2.1 函式的參數
6.2.2 函式的返回值
6.3 函式的調用
6.3.1 被調函式的聲明
6.3.2 函式語句調用
6.3.3 函式表達式調用
6.3.4 作為函式的參數調用
6.3.5 函式的嵌套調用
6.3.6 函式的遞歸調用
6.4 單片機的特殊函式——中斷函式
6.5 小結
6.6 習題
第7章 數組與指針
7.1 數組 71
7.1.1 一維數組
7.1.2 二維數組與多維數組
7.2 指針
7.2.1 指針的概念
7.2.2 定義和引用指針變數
7.2.3 指針和數組
7.3 小結
7.4 習題
第8章 結構體與共用體
8.1 結構體
8.1.1 什麼是結構體
8.1.2 定義結構體變數
8.1.3 結構體變數的初始化
8.1.4 使用結構體
8.1.5 指向結構體類型數據的指針
8.1.6 將結構指針變數作為函式的參數
8.2 共用體
8.2.1 什麼是共用體
8.2.2 定義共用體變數
8.2.3 使用共用體
8.3 小結
8.4 習題
第3篇 51單片機開發實戰
第9章 IO連線埠編程
9.1 STC89C51RC-RD+系列單片機的I/O連線埠
9.2 I/O連線埠的工作模式
9.2.1 準雙向口/弱上拉模式
9.2.2 輸入/高阻模式
9.2.3 輸出/開漏模式
9.2.4 配置I/O的工作模式
9.3 I/O輸出實驗
9.3.1 從點亮一個LED開始
9.3.2 閃動的LED
9.3.3 點亮更多的LED
9.3.4 點亮數碼管
9.3.5 動態點亮數碼管
9.3.6 控制3-8解碼器
9.4 I/O輸入實驗
9.4.1 分離式按鍵
9.4.2 模擬實現計數器
9.4.3 矩陣鍵盤
9.5 小結
9.6 習題
第10章 中斷系統和外部中斷
10.1 中斷的基本知識
10.1.1 什麼是中斷
10.1.2 使用中斷的好處
10.2 中斷源
10.3 中斷暫存器
10.3.1 中斷使能暫存器
10.3.2 中斷優先權暫存器
10.3.3 定時器控制暫存器、外部中斷標誌
10.3.4 串列口控制暫存器
10.4 中斷優先權
10.5 使用外部中斷檢測按鍵
10.5.1 低電平觸發方式
10.5.2 下降沿觸發方式
10.6 使用外部中斷設計運動限位裝置
10.6.1 硬體電路原理圖
10.6.2 代碼實現
10.7 小結
10.8 習題
第11章 定時器/計數器
11.1 定時器/計數器介紹
11.2 與定時器/計數器的有關的暫存器
11.2.1 工作方式暫存器TMOD
11.2.2 控制暫存器TCON
11.2.3 初值暫存器THx、TLx
11.3 定時器的工作模式
11.3.1 模式0
11.3.2 模式1
11.3.3 模式2(8位自動重裝模式)
11.3.4 模式3
11.4 定時器中斷實驗
11.4.1 定時器秒表實驗電路原理圖
11.4.2 秒表實驗控制流程
11.4.3 代碼實現
11.5 簡易電子琴演奏實驗
11.5.1 電子琴實驗的電路原理圖
11.5.2 代碼實現
11.6 小結
11.7 習題
第12章 USART通用串列口通信
12.1 通用串列口介紹
12.2 與通用串列口有關的暫存器
12.2.1 電源控制暫存器PCON
12.2.2 串列口控制暫存器SCON
12.2.3 數據快取暫存器SBUF
12.2.4 中斷控制位ES
12.3 通用串列口的工作模式
12.3.1 模式0,同步移位暫存器模式
12.3.2 模式1,波特率可變的8位數據異步收發
12.3.3 模式2,波特率固定的位數據異步收發
12.3.4 模式3,波特率可變的位數據異步收發
12.4 計算波特率
12.5 通過串列口和PC通信
12.5.1 串列口通信規範
12.5.2 串列口實驗電路
12.5.3 實驗控制流程
12.5.4 通信協定
12.5.5 代碼實現
12.6 單片機串列口遠距離通信
12.6.1 RS-485簡介
12.6.2 485通信的實驗電路
12.6.3 代碼實現
12.7 小結
12.8 習題
第13章 訪問內部EEPROM
13.1 EEPROM介紹
13.2 EEPROM的地址
13.3 與EEPROM有關的暫存器
13.4 EEPROM的常用操作
13.4.1 定義相關暫存器
13.4.2 讀操作
13.4.3 扇區擦除操作
13.4.4 寫操作
13.5 EEPROM套用實例
13.6 掉電時保存數據到EEPROM
13.6.1 實驗電路圖
13.6.2 代碼實現
13.7 小結
13.8 習題
第14章 看門狗WDT
14.1 看門狗WDT介紹
14.2 看門狗控制暫存器WDT-CONTR
14.3 看門狗溢出時間
14.4 測試看門狗
14.5 小結
14.6 習題
第4篇 更多功能的單片機
第15章 STC12C5A60S2系列單片機
15.1 STC12C5A60S2系列單片機介紹
15.2 STC12C5A60S2系列單片機外部引腳
15.3 過渡到STC12C5A60S2系列的要點
15.4 小結
15.5 習題
第16章 通用串列接口 USART2
16.1 與通用串列口2有關的暫存器
16.1.1 控制暫存器S2CON
16.1.2 數據緩衝暫存器S2BUF
16.1.3 獨立波特率發生暫存器BRT
16.1.4 輔助暫存器AUXR
16.1.5 與串列口2中斷有關的暫存器
16.1.6 輔助暫存器1,AUXR1
16.2 使用串列口2與PC通信
16.2.1 串列口2實驗電路
16.2.2 使用串列口2的步驟
16.2.3 代碼實現
16.3 使用雙串列口設計RS-485雙向中繼器
16.3.1 RS-485雙向中繼器的實驗電路
16.3.2 代碼實現
16.4 小結
16.5 習題
第17章 同步外圍串列接口SPI
17.1 SPI簡介
17.2 與SPI有關的暫存器
17.2.1 SPI控制暫存器SPCTL
17.2.2 SPI狀態暫存器SPSTAT
17.2.3 SPI數據暫存器SPDAT
17.2.4 輔助暫存器1,AUXR1
17.3 SPI接口的通信方式
17.3.1 單主—單從方式
17.3.2 雙器件互為主從方式
17.3.3 單主—多從方式
17.4 注意事項
17.4.1 作為主機的注意事項
17.4.2 作為從機的注意事項
17.4.3 匯流排爭奪
17.4.4 寫衝突
17.5 雙CPU單主、單從通信實驗
17.6 小結
17.7 習題
第18章 PWM脈寬調製
18.1 PWM簡介
18.2 與PWM有關的暫存器
18.2.1 PCA工作模式暫存器CMOD
18.2.2 PCA控制暫存器CCON
18.2.3 PCA捕獲/比較暫存器CCAPM0和CCAPM1
18.2.4 PCA的16位計數暫存器CL、CH
18.2.5 PCA捕捉/比較暫存器CCAPnL、CCAPnH
18.2.6 PWM暫存器PCA-PWM0、PCA-PWM1
18.2.7 輔助暫存器AUX1
18.3 PWM的設定
18.4 輸出PWM的測試程式
18.4.1 實驗電路
18.4.2 控制思想
18.4.3 代碼實現
18.5 使用PWM方式控制步進電機
18.5.1 步進電機的工作原理
18.5.2 實驗電路
18.5.3 代碼實現
18.6 小結
18.7 習題
第19章 A/D轉換
19.1 A/D轉換簡介
19.2 與A/D轉換相關的暫存器
19.2.1 P1口模擬功能控制暫存器P1ASF
19.2.2 ADC控制暫存器ADC-CONTR
19.2.3 A/D轉換結果暫存器ADC_RES/ADC_RESL
19.2.4 與A/D中斷有關的暫存器
19.3 用A/D轉換器檢測電壓實驗
19.3.1 實驗電路
19.3.2 代碼實現
19.4 使用A/D轉換檢測檔位開關
19.4.1 檢測原理與實驗電路
19.4.2 代碼實現
19.5 A/D轉換誤差問題
19.6 小結
19.7 習題
第5篇 51單片機統合套用實例
第20章 綜合套用實例
20.1 需求分析
20.1.1 系統結構
20.1.2 技術要求
20.2 系統設計
20.2.1 硬體電路設計
20.2.2 需要用到的單片機資源
20.2.3 軟體設計思路
20.3 各子系統的工作流程
20.3.1 數據接收子系統、協定管理子系統
20.2.2 終端地址的使用與維護
20.2.3 集體上傳控制
20.2.4 I/O處理子系統和工廠模式
20.2.5 電源管理子系統
20.4 軟體編程、系統實現
20.4.1 完整的原始碼
20.4.2 初始化部分代碼
20.4.3 按鍵檢測部分代碼
20.4.4 地址管理部分代碼
20.4.5 電壓檢測部分代碼
20.4.6 串列口接收數據、處理協定的部分代碼
20.4.7 休眠和喚醒的部分代碼
20.5 小結
20.6 習題