零基礎學單片機C語言程式設計第2版

《零基礎學單片機C語言程式設計第2版》是2012年機械工業出版社出版的圖書,作者是趙建領、薛園園。本書由淺入深、循序漸進地講解了C51語言的方方面面。

內容簡介

單片機C51語言是目前最流行的單片機程式設計語言。本書知識點覆蓋全面、結構安排緊湊、講解詳細、通俗易懂、實例豐富。內容包括51系列單片機開發環境和流程、程式設計基礎以及編程指南,並給出了一些常用的典型案例。全書分為四篇,共21章,全面詳細地講述了單片機的程式設計基礎、編程指南及套用案例。首先介紹了51系列單片機的基本結構以及單片機的開發概述,其次詳細介紹了單片機程式設計的C51語言,隨後結合單片機的硬體資源細緻講解了如何套用C51語言進行編程操作,最後結合實際套用,重點分析了在各個領域中常用到的一些典型案例,使讀者更加融會貫通地掌握C51語言,以供讀者在學習和工作中進行參考。在第21章中還介紹了部分常見的面試題及解答,方便讀者做好入職前的準備工作。

本書適合廣大單片機程式開發人員、電子設計愛好者、工程師和大專院校師生閱讀,尤其是適用於單片機及其程式語言的初學者。

目錄

前言

第一篇  單片機C51概述

第1章  單片機開發概述

1.1  單片機介紹

1.1.1  單片機簡介

1.1.2  單片機的主要組成部分

1.1.3  單片機引腳及功能

1.1.4  單片機的套用領域

1.2  單片機開發流程

1.2.1  系統分析

1.2.2  單片機選型

1.2.3  程式設計

1.2.4  仿真測試

1.2.5  程式下載

1.3  單片機開發語言概述

1.3.1  單片機彙編語言

1.3.2  單片機C51語言

1.4  小結

1.5  習題與上機實踐

第2章  構建C51集成開發環境

2.1  51系列單片機的最小硬體系統

2.1.1  時鐘振盪電路

2.1.2  單片機的復位電路

2.2  Keil m Vision3集成開發環境

2.2.1  Keil m Vision3簡介

2.2.2  Keil m Vision3安裝

2.2.3  Keil m Vision3界面概覽

2.2.4  Keil m Vision3的各種常用視窗

2.3  Keil m Vision3中C51的開發流程

2.3.1  創建項目

2.3.2  創建源檔案

2.3.3  編譯項目

2.3.4  仿真調試

2.3.5  程式下載

2.4  小結

2.5  習題與上機實踐

第二篇  C51語言程式設計指南

第3章  C51語言程式設計基礎

3.1  C51程式的基本結構

3.2  C51編程規範及注意事項

3.2.1  注釋

3.2.2  命名

3.2.3  格式

3.3  C51的標識符與關鍵字

3.3.1  標識符

3.3.2  關鍵字

3.4  C51的變數類型

3.4.1  C51的數據類型

3.4.2  整型變數

3.4.3  浮點型變數

3.4.4  字元型變數

3.4.5  指針型變數

3.4.6  無值型變數

3.5  C51的常量類型

3.5.1  整型常量

3.5.2  浮點型常量

3.5.3  字元型常量

3.5.4  轉義字元

3.6  變數作用域

3.6.1  變數作用域的基本規則

3.6.2  自動變數

3.6.3  全局變數

3.6.4  靜態變數

3.6.5  暫存器變數

3.7  分隔設定與const修飾符

3.7.1  C51分隔設定

3.7.2  const修飾符

3.8  C51的運算符

3.8.1  算術運算符

3.8.2  邏輯運算符

3.8.3  關係運算符

3.8.4  位運算符

3.8.5  “,”運算符

3.8.6  “?”運算符

3.8.7  “sizeof”運算符

3.8.8  地址操作運算符

3.8.9  聯合操作運算符

3.8.10  類型轉換運算符

3.8.11  運算符優先權和結合性

3.9  C51的表達式

3.9.1  算術表達式

3.9.2  賦值表達式

3.9.3  逗號表達式

3.9.4  關係表達式

3.9.5  邏輯表達式

3.10  小結

3.11  上機實踐

第4章  C51語句和流程

4.1  C51語句

4.1.1  變數聲明語句

4.1.2  表達式語句

4.1.3  複合語句

4.1.4  循環語句

4.1.5  條件語句

4.1.6  開關語句

4.1.7  程式跳轉語句

4.1.8  函式調用語句

4.1.9  函式返回語句

4.1.10  空語句

4.2  C51的流程控制結構及程式示例

4.2.1  順序結構

4.2.2  選擇結構

4.2.3  循環結構

4.2.4  流程控制結構程式示例

4.3  小結

4.4  上機實踐

