新編51單片機C語言教程:從入門到精通實例詳解全攻略
前 言
1 單片機入門
1.1 單片機簡介
1.1.1 什么是單片機
1.1.2 單片機應用系統的組成及舉例說明
1.組成
2.工作過程舉例說明
1.1.3 單片機的分類
1.1.4 單片機的應用領域
1.單片機在家電方面的應用
2.單片機在通信方面的應用
3.單片機在商業方面的應用
4.單片機在工業方面的應用
5.單片機在航空、航天和軍事方面的應用
6.單片機在汽車方面的應用
1.2 用實例了解單片機應用系統的開發過程
1.2.1 明確控制要求並選擇合適型號的單片機
1.明確控制要求
2.選擇合適型號的單片機
1.2.2 設計單片機電路原理圖
1.2.3 制作單片機電路
1.2.4 用Keil軟件編寫單片機控制程序
1.編寫程序
2.程序說明
1.2.5 計算機、下載(燒錄)器和單片機的連接
1.計算機與下載(燒錄)器的連接與驅動
2.下載器與單片機的連接
1.2.6 用燒錄軟件將程序寫入單片機
1.將計算機、下載器與單片機電路三者連接起來
2.打開燒錄軟件將程序寫入單片機
1.2.7 單片機電路的供電與測試
1.用計算機的USB接口通過下載器為單片機供電
2.用USB電源適配器給單片機電路供電
1.3 與單片機有關的基礎知識
1.3.1 單片機基礎電路
1.與門
2.或門電路
3.非門電路
4.與非門電路
5.或非門電路
1.3.2 數制與數制的轉換
1.十進制數
2.二進制數
3.十六進制數
4.二進制數與十進制數的轉換
5.二進制數與十六進制數的轉換
1.3.3 單片機的數的表示及運算
1.有符號數的表示方法
2.有符號數的運算
3.無符號數的表示方法
1.4 C51語言基礎
1.4.1 常量
1.整型常量
2.浮點型常量
3.字符型常量
4.符號型常量
1.4.2 變量
1.4.3 運算符
1.算術運算符
2.關系運算符
3.邏輯運算符
4.位運算符
5.復合賦值運算符
1.4.4 關鍵字
1.由ANSI標准定義的關鍵字
2.Keil C51編譯器擴充的關鍵字
1.4.5 數組
1.一維數組
2.二維數組
3.字符型數組
1.4.6 循環語句
1.while語句
2.do while語句
3.for語句
1.4.7 選擇語句
1.if語句
2.switch…case語句
2 51單片機的硬件系統
2.1 8051單片機的引腳功能與內部結構
2.1.1 引腳功能說明
1.基本工作條件引腳
2.I/O(輸入/輸出)引腳
3.控制引腳
2.1.2 單片機與片外存儲器的連接與控制
2.1.3 內部結構說明
1.CPU
2.時鍾電路
3.ROM(程序存儲器)
4.RAM(數據寄存器)
5.中斷控制器
6.定時器/計數器
7.串行通信口
8.P0~P3輸入/輸出電路和鎖存器
2.2 8051單片機I/O端口的結構與工作原理
2.2.1 P0端口
2.2.2 P1端口
2.2.3 P2端口
2.2.4 P3端口
2.3 8051單片機的存儲器
2.3.1 存儲器的存儲單位與編址
1.常用存儲單位
2.存儲器的編址與數據的讀寫說明
2.3.2 片內、外程序存儲器的使用與編址
2.3.3 片內、外數據存儲器的使用與編址
2.3.4 數據存儲器的分區
1.工作寄存器區
2.位尋址區
3.用戶RAM區
2.3.5 特殊功能寄存器(SFR)
1.特殊功能寄存器的符號、字節地址、位地址和復位值
2.部分特殊功能寄存器介紹
2.4 STC89C5x系列單片機介紹
2.4.1 STC89C5x單片機的版本、封裝形式和引腳功能說明
1.兩種版本與封裝形式
2.引腳功能說明
2.4.2 STC89C5x系列單片機的型號命名規則
2.4.3 STC89C5x系列單片機的常用型號的主要參數
2.4.4 STC89C5x系列單片機的I/O端口
1.I/O端口上電復位狀態與灌電流、拉電流
2.P4端口的使用
3.I/O端口與外部電路的連接
2.4.5 STC89C5x系列單片機的程序存儲器與數據存儲器
1.程序存儲器
2.數據存儲器
2.4.6 STC89C5x系列單片機的特殊功能寄存器
3 Keil C51編程軟件的使用
3.1 Keil C51軟件的安裝
3.1.1 Keil C51軟件的版本及獲取
3.1.2 Keil C51軟件的安裝
3.2 程序的編寫與編譯
3.2.1 啟動Keil C51軟件並新建工程文件
1.Keil C51軟件的啟動
2.新建工程文件
3.2.2 新建源程序文件並與工程關聯起來
3.2.3 編寫程序
1.在Keil軟件的源程序文件中編寫
2.用其他文本工具編寫程序
3.2.4 編譯程序
1.編譯或匯編前的設置
2.編譯或匯編程序
3.3 程序的仿真與調試
3.3.1 軟件仿真調試
1.軟件仿真設置
2.編譯程序
3.仿真調試程序
3.3.2 硬件仿真調試
1.硬件仿真與仿真芯片
2.硬件仿真的硬件及連接
3.仿真設置
4.開始硬件仿真
5.硬件仿真常見問題
4 單片機驅動LED與LED數碼管的電路及編程
4.1 單片機驅動LED的電路及編程
4.1.1 發光二極管(LED)外形、性質與檢測
1.外形與符號
2.性質
3.檢測
4.限流電阻的阻值計算
4.1.2 單片機連接8個LED的電路
4.1.3 位操作與字節操作方式點亮單個LED的程序及詳解
1.采用位操作方式編程點亮單個LED的程序
2.采用字節操作方式編程點亮單個LED的程序
4.1.4 單個LED閃爍發光的程序及詳解
4.1.5 單個LED以不同頻率閃爍發光的程序及詳解
4.1.6 位操作和字節操作方式點亮多個LED的程序及詳解
1.采用位操作方式編程點亮多個LED的程序
2.采用字節操作方式編程點亮多個LED的程序
4.1.7 多個LED以不同頻率閃爍發光的程序及詳解
4.1.8 多個LED左移和右移的程序及詳解
1.控制多個LED左移的程序
2.多個LED右移的程序
4.1.9 LED循環左移和右移的程序及詳解
1.控制LED循環左移的程序
2.控制LED循環右移的程序
4.1.10 LED左右移動並閃爍發光的程序及詳解
4.1.11 用查表方式控制LED發光的程序及詳解
4.1.12 LED花樣發光的程序及詳解
4.1.13 用PWM(脈寬調制)方式調節LED亮度的原理與程序
1.用PWM(脈寬調制)方式調節LED亮度的原理
2.用PWM(脈寬調制)方式調節LED亮度的程序
4.2 單片機驅動一位LED數碼管顯示的電路及編程
4.2.1 一位LED數碼管外形、結構與檢測
1.外形、結構與類型
2.類型與引腳檢測
4.2.2 單片機連接一位LED數碼管的電路
4.2.3 單個數碼管靜態顯示一個字符的程序及詳解
4.2.4 單個數碼管動態顯示多個字符的程序及詳解
4.2.5 單個數碼管環形轉圈顯示的程序及詳解
4.2.6 單個數碼管顯示邏輯電平的程序及詳解
4.3 單片機驅動8位LED數碼管顯示的電路及編程
4.3.1 多位LED數碼管外形、結構與檢測
1.外形與類型
2.多位LED數碼管顯示多位字符的顯示原理
3.檢測
4.3.2 單片機連接8位共陰極數碼管的電路
4.3.3 8位數碼管顯示一個字符的程序及詳解
4.3.4 8位數碼管逐位顯示8個字符的程序及詳解
4.3.5 8位數碼管同時顯示8個字符的程序及詳解
4.3.6 8位數碼管動態顯示8個以上字符的程序及詳解
5 中斷的使用及編程
5.1 中斷的基本概念與處理過程
5.1.1 什么是中斷
5.1.2 中斷的基本概念
1.中斷源
2.中斷的優先級別
5.1.3 中斷的處理過程
5.2 8051單片機的中斷系統結構與控制寄存器
5.2.1 中斷系統的結構
1.中斷系統的組成
2.中斷系統的工作原理
5.2.2 中斷源寄存器
1.定時器/計數器控制寄存器TCON
2.串行通信口控制寄存器SCON
5.2.3 中斷允許寄存器IE
5.2.4 中斷優先級控制寄存器IP
5.3 中斷的應用編程舉例
5.3.1 中斷使用的電路例圖
5.3.2 外部中斷0以低電平方式觸發中斷的程序
5.3.3 外部中斷1以下降沿方式觸發中斷的程序
6 定時器/計數器的使用及編程
6.1 定時器/計數器的定時與計數功能
6.1.1 定時功能
1.定時功能的用法
2.任意定時的方法
6.1.2 計數功能
1.計數功能的用法
2.任意計數的方法
6.2 定時器/計數器的結構原理
6.2.1 定時器/計數器的結構
6.2.2 定時器/計數器的工作原理
1.定時器/計數器T0用作計數器
2.定時器/計數器T0用作定時器
6.3 定時器/計數器的控制寄存器與4種工作方式
6.3.1 定時器/計數器控制寄存器TCON
6.3.2 工作方式控制寄存器TMOD
6.3.3 定時器/計數器的工作方式
1.方式0
2.方式1
3.方式2
4.方式3
6.4 定時器/計數器的應用及編程
6.4.1 產生1kHz方波信號的程序及詳解
1.確定初值
2.程序說明
6.4.2 產生50kHz方波信號的程序及詳解
6.4.3 產生周期為1s方波信號的程序及長延時的方法
7 獨立按鍵與矩陣鍵盤輸入電路及編程
7.1 獨立按鍵輸入電路及編程
7.1.1 開關輸入產生的抖動及軟、硬件解決方法
1.開關輸入電路與開關的抖動
2.開關輸入抖動的解決方法
7.1.2 8個獨立按鍵與8個LED的單片機電路
7.1.3 一個按鍵點動控制一個LED亮滅的程序及詳解
7.1.4 一個按鍵鎖定控制一個LED亮滅的程序及詳解
7.1.5 4路搶答器的程序及詳解
7.1.6 獨立按鍵控制LED和LED數碼管的單片機電路
7.1.7 兩個按鍵控制一位數字增、減並用8位數碼管顯示的程序及詳解
7.1.8 兩個按鍵控制多位數字增、減並用8位數碼管顯示的程序及詳解
7.1.9 按鍵長按與短按產生不同控制效果的程序及詳解
7.1.10 8個獨立按鍵控制LED和LED數碼管顯示的程序及詳解
7.2 矩陣鍵盤輸入電路及編程
7.2.1 16鍵矩陣鍵盤輸入與8位數碼管顯示的單片機電路
7.2.2 矩陣鍵盤行列掃描方式輸入及顯示的程序及詳解
7.2.3 中斷觸發鍵盤行列掃描的矩陣鍵盤輸入顯示電路及程序
1.電路
2.程序
7.2.4 矩陣鍵盤密碼鎖程序及詳解
8 點陣和液晶顯示屏的使用及編程
8.1 雙色LED點陣的使用及編程
8.1.1 雙色LED點陣的外形、結構原理與檢測
1.外形
2.共陽型和共陰型點陣的電路結構
3.混色規律
4.點陣的靜態字符或圖形顯示原理
5.點陣的動態字符或圖形顯示原理
6.雙色點陣的識別與檢測
8.1.2 單片機配合74HC595芯片驅動雙色LED點陣的電路
1.74HC595芯片介紹
2.單片機配合74HC595芯片驅動雙色LED點陣的電路
8.1.3 雙色點陣顯示一種顏色字符的程序及詳解
8.1.4 雙色點陣交替顯示兩種顏色字符的程序及詳解
8.1.5 字符移入和移出點陣的程序及詳解
8.2 1602字符型液晶顯示屏的使用及編程
8.2.1 1602字符型液晶顯示屏的硬、軟件資源
1.外形
2.引腳說明
3.內部字庫及代碼
4.LCD屏各顯示位與DDRAM的地址關系
5.1602的指令集
8.2.2 單片機驅動1602液晶顯示屏的電路
8.2.3 1602液晶顯示屏靜態顯示字符的程序及詳解
8.2.4 1602液晶顯示屏逐個顯現字符的程序及詳解
8.2.5 1602液晶顯示屏字符滾動顯示的程序及詳解
8.2.6 矩陣鍵盤輸入與1602液晶顯示屏顯示的電路及程序
1.矩陣鍵盤輸入與1602液晶顯示屏顯示的電路
2.矩陣鍵盤輸入與1602液晶顯示屏顯示的程序
9 步進電動機的使用及編程
9.1 步進電動機與驅動芯片介紹
9.1.1 步進電動機的結構與工作原理
1.外形
2.結構與工作原理
3.結構
9.1.2 驅動芯片ULN2003
1.外形、結構和主要參數
2.檢測
9.1.3 五線四相步進電動機
1.外形、內部結構與接線圖
2.工作方式
3.接線端的區分
4.檢測
9.2 單片機驅動步進電動機的電路及編程
9.2.1 由按鍵、單片機、驅動芯片和數碼管構成的步進電動機驅動電路
9.2.2 用單4拍方式驅動步進電動機正轉的程序及詳解
9.2.3 用雙4拍方式驅動步進電動機自動正反轉的程序及詳解
9.2.4 外部中斷控制步進電動機正反轉的程序及詳解
9.2.5 用按鍵控制步進電動機啟動、加速、減速、停止的程序及詳解
10 串行通信的使用及編程
10.1 概 述
10.1.1 並行通信和串行通信
10.1.2 串行通信的兩種方式
1.異步通信
2.同步通信
10.1.3 串行通信的數據傳送方向
10.2 串行通信口的結構與原理
10.2.1 串行通信口的結構
10.2.2 串行通信口的工作原理
1.接收數據過程
2.發送數據過程
10.3 串行通信口的控制寄存器
10.3.1 串行控制寄存器(SCON)
10.3.2 電源控制寄存器(PCON)
10.4 4種工作方式與波特率的設置
10.4.1 方式0
1.方式0——數據發送
2.方式0——數據接收
10.4.2 方式1
1.方式1——發送數據
2.方式1——接收數據
10.4.3 方式2
1.方式2——發送數據
2.方式2——接收數據
10.4.4 方式3
10.4.5 波特率的設置
1.方式0的波特率
2.方式2的波特率
3.方式1和方式3的波特率
10.5 串行通信的應用編程
10.5.1 利用串行通信的方式0實現產品計數顯示的電路及編程
1.電路
2.程序及說明
10.5.2 利用串行通信的方式1實現雙機通信的電路及編程
1.電路
2.程序及說明
11 I2C總線通信的使用及編程
11.1 I2C總線介紹
11.1.1 概述
11.1.2 I2C總線通信協議
11.1.3 I2C總線的數據傳送格式
11.2 I2C總線存儲器24C02(E2PROM)
11.2.1 外形與引腳功能說明
11.2.2 器件地址的設置
11.2.3 讀/寫操作
1.寫操作
2.讀操作
11.3 單片機與24C02的I2C總線通信電路及編程
11.3.1 模擬I2C總線通信的程序及詳解
11.3.2 利用I2C總線從24C02讀寫一個數據並用LED顯示的電路及程序
1.電路
2.程序
11.3.3 利用I2C總線從24C02讀寫多個數據的電路及程序
1.電路
2.程序
11.3.4 利用24C02存儲按鍵的操作信息的電路及程序
1.電路
2.程序
12 AD(模數)與DA(數模)轉換電路及編程
12.1 AD與DA轉換
12.1.1 AD轉換
1.模擬信號與數字信號
2.AD轉換過程
12.1.2 DA轉換
12.2 AD與DA轉換芯片PCF8591
12.2.1 外形與引腳功能說明
12.2.2 器件地址和功能設置
1.器件地址的設置
2.器件功能設置
3.單端輸入與差分輸入
12.3 由PCF8591芯片構成的AD和DA轉換電路及編程
12.3.1 單片機、PCF8591芯片與8位數碼管構成的轉換及顯示電路
12.3.2 1路AD轉換並顯示轉換值的程序及詳解
12.3.3 4路電壓測量顯示的程序及詳解
12.3.4 DA轉換輸出顯示的程序及詳解
思維導圖
防止博客圖床圖片失效,防止圖片源站外鏈:
http://www.processon.com/chart_image/5e5b2d0be4b02bc3ad6a0f74.png)
思維導圖在線編輯鏈接: