STC 單片機 C語言程序設計 — 8051 體系架構、編程實例及項目實戰

何賓

  • 出版商: 清華大學
  • 出版日期: 2018-12-01
  • 定價: $774
  • 售價: 8.5$658
  • 語言: 簡體中文
  • 裝訂: 平裝
  • ISBN: 7302482020
  • ISBN-13: 9787302482024
  • 相關分類: 8051C 程式語言
  • 下單後立即進貨 (約4週~6週)

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

相關主題

商品描述

本書系統地論述了STC單片機的C語言程序設計方法。全書共分為27章,主要內容包括: 單片機基礎知識,STC單片機硬件知識,數值表示及轉換,STC單片機CPU子系統,STC單片機CPU指令系統,STC單片機集成開發環境,STC單片機彙編語言編程基礎, STC單片機C語言編程入門,STC單片機C語言變量和數據類型,STC單片機C語言運算符,STC單片機C語言描述語句,STC單片機C語言數組,STC單片機C語言指針,STC單片機C語言函數,STC單片機C語言預處理指令,STC單片機C語言複雜數據結構,STC單片機C語言高級編程技術,STC單片機時鐘、復位和電源模式原理及實現,STC單片機比較器原理及實現,STC單片機計數器和定時器原理及實現,STC單片機異步串行收發器原理及實現,STC單片機ADC原理及實現,STC單片機SPI原理及實現,STC單片機CCP/PCA/PWM模塊原理及實現,STC 單片機增強型PWM發生器原理及實現, RTX51操作系統原理及實現,綜合目實例: 風扇轉速控制系統的設計與實現。
本書將C語言程序設計與STC單片機的各個知識點進行系統化融合,不僅系統地介紹C語言程序設計的各個知識點及其在單片機中的具體應用,而且更加突出學習方法。為了方便讀者自學,本書提供了大量的設計案例和公開教學視頻。

本書可作為讀者零基礎學習單片機C語言程序設計的參考用書,也可作為單片機競賽、單片機認證考試的參考用書。

作者簡介

作者:何賓

著名的嵌入式技術和EDA技術專家,長期從事電子設計自動化方面的教學和科
研工作,與全球多家知名的半導體廠商和EDA工具廠商保持緊密合作。目前已經出版嵌入式和EDA方面的著作20餘部,內容涵蓋電路仿真、電路設計、可編程邏輯器件、數字信號處理、單片機、嵌入式系統、片上可編程系統等。典型的代表作有《Xilinx FPGA數字信號處理權威指南——從HDL、模型到C的描述》《STC單片機原理及應用》《Altium Designer 15.0電路仿真、設計、驗證與工藝實現權威指南》《模擬電子系統設計指南(基礎篇)》《模擬電子系統設計指南(實踐篇)》《EDA原理及VHDL實現——從晶體管、門電路到Xilinx Vivado的數字系統設計》《EDA原理及Verilog HDL實現——從晶體管、門電路到Xilinx Vivado的數字系統設計》。

目錄大綱


第1章單片機基礎知識

1.1單片機發展歷史

1.2單片機內部架構

1.3單片機與嵌入式系統的關係

1.4單片機硬件開發平台

1.5運行第一個單片機程序

1.6單片機編程語言

第2章STC單片機硬件知識

2.1STC單片機發展歷史

2.2STC單片機IAP和ISP 

2.3STC單片機命名規則及封裝

2.3.1命名規則

2.3.2封裝類型

2.3.3引腳定義

2. 4STC單片機結構及功能

2.5STC單片機的I/O驅動原理

2.6STC單片機硬件下載電路設計

2.6.1通過USB串口芯片的下載電路

2.6.2USB直接下載編程電路

2.7STC單片機電源系統設計

2.8調試單片機系統所用到的儀器

第3章數值表示及轉換

3.1常用數制

3.1.1二進制

3.1.2十進制

3.1.3十六進制

3.2正數表示方法

3.2.1正整數的表示

3.2.2正小數的表示

3.3正數碼製轉換

3.3.1十進制整數轉換成其他進制數

3.3.2十進制小數轉換成二進制數

3.4負數表示方法

3.4.1符號幅度表示法

3.4.2補碼表示法

3.5負數補碼的計算

3.5.1負整數補碼的計算

3.5.2負小數補碼的計算

3.6定點數表示

3.7浮點數表示

第4章STC單片機CPU子系統

4.1STC單片機CPU內核功能單元

4.1.1控制器

4.1.2運算器

4.1.3特殊功能寄存器

4.2STC單片機存儲器結構和地址空間

4.2.1程序Flash存儲器

4.2.2數據Flash存儲器

4.2.3內部數據RAM 

4.2.4外部數據存儲器

4.2.5字節存儲順序

4.3STC單片機中斷系統原理及功能

4.3.1中斷原理

4.3.2中斷系統結構

4.3.3中斷優先級處理

4.3.4中斷優先級控制寄存器

4.3.5中斷向量表

第5章STC單片機CPU指令系統

5.1STC單片機CPU尋址模式

5.1.1立即數尋址模式

5.1.2直接尋址模式

5.1.3間接尋址模式

5.1.4寄存器尋址模式

5.1.5相對尋址模式

5.1.6變址尋址模式

5.1.7位尋址模式

5.2STC單片機CPU指令集

5.2.1算術指令

5.2.2邏輯指令

5.2.3數據傳送指令

5.2.4布爾指令

5.2.5程序分支指令

第6章STC單片機集成開發環境

6.1Keil μVision集成開發環境介紹

6.1.1軟件功能介紹

6.1.2軟件的下載

6.1.3軟件的安裝

6.1.4導入STC單片機元件庫

6.1.5軟件的啟動

6.2Keil μVision軟件開發流程介紹

6.2.1明確軟件需求

6.2.2創建設計工程

6.2.3編寫彙編/C軟件代碼

6.2.4彙編器對彙編語言處理

6.2.5C編譯器對C語言進行處理

6.2.6庫管理器生成庫文件

6.2.7鏈接器生成絕對目標模塊文件

6.2.8目標模塊文件到HEX轉換器

6.2.9調試器調試目標代碼

6.3Keil μVision軟件開發流程實現

6.3.1建立新的設計工程

6.3.2配置文件結構

6.3.3設置工程選項

6.3.4添加新的源文件

6.3.5建立設計


6.3.6運行設計

6.3.7啟動硬件仿真

6.4U8W編程器

6.4.1U8W編程器接口和功能

6.4.2U8W在線聯機下載

6.4.3U8W脫機下載

第7章STC單片機彙編語言編程基礎

7.1彙編語言程序結構

7.2彙編代碼中段的分配

7.2.1CODE段

7.2.2BIT段

7.2.3IDATA段

7.2.4DATA段

7.2.5XDATA段

7.3彙編語言符號及規則

7.3.1符號的命名規則

7.3.2符號的作用

7.4彙編語言操作數描述

7.4.1數字

7.4 .2字符

7.4.3字符串

7.4.4位置計數器

7.4.5操作符

7.4.6表達式

7.5彙編語言控制描述

7.5.1地址控制

7.5.2條件彙編

7.5.3存儲器初始化

7.5.4分配存儲器空間

7.5 .5過程聲明

7.5.6程序鏈接

7.5.7段控制

7.5.8雜項

7.6彙編語言設計流程

7.6.1建立新的設計工程

7.6.2添加新的彙編語言文件

7.6.3建立設計

7.6.4分析.m51文件

7.6.5分析.lst文件

7.6.6分析HEX文件

7.6.7程序軟件仿真

7.6.8程序硬件仿真

7.7單片機端口控制彙編語言程序設計

7.7.1設計原理

7.7.2建立新的工程

7.7.3添加彙編語言文件

7.7.4建立設計

7.7.5下載設計

7.8單片機中斷彙編語言程序設計

7.8.1設計原理

7.8.2建立新的工程

7.8.3添加彙編語言文件

7.8.4分析. lst文件

7.8.5建立設計

7.8.6下載設計

7.8.7硬件仿真

第8章STC單片機C語言編程入門

8.1高級編程語言概念

8.1.1構建計算模型

8.1.2形式化描述

8.1.3算法的流程圖描述

8.1.4轉換成計算機可以識別的形式

8.1.5代碼、程序和編程的關係

8.2選擇C語言的理由

8.3C語言發展歷史

8.4C語言程序框架

8.5C語言詞法構成

第9章STC單片機C語言變量和數據類型

9.1C語言中的常量和變量