第5章  C51的數據結構

5.1  C51的數組

5.1.1  數組定義及數組元素

5.1.2  一維數組

5.1.3  一維字元串數組

5.1.4  二維數組

5.1.5  二維字元串數組

5.1.6  多維數組

5.2  C51的指針

5.2.1  指針及相關概念

5.2.2  指針變數的定義及賦值

5.2.3  取址運算符和取值運算符

5.2.4  指針變數的運算

5.2.5  C51的字元指針

5.2.6  C51的數組指針

5.2.7  C51的指針數組

5.3  C51的結構

5.3.1  結構的聲明

5.3.2  結構變數的聲明

5.3.3  結構變數的初始化

5.3.4  結構變數的使用

5.3.5  C51的結構數組

5.3.6  C51的結構指針

5.3.7  C51的嵌套式結構

5.3.8  C51的位結構

5.4  C51的聯合

5.4.1  聯合的聲明和使用

5.4.2  結構和聯合的區別

5.5  C51的枚舉

5.5.1  枚舉和枚舉變數的聲明

5.5.2  枚舉變數的賦值和使用

5.6  C51的位域

5.6.1  位域和位域變數的聲明

5.6.2  位域變數的使用

5.7  C51的自定義類型

5.7.1  自定義類型的聲明

5.7.2  自定義類型的使用

5.8  小結

5.9  上機實踐

第6章  C51的函式

6.1  函式

6.1.1  函式的概述

6.1.2  函式的分類

6.1.3  函式的定義

6.1.4  函式的參數

6.1.5  函式的返回值

6.2  函式的作用域

6.2.1  函式的作用範圍

6.2.2  函式變數的作用域

6.3  函式的調用

6.3.1  賦值調用

6.3.2  引用調用

6.3.3  遞歸調用

6.3.4  嵌套調用

6.4  C51的main函式

6.4.1  無參main函式

6.4.2  有參main函式

6.5  C51的庫函式

6.5.1  I/O函式館

6.5.2  標準函式館

6.5.3  字元函式館

6.5.4  字元串函式館

6.5.5  內部函式館

6.5.6  數學函式館

6.5.7  絕對地址訪問函式館

6.5.8  變數參數表函式館

6.5.9  全程跳轉函式館

6.5.10  偏移量函式館

6.6  小結

6.7  上機實踐

第7章  C51的存儲結構

7.1  單片機的存儲器結構

7.1.1  51系列單片機的存儲區域

7.1.2  片內RAM的存儲器結構

7.2  C51的存儲類型

7.2.1  code存儲類型

7.2.2  data存儲類型

7.2.3  bdata存儲類型

7.2.4  idata存儲類型

7.2.5  pdata存儲類型

7.2.6  xdata存儲類型

7.3  C51的擴展數據類型

7.3.1  sfr和sfr16型變數

7.3.2  sbit型變數

7.3.3  bit型變數

7.3.4  51單片機暫存器的定義

7.4  C51變數的存儲模式

7.4.1  Small模式

7.4.2  Compact模式

7.4.3  Large模式

7.5  C51的存儲器指針

7.5.1  一般指針

7.5.2  存儲器指針

7.6  小結

7.7  上機實踐

第8章  C51的預處理命令和用戶配置檔案

8.1  C51的預處理命令概述

8.2  檔案包含指令

8.2.1  #include命令

8.2.2  C51常用的頭檔案

8.3  宏定義指令

8.3.1  #define命令

8.3.2  #undef命令

8.4  條件編譯指令

8.4.1  #if、#else和#endif命令

8.4.2  #elif命令

8.4.3  #ifdef、#ifndef命令

8.5  其他編譯指令

8.5.1  #line命令

8.5.2  #error命令

8.5.3  #pragma命令

8.6  C51的用戶配置檔案

8.6.1  C51的啟動代碼詳解

8.6.2  C51的變數初始化檔案

8.6.3  C51的基本I/O函式檔案

8.6.4  C51的分組配置檔案

8.7  小結

8.8  上機實踐

第三篇  C51單片機編程指南

第9章  C51定時器/計數器程式設計

9.1  定時器/計數器簡介

9.1.1  定時器/計數器的結構

9.1.2  方式控制暫存器TMOD

9.1.3  中斷控制暫存器TCON

9.1.4  定時器/計數器的初值

9.1.5  定時器/計數器的初始化

9.2  定時器/計數器工作模式0的C51程式設計

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

9.2.2  定時器/計數器模式0的程式設計

9.3  定時器/計數器工作模式1的C51程式設計

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

9.3.2  定時器/計數器模式1的程式設計

9.4  定時器/計數器工作模式2的C51程式設計

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

9.4.2  定時器/計數器模式2的程式設計

