注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡(luò)計算機組織與體系結(jié)構(gòu)51單片機開發(fā)與應(yīng)用技術(shù)詳解

51單片機開發(fā)與應(yīng)用技術(shù)詳解

51單片機開發(fā)與應(yīng)用技術(shù)詳解

定 價:¥79.00

作 者: 趙建領(lǐng) 等編著
出版社: 電子工業(yè)出版社
叢編項:
標 簽: 計算機體系結(jié)構(gòu)

ISBN: 9787121079207 出版時間: 2009-01-01 包裝: 平裝
開本: 16開 頁數(shù): 702 字數(shù):  

內(nèi)容簡介

  本書全面詳細地講述了單片機的原理、編程指南及應(yīng)用案例,其中51系列單片機的編程部分是本書的重點。全書分為5篇38章。首先介紹了51系列單片機的開發(fā)概述及單片機的基本結(jié)構(gòu),接著介紹了單片機的匯編程序設(shè)計語言,然后介紹了單片機C51語言的程序設(shè)計,隨后結(jié)合單片機的指令系統(tǒng)及各個功能部件詳細講解了單片機的編程操作,以及單片機硬件資源的仿真和程序調(diào)試。本書最后還給出了在各個領(lǐng)域中常用到的一些典型案例,供讀者在學習和工作中參考。本書知識點覆蓋全面、結(jié)構(gòu)安排緊湊、講解詳細、實例豐富。對于51系列單片機的初學者,通過本書可以快速掌握單片機的程序設(shè)計。本書對具有一定開發(fā)經(jīng)驗的設(shè)計人員,也有很好的參考價值。

作者簡介

  趙建領(lǐng),中國科學院博士,參與973重大科研項目,申請多項專利。在電路設(shè)計、USB接口開發(fā)、電路制版以及軟件設(shè)計等方面具有豐富的經(jīng)驗。曾出版 Protel電路設(shè)計與制版寶典 51系列單片機開發(fā)寶典等專著。薛園園,北京科技大學雙學士。長期從事單片機設(shè)計,在單片機程序開發(fā)、Protel電路制版等方面積累了豐富經(jīng)驗。曾出版USB應(yīng)用開發(fā)技術(shù)大全等專著。

圖書目錄