9.1.1常量

9.1.2變量

9.2C51編譯器支持的數據類型

9.2.1標準C語言所支持的類型

9.2.2volatile類型修飾符

9.2.3單片機擴充的類型

9.3自定義數據類型

9.4變量存儲種類和存儲類型

9.4.1變量存儲種類

9.4 .2變量存儲器類型

9.5定位變量的絕對位置

第10章STC單片機C語言運算符

10.1C語言運算符分類

10.2C語言運算符優先級

10.3賦值運算符

10.4算術運算符

10.5遞增和遞減運算符

10.6關係運算符

10.7邏輯運算符

10.8位運算符

10.9複合賦值運算符

10.10逗號運算符

10.11條件運算符

10.12強制類型轉換符

10.13sizeof運算符

第11章STC單片機C語言描述語句

11.1輸入輸出語句

11.1.1putchar函數

11.1. 2getchar函數

11.1.3printf函數

11.1.4scanf函數

11.1.5puts函數

11.1.6gets函數

11.2表達式語句

11.3條件語句

11.3.1條件語句格式1

11.3.2條件語句格式2 

11.3.3條件語句格式3 

11.4開關語句

11.5循環語句

11.5.1while語句

11.5.2dowhile語句

11.5.3for語句

11.5.4goto語句

11.5.5break語句

11.5.6continue語句

11.6返回語句

11.7 C語言端口控制實現

第12章STC單片機C語言數組

12.1一維數組的定義和操作

12.1.1一維數組的定義

12.1.2一維數組初始化

12.1.3一維數組的操作

12.2多維數組的定義和操作

12.2.1多維數組的定義

12.2.2多維數組初始化

12.2.3多維數組的操作

第13章STC單片機C語言指針

13.1C51編譯器中指針的分類

13.2通用指針

13.2.1未指定存儲區域的通用指針

13.2.2指定存儲區域的通用指針

13.3指定存儲器類型的指針

13.4指針轉換

13.5指針變量輸入

13.6指向指針的指針

13.7抽象指針

第14章STC單片機C語言函數

14.1函數定義和聲明

14.1.1標準C函數定義和聲明

14.1.2擴展C函數定義和聲明

14.1.3存儲器模型

14.2函數調用原理

14.2.1函數調用格式

14.2.2參數和堆棧

14.2.3參數和寄存器

14.2.4返回值

14.3函數調用實現分析

14.4函數變量的存儲方式

14.5數組類型傳遞參數

14.6指針類型傳遞參數

14.7指向函數的指針

14.8可重入函數設計

14.9中斷函數設計

14.9.1C語言中斷函數的聲明格式

14.9.2外部中斷電路原理

14.9.3C語言中斷程序的編寫和測試

第15章STC單片機C語言預處理指令

15.1文件包含

15.1.1包含用戶頭文件

15.1.2包含系統頭文件

15.1.3只包含一次文件

15.2宏定義及使用

15.2.1簡單的宏定義

15.2.2複雜的宏定義

15.2.3宏操作符

15.2.4預定義的宏

15.3條件編譯

15.4其他預處理命令

15.4.1#line 

15.4.2#message 

15.4.3# error 

15.4.4#pragma

第16章STC單片機C語言複雜數據結構

16.1結構

16.1.1結構類型的定義

16.1.2結構變量的定義

16.1.3結構變量內元素的引用

16.1.4指向結構的指針

16.2聯合

16.3枚舉

16.4鍊錶

16.4 .1單鍊錶的存儲結構

16.4.2建立鍊錶

16.4.3查找結點

16.4.4刪除結點

16.4.5插入結點

第17章STC單片機C語言高級編程技術

17.1C程序中使用彙編語言

17.1.1內嵌彙編語言

17.1.2調用彙編程序

17.2優化代碼策略

17.3C語言動態圖形交互設計

17.3.1動態圖形交互硬件平台

17.3.2STC單片機對觸摸屏的控制

17.3.3STC單片機對觸摸屏的初始化

17.3.4觸摸屏基本繪圖流程

17.3.5繪製不同圖形的具體實現方法

17.3.6設計頭文件說明

17.3.7主處理文件main函數設計

第18章STC單片機時鐘、復位和電源模式原理及實現

18.1STC單片機時鐘

18.2STC單片機復位