9.5  定時器/計數器工作模式3的C51程式設計

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

9.5.2  定時器/計數器模式3的程式設計

9.6  小結

9.7  上機實踐

第10章  C51中斷程式設計

10.1  單片機的中斷系統

10.1.1  單片機的中斷類型

10.1.2  中斷請求標誌及其C51訪問

10.1.3  中斷允許標誌及其C51訪問

10.1.4  中斷優先權標誌及其C51訪問

10.1.5  中斷的C51處理過程

10.2  外部中斷源的C51程式設計

10.3  定時中斷源的C51程式設計

10.4  串列中斷源的C51程式設計

10.5  小結

10.6  上機實踐

第11章  C51串列接口程式設計

11.1  51系列單片機的串列接口

11.1.1  單片機串列通信概述

11.1.2  單片機串列接口的內部結構

11.1.3  串列接口控制暫存器SCON

11.1.4  特殊功能暫存器PCON

11.2  串列口工作模式0的C51程式設計

11.2.1  模式0的波特率

11.2.2  模式0的數據傳送及C51程式設計

11.2.3  模式0的數據接收及C51程式設計

11.3  串列口工作模式1的C51程式設計

11.3.1  模式1的波特率

11.3.2  模式1的數據傳送及C51程式設計

11.3.3  模式1的數據接收及C51程式設計

11.4  串列口工作模式2的C51程式設計

11.4.1  模式2的波特率

11.4.2  模式2的數據傳送及C51程式設計

11.4.3  模式2的數據接收及C51程式設計

11.5  串列口工作模式3的C51程式設計

11.5.1  模式3的波特率

11.5.2  模式3的數據傳送及C51程式設計

11.5.3  模式3的數據接收及C51程式設計

11.6 小結

11.7  上機實踐

第12章  C51下的RTX-51實時多任務作業系統

12.1  RTX-51實時多任務作業系統簡介

12.1.1  單任務程式與多任務程式的比較

12.1.2  RTX-51實時多任務作業系統種類

12.2  RTX-51的系統函式

12.2.1  中斷調用的傳送信號函式

12.2.2  清除信號標誌函式

12.2.3  啟動任務函式

12.2.4  刪除任務函式

12.2.5  當前任務號函式

12.2.6  任務調用的傳送信號函式

12.2.7  等待函式

12.3  RTX-51的任務調度

12.3.1  循環任務調度

12.3.2  事件任務調度

12.3.3  信號任務調度

12.3.4  優先權及搶先任務切換

12.3.5  RTX-51的主要概念和特性

12.4  RTX-51 Tiny的任務管理

12.4.1  RTX-51 Tiny的任務狀態

12.4.2  RTX-51 Tiny的事件

12.4.3  RTX-51 Tiny的任務切換

12.5  RTX-51 Tiny的系統配置

12.5.1  RTX-51 Tiny系統配置檔案

12.5.2  RTX-51 Tiny系統參數

12.6  RTX-51 Tiny的要求及注意事項

12.6.1  RTX-51 Tiny的要求及技術參數

12.6.2  RTX-51 Tiny的注意事項

12.7  RTX-51 FULL實時多任務作業系統簡介

12.7.1  RTX-51 FULL函式一覽

12.7.2  RTX-51的技術參數

12.8  小結

12.9  上機實踐

第13章  Keil m Vision3的調試和仿真

13.1  Keil m Vision3的程式調試

13.1.1  Keil m Vision3的程式調試模式

13.1.2  斷點

13.1.3  性能分析器

13.1.4  代碼覆蓋分析器

13.1.5  調試命令

13.2  系統資源仿真

13.2.1  並行I/O連線埠仿真

13.2.2  暫存器仿真

13.2.3  中斷仿真

13.2.4  串列接口仿真

13.2.5  定時器/計數器仿真

13.2.6  看門狗定時器的仿真

13.2.7  低功耗仿真

13.3  小結

13.4  上機實踐

第四篇  C51程式設計典型案例

第14章  C51矩陣式鍵盤程式設計

14.1  鍵盤接口概述

14.1.1  獨立式按鍵和矩陣式鍵盤

14.1.2  鍵盤設計注意事項

14.2 矩陣式鍵盤C51程式設計

14.2.1  掃描法及C51程式設計

14.2.2  線反轉法及C51程式設計

14.2.3  中斷法及C51程式設計

14.3  C51矩陣式鍵盤設計實例

14.3.1  電路圖

14.3.2  程式設計

14.4  小結

14.5  上機實踐

第15章  C51液晶顯示模組

15.1  液晶顯示模組概述

15.1.1  液晶顯示模組的分類

15.1.2  液晶顯示模組的特點

15.2  液晶顯示控制驅動器

15.2.1  液晶顯示控制驅動器概述

15.2.2  液晶顯示控制驅動器功能說明

15.3  液晶顯示控制器指令集

15.3.1  基本指令集

15.3.2  擴充指令集

15.3.3  控制器指令操作方式

15.4  點陣圖形型液晶操作子函式

15.4.1  指令操作子函式

15.4.2  數據操作子函式

15.4.3  初始化子函式

15.4.4  清屏子函式

15.4.5  漢字顯示子函式

15.4.6  圖形顯示子函式

15.5  液晶漢字顯示實例

15.5.1  電路設計

15.5.2  程式設計

15.6  液晶圖形顯示實例

15.6.1  圖形數組的提取

15.6.2  圖形顯示程式設計

15.7  小結

15.8  上機實踐

第16章  C51模擬I2C匯流排

16.1  I2C匯流排概述

16.1.1  I2C匯流排工作原理

16.1.2  I2C匯流排器件的定址方式

16.1.3  I2C匯流排數據操作

16.2  I2C匯流排接口EEPROM存儲器

16.3  C51模擬I2C匯流排協定

16.3.1  延時子函式

16.3.2  起始信號子函式

16.3.3  終止信號子函式

16.3.4  應答信號子函式

16.3.5  非應答信號子函式

16.3.6  應答位檢查子函式

16.3.7  單位元組寫子函式

16.3.8  單位元組讀子函式

16.3.9  多位元組寫子函式

16.3.10  多位元組讀子函式

16.4  C51讀寫EEPROM實例

16.4.1  電路設計

16.4.2  程式設計

16.4.3  仿真分析

16.5  小結

16.6  上機實踐

第17章  C51模擬單匯流排接口

17.1  單匯流排接口概述

17.2  單匯流排溫度感測器及C51操作

17.2.1  溫度感測器DS18S20概述

17.2.2  DS18S20的數據操作及指令

17.2.3  DS18S20的訪問流程

17.2.4  溫度轉換操作

17.2.5  C51模擬單匯流排操作子函式

17.3  C51單匯流排溫度感測器實例

17.3.1  電路設計

17.3.2  程式設計

17.3.3  仿真分析

17.4  小結

17.5  上機實踐

第18章  實時時鐘晶片套用

18.1  實時時鐘晶片DS1302概述

18.1.1  實時時鐘晶片DS1302引腳

18.1.2  實時時鐘晶片DS1302的日期操作

18.1.3  實時時鐘晶片DS1302的控制操作

18.1.4  實時時鐘晶片DS1302的RAM操作

18.1.5  實時時鐘晶片DS1302數據傳輸方式

18.2  DS1302的控制子函式

18.2.1  復位子函式

18.2.2  位元組讀取子函式

18.2.3  位元組寫入子函式

18.2.4  年設定子函式

18.2.5  月設定子函式

18.2.6  日設定子函式

18.2.7  星期設定子函式

18.2.8  小時設定子函式

18.2.9  分鐘設定子函式

18.2.10  秒設定子函式

18.2.11  防寫子函式

18.2.12  寫允許子函式

18.2.13  充電控制子函式

18.2.14  初始化子函式

18.2.15  RAM位元組寫入子函式

18.2.16  時鐘顯示子函式

18.2.17  多位元組突發方式讀取RAM子函式

18.2.18  多位元組突發方式寫入RAM子函式

18.3  C51讀寫實時時鐘晶片實例

18.3.1  電路圖

18.3.2  程式設計

18.3.3  仿真分析

18.4  小結

18.5  上機實踐

第19章  C51通信接口程式設計

19.1  串列接口通信概述

19.1.1  串列接口通信標準

19.1.2  串列接口晶片

19.1.3  雙機及多機通信原理

19.2  C51雙機通信實例

19.2.1  電路原理圖

19.2.2  傳送方程式設計

19.2.3  接收方程式設計

19.3  C51多機通信實例

19.3.1  主機程式設計

19.3.2  從機程式設計

19.4  小結

19.5  上機實踐

第20章  道路交通燈多任務控制系統

20.1  交通燈多任務控制系統概述

20.2  C51交通燈多任務控制系統

20.2.1  電路原理圖

20.2.2  建立RTX-51 Tiny項目

20.2.3  多任務劃分

20.2.4  多任務程式設計

20.2.5  串列通信及命令獲取子函式

20.2.6  仿真調試

20.3  小結

20.4  上機實踐

第21章  常見面試題及解答

21.1  C51編程類面試題

21.1.1  預處理

21.1.2  C51語言基礎

21.1.3  循環

21.1.4  位操作

21.1.5  實用子函式

21.2  與MCS-51硬體相關的面試題

21.2.1  MCS-51硬體基礎

21.2.2  硬體編程

熱門詞條

聯絡我們