第一篇 51系列單片機基礎(chǔ)
第1章 51系列單片機概述 35
本章主要介紹了單片機的發(fā)展歷程、51系列單片機的簡介和51系列單片機的應(yīng)用領(lǐng)域;接著介紹了一下實際常用的一些主流半導體廠商的單片機型號,以供讀者參考;最后,詳細介紹了開發(fā)51系列單片機應(yīng)用系統(tǒng)的整個流程及主要注意事項。
1.1 單片機的產(chǎn)生與發(fā)展 35
1.2 51系列單片機介紹 36
1.2.1 51系列單片機簡介 36
1.2.2 51系列單片機的應(yīng)用領(lǐng)域 36
1.3 最新51內(nèi)核單片機介紹 37
1.3.1 Atmel單片機介紹 37
1.3.2 Cypress單片機介紹 37
1.3.3 Infineon單片機介紹 38
1.3.4 Silicon單片機介紹 38
1.3.5 Maxim單片機介紹 38
1.3.6 NXP單片機介紹 39
1.3.7 Winbond單片機介紹 39
1.3.8 Analog Devices單片機介紹 39
1.3.9 TI單片機介紹 40
1.3.10 其他單片機介紹 40
1.4 51系列單片機開發(fā)概述 40
1.4.1 分析測控系統(tǒng) 41
1.4.2 單片機選型 41
1.4.3 硬件資源分配 41
1.4.4 程序設(shè)計 42
1.4.5 仿真測試 42
1.4.6 實際硬件測試 42
1.5 小結(jié) 42
第2章 51系列單片機基本結(jié)構(gòu) 43
本章詳細介紹了51系列單片機的基本結(jié)構(gòu),包括單片機的內(nèi)部結(jié)構(gòu)、引腳功能、中央處理器CPU、存儲器的結(jié)構(gòu)、單片機的復(fù)位、單片機工作的時鐘和時序、并行I/O端口的結(jié)構(gòu)和性能,以及單片機系統(tǒng)的掉電保護和低功耗設(shè)計。最后,還給出了一個典型的單片機最小系統(tǒng)。本章在講述的時候,不僅對基本的8051進行了介紹,還介紹了目前新推出的高性能單片機AT89S52。這樣讀者在學習基礎(chǔ)知識的同時,還可以了解最新單片機的性能和使用。
2.1 51系列單片機的內(nèi)部結(jié)構(gòu) 43
2.1.1 內(nèi)部結(jié)構(gòu)的主要組成部分 43
2.1.2 單片機結(jié)構(gòu)的類型 44
2.2 51系列單片機的引腳功能 45
2.2.1 51系列單片機的引腳封裝 45
2.2.2 51系列單片機引腳功能 45
2.3 中央處理器(CPU) 47
2.3.1 算術(shù)邏輯部件(ALU) 47
2.3.2 控制器 47
2.3.3 通用寄存器 48
2.3.4 專用寄存器 48
2.4 存儲器結(jié)構(gòu) 50
2.4.1 程序存儲器及其擴展 50
2.4.2 數(shù)據(jù)存儲器及其擴展 51
2.5 51系列單片機的復(fù)位 55
2.5.1 單片機的復(fù)位狀態(tài) 55
2.5.2 單片機的復(fù)位電路 55
2.6 51系列單片機的時鐘和時序 56
2.6.1 振蕩器和時鐘電路 57
2.6.2 CPU的時序 58
2.6.3 指令執(zhí)行的時序 58
2.6.4 訪問外部ROM/RAM的操作時序 60
2.7 51系列單片機的并行I/O口 61
2.7.1 并行I/O口 61
2.7.2 并行I/O口的應(yīng)用 64
2.7.3 并行I/O口的擴展 64
2.8 系統(tǒng)掉電保護和低功耗設(shè)計 66
2.8.1 掉電保護 66
2.8.2 低功耗設(shè)計 67
2.9 51系列單片機的最小系統(tǒng) 68
2.10 小結(jié) 69
第3章 Keil C51開發(fā)工具簡介 70
本章詳細介紹了Keil 霽ision3的集成開發(fā)環(huán)境霽ision3,包括安裝過程、項目管理窗口、菜單欄、工具欄,以及霽ision3的管理配置和各種常用的窗口。霽ision3是一個十分優(yōu)秀的單片機開發(fā)軟件,應(yīng)用得十分廣泛,熟練掌握霽ision3集成開發(fā)環(huán)境的使用是單片機設(shè)計的基礎(chǔ)。
3.1 Keil 霽ision3簡介 70
3.2 霽ision3安裝 70
3.3 霽ision3集成開發(fā)環(huán)境 71
3.3.1 霽ision3項目管理窗口 72
3.3.2 霽ision3的菜單欄 72
3.3.3 霽ision3的工具欄 77
3.3.4 霽ision3的管理配置 79
3.3.5 霽ision3的各種常用窗口 81
3.4 小結(jié) 84
第二篇 編程篇——匯編語言
第4章 匯編語言程序設(shè)計 85
本章主要講述了匯編語言的偽指令、匯編語言的程序格式及源程序的編譯。本章最后還通過一個具體的實例,介紹了如何在Keil 霽ision3集成開發(fā)環(huán)境中進行單片機的匯編程序設(shè)計及仿真。匯編語言是最早應(yīng)用于單片機開發(fā)的程序語言。相比其他程序設(shè)計語言,匯編語言指令的執(zhí)行速度快、代碼短小精悍,且具有確定的指令執(zhí)行周期。熟練掌握本章內(nèi)容是后續(xù)匯編語言程序?qū)W習的基礎(chǔ)。
4.1 匯編語言程序概述 85
4.1.1 匯編語言簡介 85
4.1.2 匯編語言程序設(shè)計步驟 86
4.1.3 匯編語言程序?qū)嵗?86
4.2 偽指令 87
4.2.1 匯編程序起始偽指令ORG 87
4.2.2 匯編程序結(jié)束偽指令END 87
4.2.3 等值偽指令EQU(或=) 87
4.2.4 數(shù)據(jù)地址賦值偽指令DATA 88
4.2.5 定義字節(jié)偽指令DB 88
4.2.6 定義字偽指令DW 88
4.2.7 定義空間偽指令DS 89
4.2.8 位地址符號偽指令BIT 89
4.3 匯編語言程序的格式 89
4.4 源程序的匯編 90
4.5 Keil 霽ision3中運行匯編語言實例 90
4.5.1 創(chuàng)建項目 90
4.5.2 創(chuàng)建源文件 91
4.5.3 編譯項目 92
4.5.4 仿真調(diào)試 92
4.6 小結(jié) 93
第5章 匯編語言程序結(jié)構(gòu) 94
本章主要介紹了利用匯編語言進行單片機設(shè)計的各種程序結(jié)構(gòu),包括順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和子程序結(jié)構(gòu)。本章還介紹了兩類比較常用的程序設(shè)計類型,即查表程序和運算類的程序。對于比較復(fù)雜的問題可以根據(jù)設(shè)計的要求,選用不同的程序結(jié)構(gòu)來進行設(shè)計。因此,熟練掌握本章內(nèi)容,對讀者以后的設(shè)計工作會很有幫助。
5.1 順序結(jié)構(gòu)程序 94
5.2 分支結(jié)構(gòu)程序 95
5.2.1 雙分支結(jié)構(gòu) 95
5.2.2 多分支結(jié)構(gòu) 96
5.3 循環(huán)結(jié)構(gòu)程序 97
5.3.1 循環(huán)程序的結(jié)構(gòu)和組成 97
5.3.2 循環(huán)程序示例 98
5.3.3 多重循環(huán)程序結(jié)構(gòu) 99
5.4 子程序結(jié)構(gòu) 100
5.4.1 子程序的結(jié)構(gòu) 100
5.4.2 子程序的調(diào)用與返回 100
5.4.3 子程序設(shè)計實例 101
5.5 查表結(jié)構(gòu)程序 102
5.6 運算類程序 103
5.6.1 8位帶符號整數(shù)的乘法子程序 103
5.6.2 8位帶符號整數(shù)的除法子程序 104
5.7 小結(jié) 106
第三篇 編程篇——C51
第6章 單片機C語言程序設(shè)計基礎(chǔ) 107
單片機C語言是現(xiàn)在單片機系統(tǒng)設(shè)計所廣泛采用的程序語言。本章首先介紹了單片機C語言(C51語言)的特點,然后分別介紹了C51語言的標識符、關(guān)鍵字、數(shù)據(jù)類型、運算符和表達式等,并對每一個知識點都提供了完整詳細的實例分析。本章是單片機C51語言的基礎(chǔ),熟練掌握本章知識,對以后章節(jié)的學習會有很大的幫助。
6.1 單片機C語言概述 107
6.1.1 單片機C語言和匯編語言對比 107
6.1.2 C51語言的主要特點 107
6.2 單片機C語言在Keil 霽ision3中應(yīng)用實例 108
6.2.1 創(chuàng)建項目 108
6.2.2 創(chuàng)建源文件 109
6.2.3 編譯項目 109
6.2.4 仿真調(diào)試 110
6.3 C51的標識符與關(guān)鍵字 111
6.3.1 標識符 111
6.3.2 關(guān)鍵字 111
6.4 C51的數(shù)據(jù)類型 113
6.4.1 常量與變量 114
6.4.2 整型數(shù)據(jù) 114
6.4.3 浮點型數(shù)據(jù) 115
6.4.4 字符型數(shù)據(jù) 116
6.4.5 指針型數(shù)據(jù) 119
6.4.6 無值型數(shù)據(jù) 120
6.5 C51的變量作用域 120
6.5.1 基本規(guī)則 120
6.5.2 自動變量 121
6.5.3 外部變量 122
6.5.4 靜態(tài)變量 123
6.5.5 寄存器變量 123
6.6 分隔符與const修飾符 123
6.6.1 C51分隔符 123
6.6.2 const修飾符 124
6.7 運算符 125
6.7.1 算術(shù)運算符 125
6.7.2 邏輯運算符和關(guān)系運算符 126
6.7.3 位運算符 128
6.7.4 特殊運算符 130
6.7.5 運算符優(yōu)先級和結(jié)合性 133
6.8 表達式 134
6.8.1 算術(shù)表達式 134
6.8.2 賦值表達式 135
6.8.3 逗號表達式 136
6.8.4 關(guān)系和邏輯表達式 137
6.9 小結(jié) 138
第7章 數(shù)組 139
本章首先介紹了C51語言中的數(shù)組的使用,主要包括數(shù)組類型的說明、數(shù)組元素的表示及初始化賦值。接著,本章分別對一維數(shù)組、二維數(shù)組及多維數(shù)組的使用進行了詳細的講解。數(shù)組是重要數(shù)據(jù)結(jié)構(gòu),廣泛應(yīng)用于C51語言的程序設(shè)計中。因此,熟練掌握本章內(nèi)容是學習C51語言的基礎(chǔ)。
7.1 數(shù)組類型說明 139
7.2 數(shù)組元素的表示 140
7.3 數(shù)組元素的初始化賦值 140
7.4 一維數(shù)組 141
7.4.1 一維數(shù)組聲明 142
7.4.2 向函數(shù)傳遞一維數(shù)組 142
7.4.3 一維字符串數(shù)組 142
7.5 二維數(shù)組 143
7.5.1 二維數(shù)組聲明 144
7.5.2 二維數(shù)組初始化 145
7.5.3 二維字符串數(shù)組 146
7.6 多維數(shù)組 147
7.7 小結(jié) 147
第8章 指針 148
本章首先介紹了C51語言中指針的使用,主要包括指針的概念、指針變量的聲明和賦值。接著,本章詳細講解了指針變量的引用及運算規(guī)則。最后,本章還對幾種特殊的指針進行了詳細的介紹,主要包括數(shù)組指針、字符指針及指針數(shù)組。指針的概念來源于C語言,在程序設(shè)計中靈活使用指針可以優(yōu)化程序設(shè)計。因此,熟練掌握本章內(nèi)容是學習C51語言的基礎(chǔ),同時對讀者以后的C51語言程序設(shè)計工作會大有幫助。
8.1 地址、指針和指針變量的概念 148
8.2 指針變量的聲明 148
8.3 指針變量的賦值 149
8.3.1 初始化賦值 149
8.3.2 取地址賦值 149
8.3.3 指針之間賦值 149
8.3.4 數(shù)組賦值 150
8.3.5 字符串賦值 150
8.3.6 函數(shù)入口賦值 150
8.4 指針變量的引用 150
8.4.1 取地址運算符“&” 150
8.4.2 取內(nèi)容運算符“*” 151
8.5 指針變量的運算 152
8.5.1 關(guān)系運算 152
8.5.2 算術(shù)運算 152
8.6 數(shù)組指針 153
8.6.1 指向一維數(shù)組的指針 153
8.6.2 指向二維數(shù)組的指針 154
8.6.3 指向一個由n個元素所組成的數(shù)組指針 156
8.6.4 指針和數(shù)組的關(guān)系 156
8.7 字符指針 157
8.8 指針數(shù)組 158
8.9 小結(jié) 159
第9章 結(jié)構(gòu) 160
本章首先介紹了C51語言中的結(jié)構(gòu)的使用,主要包括結(jié)構(gòu)的定義、結(jié)構(gòu)變量的定義和賦值。接著,本章詳細講解了結(jié)構(gòu)數(shù)組及結(jié)構(gòu)指針的使用。最后,本章還對幾種特殊的指針進行了詳細的介紹,主要包括嵌套結(jié)構(gòu)和位結(jié)構(gòu)。結(jié)構(gòu)是C51語言中重要的數(shù)據(jù)類型,其和C語言中的結(jié)構(gòu)非常類似。熟練掌握本章內(nèi)容是學習C51語言的基礎(chǔ),同時對讀者以后的C51程序設(shè)計工作會大有幫助。
9.1 結(jié)構(gòu)的定義 160
9.2 結(jié)構(gòu)變量的定義 161
9.2.1 先定義結(jié)構(gòu),再定義結(jié)構(gòu)變量 161
9.2.2 在定義結(jié)構(gòu)的同時,定義結(jié)構(gòu)變量 161
9.2.3 直接說明結(jié)構(gòu)變量 161
9.3 結(jié)構(gòu)變量的使用 162
9.4 多重結(jié)構(gòu)變量的賦值 163
9.5 結(jié)構(gòu)變量的初始化 163
9.6 結(jié)構(gòu)數(shù)組 164
9.6.1 結(jié)構(gòu)數(shù)組的定義 164
9.6.2 結(jié)構(gòu)數(shù)組的初始化賦值 165
9.7 結(jié)構(gòu)指針 166
9.8 特殊結(jié)構(gòu) 168
9.8.1 嵌套結(jié)構(gòu) 168
9.8.2 位結(jié)構(gòu) 169
9.9 小結(jié) 170
第10章 聯(lián)合、枚舉、類型說明和位域 171
本章主要介紹了幾種特殊形式的聚合數(shù)據(jù)類型,包括聯(lián)合類型、枚舉類型,還介紹了類型說明及位域。這些特殊的數(shù)據(jù)類型是對基本數(shù)據(jù)類型的有效擴充。靈活運用這些特殊數(shù)據(jù)類型,可以方便單片機的程序設(shè)計。因此,熟練掌握本章內(nèi)容是單片機程序設(shè)計的基礎(chǔ)。
10.1 聯(lián)合類型 171
10.1.1 聯(lián)合和聯(lián)合變量的定義 171
10.1.2 聯(lián)合變量成員的引用 172
10.2 結(jié)構(gòu)和聯(lián)合的區(qū)別 174
10.3 枚舉類型 175
10.3.1 枚舉的定義 175
10.3.2 枚舉變量的聲明 175
10.3.3 枚舉類型變量的賦值 176
10.4 類型說明 178
10.5 位域 179
10.5.1 位域的定義和位域變量的聲明 179
10.5.2 位域變量的使用 180
10.6 小結(jié) 181
第11章 C51語言的函數(shù) 182
本章詳細介紹了C51語言中函數(shù)的使用,包括函數(shù)的定義、形參和實參、函數(shù)的返回值、函數(shù)的調(diào)用、函數(shù)及其變量的作用域。本章還結(jié)合單片機程序設(shè)計的特點,介紹了C51程序中的main函數(shù)。函數(shù)是C51語言中的重要概念,靈活運用函數(shù)可以實現(xiàn)程序的模塊化設(shè)計。因此,熟練掌握本章內(nèi)容,是C51語言程序設(shè)計的基礎(chǔ)。
11.1 函數(shù)的概念和分類 182
11.1.1 從函數(shù)定義角度 182
11.1.2 從有無返回值角度 183
11.1.3 從數(shù)據(jù)傳送角度 183
11.2 函數(shù)的定義 183
11.3 函數(shù)的參數(shù) 185
11.3.1 形參和實參 185
11.3.2 數(shù)組作為函數(shù)參數(shù) 186
11.3.3 多維數(shù)組作為函數(shù)參數(shù) 188
11.3.4 指針作為函數(shù)參數(shù) 188
11.4 函數(shù)的返回值 189
11.5 函數(shù)調(diào)用 189
11.5.1 賦值調(diào)用與引用調(diào)用 190
11.5.2 遞歸調(diào)用 190
11.5.3 嵌套調(diào)用 192
11.6 函數(shù)及其變量的作用域 193
11.6.1 函數(shù)的作用域 193
11.6.2 函數(shù)的變量作用域 193
11.7 main函數(shù) 194
11.8 小結(jié) 194
第12章 C51語言的常用庫函數(shù)詳解 195
本章詳細講解了C51語言中常用的庫函數(shù),主要包括字符函數(shù)、字符串函數(shù)、I/O函數(shù)、數(shù)學函數(shù)、標準函數(shù)、內(nèi)部函數(shù)、絕對地址訪問函數(shù)、變量參數(shù)表函數(shù)、全程跳轉(zhuǎn)函數(shù)及偏移量函數(shù)。這些庫函數(shù)涵蓋了常見的字符、字符串、數(shù)學計算、I/O控制等功能,讀者在進行程序設(shè)計時可以直接調(diào)用使用。因此,熟練掌握和運用本章內(nèi)容,可以大大減輕程序設(shè)計的負擔,方便單片機的程序設(shè)計。
12.1 字符函數(shù) 195
12.1.1 檢查英文字母函數(shù) 195
12.1.2 檢查字母數(shù)字函數(shù) 196
12.1.3 檢查控制字符函數(shù) 196
12.1.4 十進制數(shù)字檢查函數(shù) 197
12.1.5 可打印字符檢查函數(shù) 197
12.1.6 包含空格的可打印字符檢查函數(shù) 198
12.1.7 格式字符檢查函數(shù) 199
12.1.8 小寫英文字母檢查函數(shù) 199
12.1.9 大寫英文字母檢查函數(shù) 200
12.1.10 控制字符檢查函數(shù) 200
12.1.11 十六進制數(shù)字檢查函數(shù) 201
12.1.12 十六進制數(shù)字轉(zhuǎn)換函數(shù) 202
12.1.13 大寫字符轉(zhuǎn)換函數(shù) 202
12.1.14 小寫字符轉(zhuǎn)換函數(shù) 203
12.1.15 ASCII字符轉(zhuǎn)換函數(shù) 204
12.1.16 大寫字符宏轉(zhuǎn)換函數(shù) 204
12.1.17 小寫字符宏轉(zhuǎn)換函數(shù) 205
12.2 字符串函數(shù) 206
12.2.1 字符查找函數(shù) 206
12.2.2 指定長度的字符串比較函數(shù) 206
12.2.3 字符串復(fù)制函數(shù) 207
12.2.4 帶終止字符的字符串復(fù)制函數(shù) 208
12.2.5 字符串移動函數(shù) 209
12.2.6 字符串填充函數(shù) 209
12.2.7 字符串追加函數(shù) 210
12.2.8 指定長度的字符串追加函數(shù) 210
12.2.9 字符串比較函數(shù) 211
12.2.10 包含結(jié)束符的字符串比較函數(shù) 212
12.2.11 字符串覆蓋函數(shù) 213
12.2.12 指定長度的字符串覆蓋函數(shù) 213
12.2.13 獲取字符串個數(shù)函數(shù) 214
12.2.14 搜索字符串函數(shù) 214
12.2.15 搜索字符函數(shù) 215
12.2.16 返回位置值的字符搜索函數(shù) 216
12.2.17 字符包含函數(shù) 216
12.2.18 返回位置值的字符包含函數(shù) 217
12.2.19 在指定字符集中查找不包含字符函數(shù) 218
12.2.20 在指定字符集中查找包含字符函數(shù) 218
12.2.21 查找第一個包含字符函數(shù) 219
12.2.22 查找最后一個包含字符函數(shù) 219
12.3 I/O函數(shù) 220
12.3.1 字符讀入函數(shù) 220
12.3.2 字符讀入輸出函數(shù) 221
12.3.3 字符串讀入函數(shù) 222
12.3.4 字符回送函數(shù) 222
12.3.5 字符輸出函數(shù) 223
12.3.6 格式化輸出函數(shù) 223
12.3.7 格式化內(nèi)存緩沖區(qū)輸出函數(shù) 225
12.3.8 字符串輸出函數(shù) 226
12.3.9 格式化輸入函數(shù) 227
12.3.10 格式化內(nèi)存緩沖區(qū)輸入函數(shù) 228
12.3.11 字符串內(nèi)存輸出函數(shù) 229
12.3.12 指向緩沖區(qū)的輸出函數(shù) 230
12.4 數(shù)學函數(shù) 231
12.4.1 絕對值函數(shù) 231
12.4.2 指數(shù)及對數(shù)函數(shù) 232
12.4.3 三角函數(shù) 232
12.4.4 取整函數(shù) 234
12.4.5 浮點型分離函數(shù) 234
12.4.6 冪函數(shù) 235
12.5 標準函數(shù) 235
12.5.1 字符串轉(zhuǎn)換函數(shù) 236
12.5.2 帶返回指針的字符串轉(zhuǎn)換函數(shù) 237
12.5.3 隨機函數(shù) 238
12.5.4 數(shù)組內(nèi)存分配函數(shù) 238
12.5.5 釋放內(nèi)存函數(shù) 239
12.5.6 初始化內(nèi)存函數(shù) 240
12.5.7 內(nèi)存分配函數(shù) 240
12.5.8 調(diào)整內(nèi)存大小函數(shù) 241
12.6 內(nèi)部函數(shù) 242
12.6.1 循環(huán)左移函數(shù) 242
12.6.2 循環(huán)右移函數(shù) 243
12.6.3 延時函數(shù) 244
12.6.4 位測試函數(shù) 244
12.7 絕對地址訪問函數(shù) 245
12.7.1 BYTE型存儲空間訪問函數(shù) 245
12.7.2 WORD型存儲空間訪問函數(shù) 245
12.7.3 far存儲區(qū)訪問函數(shù) 246
12.7.4 far存儲區(qū)數(shù)組訪問函數(shù) 247
12.8 變量參數(shù)表函數(shù) 247
12.9 全程跳轉(zhuǎn)函數(shù) 248
12.10 計算結(jié)構(gòu)體成員的偏移量函數(shù) 249
12.11 小結(jié) 250
第13章 C51語句和流程 251
本章詳細講述了單片機C51語言中的各種語句結(jié)構(gòu),包括說明語句、表達式語句、復(fù)合語句、循環(huán)語句、條件語句、開關(guān)語句、跳轉(zhuǎn)語句、函數(shù)調(diào)用語句、空語句和返回語句。這些語句是C51語言程序的重要組成部分。靈活利用這些語句,可以實現(xiàn)不同的程序流程控制結(jié)構(gòu),如順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)等,以達到簡化程序的目的。熟練掌握本章內(nèi)容是進行C51語言程序設(shè)計的基礎(chǔ)。
13.1 說明語句 251
13.2 表達式語句 251
13.3 復(fù)合語句 252
13.4 循環(huán)語句 253
13.4.1 while語句 253
13.4.2 do-while語句 254
13.4.3 for語句 254
13.5 條件語句 255
13.5.1 單分支結(jié)構(gòu) 255
13.5.2 雙分支結(jié)構(gòu) 255
13.5.3 階梯式if-else-if結(jié)構(gòu) 256
13.6 開關(guān)語句 258
13.7 跳轉(zhuǎn)語句 259
13.7.1 goto語句 259
13.7.2 break語句 260
13.7.3 continue 語句 260
13.8 函數(shù)調(diào)用語句 261
13.9 空語句 261
13.10 返回語句 262
13.11 C51語言的流程控制結(jié)構(gòu) 263
13.12 小結(jié) 264
第14章 預(yù)處理及用戶配置文件 265
本章詳細介紹了C51語言所支持的各種預(yù)處理命令,包括宏定義指令、文件包含指令、條件編譯指令和其他一些編譯指令。然后還介紹了C51語言編譯器的一些控制指令,這需要和具體的編譯器相聯(lián)系。最后還介紹了一下C51語言的用戶配置文件。熟練掌握本章內(nèi)容,對讀者以后的單片機程序設(shè)計有很大幫助。
14.1 預(yù)處理命令概述 265
14.2 宏定義指令 265
14.2.1 #define命令 266
14.2.2 #undef命令 267
14.3 文件包含指令 268
14.4 條件編譯指令 269
14.4.1 #if、#else、#endif命令 269
14.4.2 #elif命令 270
14.4.3 #ifdef、#ifndef命令 270
14.5 其他編譯指令 271
14.5.1 #line命令 271
14.5.2 #error 272
14.5.3 #pragma 272
14.6 C51語言編譯器的控制指令 273
14.6.1 源文件控制類 273
14.6.2 目標文件(Object)控制類 273
14.6.3 列表文件(Listing)控制類 273
14.7 C51語言的用戶配置文件 274
14.7.1 C51語言啟動代碼文件 274
14.7.2 C51語言啟動代碼分析 277
14.7.3 變量初始化文件 279
14.7.4 基本I/O函數(shù)文件 279
14.7.5 分組配置文件 279
14.8 小結(jié) 280
第15章 C51語言的存儲結(jié)構(gòu) 281
本章詳細講述了C51語言的存儲器結(jié)構(gòu)、存儲類型、存儲模式及存儲器指針等,后面還介紹了動態(tài)內(nèi)存分配。數(shù)據(jù)的存儲模式是單片機系統(tǒng)特有的概念,這里的內(nèi)容涉及單片機的硬件資源比較多,讀者應(yīng)該對照著單片機的介紹來進行學習,這樣可以加深理解。
15.1 存儲器結(jié)構(gòu) 281
15.1.1 51系列單片機的存儲區(qū)域 281
15.1.2 片內(nèi)數(shù)據(jù)存儲器(RAM)的結(jié)構(gòu) 281
15.2 存儲類型 282
15.2.1 data存儲類型 282
15.2.2 bdata存儲類型 282
15.2.3 idata存儲類型 283
15.2.4 pdata存儲類型 283
15.2.5 xdata存儲類型 283
15.2.6 code存儲類型 284
15.3 擴展數(shù)據(jù)類型 284
15.3.1 sfr和sfr16 284
15.3.2 sbit 285
15.3.3 bit型變量 285
15.4 存儲模式 285
15.4.1 Small模式 286
15.4.2 Compact模式 286
15.4.3 Large模式 286
15.4.4 存儲模式的選擇 286
15.5 C51語言的存儲器指針 286
15.5.1 一般指針 286
15.5.2 存儲器指針 287
15.5.3 指針存儲類型與指針所指向的數(shù)據(jù)的存儲類型的關(guān)系 288
15.6 動態(tài)內(nèi)存分配 288
15.6.1 C51語言的動態(tài)分配函數(shù) 289
15.6.2 malloc和calloc函數(shù) 289
15.7 小結(jié) 289
第四篇 51系列單片機編程指南篇
第16章 51系列單片機的指令系統(tǒng) 290
本章詳細講解了51系列單片機的指令系統(tǒng),包括指令的7種尋址方式,以及51系列單片機指令系統(tǒng)中的各類指令的書寫格式、功能、使用方法及注意事項等。對于每一條指令,均給出了完整詳細的實例來講解如何在程序設(shè)計中應(yīng)用。這一章的內(nèi)容是讀者學習使用單片機的基礎(chǔ)必備知識,深刻地理解單片機指令系統(tǒng),可以為接下來的學習打下良好的基礎(chǔ)。
16.1 指令系統(tǒng)簡介 290
16.1.1 指令格式 290
16.1.2 指令符號 291
16.2 尋址方式 292
16.2.1 立即尋址 292
16.2.2 直接尋址 293
16.2.3 寄存器尋址 295
16.2.4 寄存器間接尋址 295
16.2.5 變址尋址 297
16.2.6 相對尋址 298
16.2.7 位尋址 299
16.3 數(shù)據(jù)傳送指令 300
16.3.1 內(nèi)部RAM數(shù)據(jù)傳送指令 300
16.3.2 外部RAM數(shù)據(jù)傳送指令 304
16.3.3 程序存儲器數(shù)據(jù)傳送指令 305
16.3.4 數(shù)據(jù)交換指令 306
16.3.5 堆棧操作指令 308
16.4 算術(shù)運算指令 309
16.4.1 加法指令 309
16.4.2 帶進位的加法指令 311
16.4.3 帶借位的減法指令 312
16.4.4 加1指令 314
16.4.5 減1指令 315
16.4.6 乘除法指令 316
16.4.7 十進制調(diào)整指令 317
16.5 邏輯運算及移位指令 318
16.5.1 邏輯與指令 319
16.5.2 邏輯或指令 320
16.5.3 邏輯異或指令 321
16.5.4 累加器清零指令 322
16.5.5 累加器取反指令 323
16.5.6 組合邏輯電路的實現(xiàn) 324
16.5.7 循環(huán)移位指令 324
16.6 控制轉(zhuǎn)移指令 326
16.6.1 無條件轉(zhuǎn)移指令 326
16.6.2 條件轉(zhuǎn)移指令 330
16.6.3 子程序調(diào)用及返回指令 334
16.7 位操作指令 337
16.7.1 位變量傳送指令 337
16.7.2 置位與清零指令 338
16.7.3 位邏輯運算指令 339
16.7.4 位控制轉(zhuǎn)移指令 340
16.8 空操作指令 342
16.9 51系列單片機指令匯總 343
16.10 小結(jié) 347
第17章 51系列單片機的定時器/計數(shù)器 348
本章詳細講述了51系列單片機的定時器/計數(shù)器的結(jié)構(gòu)、控制寄存器及4種工作方式,并分別給出了詳細的程序設(shè)計方法;本章還對52子系列的單片機定時器/計數(shù)器T2也進行了詳細的介紹。定時器/計數(shù)器是單片機的一個非常有用的功能,熟練掌握本章內(nèi)容,對讀者以后的單片機設(shè)計有很大幫助。
17.1 定時器/計數(shù)器0和1 348
17.1.1 定時器/計數(shù)器的結(jié)構(gòu) 348
17.1.2 定時器/計數(shù)器的功能 349
17.1.3 T0和T1的控制寄存器 349
17.2 定時器/計數(shù)器0和1的工作模式 352
17.2.1 工作模式0及其程序設(shè)計 352
17.2.2 工作模式1及其程序設(shè)計 354
17.2.3 工作模式2及其程序設(shè)計 356
17.2.4 工作模式3及其程序設(shè)計 358
17.3 定時器/計數(shù)器2 360
17.3.1 T2的控制寄存器T2CON和T2MOD及其程序訪問 361
17.3.2 定時器/計數(shù)器2的工作模式 362
17.4 小結(jié) 367
第18章 51系列單片機中斷系統(tǒng)及其程序設(shè)計 368
本章詳細講述了中斷系統(tǒng)的基本概念,并重點介紹了51系列單片機的中斷類型及中斷的各種控制標準位;接著講述了51系列單片機對中斷的處理過程,并通過實例詳細講述了各種中斷源的編程方式;最后還介紹了外部中斷源的擴展方式及其程序設(shè)計。中斷是51系列單片機重要的系統(tǒng)資源,合理使用中斷系統(tǒng),可以減輕CPU的負擔,簡化程序設(shè)計,實現(xiàn)對外部信號的實時處理。因此,熟練掌握本章內(nèi)容是學習51系列單片機的基礎(chǔ)。
18.1 中斷系統(tǒng)概述 368
18.1.1 什么是中斷 368
18.1.2 中斷的用途 368
18.1.3 中斷需要解決的問題 369
18.2 51系列單片機的中斷類型 371
18.2.1 外部中斷源 371
18.2.2 定時中斷源 371
18.2.3 串行中斷源 371
18.3 51系列單片機的中斷系統(tǒng) 372
18.3.1 中斷請求標志及其訪問 372
18.3.2 中斷允許標志及其訪問 373
18.3.3 中斷優(yōu)先級標志及其訪問 374
18.4 中斷的處理過程 375
18.4.1 中斷響應(yīng) 375
18.4.2 中斷處理 377
18.4.3 中斷返回 378
18.4.4 中斷請求的撤離 378
18.5 中斷源的程序設(shè)計 378
18.5.1 外部中斷源的程序設(shè)計 378
18.5.2 定時中斷源的程序設(shè)計 380
18.5.3 串行中斷源的程序設(shè)計 381
18.6 外部中斷源的擴展 382
18.6.1 定時器/計數(shù)器擴展外部中斷源 382
18.6.2 查詢方式擴展外部中斷源 385
18.7 小結(jié) 386
第19章 51系列單片機的串行接口 387
本章首先詳細介紹了串行通信的基本方式,包括異步串行通信和同步串行通信,以及單工制式、半雙工制式和全雙工制式三種數(shù)據(jù)傳送方式。51系列單片機集成了全雙工的串行接口,本章詳細介紹了單片機串行接口的內(nèi)部結(jié)構(gòu)、程序控制、4種工作模式及其程序設(shè)計等。最后介紹了單片機的串行接口在雙機通信和多機通信方面的應(yīng)用。單片機串行口的應(yīng)用非常廣泛,熟練掌握本章內(nèi)容很重要。
19.1 串行通信概述 387
19.1.1 串行通信簡介 387
19.1.2 串行通信的數(shù)據(jù)傳送方式 389
19.2 51系列單片機的串行接口 390
19.2.1 單片機串行接口的內(nèi)部結(jié)構(gòu) 390
19.2.2 單片機串行接口的程序控制 391
19.2.3 波特率的程序設(shè)計 393
19.3 串行口的工作模式0 396
19.3.1 模式0的發(fā)送及擴展輸出端口 396
19.3.2 模式0的接收及擴展輸入端口 398
19.4 串行口的工作模式1 399
19.4.1 模式1的發(fā)送 400
19.4.2 模式1的接收 401
19.5 串行口的工作模式2 402
19.5.1 模式2的發(fā)送 402
19.5.2 模式2的接收 403
19.6 串行口的工作模式3 405
19.6.1 模式3的發(fā)送 405
19.6.2 模式3的接收 406
19.7 雙機通信程序設(shè)計 407
19.7.1 查詢方式 407
19.7.2 中斷方式 408
19.8 多機通信程序設(shè)計 410
19.8.1 多機通信原理 411
19.8.2 多機通信協(xié)議約定 411
19.8.3 多機通信程序設(shè)計 411
19.9 小結(jié) 416
第20章 C51下的RTX-51實時多任務(wù)操作系統(tǒng) 417
本章詳細介紹了運行于8051硬件平臺的RTX-51實時多任務(wù)操作系統(tǒng)。RTX-51的程序不同于普通的單片機程序,這里對RTX-51的任務(wù)調(diào)度、系統(tǒng)函數(shù)、任務(wù)管理及RTX-51 Tiny的配置進行了詳細的闡述。熟練掌握和運用本章內(nèi)容,可以簡化復(fù)雜的多任務(wù)單片機系統(tǒng)設(shè)計。
20.1 RTX-51實時多任務(wù)操作系統(tǒng)簡介 417
20.1.1 RTX-51種類 417
20.1.2 RTX-51與單任務(wù)程序的比較 418
20.2 RTX-51的任務(wù)調(diào)度 419
20.2.1 RTX-51循環(huán)任務(wù)調(diào)度 420
20.2.2 RTX-51事件任務(wù)調(diào)度 420
20.2.3 RTX-51信號任務(wù)調(diào)度 421
20.2.4 優(yōu)先級及搶先任務(wù)切換 421
20.2.5 RTX-51的其他特性 422
20.3 RTX-51 Tiny的系統(tǒng)函數(shù) 423
20.3.1 發(fā)送信號函數(shù)isr_send_signal 423
20.3.2 清除信號標志函數(shù)os_clear_signal 423
20.3.3 啟動任務(wù)函數(shù)os_create_task 424
20.3.4 刪除任務(wù)函數(shù)os_delete_task 424
20.3.5 當前任務(wù)號函數(shù)os_running_task_id 425
20.3.6 發(fā)送信號函數(shù)os_send_signal 425
20.3.7 等待函數(shù)os_wait 425
20.3.8 等待函數(shù)os_wait1 426
20.3.9 等待函數(shù)os_wait2 427
20.4 RTX-51 Tiny的任務(wù)管理 428
20.4.1 RTX-51 Tiny的任務(wù)狀態(tài) 428
20.4.2 RTX-51 Tiny的事件 428
20.4.3 RTX-51 Tiny的任務(wù)切換 428
20.5 RTX-51 Tiny的配置文件 429
20.6 RTX-51 Tiny的要求及限定 431
20.6.1 使用RTX-51 Tiny的要求 431
20.6.2 RTX-51 Tiny的注意事項 432
20.7 RTX-51 FULL的系統(tǒng)函數(shù)及技術(shù)參數(shù) 433
20.7.1 RTX-51 FULL函數(shù)一覽 433
20.7.2 RTX-51的技術(shù)參數(shù) 434
20.8 小結(jié) 435
第21章 Keil 霽ision3中的單片機硬件資源仿真 436
本章詳細介紹了Keil 霽ision3集成開發(fā)環(huán)境中,對單片機各種常見的片上資源的仿真操作。主要包括并行I/O端口、定時器/計數(shù)器、串行接口、中斷、看門狗定時器、A/D、D/A、寄存器及低功耗仿真。單片機的程序設(shè)計主要是對各種片上資源進行操作,Keil 霽ision3集成開發(fā)環(huán)境對各種片上資源均提供了完善的仿真支持。在程序設(shè)計時,通過仿真操作可以完美地模擬程序的執(zhí)行情況,便于及時發(fā)現(xiàn)問題。這樣便大大提高了程序開發(fā)的可靠性,加速了程序的開發(fā)速度。因此,讀者應(yīng)該熟練掌握本章內(nèi)容。
21.1 仿真概述 436
21.2 并行I/O端口的仿真 436
21.3 定時器/計數(shù)器的仿真 438
21.3.1 定時器/計數(shù)器T0和T1的仿真界面 438
21.3.2 定時器/計數(shù)器T2的仿真界面 439
21.3.3 定時器/計數(shù)器的仿真操作 440
21.4 串行接口的仿真 442
21.4.1 串行接口的仿真界面 442
21.4.2 串行接口的仿真操作 443
21.4.3 字符串輸入輸出的仿真操作 444
21.5 中斷仿真 446
21.5.1 中斷系統(tǒng)的仿真界面 446
21.5.2 中斷系統(tǒng)的仿真操作 447
21.6 看門狗定時器的仿真 448
21.6.1 看門狗定時器的仿真界面 448
21.6.2 看門狗定時器的仿真操作 448
21.7 A/D仿真 449
21.7.1 A/D轉(zhuǎn)換器的仿真界面 450
21.7.2 A/D轉(zhuǎn)換器的仿真操作 450
21.8 D/A仿真 452
21.8.1 D/A轉(zhuǎn)換器的仿真界面 452
21.8.2 D/A轉(zhuǎn)換器的仿真操作 453
21.9 寄存器仿真 455
21.9.1 寄存器的仿真界面 455
21.9.2 寄存器的仿真操作 455
21.10 低功耗仿真 456
21.11 小結(jié) 457
第22章 Keil 霽ision3中的程序調(diào)試 458
本章詳細介紹了Keil 霽ision3集成開發(fā)環(huán)境的程序調(diào)試功能,包括性能分析器、代碼覆蓋分析器和斷點等。本章還詳細介紹了Keil 霽ision3編譯器提供的調(diào)試命令,這些調(diào)試命令大大擴展了單片機程序的仿真調(diào)試。合理使用Keil 霽ision3的各種調(diào)試功能及調(diào)試命令,可以在程序設(shè)計和調(diào)試時達到事半功倍的效果。因此,熟練掌握本章內(nèi)容有助于讀者分析和優(yōu)化單片機程序。
22.1 Keil 霽ision3的程序調(diào)試器概述 458
22.2 性能分析器 458
22.3 代碼覆蓋分析器 459
22.4 斷點 460
22.5 Keil 霽ision3調(diào)試命令 461
22.5.1 通用命令 461
22.5.2 程序命令 465
22.5.3 斷點命令 467
22.5.4 存儲器命令 469
22.6 小結(jié) 471
第五篇 典型案例篇
第23章 鍵盤程序設(shè)計 472
本章詳細講述了鍵盤設(shè)計需要注意的一些問題,然后介紹了獨立式按鍵和矩陣式鍵盤的工作方式。其中著重講了矩陣式鍵盤的掃描法、線反轉(zhuǎn)法和中斷法的工作原理及程序設(shè)計。最后通過一個完整電路,實現(xiàn)了矩陣式鍵盤的掃描查詢方式在程序中的應(yīng)用。在實例中,還通過仿真分析了整個程序流程的正確性。矩陣式鍵盤應(yīng)用十分廣泛,熟練掌握它的使用是學習單片機應(yīng)用系統(tǒng)的基礎(chǔ)。
23.1 鍵盤接口概述 472
23.1.1 按鍵編碼 472
23.1.2 輸入的可靠性 472
23.1.3 程序檢測及響應(yīng) 473
23.2 獨立式按鍵及其編程接口 473
23.2.1 獨立式按鍵結(jié)構(gòu) 473
23.2.2 獨立式按鍵程序設(shè)計 474
23.3 4×4矩陣式鍵盤及其編程接口 475
23.3.1 掃描法及其程序設(shè)計 475
23.3.2 線反轉(zhuǎn)法及其程序設(shè)計 477
23.3.3 中斷法及其程序設(shè)計 479
23.4 矩陣式鍵盤的接口實例 480
23.4.1 電路圖 480
23.4.2 程序設(shè)計 481
23.4.3 程序仿真 483
23.5 小結(jié) 485
第24章 LED數(shù)碼管顯示 486
本章詳細介紹了LED數(shù)碼管顯示器件,包括7段共陽極LED數(shù)碼管和7段共陰極LED數(shù)碼管,然后介紹了LED的靜態(tài)顯示技術(shù)及其應(yīng)用實例。本章還重點講解了LED數(shù)碼管的動態(tài)顯示技術(shù),包括靜態(tài)驅(qū)動、動態(tài)驅(qū)動和LED驅(qū)動器驅(qū)動。最后通過一個具體的實例講解了使用LED驅(qū)動器控制多個LED的顯示。LED數(shù)碼管顯示是單片機系統(tǒng)中常用的顯示接口,讀者應(yīng)該熟練掌握其使用方法。
24.1 LED數(shù)碼管概述 486
24.1.1 7段共陽極LED結(jié)構(gòu)及顯示段碼 486
24.1.2 7段共陰極LED結(jié)構(gòu)及顯示段碼 487
24.2 單個LED驅(qū)動實例 488
24.2.1 電路圖 488
24.2.2 程序設(shè)計 490
24.3 多個LED驅(qū)動方式 492
24.3.1 靜態(tài)驅(qū)動顯示 493
24.3.2 動態(tài)驅(qū)動顯示 497
24.3.3 LED驅(qū)動器 499
24.4 多個LED驅(qū)動實例 503
24.4.1 LED驅(qū)動器電路圖 503
24.4.2 程序設(shè)計 504
24.5 小結(jié) 508
第25章 LCD液晶顯示模塊 509
本章詳細介紹了液晶和液晶顯示模塊的結(jié)構(gòu)及原理,并對常用的LCD驅(qū)動控制器的指令和功能進行了介紹,其中給出了用于圖形點陣式液晶讀寫的詳細子函數(shù)。最后利用一款采用這個驅(qū)動器的液晶顯示模塊,來介紹如何控制其顯示漢字和圖形等。近年來,液晶顯示模塊應(yīng)用越來越廣泛。熟練掌握本章內(nèi)容對讀者以后的設(shè)計很有幫助。
25.1 LCD液晶顯示概述 509
25.1.1 液晶的來源 509
25.1.2 LCD液晶顯示器結(jié)構(gòu)及原理 509
25.1.3 液晶顯示模塊的種類 510
25.1.4 液晶顯示模塊的優(yōu)點 511
25.2 液晶顯示模塊控制接口 511
25.2.1 LCD控制驅(qū)動器ST7920概述 511
25.2.2 ST7920功能說明 512
25.2.3 ST7920基本指令集 516
25.2.4 ST7920擴充指令集 518
25.2.5 ST7920的操作方式 520
25.2.6 圖形點陣式液晶顯示模塊 521
25.2.7 圖形點陣式液晶讀寫子函數(shù) 522
25.3 漢字及圖形顯示實例 525
25.3.1 電路設(shè)計 525
25.3.2 建立項目 526
25.3.3 漢字顯示實例 526
25.3.4 圖形顯示實例 528
25.3.5 任意位置圖形顯示實例 530
25.4 小結(jié) 532
第26章 D/A轉(zhuǎn)換實例 533
本章首先詳細介紹了D/A轉(zhuǎn)換器的基本知識,包括D/A轉(zhuǎn)換器的原理、D/A轉(zhuǎn)換器的類型及技術(shù)參數(shù),然后介紹了一個高速易使用的D/A轉(zhuǎn)換芯片AD558。最后通過一個具體的實例,介紹了如何采用AD558在光通信領(lǐng)域中完成對光信號的相位精確調(diào)制。D/A轉(zhuǎn)換器在測控領(lǐng)域有著廣泛的應(yīng)用,擴展了8051單片機處理模擬信號的能力,是現(xiàn)代電子設(shè)計中不可缺少的一部分。
26.1 D/A轉(zhuǎn)換概述 533
26.1.1 D/A轉(zhuǎn)換原理 533
26.1.2 D/A轉(zhuǎn)換器的類型 534
26.1.3 D/A轉(zhuǎn)換器的技術(shù)參數(shù) 535
26.2 高速D/A轉(zhuǎn)換芯片AD558 536
26.2.1 AD558簡介 536
26.2.2 AD558電壓輸出模式 537
26.2.3 AD558的數(shù)據(jù)鎖存 538
26.3 光通信電壓調(diào)制電路實例——電路部分 539
26.3.1 相位調(diào)制的原理 539
26.3.2 電壓調(diào)制系統(tǒng) 540
26.3.3 電路圖 541
26.4 光通信電壓調(diào)制電路實例——程序部分 544
26.4.1 系統(tǒng)狀態(tài)編碼 544
26.4.2 建立項目 544
26.4.3 主程序 545
26.4.4 無調(diào)制模式函數(shù) 546
26.4.5 調(diào)制模式1函數(shù) 546
26.4.6 調(diào)制模式2函數(shù) 547
26.4.7 調(diào)制模式3函數(shù) 547
26.4.8 調(diào)制模式4函數(shù) 547
26.5 光通信電壓調(diào)制電路實例——仿真部分 547
26.5.1 程序仿真 548
26.5.2 運行效果 548
26.6 小結(jié) 548
第27章 可編程邏輯器件CPLD 549
本章首先介紹了可編程邏輯器件的發(fā)展,以及CPLD和FPGA的結(jié)構(gòu)及邏輯實現(xiàn)??删幊踢壿嬈骷话悴捎肰HDL語言進行設(shè)計,本章對VHDL語言進行了簡要的介紹。本章對常用的CPLD芯片EPM7128SLC84進行展開講解,提供了Altera公司的CPLD下載電路。本章實例部分,使用CPLD配合AT89S52來擴展了8051單片機的并行I/O端口。單片機和可編程邏輯器件內(nèi)部結(jié)構(gòu)不同,各有優(yōu)勢,實際系統(tǒng)中經(jīng)常需要將兩者結(jié)合使用。
27.1 可編程邏輯器件概述 549
27.1.1 可編程邏輯器件的發(fā)展 549
27.1.2 CPLD的結(jié)構(gòu)及其邏輯實現(xiàn) 549
27.1.3 FPGA的結(jié)構(gòu)及其邏輯實現(xiàn) 551
27.2 硬件描述語言簡述 552
27.2.1 硬件描述語言VHDL概述 553
27.2.2 VHDL程序結(jié)構(gòu) 553
27.3 Altera常用CPLD芯片介紹 555
27.4 使用CPLD擴展51單片機I/O接口 557
27.4.1 CPLD擴展單片機I/O接口原理 558
27.4.2 電路圖 558
27.5 單片機程序設(shè)計 559
27.5.1 項目建立 559
27.5.2 主程序 560
27.6 VHDL程序設(shè)計 560
27.6.1 項目建立 560
27.6.2 程序設(shè)計 561
27.7 程序仿真 563
27.7.1 設(shè)計CPLD引腳 563
27.7.2 仿真操作 564
27.8 程序下載 565
27.9 小結(jié) 567
第28章 51系列單片機讀寫I2C總線 568
本章詳細介紹了I2C串行總線的工作原理、結(jié)構(gòu)及尋址方式等,并對I2C串行總線的數(shù)據(jù)傳輸進行了詳細的介紹。本章還給出了采用普通的51系列單片機模擬讀寫I2C串行總線的匯編語言和C語言的代碼。最后通過一個具體的實例,講解了單片機讀寫I2C總線外圍器件的電路設(shè)計及程序設(shè)計。I2C串行總線具有接口簡單,體積小等優(yōu)點,在實際電路設(shè)計中經(jīng)常使用。熟練掌握本章內(nèi)容,可以控制大部分的I2C總線外圍器件,從而大大擴展了51系列單片機的使用范圍。
28.1 I2C總線概述 568
28.1.1 I2C總線工作原理 568
28.1.2 I2C總線的電氣結(jié)構(gòu)和負載能力 569
28.1.3 I2C總線器件的尋址方式 569
28.2 I2C總線數(shù)據(jù)傳輸協(xié)議及其程序詳解 570
28.2.1 起始信號 570
28.2.2 終止信號 571
28.2.3 應(yīng)答信號 571
28.2.4 非應(yīng)答信號 572
28.2.5 應(yīng)答位檢查 573
28.2.6 總線數(shù)據(jù)位 573
28.2.7 寫數(shù)據(jù) 573
28.2.8 讀數(shù)據(jù) 576
28.3 51單片機讀寫EEPROM 579
28.3.1 串行EEPROM存儲器簡介 579
28.3.2 電路設(shè)計 580
28.3.3 程序設(shè)計 581
28.3.4 仿真分析 582
28.4 小結(jié) 583
第29章 單片機音樂播放 584
本章詳細講述了音樂學中音調(diào)和節(jié)拍的概念,以及如何使用單片機來實現(xiàn)音調(diào)和節(jié)拍的演奏。本章還給出了一些音樂片段的示例代碼。最后通過一個具體的實例,講解了如何使用單片機播放音樂。單片機的功能強大,成本低廉,對于需要簡單音樂播放的場合,可以選擇使用單片機控制揚聲器來實現(xiàn)。
29.1 單片機發(fā)音概述 584
29.1.1 音調(diào) 584
29.1.2 節(jié)拍 586
29.1.3 單片機音樂播放的方法及音樂示例 586
29.2 單片機音樂播放實例——電路圖 589
29.3 單片機音樂播放實例——程序設(shè)計 590
29.3.1 建立項目 590
29.3.2 程序設(shè)計 591
29.4 小結(jié) 593
第30章 實時時鐘芯片應(yīng)用 594
本章詳細介紹了實時時鐘芯片DS1302的命令字節(jié)和數(shù)據(jù)格式,并介紹了兩種數(shù)據(jù)傳輸方式,即單字節(jié)傳輸方式和多字節(jié)突發(fā)傳輸方式。本章通過一個具體的實例,講解了如何使用8051單片機來實現(xiàn)對DS1302的控制,在該實例中分別采用了單字節(jié)傳輸方式和多字節(jié)傳輸方式來對DS1302的時鐘寄存器及RAM進行操作。實時時鐘常用于需要時間設(shè)定和顯示的場合,在單片機應(yīng)用系統(tǒng)中很常見,讀者熟練掌握本章內(nèi)容,可以輕松實現(xiàn)單片機的時鐘顯示擴展。
30.1 實時時鐘芯片DS1302概述 594
30.1.1 實時時鐘芯片DS1302概述 594
30.1.2 實時時鐘芯片DS1302命令字節(jié) 595
30.1.3 實時時鐘芯片DS1302數(shù)據(jù)格式 595
30.1.4 實時時鐘芯片DS1302數(shù)據(jù)傳輸方式 597
30.2 單片機讀寫實時時鐘芯片實例 598
30.2.1 電路圖 598
30.2.2 建立項目 598
30.2.3 主程序 599
30.2.4 復(fù)位函數(shù) 601
30.2.5 字節(jié)讀取函數(shù) 602
30.2.6 字節(jié)寫入函數(shù) 602
30.2.7 初始化函數(shù) 602
30.2.8 時鐘字節(jié)寫入函數(shù) 603
30.2.9 RAM字節(jié)寫入函數(shù) 604
30.2.10 時鐘寄存器內(nèi)容顯示函數(shù) 604
30.2.11 多字節(jié)突發(fā)方式讀取RAM函數(shù) 605
30.2.12 多字節(jié)突發(fā)方式寫入RAM函數(shù) 605
30.3 小結(jié) 606
第31章 靜態(tài)RAM存儲器應(yīng)用 607
本章詳細講述了RAM存儲器的種類和特點,并重點講解了應(yīng)用最為廣泛的靜態(tài)RAM存儲器。本章還對一款常用的靜態(tài)RAM存儲器HM628128進行了詳細介紹。最后,通過一個綜合的實例介紹了靜態(tài)RAM存儲器的讀寫。實例中使用了計算機的串行通信接口,以及單片機的串行接口設(shè)計。通過本章的講解,讀者可以掌握單片機系統(tǒng)中靜態(tài)RAM存儲器的讀寫及計算機串行的應(yīng)用。
31.1 靜態(tài)RAM存儲器概述 607
31.1.1 RAM存儲器概述 607
31.1.2 靜態(tài)RAM芯片HM628128 608
31.1.3 靜態(tài)RAM芯片HM628128的讀寫 608
31.2 靜態(tài)RAM存儲器讀寫實例 609
31.2.1 系統(tǒng)原理 610
31.2.2 串行通信接口概述 610
31.2.3 單片機與RS-232C的接口 615
31.2.4 系統(tǒng)電路原理圖 616
31.2.5 建立項目 617
31.2.6 主程序設(shè)計 618
31.2.7 系統(tǒng)運行 620
31.3 小結(jié) 622
第32章 道路交通燈控制系統(tǒng) 623
本章詳細講述了道路交通燈的運行原理,以及如何使用RTX-51 Tiny程序來實現(xiàn)道路交通燈的控制模擬。本章給出了詳細的電路圖,以及RTX-51 Tiny的多任務(wù)程序。通過本章的學習,可以掌握實時多任務(wù)操作系統(tǒng)的設(shè)計,尤其是基于8051單片機的RTX-51 Tiny的程序設(shè)計。
32.1 交通燈控制系統(tǒng)概述 623
32.1.1 道路交通燈概述 623
32.1.2 交通燈控制系統(tǒng) 623
32.2 交通燈控制系統(tǒng)原理圖 624
32.3 多任務(wù)交通燈控制系統(tǒng)程序 625
32.3.1 建立項目 625
32.3.2 多任務(wù)劃分及程序設(shè)計 626
32.3.3 串行通信函數(shù) 632
32.3.4 獲取命令函數(shù) 635
32.4 小結(jié) 636
第33章 單總線溫度傳感器DS18S20 637
本章介紹了1-Wire單總線的工作原理,并結(jié)合1-Wire總線接口溫度傳感器DS18S20,詳細講解了其供電方式及數(shù)據(jù)操作命令。最后通過一個完整的實例介紹了如何使用51系列單片機模擬1-Wire總線數(shù)據(jù)傳輸,從而實現(xiàn)DS18S20的控制。1-Wire單總線是一種結(jié)構(gòu)簡單的接口協(xié)議,其最大化地減少了I/O引腳數(shù)目,在實際電路中有著廣泛的應(yīng)用。
33.1 單總線概述 637
33.2 單總線溫度傳感器DS18S20 638
33.2.1 溫度傳感器DS18S20概述 638
33.2.2 DS18S20的供電方式 639
33.2.3 DS18S20的數(shù)據(jù)操作 639
33.3 單片機讀寫溫度傳感器DS18S20實例 642
33.3.1 電路圖 642
33.3.2 建立項目 643
33.3.3 DS18S20讀寫子函數(shù) 643
33.3.4 主函數(shù) 649
33.3.5 程序仿真 651
33.4 小結(jié) 651
第34章 Microware串行總線EEPROM的應(yīng)用 652
本章詳細講解了三線制Microware串行總線,并通過Microware串行總線的EEPROM介紹了Microware串行總線的操作指令及其操作時序。本章最后通過一個具體的實例,介紹了如何使用標準的51系列單片機來在軟件上仿真模擬Microware串行總線。其中給出了Microware串行總線讀寫的子函數(shù)及一個完整的實例。三線制Microware串行總線減少了I/O引腳的使用,在實際電路設(shè)計中具有廣泛的應(yīng)用,讀者應(yīng)該熟練掌握。
34.1 三線制Microware串行總線概述 652
34.2 Microware串行總線接口的EEPROM 653
34.2.1 Microware串行總線接口EEPROM概述 653
34.2.2 Microware串行總線接口EEPROM的指令 653
34.2.3 Microware串行總線接口EEPROM的指令時序 654
34.3 51系列單片機讀寫三線制EEPROM實例 657
34.3.1 電路圖 657
34.3.2 建立項目 657
34.3.3 三線制Microware串行總線讀寫子函數(shù) 658
34.3.4 主程序 660
34.3.5 Microware串行總線仿真 662
34.4 小結(jié) 663
第35章 單片機控制打印機實例 664
本章詳細講述了LASER PP40微型四色描繪式打印機,包括其接口、工作時序、文本模式和圖形模式等。本章最后還通過一個具體的實例,介紹了如何使用51系列單片機控制LASER PP40微型打印機打印輸出。LASER PP40微型打印機接口簡單、控制方便,十分適合作為單片機系統(tǒng)的智能輸出擴展。因此,熟練掌握本章內(nèi)容對讀者以后的單片機系統(tǒng)設(shè)計工作很有幫助。
35.1 打印機概述 664
35.1.1 LASER PP40打印機概述 664
35.1.2 LASER PP40的文本模式 665
35.1.3 LASER PP40的圖形模式 666
35.2 51系列單片機控制打印機實例 667
35.2.1 電路圖 667
35.2.2 建立項目 668
35.2.3 程序設(shè)計 668
35.3 小結(jié) 669
第36章 A/D轉(zhuǎn)換實例 670
本章首先詳細介紹了A/D轉(zhuǎn)換的原理、A/D轉(zhuǎn)換器的技術(shù)參數(shù)及A/D轉(zhuǎn)換器的選用原則。接著,本章介紹了一個高性能的8通道A/D轉(zhuǎn)換器MAX197。其中,詳細講解了MAX197的特性、引腳功能,以及接口、控制和時序邏輯等。最后,本章通過一個完整的實例介紹了A/D轉(zhuǎn)換器MAX197與單片機的接口。A/D轉(zhuǎn)換在測控領(lǐng)域,特別是模擬信號的數(shù)據(jù)采集系統(tǒng)中有著廣泛的應(yīng)用,讀者應(yīng)熟練掌握A/D轉(zhuǎn)換的相關(guān)知識及A/D轉(zhuǎn)換器的使用。
36.1 A/D轉(zhuǎn)換概述 670
36.1.1 A/D轉(zhuǎn)換原理 670
36.1.2 A/D轉(zhuǎn)換器的技術(shù)參數(shù) 672
36.1.3 A/D轉(zhuǎn)換器的選擇原則 673
36.2 8通道A/D轉(zhuǎn)換器MAX197 673
36.2.1 MAX197的特性及引腳功能 674
36.2.2 MAX197的接口、控制字及時序 675
36.3 單片機讀寫A/D轉(zhuǎn)換器實例 677
36.3.1 電路圖 677
36.3.2 建立項目 679
36.3.3 程序設(shè)計 679
36.3.4 程序仿真 682
36.4 小結(jié) 682
第37章 單片機讀寫智能IC卡 683
本章主要介紹了智能IC卡的相關(guān)知識。其中對目前市場上廣泛使用的AT45DB041D接觸式IC卡芯片進行了詳細介紹,包括芯片的功能、內(nèi)存空間和指令。本章還通過一個具體的實例,介紹了如何使用單片機對IC卡芯片進行讀寫操作。由于IC卡芯片采用SPI串行數(shù)據(jù)接口,這里使用了帶有SPI接口的AT89S8253單片機進行讀寫操作。智能IC卡目前得到廣泛的使用,讀者應(yīng)該熟練掌握本章內(nèi)容。
37.1 智能IC卡概述 683
37.1.1 智能IC卡分類 683
37.1.2 接觸式IC卡 684
37.1.3 非接觸式IC卡 684
37.2 智能IC卡芯片 684
37.2.1 IC卡芯片AT45DB041簡介 684
37.2.2 AT45DB041D的內(nèi)存空間及其讀寫 685
37.2.3 AT45DB041D的指令 686
37.3 單片機讀寫智能IC卡實例 687
37.3.1 電路圖 687
37.3.2 SPI接口單片機AT89S8253簡介 688
37.3.3 建立項目 689
37.3.4 IC卡芯片AT45DB041D讀寫子函數(shù) 690
37.3.5 主程序 692
37.4 小結(jié) 694
第38章 單片機智能鋰電池充電管理 695
本章首先介紹了廣泛使用的鋰電池,以及鋰電池的充電要求。接著介紹了MAXIM公司的一款高性能的智能充電管理芯片MAX1898,包括MAX1898引腳功能及其充電工作原理。最后,本章通過一個具體的實例,介紹了如何使用51系列單片機控制MAX1898來實現(xiàn)單節(jié)鋰電池的智能充電過程。鋰電池及其充電器廣泛應(yīng)用于生活中,因此,熟練掌握本章內(nèi)容具有極大的實際意義。
38.1 鋰電池及其充電概述 695
38.1.1 鋰電池概述 695
38.1.2 鋰電池充電概述 696
38.2 智能充電管理芯片MAX1898 696
38.2.1 智能充電管理芯片MAX1898概述 696
38.2.2 MAX1898充電工作原理 697
38.3 單片機智能控制鋰電池充電實例 698
38.3.1 電路圖 699
38.3.2 智能充電器的功能 700
38.3.3 建立項目 700
38.3.4 程序設(shè)計 701
38.4 小結(jié) 702

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號