18.2.1外部RST引腳復位

18.2.2軟件復位

18.2.3掉電/上電複位

18.2.4MAX810專用複位電路復位

18.2.5內部低壓檢測復位

18.2.6看門狗復位

18.2.7程序地址非法復位

18.3STC單片機電源模式

18.3.1低速模式

18.3.2空閒模式

18.3.3掉電模式

第19章STC單片機比較器原理及實現

19.1STC單片機比較器結構

19.2STC單片機比較器寄存器組

19.2.1比較控制寄存器1 

19.2.2比較控制寄存器2 

19.3STC單片機比較器應用

第20章STC單片機計數器和定時器原理及實現

20.1計數器/定時器模塊簡介

20.2計數器/定時器寄存器組

20.2.1定時器/計數器0/1控制寄存器TCON 

20.2.2定時器/計數器工作模式寄存器TMOD 

20.2.3輔助寄存器AUXR 

20.2.4T0~T2時鐘輸出寄存器和外部中斷允許INT_CLKO(AUXR2) 

20.2.5定時器T0和T1中斷允許控制寄存器IE 

20.2.6定時器T0和T1中斷優先級控制寄存器IP 

20.2.7定時器T4和定時器T3控制寄存器T4T3M 

20.2.8定時器T2、T3和T4的中斷控制寄存器IE2 

20.3計數器/定時器工作模式原理 和實現

20.3.1定時器/計數器0工作模式

20.3.2定時器/計數器1工作模式

20.3.3定時器/計數器2工作模式

20.3.4定時器/計數器3工作模式

20.3.5定時器/計數器4工作模式

第21章STC單片機異步串行收發器原理及實現

21.1RS232標準簡介

21.1.1RS232傳輸特點

21.1.2RS232數據傳輸格式

21.1.3RS232電氣標準

21.1.4RS232參數設置

21.1. 5RS232連接器

21.2STC單片機串口模塊簡介

21.2.1串口模塊結構

21.2.2串口引腳

21.3串口1寄存器及工作模式

21.3.1串口1寄存器組

21.3.2串口1工作模式

21.3.3人機交互控制的實現

21.3.4按鍵掃描及串口顯示

21.4串口2寄存器及工作模式

21.4.1串口2寄存器組

21.4.2串口2工作模式

21.5串口3寄存器及工作模式

21.5.1串口3寄存器組

21.5.2串口3工作模式

21.6串口4寄存器及工作模式

21.6.1串口4寄存器組

21.6.2串口4工作模式

21.7紅外通信的原理及實現

21.7.1紅外收發器的電路原理

21.7.2紅外通信波形捕獲

21.7.3紅外通信協議

21.7.4紅外檢測原理

21.7.5串口通信原理

21.7.6設計實現

第22章STC單片機ADC原理及實現

22.1ADC原理

22.1.1ADC的參數

22.1.2ADC的類型

22.2STC單片機內ADC的結構原理

22.2.1STC單片機內ADC的結構

22.2.2ADC轉換結果的計算方法

22.3STC單片機內ADC寄存器組

22.3.1P1口模擬功能控制寄存器

22.3.2ADC控制寄存器

22.3.3時鐘分頻寄存器

22.3.4ADC結果高位寄存器

22.3.5ADC結果低位寄存器

22.3.6中斷使能寄存器

22.3.7中斷優先級寄存器

22.4直流電壓測量及串口顯示

22.4.1直流分壓電路原理

22.4.2軟件設計流程

22.4.3具體實現過程

22.5直流電壓測量及LCD屏顯示

22.5.1硬件電路設計

22.5.21602字符LCD原理

22.5.3軟件設計流程

22.5.4具體實現過程

22.6交流電壓測量及LCD屏顯示

22.6.1硬件電路設計

22.6.212864圖形點陣LCD原理

22.6.3軟件設計流程

22.6.4ADC外部輸入信號要求

22.6.5具體實現過程

22.7溫度測量及串口顯示

第23章STC單片機SPI原理及實現

23.1STC SPI模塊結構及功能

23.1.1SPI傳輸特點

23.1.2SPI模塊功能

23.1.3SPI接口信號

23.1.4SPI接口的數據通信方式

23.1.5SPI模塊內部結構

23.2SPI模塊寄存器組

23.2.1SPI控制寄存器

