這是一本介紹51單片機及其系統設計項目實踐知識的教學用書。書中簡要介紹了51單片機的基本結構、系統擴展方法、C51程序設計基礎知識、STC單片機及項目用開發板功能、Keil C51及ISP軟件應用的相關知識; 重點引入了14個單片機項目,介紹單片機應用系統設計方法,這些項目涵蓋了數碼管、LCD、A/D和D/A、串行通信、數字鐘、溫度計、直流電機和步進電機控制及紅外數據傳輸等單片機系統的多個應用領域; 最后列出了4個綜合實例項目,給出了詳細的基于STC單片機的工業控制系統設計過程。
潘曉明,電子技術方向博士,深圳信息職業技術學院機電學院副教授,承擔多項省部級教學課題研究,具有豐富的產品開發設計經驗,獲得課件大賽等多項獎項。
基礎知識篇
單元1單片機概述
1.1單片機的發展
1.2MCS51系列單片機簡介
1.3單片機的應用模式和應用領域
1.4如何使用這本書
單元2MCS51單片機內部結構
2.1內部結構與引腳功能
2.1.1內部結構
2.1.2CPU部件及特殊功能寄存器
2.1.2引腳功能
2.2并行I/O(輸入/輸出)接口
2.2.1輸入功能
2.2.2輸出功能及負載配置
2.3存儲器配置方法
2.3.1程序存儲器配置
2.3.2數據存儲器配置
2.4時鐘電路與CPU時序
2.4.1時鐘電路
2.4.2CPU時序
單元3MCS51單片機的系統資源
3.1中斷系統和外部中斷
3.1.1中斷技術概述
3.1.2MCS51單片機中斷系統
3.1.3中斷服務函數
3.2定時器/計數器
3.2.1定時器/計數器的結構及工作原理
3.2.2定時器/計數器的4種工作方式
3.3串行通信
3.3.1串行通信的概念
3.3.2MCS51單片機的串行口結構
3.3.3MCS51單片機串行通信工作方式
3.3.4MCS51單片機串行口波特率的選擇
單元4STC單片機內部資源和PMY單片機開發板簡介
4.1STC單片機系統資源和特點
4.1.1STC單片機的特點和選型
4.1.2STC單片機減少對外部電磁輻射的三大措施
4.1.3STC89C52 RC單片機的特殊功能寄存器
4.2PMY單片機開發板介紹
單元5Keil C51程序設計基礎
5.1標識符和關鍵字
5.2C51的數據類型
5.2.1整型(int)
5.2.2實型數據
5.2.3字符型數據(char)
5.2.4指針型(*)
5.2.5bit位標量
5.2.6各類數值型數據之間的混合運算
5.3C51的數據存儲類型
5.3.1data區
5.3.2bdata區
5.3.3idata區
5.3.4pdata區
5.3.5xdata區
5.3.6code區
5.3.7C51的存儲模式
5.3.8C51對單片機資源的定義
5.4C51的基本運算
5.4.1算術運算符和算術表達式
5.4.2關系運算符
5.4.3邏輯運算符
5.4.4位運算
5.5C51的基本語句
5.5.1條件語句
5.5.2循環語句
5.5.3break、continue和goto語句
5.6C51的函數
5.6.1函數的分類與定義
5.6.2C51的中斷服務函數
5.7數組與指針
5.7.1數組
5.7.2指針
5.8C51的預處理命令
5.8.1宏定義
5.8.2文件包含
5.8.3條件編譯
單元6Keil C51和STCISP軟件的使用
6.1Keil C51軟件的使用
6.1.1啟動Keil C51軟件
6.1.2簡單程序的調試
6.2用STCISP軟件將HEX文件寫入單片機芯片
6.2.1項目開發板和STC下載線的配置
6.2.2將HEX文件寫入單片機芯片
基礎項目篇
項目1單片機端口輸入/輸出控制(按鍵和點燈)
1.1項目目標設計
1.2項目任務
1.3系統板上的硬件連線設置
1.4程序流程圖
1.5C語言源程序
1.6系統構成和程序分析
1.6.1項目硬件系統介紹
1.6.2系統時鐘發生電路
1.6.3系統復位電路
1.6.4單片機的端口控制方法
1.6.5reg51.h頭文件
1.6.6uchar、uint和sbit
1.6.7main主函數
1.6.8延時函數的說明
1.7項目擴展任務
項目2流水燈控制
2.1項目目標設計
2.2項目任務
2.3系統板上的硬件連線
2.4程序流程圖
2.5C語言源程序
2.6系統構成和程序分析
2.6.182C55并行擴展接口芯片的特點和引腳介紹
2.6.282C55的內部結構與引腳功能
2.6.382C55的控制字與工作方式
2.6.4開發板上82C55的系統連接和控制方法
2.6.5其他頭文件
2.7項目擴展任務
項目3七段數碼管和4×4鍵盤控制
3.1項目目標設計
3.2項目任務
3.3系統板上硬件連線
3.4程序流程圖
3.5C語言源程序
3.6系統構成和程序分析
3.6.1ZLG7290接口鍵盤及LED驅動管理芯片簡介
3.6.2對ZLG7290頭文件的修改
3.6.3ZLG7290軟件包的函數使用說明
3.7項目擴展任務
項目4繼電器和直流小電機正反轉控制
4.1項目目標設計
4.2項目任務
4.3系統板上硬件連線
4.4程序流程圖
4.5C語言源程序
4.6系統構成和程序分析
4.6.1關于鍵盤與顯示頭文件的包含說明
4.6.2TA7267BP的功能和直流電機控制
4.6.3繼電器的功能
4.6.4開發板的SRD繼電器連接
4.6.5外部中斷1的程序分析
4.6.6關于中斷
4.7項目擴展任務
項目5A/D轉換
5.1項目目標設計
5.2項目任務
5.3系統板上硬件連線
5.4程序流程圖
5.5C語言源程序
5.6系統構成和程序分析
5.6.1ADC0809數/模轉換芯片的特點及引腳介紹
5.6.2A/D轉換模塊的原理與讀取程序分析
5.6.3讀取數據的程序處理
5.7項目擴展任務
項目6光電傳感器和蜂鳴器控制
6.1項目目標設計
6.2項目任務
6.3系統板上硬件連線
6.4程序流程圖
6.5C語言源程序
6.6系統構成和程序分析
6.6.1光電傳感器的介紹
6.6.2蜂鳴器簡介
6.6.3項目程序分析
6.7項目擴展任務
項目7簡易數字信號發生器
7.1項目目標設計
7.2項目任務
7.3系統板上硬件連線
7.4程序流程圖
7.5C語言源程序
7.6系統構成和程序分析
7.6.1DAC0832內部引腳功能和受控方式
7.6.2為什么模擬輸出電壓從參考電壓輸入端Vref引出
7.6.3確定DAC0832總線地址
7.6.4定時器T0和外部中斷1的關系
7.6.5項目結果分析
7.7項目擴展任務
項目81602液晶顯示控制
8.1項目目標設計
8.2項目任務
8.3系統板上硬件連線
8.4程序流程圖
8.5C語言源程序
8.6系統構成和程序分析
8.6.11602字符型液晶顯示器引腳及功能介紹
8.6.21602字符型液晶顯示器基本指令及操作時序
8.6.31602字符型液晶顯示器的顯存及字庫
8.6.4項目系統及程序分析
8.7項目擴展任務
項目9串行通信
9.1項目目標設計
9.2項目任務
9.3系統板上硬件連線
9.4程序流程圖
9.5C語言源程序
9.6系統構成和程序分析
9.6.1定時器T1的作用
9.6.2串行數據的發送和接收
9.6.3MAX232簡介
9.7項目擴展任務
項目10數字鐘設計
10.1項目目標設計
10.2項目任務
10.3系統板上硬件連線
10.4程序流程圖
10.5C語言源程序
10.6系統構成和程序分析
10.6.1PCF8563時鐘芯片功能介紹
10.6.2IIC總線的啟動和停止實現
10.6.3IIC總線字節的接收和發送實現
10.6.4IIC總線寫和讀數據的實現
10.7項目擴展任務
項目11EEPROM器件24C02讀寫控制
11.1項目目標設計
11.2項目任務
11.3系統板上硬件連線
11.4程序流程圖
11.5C語言源程序
11.6系統構成和程序分析
11.6.1EEPROM器件24C02簡介
11.6.2關于項目的一些說明
11.6.3如何在項目中實現24C02的讀寫
11.7項目擴展任務
項目12溫度傳感器
12.1項目目標設計
12.2項目任務
12.3系統板上硬件連線
12.4程序流程圖
12.5C語言源程序
12.6系統構成和程序分析
12.6.1溫度傳感器DS18B20的介紹
12.6.2溫度傳感器DS18B20的引腳分配和內部功能
12.6.3溫度傳感器DS18B20內部存儲器分配
12.6.4溫度傳感器DS18B20的寄生電源和硬件接法
12.6.5溫度傳感器DS18B20的程序編制方法
12.7項目擴展任務
項目13步進電機控制
13.1項目目標設計
13.2項目任務
13.3系統板上硬件連線
13.4程序流程圖
13.5C語言源程序
13.6系統構成和程序分析
13.6.1步進電機的結構和工作原理
13.6.2TA8435H步進電機驅動芯片
13.6.3TA8435H對兩相步進電機的細分控制
13.6.4開發板上兩相步進電機轉速調節的實現
13.6.5開發板上兩相步進電機啟動控制
13.6.6開發板上兩相步進電機正反轉控制
13.6.7開發板上兩相步進電機的細分控制
13.7項目擴展任務
項目14紅外數據傳輸
14.1項目目標設計
14.2項目任務
14.3系統板上硬件連線
14.4程序流程圖
14.5C語言源程序
14.5.1發送程序
14.5.2接收程序
14.6系統構成和程序分析
14.6.1紅外線的基本知識
14.6.2MAX3100的引腳及內部功能
14.6.3項目系統功能圖及外部中斷1的作用
14.6.4通過SPI總線向MAX3100寫控制字
14.6.5SPI通信的程序實現
14.6.6紅外發送程序分析
14.6.7紅外接收程序分析
14.7項目擴展任務