23.2.2SPI狀態寄存器

23.2 .3SPI數據寄存器

23.2.4中斷允許寄存器2 

23.2.5中斷優先級寄存器

23.2.6控制SPI引腳位置寄存器

23.3SPI模塊配置及時序

23.3.1SPI配置模式

23.3.2主/從模式的注意事項

23.3. 3通過SS修改模式

23.3.4寫衝突

23.3.5數據模式時序

23.47段數碼管的驅動與顯示

23.4.1系統控制電路原理

23.4.27段數碼管原理

23.4.374HCT595原理

23.4.4系統軟件控制流程

23.4.5程序具體實現

第24章STC單片機CCP/PCA/PWM模塊原理及實現

24.1CCP/PCA/PWM結構

24.2CCP/PCA/PWM寄存器組

24.2.1PCA工作模式寄存器

24.2.2PCA控制寄存器

24.2.3PCA比較捕獲寄存器

24.2.4PCA的16位計數器

24.2.5PCA捕獲/比較寄存器

24.2.6PCA模塊PWM寄存器

24.2.7PCA模塊引腳切換寄存器

24.3CCP/PCA/PWM工作模式

24.3.1捕獲模式

24.3.216位軟件定時器模式

24.3.3高速脈衝輸出模式

24.3.4脈衝寬度調製模式

第25章STC單片機增強型PWM發生器原理及實現

25.1增強型PWM發生器簡介

25.2增強型PWM發生器相關寄存器組

25.2.1端口配置寄存器

25.2.2PWM配置寄存器

25.2.3PWM控制寄存器

25.2.4PWM中斷標誌寄存器

25.2.5PWM外部異常控制寄存器

25.2.6PWM計數器

25.2.7PWM時鐘選擇寄存器

25.2.8PWM2翻轉計數器

25.2.9PWM2控制寄存器

25.2.10PWM3翻轉計數器

25.2.11PWM3控制寄存器

25.2.12PWM4翻轉計數器

25.2.13PWM4控制寄存器

25.2.14PWM5翻轉計數器

25.2.15PWM5控制寄存器

25.2.16PWM6翻轉計數器

25.2.17PWM6控制寄存器

25.2.18PWM7翻轉計數器

25.2.19PWM7控制寄存器

25.2.20PWM中斷優先級控制寄存器

25.3生成單路PWM信號

25.4生成兩路互補PWM信號

25.5步進電機的驅動和控制

25.5.1五線四相步進電機工作原理

25.5.2步進電機28BYJ48電氣性能

25.5.3步進電機的驅動

25.5.4使用軟件驅動步進電機

25.5.5使用增強型PWM模塊驅動步進電機

25.5.6設計下載和驗證

第26章RTX51操作系統原理及實現

26.1操作系統的必要性

26.1.1單任務程序

26.1.2輪詢程序

26.2操作系統基本知識

26.2.1操作系統的作用

26.2.2操作系統的功能

26.3RTX51操作系統的任務

26.3.1定義任務

26.3.2管理任務

26.3.3切換任務

26.4RTX51操作系統內核函數

26.5RTX51操作系統實現

26.5.1RTX51操作系統實現1 

26.5.2RTX51操作系統實現2 

26.5.3RTX51操作系統實現3 

第27章綜合項目實例:風扇轉速控制系統的設計與實現

27.1項目需求分析

27.1.1劃分軟件和硬件邊界

27.1.2設計過程中的細節問題

27.2離散PID控制算法及其參數

27.2.1離散PID控制算法

27.2.2參數整定方法

27.3風扇原理、驅動和運動特性

27.3.1風扇原理

27.3.2風扇驅動

27.3.3風扇運動特性

27.4反饋信號處理方法

27.4.1比較器的硬件設置

27.4.2比較器的程序配置方案

27.4.3比較器處理結果分析

27.5輸出測速信號的處理

27.5 .1設計思路

27.5.2程序設計方案

27.6單片機串口數據通信

27.6.1設計思路

27.6.2現象分析

27.7PID控制算法中關鍵問題

27.8系統的硬件結構原理圖

27.9控制系統設計代碼

27.10上位機應用程序開發

附錄ASTC單片機選型表636

附錄BSTC四軸飛行器643 

附錄CGNTSMK2開發板原理圖645