書(shū)????名 | 51單片機(jī)開(kāi)發(fā)與應(yīng)用技術(shù)詳解 | 作????者 | 趙建領(lǐng) 薛園園 |
---|---|---|---|
類(lèi)????別 | 計(jì)算機(jī)/程序設(shè)計(jì)>>51單片機(jī) | 出版社 | 電子工業(yè)出版社 |
出版時(shí)間 | 2009年1月1日 | 頁(yè)????數(shù) | 704 頁(yè) |
定????價(jià) | ¥79.00元(含光盤(pán)1張) | 開(kāi)????本 | 16 開(kāi) |
ISBN | 9787121079207 [1]? |
? 單片機(jī)的初學(xué)者
? 電子設(shè)計(jì)愛(ài)好者
? 電子工程師
? 系統(tǒng)開(kāi)發(fā)人員
? 大學(xué)、大專(zhuān)等電子相關(guān)專(zhuān)業(yè)的學(xué)生及教師
編 者
第一篇 51系列單片機(jī)基礎(chǔ)
第1章 51系列單片機(jī)概述 35
本章主要介紹了單片機(jī)的發(fā)展歷程、51系列單片機(jī)的簡(jiǎn)介和51系列單片機(jī)的應(yīng)用領(lǐng)域;接著介紹了一下實(shí)際常用的一些主流半導(dǎo)體廠商的單片機(jī)型號(hào),以供讀者參考;最后,詳細(xì)介紹了開(kāi)發(fā)51系列單片機(jī)應(yīng)用系統(tǒng)的整個(gè)流程及主要注意事項(xiàng)。
1.1 單片機(jī)的產(chǎn)生與發(fā)展 35
1.2 51系列單片機(jī)介紹 36
1.2.1 51系列單片機(jī)簡(jiǎn)介 36
1.2.2 51系列單片機(jī)的應(yīng)用領(lǐng)域 36
1.3 最新51內(nèi)核單片機(jī)介紹 37
1.3.1 Atmel單片機(jī)介紹 37
1.3.2 Cypress單片機(jī)介紹 37
1.3.3 Infineon單片機(jī)介紹 38
1.3.4 Silicon單片機(jī)介紹 38
1.3.5 Maxim單片機(jī)介紹 38
1.3.6 NXP單片機(jī)介紹 39
1.3.7 Winbond單片機(jī)介紹 39
1.3.8 Analog Devices單片機(jī)介紹 39
1.3.9 TI單片機(jī)介紹 40
1.3.10 其他單片機(jī)介紹 40
1.4 51系列單片機(jī)開(kāi)發(fā)概述 40
1.4.1 分析測(cè)控系統(tǒng) 41
1.4.2 單片機(jī)選型 41
1.4.3 硬件資源分配 41
1.4.4 程序設(shè)計(jì) 42
1.4.5 仿真測(cè)試 42
1.4.6 實(shí)際硬件測(cè)試 42
1.5 小結(jié) 42
第2章 51系列單片機(jī)基本結(jié)構(gòu) 43
本章詳細(xì)介紹了51系列單片機(jī)的基本結(jié)構(gòu),包括單片機(jī)的內(nèi)部結(jié)構(gòu)、引腳功能、中央處理器CPU、存儲(chǔ)器的結(jié)構(gòu)、單片機(jī)的復(fù)位、單片機(jī)工作的時(shí)鐘和時(shí)序、并行I/O端口的結(jié)構(gòu)和性能,以及單片機(jī)系統(tǒng)的掉電保護(hù)和低功耗設(shè)計(jì)。最后,還給出了一個(gè)典型的單片機(jī)最小系統(tǒng)。本章在講述的時(shí)候,不僅對(duì)基本的8051進(jìn)行了介紹,還介紹了目前新推出的高性能單片機(jī)AT89S52。這樣讀者在學(xué)習(xí)基礎(chǔ)知識(shí)的同時(shí),還可以了解最新單片機(jī)的性能和使用。
2.1 51系列單片機(jī)的內(nèi)部結(jié)構(gòu) 43
2.1.1 內(nèi)部結(jié)構(gòu)的主要組成部分 43
2.1.2 單片機(jī)結(jié)構(gòu)的類(lèi)型 44
2.2 51系列單片機(jī)的引腳功能 45
2.2.1 51系列單片機(jī)的引腳封裝 45
2.2.2 51系列單片機(jī)引腳功能 45
2.3 中央處理器(CPU) 47
2.3.1 算術(shù)邏輯部件(ALU) 47
2.3.2 控制器 47
2.3.3 通用寄存器 48
2.3.4 專(zhuān)用寄存器 48
2.4 存儲(chǔ)器結(jié)構(gòu) 50
2.4.1 程序存儲(chǔ)器及其擴(kuò)展 50
2.4.2 數(shù)據(jù)存儲(chǔ)器及其擴(kuò)展 51
2.5 51系列單片機(jī)的復(fù)位 55
2.5.1 單片機(jī)的復(fù)位狀態(tài) 55
2.5.2 單片機(jī)的復(fù)位電路 55
2.6 51系列單片機(jī)的時(shí)鐘和時(shí)序 56
2.6.1 振蕩器和時(shí)鐘電路 57
2.6.2 CPU的時(shí)序 58
2.6.3 指令執(zhí)行的時(shí)序 58
2.6.4 訪問(wèn)外部ROM/RAM的操作時(shí)序 60
2.7 51系列單片機(jī)的并行I/O口 61
2.7.1 并行I/O口 61
2.7.2 并行I/O口的應(yīng)用 64
2.7.3 并行I/O口的擴(kuò)展 64
2.8 系統(tǒng)掉電保護(hù)和低功耗設(shè)計(jì) 66
2.8.1 掉電保護(hù) 66
2.8.2 低功耗設(shè)計(jì) 67
2.9 51系列單片機(jī)的最小系統(tǒng) 68
2.10 小結(jié) 69
第3章 Keil C51開(kāi)發(fā)工具簡(jiǎn)介 70
本章詳細(xì)介紹了Keil μVision3的集成開(kāi)發(fā)環(huán)境μVision3,包括安裝過(guò)程、項(xiàng)目管理窗口、菜單欄、工具欄,以及μVision3的管理配置和各種常用的窗口。μVision3是一個(gè)十分優(yōu)秀的單片機(jī)開(kāi)發(fā)軟件,應(yīng)用得十分廣泛,熟練掌握μVision3集成開(kāi)發(fā)環(huán)境的使用是單片機(jī)設(shè)計(jì)的基礎(chǔ)。
3.1 Keil μVision3簡(jiǎn)介 70
3.2 μVision3安裝 70
3.3 μVision3集成開(kāi)發(fā)環(huán)境 71
3.3.1 μVision3項(xiàng)目管理窗口 72
3.3.2 μVision3的菜單欄 72
3.3.3 μVision3的工具欄 77
3.3.4 μVision3的管理配置 79
3.3.5 μVision3的各種常用窗口 81
3.4 小結(jié) 84
第二篇 編程篇——匯編語(yǔ)言
第4章 匯編語(yǔ)言程序設(shè)計(jì) 85
本章主要講述了匯編語(yǔ)言的偽指令、匯編語(yǔ)言的程序格式及源程序的編譯。本章最后還通過(guò)一個(gè)具體的實(shí)例,介紹了如何在Keil μVision3集成開(kāi)發(fā)環(huán)境中進(jìn)行單片機(jī)的匯編程序設(shè)計(jì)及仿真。匯編語(yǔ)言是最早應(yīng)用于單片機(jī)開(kāi)發(fā)的程序語(yǔ)言。相比其他程序設(shè)計(jì)語(yǔ)言,匯編語(yǔ)言指令的執(zhí)行速度快、代碼短小精悍,且具有確定的指令執(zhí)行周期。熟練掌握本章內(nèi)容是后續(xù)匯編語(yǔ)言程序?qū)W習(xí)的基礎(chǔ)。
4.1 匯編語(yǔ)言程序概述 85
4.1.1 匯編語(yǔ)言簡(jiǎn)介 85
4.1.2 匯編語(yǔ)言程序設(shè)計(jì)步驟 86
4.1.3 匯編語(yǔ)言程序?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 位地址符號(hào)偽指令BIT 89
4.3 匯編語(yǔ)言程序的格式 89
4.4 源程序的匯編 90
4.5 Keil μVision3中運(yùn)行匯編語(yǔ)言實(shí)例 90
4.5.1 創(chuàng)建項(xiàng)目 90
4.5.2 創(chuàng)建源文件 91
4.5.3 編譯項(xiàng)目 92
4.5.4 仿真調(diào)試 92
4.6 小結(jié) 93
第5章 匯編語(yǔ)言程序結(jié)構(gòu) 94
本章主要介紹了利用匯編語(yǔ)言進(jìn)行單片機(jī)設(shè)計(jì)的各種程序結(jié)構(gòu),包括順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和子程序結(jié)構(gòu)。本章還介紹了兩類(lèi)比較常用的程序設(shè)計(jì)類(lèi)型,即查表程序和運(yùn)算類(lèi)的程序。對(duì)于比較復(fù)雜的問(wèn)題可以根據(jù)設(shè)計(jì)的要求,選用不同的程序結(jié)構(gòu)來(lái)進(jìn)行設(shè)計(jì)。因此,熟練掌握本章內(nèi)容,對(duì)讀者以后的設(shè)計(jì)工作會(huì)很有幫助。
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è)計(jì)實(shí)例 101
5.5 查表結(jié)構(gòu)程序 102
5.6 運(yùn)算類(lèi)程序 103
5.6.1 8位帶符號(hào)整數(shù)的乘法子程序 103
5.6.2 8位帶符號(hào)整數(shù)的除法子程序 104
5.7 小結(jié) 106
第三篇 編程篇——C51
第6章 單片機(jī)C語(yǔ)言程序設(shè)計(jì)基礎(chǔ) 107
單片機(jī)C語(yǔ)言是現(xiàn)在單片機(jī)系統(tǒng)設(shè)計(jì)所廣泛采用的程序語(yǔ)言。本章首先介紹了單片機(jī)C語(yǔ)言(C51語(yǔ)言)的特點(diǎn),然后分別介紹了C51語(yǔ)言的標(biāo)識(shí)符、關(guān)鍵字、數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式等,并對(duì)每一個(gè)知識(shí)點(diǎn)都提供了完整詳細(xì)的實(shí)例分析。本章是單片機(jī)C51語(yǔ)言的基礎(chǔ),熟練掌握本章知識(shí),對(duì)以后章節(jié)的學(xué)習(xí)會(huì)有很大的幫助。
6.1 單片機(jī)C語(yǔ)言概述 107
6.1.1 單片機(jī)C語(yǔ)言和匯編語(yǔ)言對(duì)比 107
6.1.2 C51語(yǔ)言的主要特點(diǎn) 107
6.2 單片機(jī)C語(yǔ)言在Keil μVision3中應(yīng)用實(shí)例 108
6.2.1 創(chuàng)建項(xiàng)目 108
6.2.2 創(chuàng)建源文件 109
6.2.3 編譯項(xiàng)目 109
6.2.4 仿真調(diào)試 110
6.3 C51的標(biāo)識(shí)符與關(guān)鍵字 111
6.3.1 標(biāo)識(shí)符 111
6.3.2 關(guān)鍵字 111
6.4 C51的數(shù)據(jù)類(lèi)型 113
6.4.1 常量與變量 114
6.4.2 整型數(shù)據(jù) 114
6.4.3 浮點(diǎn)型數(shù)據(jù) 115
6.4.4 字符型數(shù)據(jù) 116
6.4.5 指針型數(shù)據(jù) 119
6.4.6 無(wú)值型數(shù)據(jù) 120
6.5 C51的變量作用域 120
6.5.1 基本規(guī)則 120
6.5.2 自動(dòng)變量 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 運(yùn)算符 125
6.7.1 算術(shù)運(yùn)算符 125
6.7.2 邏輯運(yùn)算符和關(guān)系運(yùn)算符 126
6.7.3 位運(yùn)算符 128
6.7.4 特殊運(yùn)算符 130
6.7.5 運(yùn)算符優(yōu)先級(jí)和結(jié)合性 133
6.8 表達(dá)式 134
6.8.1 算術(shù)表達(dá)式 134
6.8.2 賦值表達(dá)式 135
6.8.3 逗號(hào)表達(dá)式 136
6.8.4 關(guān)系和邏輯表達(dá)式 137
6.9 小結(jié) 138
第7章 數(shù)組 139
本章首先介紹了C51語(yǔ)言中的數(shù)組的使用,主要包括數(shù)組類(lèi)型的說(shuō)明、數(shù)組元素的表示及初始化賦值。接著,本章分別對(duì)一維數(shù)組、二維數(shù)組及多維數(shù)組的使用進(jìn)行了詳細(xì)的講解。數(shù)組是重要數(shù)據(jù)結(jié)構(gòu),廣泛應(yīng)用于C51語(yǔ)言的程序設(shè)計(jì)中。因此,熟練掌握本章內(nèi)容是學(xué)習(xí)C51語(yǔ)言的基礎(chǔ)。
7.1 數(shù)組類(lèi)型說(shuō)明 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 一維字符串?dāng)?shù)組 142
7.5 二維數(shù)組 143
7.5.1 二維數(shù)組聲明 144
7.5.2 二維數(shù)組初始化 145
7.5.3 二維字符串?dāng)?shù)組 146
7.6 多維數(shù)組 147
7.7 小結(jié) 147
第8章 指針 148
本章首先介紹了C51語(yǔ)言中指針的使用,主要包括指針的概念、指針變量的聲明和賦值。接著,本章詳細(xì)講解了指針變量的引用及運(yùn)算規(guī)則。最后,本章還對(duì)幾種特殊的指針進(jìn)行了詳細(xì)的介紹,主要包括數(shù)組指針、字符指針及指針數(shù)組。指針的概念來(lái)源于C語(yǔ)言,在程序設(shè)計(jì)中靈活使用指針可以優(yōu)化程序設(shè)計(jì)。因此,熟練掌握本章內(nèi)容是學(xué)習(xí)C51語(yǔ)言的基礎(chǔ),同時(shí)對(duì)讀者以后的C51語(yǔ)言程序設(shè)計(jì)工作會(huì)大有幫助。
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 取地址運(yùn)算符“&” 150
8.4.2 取內(nèi)容運(yùn)算符“*” 151
8.5 指針變量的運(yùn)算 152
8.5.1 關(guān)系運(yùn)算 152
8.5.2 算術(shù)運(yùn)算 152
8.6 數(shù)組指針 153
8.6.1 指向一維數(shù)組的指針 153
8.6.2 指向二維數(shù)組的指針 154
8.6.3 指向一個(gè)由n個(gè)元素所組成的數(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語(yǔ)言中的結(jié)構(gòu)的使用,主要包括結(jié)構(gòu)的定義、結(jié)構(gòu)變量的定義和賦值。接著,本章詳細(xì)講解了結(jié)構(gòu)數(shù)組及結(jié)構(gòu)指針的使用。最后,本章還對(duì)幾種特殊的指針進(jìn)行了詳細(xì)的介紹,主要包括嵌套結(jié)構(gòu)和位結(jié)構(gòu)。結(jié)構(gòu)是C51語(yǔ)言中重要的數(shù)據(jù)類(lèi)型,其和C語(yǔ)言中的結(jié)構(gòu)非常類(lèi)似。熟練掌握本章內(nèi)容是學(xué)習(xí)C51語(yǔ)言的基礎(chǔ),同時(shí)對(duì)讀者以后的C51程序設(shè)計(jì)工作會(huì)大有幫助。
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)的同時(shí),定義結(jié)構(gòu)變量 161
9.2.3 直接說(shuō)明結(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)合、枚舉、類(lèi)型說(shuō)明和位域 171
本章主要介紹了幾種特殊形式的聚合數(shù)據(jù)類(lèi)型,包括聯(lián)合類(lèi)型、枚舉類(lèi)型,還介紹了類(lèi)型說(shuō)明及位域。這些特殊的數(shù)據(jù)類(lèi)型是對(duì)基本數(shù)據(jù)類(lèi)型的有效擴(kuò)充。靈活運(yùn)用這些特殊數(shù)據(jù)類(lèi)型,可以方便單片機(jī)的程序設(shè)計(jì)。因此,熟練掌握本章內(nèi)容是單片機(jī)程序設(shè)計(jì)的基礎(chǔ)。
10.1 聯(lián)合類(lèi)型 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 枚舉類(lèi)型 175
10.3.1 枚舉的定義 175
10.3.2 枚舉變量的聲明 175
10.3.3 枚舉類(lèi)型變量的賦值 176
10.4 類(lèi)型說(shuō)明 178
10.5 位域 179
10.5.1 位域的定義和位域變量的聲明 179
10.5.2 位域變量的使用 180
10.6 小結(jié) 181
第11章 C51語(yǔ)言的函數(shù) 182
本章詳細(xì)介紹了C51語(yǔ)言中函數(shù)的使用,包括函數(shù)的定義、形參和實(shí)參、函數(shù)的返回值、函數(shù)的調(diào)用、函數(shù)及其變量的作用域。本章還結(jié)合單片機(jī)程序設(shè)計(jì)的特點(diǎn),介紹了C51程序中的main函數(shù)。函數(shù)是C51語(yǔ)言中的重要概念,靈活運(yùn)用函數(shù)可以實(shí)現(xiàn)程序的模塊化設(shè)計(jì)。因此,熟練掌握本章內(nèi)容,是C51語(yǔ)言程序設(shè)計(jì)的基礎(chǔ)。
11.1 函數(shù)的概念和分類(lèi) 182
11.1.1 從函數(shù)定義角度 182
11.1.2 從有無(wú)返回值角度 183
11.1.3 從數(shù)據(jù)傳送角度 183
11.2 函數(shù)的定義 183
11.3 函數(shù)的參數(shù) 185
11.3.1 形參和實(shí)參 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語(yǔ)言的常用庫(kù)函數(shù)詳解 195
本章詳細(xì)講解了C51語(yǔ)言中常用的庫(kù)函數(shù),主要包括字符函數(shù)、字符串函數(shù)、I/O函數(shù)、數(shù)學(xué)函數(shù)、標(biāo)準(zhǔn)函數(shù)、內(nèi)部函數(shù)、絕對(duì)地址訪問(wèn)函數(shù)、變量參數(shù)表函數(shù)、全程跳轉(zhuǎn)函數(shù)及偏移量函數(shù)。這些庫(kù)函數(shù)涵蓋了常見(jiàn)的字符、字符串、數(shù)學(xué)計(jì)算、I/O控制等功能,讀者在進(jìn)行程序設(shè)計(jì)時(shí)可以直接調(diào)用使用。因此,熟練掌握和運(yùn)用本章內(nèi)容,可以大大減輕程序設(shè)計(jì)的負(fù)擔(dān),方便單片機(jī)的程序設(shè)計(jì)。
12.1 字符函數(shù) 195
12.1.1 檢查英文字母函數(shù) 195
12.1.2 檢查字母數(shù)字函數(shù) 196
12.1.3 檢查控制字符函數(shù) 196
12.1.4 十進(jìn)制數(shù)字檢查函數(shù) 197
12.1.5 可打印字符檢查函數(shù) 197
12.1.6 包含空格的可打印字符檢查函數(shù) 198
12.1.7 格式字符檢查函數(shù) 199
12.1.8 小寫(xiě)英文字母檢查函數(shù) 199
12.1.9 大寫(xiě)英文字母檢查函數(shù) 200
12.1.10 控制字符檢查函數(shù) 200
12.1.11 十六進(jìn)制數(shù)字檢查函數(shù) 201
12.1.12 十六進(jìn)制數(shù)字轉(zhuǎn)換函數(shù) 202
12.1.13 大寫(xiě)字符轉(zhuǎn)換函數(shù) 202
12.1.14 小寫(xiě)字符轉(zhuǎn)換函數(shù) 203
12.1.15 ASCII字符轉(zhuǎn)換函數(shù) 204
12.1.16 大寫(xiě)字符宏轉(zhuǎn)換函數(shù) 204
12.1.17 小寫(xiě)字符宏轉(zhuǎn)換函數(shù) 205
12.2 字符串函數(shù) 206
12.2.1 字符查找函數(shù) 206
12.2.2 指定長(zhǎng)度的字符串比較函數(shù) 206
12.2.3 字符串復(fù)制函數(shù) 207
12.2.4 帶終止字符的字符串復(fù)制函數(shù) 208
12.2.5 字符串移動(dòng)函數(shù) 209
12.2.6 字符串填充函數(shù) 209
12.2.7 字符串追加函數(shù) 210
12.2.8 指定長(zhǎng)度的字符串追加函數(shù) 210
12.2.9 字符串比較函數(shù) 211
12.2.10 包含結(jié)束符的字符串比較函數(shù) 212
12.2.11 字符串覆蓋函數(shù) 213
12.2.12 指定長(zhǎng)度的字符串覆蓋函數(shù) 213
12.2.13 獲取字符串個(gè)數(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 查找第一個(gè)包含字符函數(shù) 219
12.2.22 查找最后一個(gè)包含字符函數(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ù)學(xué)函數(shù) 231
12.4.1 絕對(duì)值函數(shù) 231
12.4.2 指數(shù)及對(duì)數(shù)函數(shù) 232
12.4.3 三角函數(shù) 232
12.4.4 取整函數(shù) 234
12.4.5 浮點(diǎn)型分離函數(shù) 234
12.4.6 冪函數(shù) 235
12.5 標(biāo)準(zhǔn)函數(shù) 235
12.5.1 字符串轉(zhuǎn)換函數(shù) 236
12.5.2 帶返回指針的字符串轉(zhuǎn)換函數(shù) 237
12.5.3 隨機(jī)函數(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í)函數(shù) 244
12.6.4 位測(cè)試函數(shù) 244
12.7 絕對(duì)地址訪問(wèn)函數(shù) 245
12.7.1 BYTE型存儲(chǔ)空間訪問(wèn)函數(shù) 245
12.7.2 WORD型存儲(chǔ)空間訪問(wèn)函數(shù) 245
12.7.3 far存儲(chǔ)區(qū)訪問(wèn)函數(shù) 246
12.7.4 far存儲(chǔ)區(qū)數(shù)組訪問(wèn)函數(shù) 247
12.8 變量參數(shù)表函數(shù) 247
12.9 全程跳轉(zhuǎn)函數(shù) 248
12.10 計(jì)算結(jié)構(gòu)體成員的偏移量函數(shù) 249
12.11 小結(jié) 250
第13章 C51語(yǔ)句和流程 251
本章詳細(xì)講述了單片機(jī)C51語(yǔ)言中的各種語(yǔ)句結(jié)構(gòu),包括說(shuō)明語(yǔ)句、表達(dá)式語(yǔ)句、復(fù)合語(yǔ)句、循環(huán)語(yǔ)句、條件語(yǔ)句、開(kāi)關(guān)語(yǔ)句、跳轉(zhuǎn)語(yǔ)句、函數(shù)調(diào)用語(yǔ)句、空語(yǔ)句和返回語(yǔ)句。這些語(yǔ)句是C51語(yǔ)言程序的重要組成部分。靈活利用這些語(yǔ)句,可以實(shí)現(xiàn)不同的程序流程控制結(jié)構(gòu),如順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)等,以達(dá)到簡(jiǎn)化程序的目的。熟練掌握本章內(nèi)容是進(jìn)行C51語(yǔ)言程序設(shè)計(jì)的基礎(chǔ)。
13.1 說(shuō)明語(yǔ)句 251
13.2 表達(dá)式語(yǔ)句 251
13.3 復(fù)合語(yǔ)句 252
13.4 循環(huán)語(yǔ)句 253
13.4.1 while語(yǔ)句 253
13.4.2 do-while語(yǔ)句 254
13.4.3 for語(yǔ)句 254
13.5 條件語(yǔ)句 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 開(kāi)關(guān)語(yǔ)句 258
13.7 跳轉(zhuǎn)語(yǔ)句 259
13.7.1 goto語(yǔ)句 259
13.7.2 break語(yǔ)句 260
13.7.3 continue 語(yǔ)句 260
13.8 函數(shù)調(diào)用語(yǔ)句 261
13.9 空語(yǔ)句 261
13.10 返回語(yǔ)句 262
13.11 C51語(yǔ)言的流程控制結(jié)構(gòu) 263
13.12 小結(jié) 264
第14章 預(yù)處理及用戶配置文件 265
本章詳細(xì)介紹了C51語(yǔ)言所支持的各種預(yù)處理命令,包括宏定義指令、文件包含指令、條件編譯指令和其他一些編譯指令。然后還介紹了C51語(yǔ)言編譯器的一些控制指令,這需要和具體的編譯器相聯(lián)系。最后還介紹了一下C51語(yǔ)言的用戶配置文件。熟練掌握本章內(nèi)容,對(duì)讀者以后的單片機(jī)程序設(shè)計(jì)有很大幫助。
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語(yǔ)言編譯器的控制指令 273
14.6.1 源文件控制類(lèi) 273
14.6.2 目標(biāo)文件(Object)控制類(lèi) 273
14.6.3 列表文件(Listing)控制類(lèi) 273
14.7 C51語(yǔ)言的用戶配置文件 274
14.7.1 C51語(yǔ)言啟動(dòng)代碼文件 274
14.7.2 C51語(yǔ)言啟動(dòng)代碼分析 277
14.7.3 變量初始化文件 279
14.7.4 基本I/O函數(shù)文件 279
14.7.5 分組配置文件 279
14.8 小結(jié) 280
第15章 C51語(yǔ)言的存儲(chǔ)結(jié)構(gòu) 281
本章詳細(xì)講述了C51語(yǔ)言的存儲(chǔ)器結(jié)構(gòu)、存儲(chǔ)類(lèi)型、存儲(chǔ)模式及存儲(chǔ)器指針等,后面還介紹了動(dòng)態(tài)內(nèi)存分配。數(shù)據(jù)的存儲(chǔ)模式是單片機(jī)系統(tǒng)特有的概念,這里的內(nèi)容涉及單片機(jī)的硬件資源比較多,讀者應(yīng)該對(duì)照著單片機(jī)的介紹來(lái)進(jìn)行學(xué)習(xí),這樣可以加深理解。
15.1 存儲(chǔ)器結(jié)構(gòu) 281
15.1.1 51系列單片機(jī)的存儲(chǔ)區(qū)域 281
15.1.2 片內(nèi)數(shù)據(jù)存儲(chǔ)器(RAM)的結(jié)構(gòu) 281
15.2 存儲(chǔ)類(lèi)型 282
15.2.1 data存儲(chǔ)類(lèi)型 282
15.2.2 bdata存儲(chǔ)類(lèi)型 282
15.2.3 idata存儲(chǔ)類(lèi)型 283
15.2.4 pdata存儲(chǔ)類(lèi)型 283
15.2.5 xdata存儲(chǔ)類(lèi)型 283
15.2.6 code存儲(chǔ)類(lèi)型 284
15.3 擴(kuò)展數(shù)據(jù)類(lèi)型 284
15.3.1 sfr和sfr16 284
15.3.2 sbit 285
15.3.3 bit型變量 285
15.4 存儲(chǔ)模式 285
15.4.1 Small模式 286
15.4.2 Compact模式 286
15.4.3 Large模式 286
15.4.4 存儲(chǔ)模式的選擇 286
15.5 C51語(yǔ)言的存儲(chǔ)器指針 286
15.5.1 一般指針 286
15.5.2 存儲(chǔ)器指針 287
15.5.3 指針存儲(chǔ)類(lèi)型與指針?biāo)赶虻臄?shù)據(jù)的存儲(chǔ)類(lèi)型的關(guān)系 288
15.6 動(dòng)態(tài)內(nèi)存分配 288
15.6.1 C51語(yǔ)言的動(dòng)態(tài)分配函數(shù) 289
15.6.2 malloc和calloc函數(shù) 289
15.7 小結(jié) 289
第四篇 51系列單片機(jī)編程指南篇
第16章 51系列單片機(jī)的指令系統(tǒng) 290
本章詳細(xì)講解了51系列單片機(jī)的指令系統(tǒng),包括指令的7種尋址方式,以及51系列單片機(jī)指令系統(tǒng)中的各類(lèi)指令的書(shū)寫(xiě)格式、功能、使用方法及注意事項(xiàng)等。對(duì)于每一條指令,均給出了完整詳細(xì)的實(shí)例來(lái)講解如何在程序設(shè)計(jì)中應(yīng)用。這一章的內(nèi)容是讀者學(xué)習(xí)使用單片機(jī)的基礎(chǔ)必備知識(shí),深刻地理解單片機(jī)指令系統(tǒng),可以為接下來(lái)的學(xué)習(xí)打下良好的基礎(chǔ)。
16.1 指令系統(tǒng)簡(jiǎn)介 290
16.1.1 指令格式 290
16.1.2 指令符號(hào) 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 相對(duì)尋址 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 程序存儲(chǔ)器數(shù)據(jù)傳送指令 305
16.3.4 數(shù)據(jù)交換指令 306
16.3.5 堆棧操作指令 308
16.4 算術(shù)運(yùn)算指令 309
16.4.1 加法指令 309
16.4.2 帶進(jìn)位的加法指令 311
16.4.3 帶借位的減法指令 312
16.4.4 加1指令 314
16.4.5 減1指令 315
16.4.6 乘除法指令 316
16.4.7 十進(jìn)制調(diào)整指令 317
16.5 邏輯運(yùn)算及移位指令 318
16.5.1 邏輯與指令 319
16.5.2 邏輯或指令 320
16.5.3 邏輯異或指令 321
16.5.4 累加器清零指令 322
16.5.5 累加器取反指令 323
16.5.6 組合邏輯電路的實(shí)現(xiàn) 324
16.5.7 循環(huán)移位指令 324
16.6 控制轉(zhuǎn)移指令 326
16.6.1 無(wú)條件轉(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 位邏輯運(yùn)算指令 339
16.7.4 位控制轉(zhuǎn)移指令 340
16.8 空操作指令 342
16.9 51系列單片機(jī)指令匯總 343
16.10 小結(jié) 347
第17章 51系列單片機(jī)的定時(shí)器/計(jì)數(shù)器 348
本章詳細(xì)講述了51系列單片機(jī)的定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)、控制寄存器及4種工作方式,并分別給出了詳細(xì)的程序設(shè)計(jì)方法;本章還對(duì)52子系列的單片機(jī)定時(shí)器/計(jì)數(shù)器T2也進(jìn)行了詳細(xì)的介紹。定時(shí)器/計(jì)數(shù)器是單片機(jī)的一個(gè)非常有用的功能,熟練掌握本章內(nèi)容,對(duì)讀者以后的單片機(jī)設(shè)計(jì)有很大幫助。
17.1 定時(shí)器/計(jì)數(shù)器0和1 348
17.1.1 定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu) 348
17.1.2 定時(shí)器/計(jì)數(shù)器的功能 349
17.1.3 T0和T1的控制寄存器 349
17.2 定時(shí)器/計(jì)數(shù)器0和1的工作模式 352
17.2.1 工作模式0及其程序設(shè)計(jì) 352
17.2.2 工作模式1及其程序設(shè)計(jì) 354
17.2.3 工作模式2及其程序設(shè)計(jì) 356
17.2.4 工作模式3及其程序設(shè)計(jì) 358
17.3 定時(shí)器/計(jì)數(shù)器2 360
17.3.1 T2的控制寄存器T2CON和T2MOD及其程序訪問(wèn) 361
17.3.2 定時(shí)器/計(jì)數(shù)器2的工作模式 362
17.4 小結(jié) 367
第18章 51系列單片機(jī)中斷系統(tǒng)及其程序設(shè)計(jì) 368
本章詳細(xì)講述了中斷系統(tǒng)的基本概念,并重點(diǎn)介紹了51系列單片機(jī)的中斷類(lèi)型及中斷的各種控制標(biāo)準(zhǔn)位;接著講述了51系列單片機(jī)對(duì)中斷的處理過(guò)程,并通過(guò)實(shí)例詳細(xì)講述了各種中斷源的編程方式;最后還介紹了外部中斷源的擴(kuò)展方式及其程序設(shè)計(jì)。中斷是51系列單片機(jī)重要的系統(tǒng)資源,合理使用中斷系統(tǒng),可以減輕CPU的負(fù)擔(dān),簡(jiǎn)化程序設(shè)計(jì),實(shí)現(xiàn)對(duì)外部信號(hào)的實(shí)時(shí)處理。因此,熟練掌握本章內(nèi)容是學(xué)習(xí)51系列單片機(jī)的基礎(chǔ)。
18.1 中斷系統(tǒng)概述 368
18.1.1 什么是中斷 368
18.1.2 中斷的用途 368
18.1.3 中斷需要解決的問(wèn)題 369
18.2 51系列單片機(jī)的中斷類(lèi)型 371
18.2.1 外部中斷源 371
18.2.2 定時(shí)中斷源 371
18.2.3 串行中斷源 371
18.3 51系列單片機(jī)的中斷系統(tǒng) 372
18.3.1 中斷請(qǐng)求標(biāo)志及其訪問(wèn) 372
18.3.2 中斷允許標(biāo)志及其訪問(wèn) 373
18.3.3 中斷優(yōu)先級(jí)標(biāo)志及其訪問(wèn) 374
18.4 中斷的處理過(guò)程 375
18.4.1 中斷響應(yīng) 375
18.4.2 中斷處理 377
18.4.3 中斷返回 378
18.4.4 中斷請(qǐng)求的撤離 378
18.5 中斷源的程序設(shè)計(jì) 378
18.5.1 外部中斷源的程序設(shè)計(jì) 378
18.5.2 定時(shí)中斷源的程序設(shè)計(jì) 380
18.5.3 串行中斷源的程序設(shè)計(jì) 381
18.6 外部中斷源的擴(kuò)展 382
18.6.1 定時(shí)器/計(jì)數(shù)器擴(kuò)展外部中斷源 382
18.6.2 查詢方式擴(kuò)展外部中斷源 385
18.7 小結(jié) 386
第19章 51系列單片機(jī)的串行接口 387
本章首先詳細(xì)介紹了串行通信的基本方式,包括異步串行通信和同步串行通信,以及單工制式、半雙工制式和全雙工制式三種數(shù)據(jù)傳送方式。51系列單片機(jī)集成了全雙工的串行接口,本章詳細(xì)介紹了單片機(jī)串行接口的內(nèi)部結(jié)構(gòu)、程序控制、4種工作模式及其程序設(shè)計(jì)等。最后介紹了單片機(jī)的串行接口在雙機(jī)通信和多機(jī)通信方面的應(yīng)用。單片機(jī)串行口的應(yīng)用非常廣泛,熟練掌握本章內(nèi)容很重要。
19.1 串行通信概述 387
19.1.1 串行通信簡(jiǎn)介 387
19.1.2 串行通信的數(shù)據(jù)傳送方式 389
19.2 51系列單片機(jī)的串行接口 390
19.2.1 單片機(jī)串行接口的內(nèi)部結(jié)構(gòu) 390
19.2.2 單片機(jī)串行接口的程序控制 391
19.2.3 波特率的程序設(shè)計(jì) 393
19.3 串行口的工作模式0 396
19.3.1 模式0的發(fā)送及擴(kuò)展輸出端口 396
19.3.2 模式0的接收及擴(kuò)展輸入端口 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 雙機(jī)通信程序設(shè)計(jì) 407
19.7.1 查詢方式 407
19.7.2 中斷方式 408
19.8 多機(jī)通信程序設(shè)計(jì) 410
19.8.1 多機(jī)通信原理 411
19.8.2 多機(jī)通信協(xié)議約定 411
19.8.3 多機(jī)通信程序設(shè)計(jì) 411
19.9 小結(jié) 416
第20章 C51下的RTX-51實(shí)時(shí)多任務(wù)操作系統(tǒng) 417
本章詳細(xì)介紹了運(yùn)行于8051硬件平臺(tái)的RTX-51實(shí)時(shí)多任務(wù)操作系統(tǒng)。RTX-51的程序不同于普通的單片機(jī)程序,這里對(duì)RTX-51的任務(wù)調(diào)度、系統(tǒng)函數(shù)、任務(wù)管理及RTX-51 Tiny的配置進(jìn)行了詳細(xì)的闡述。熟練掌握和運(yùn)用本章內(nèi)容,可以簡(jiǎn)化復(fù)雜的多任務(wù)單片機(jī)系統(tǒng)設(shè)計(jì)。
20.1 RTX-51實(shí)時(shí)多任務(wù)操作系統(tǒng)簡(jiǎn)介 417
20.1.1 RTX-51種類(lèi) 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信號(hào)任務(wù)調(diào)度 421
20.2.4 優(yōu)先級(jí)及搶先任務(wù)切換 421
20.2.5 RTX-51的其他特性 422
20.3 RTX-51 Tiny的系統(tǒng)函數(shù) 423
20.3.1 發(fā)送信號(hào)函數(shù)isr_send_signal 423
20.3.2 清除信號(hào)標(biāo)志函數(shù)os_clear_signal 423
20.3.3 啟動(dòng)任務(wù)函數(shù)os_create_task 424
20.3.4 刪除任務(wù)函數(shù)os_delete_task 424
20.3.5 當(dāng)前任務(wù)號(hào)函數(shù)os_running_task_id 425
20.3.6 發(fā)送信號(hào)函數(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的注意事項(xiàng) 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 μVision3中的單片機(jī)硬件資源仿真 436
本章詳細(xì)介紹了Keil μVision3集成開(kāi)發(fā)環(huán)境中,對(duì)單片機(jī)各種常見(jiàn)的片上資源的仿真操作。主要包括并行I/O端口、定時(shí)器/計(jì)數(shù)器、串行接口、中斷、看門(mén)狗定時(shí)器、A/D、D/A、寄存器及低功耗仿真。單片機(jī)的程序設(shè)計(jì)主要是對(duì)各種片上資源進(jìn)行操作,Keil μVision3集成開(kāi)發(fā)環(huán)境對(duì)各種片上資源均提供了完善的仿真支持。在程序設(shè)計(jì)時(shí),通過(guò)仿真操作可以完美地模擬程序的執(zhí)行情況,便于及時(shí)發(fā)現(xiàn)問(wèn)題。這樣便大大提高了程序開(kāi)發(fā)的可靠性,加速了程序的開(kāi)發(fā)速度。因此,讀者應(yīng)該熟練掌握本章內(nèi)容。
21.1 仿真概述 436
21.2 并行I/O端口的仿真 436
21.3 定時(shí)器/計(jì)數(shù)器的仿真 438
21.3.1 定時(shí)器/計(jì)數(shù)器T0和T1的仿真界面 438
21.3.2 定時(shí)器/計(jì)數(shù)器T2的仿真界面 439
21.3.3 定時(shí)器/計(jì)數(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 看門(mén)狗定時(shí)器的仿真 448
21.6.1 看門(mén)狗定時(shí)器的仿真界面 448
21.6.2 看門(mén)狗定時(shí)器的仿真操作 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 μVision3中的程序調(diào)試 458
本章詳細(xì)介紹了Keil μVision3集成開(kāi)發(fā)環(huán)境的程序調(diào)試功能,包括性能分析器、代碼覆蓋分析器和斷點(diǎn)等。本章還詳細(xì)介紹了Keil μVision3編譯器提供的調(diào)試命令,這些調(diào)試命令大大擴(kuò)展了單片機(jī)程序的仿真調(diào)試。合理使用Keil μVision3的各種調(diào)試功能及調(diào)試命令,可以在程序設(shè)計(jì)和調(diào)試時(shí)達(dá)到事半功倍的效果。因此,熟練掌握本章內(nèi)容有助于讀者分析和優(yōu)化單片機(jī)程序。
22.1 Keil μVision3的程序調(diào)試器概述 458
22.2 性能分析器 458
22.3 代碼覆蓋分析器 459
22.4 斷點(diǎn) 460
22.5 Keil μVision3調(diào)試命令 461
22.5.1 通用命令 461
22.5.2 程序命令 465
22.5.3 斷點(diǎn)命令 467
22.5.4 存儲(chǔ)器命令 469
22.6 小結(jié) 471
第五篇 典型案例篇
第23章 鍵盤(pán)程序設(shè)計(jì) 472
本章詳細(xì)講述了鍵盤(pán)設(shè)計(jì)需要注意的一些問(wèn)題,然后介紹了獨(dú)立式按鍵和矩陣式鍵盤(pán)的工作方式。其中著重講了矩陣式鍵盤(pán)的掃描法、線反轉(zhuǎn)法和中斷法的工作原理及程序設(shè)計(jì)。最后通過(guò)一個(gè)完整電路,實(shí)現(xiàn)了矩陣式鍵盤(pán)的掃描查詢方式在程序中的應(yīng)用。在實(shí)例中,還通過(guò)仿真分析了整個(gè)程序流程的正確性。矩陣式鍵盤(pán)應(yīng)用十分廣泛,熟練掌握它的使用是學(xué)習(xí)單片機(jī)應(yīng)用系統(tǒng)的基礎(chǔ)。
23.1 鍵盤(pán)接口概述 472
23.1.1 按鍵編碼 472
23.1.2 輸入的可靠性 472
23.1.3 程序檢測(cè)及響應(yīng) 473
23.2 獨(dú)立式按鍵及其編程接口 473
23.2.1 獨(dú)立式按鍵結(jié)構(gòu) 473
23.2.2 獨(dú)立式按鍵程序設(shè)計(jì) 474
23.3 4×4矩陣式鍵盤(pán)及其編程接口 475
23.3.1 掃描法及其程序設(shè)計(jì) 475
23.3.2 線反轉(zhuǎn)法及其程序設(shè)計(jì) 477
23.3.3 中斷法及其程序設(shè)計(jì) 479
23.4 矩陣式鍵盤(pán)的接口實(shí)例 480
23.4.1 電路圖 480
23.4.2 程序設(shè)計(jì) 481
23.4.3 程序仿真 483
23.5 小結(jié) 485
第24章 LED數(shù)碼管顯示 486
本章詳細(xì)介紹了LED數(shù)碼管顯示器件,包括7段共陽(yáng)極LED數(shù)碼管和7段共陰極LED數(shù)碼管,然后介紹了LED的靜態(tài)顯示技術(shù)及其應(yīng)用實(shí)例。本章還重點(diǎn)講解了LED數(shù)碼管的動(dòng)態(tài)顯示技術(shù),包括靜態(tài)驅(qū)動(dòng)、動(dòng)態(tài)驅(qū)動(dòng)和LED驅(qū)動(dòng)器驅(qū)動(dòng)。最后通過(guò)一個(gè)具體的實(shí)例講解了使用LED驅(qū)動(dòng)器控制多個(gè)LED的顯示。LED數(shù)碼管顯示是單片機(jī)系統(tǒng)中常用的顯示接口,讀者應(yīng)該熟練掌握其使用方法。
24.1 LED數(shù)碼管概述 486
24.1.1 7段共陽(yáng)極LED結(jié)構(gòu)及顯示段碼 486
24.1.2 7段共陰極LED結(jié)構(gòu)及顯示段碼 487
24.2 單個(gè)LED驅(qū)動(dòng)實(shí)例 488
24.2.1 電路圖 488
24.2.2 程序設(shè)計(jì) 490
24.3 多個(gè)LED驅(qū)動(dòng)方式 492
24.3.1 靜態(tài)驅(qū)動(dòng)顯示 493
24.3.2 動(dòng)態(tài)驅(qū)動(dòng)顯示 497
24.3.3 LED驅(qū)動(dòng)器 499
24.4 多個(gè)LED驅(qū)動(dòng)實(shí)例 503
24.4.1 LED驅(qū)動(dòng)器電路圖 503
24.4.2 程序設(shè)計(jì) 504
24.5 小結(jié) 508
第25章 LCD液晶顯示模塊 509
本章詳細(xì)介紹了液晶和液晶顯示模塊的結(jié)構(gòu)及原理,并對(duì)常用的LCD驅(qū)動(dòng)控制器的指令和功能進(jìn)行了介紹,其中給出了用于圖形點(diǎn)陣式液晶讀寫(xiě)的詳細(xì)子函數(shù)。最后利用一款采用這個(gè)驅(qū)動(dòng)器的液晶顯示模塊,來(lái)介紹如何控制其顯示漢字和圖形等。近年來(lái),液晶顯示模塊應(yīng)用越來(lái)越廣泛。熟練掌握本章內(nèi)容對(duì)讀者以后的設(shè)計(jì)很有幫助。
25.1 LCD液晶顯示概述 509
25.1.1 液晶的來(lái)源 509
25.1.2 LCD液晶顯示器結(jié)構(gòu)及原理 509
25.1.3 液晶顯示模塊的種類(lèi) 510
25.1.4 液晶顯示模塊的優(yōu)點(diǎn) 511
25.2 液晶顯示模塊控制接口 511
25.2.1 LCD控制驅(qū)動(dòng)器ST7920概述 511
25.2.2 ST7920功能說(shuō)明 512
25.2.3 ST7920基本指令集 516
25.2.4 ST7920擴(kuò)充指令集 518
25.2.5 ST7920的操作方式 520
25.2.6 圖形點(diǎn)陣式液晶顯示模塊 521
25.2.7 圖形點(diǎn)陣式液晶讀寫(xiě)子函數(shù) 522
25.3 漢字及圖形顯示實(shí)例 525
25.3.1 電路設(shè)計(jì) 525
25.3.2 建立項(xiàng)目 526
25.3.3 漢字顯示實(shí)例 526
25.3.4 圖形顯示實(shí)例 528
25.3.5 任意位置圖形顯示實(shí)例 530
25.4 小結(jié) 532
第26章 D/A轉(zhuǎn)換實(shí)例 533
本章首先詳細(xì)介紹了D/A轉(zhuǎn)換器的基本知識(shí),包括D/A轉(zhuǎn)換器的原理、D/A轉(zhuǎn)換器的類(lèi)型及技術(shù)參數(shù),然后介紹了一個(gè)高速易使用的D/A轉(zhuǎn)換芯片AD558。最后通過(guò)一個(gè)具體的實(shí)例,介紹了如何采用AD558在光通信領(lǐng)域中完成對(duì)光信號(hào)的相位精確調(diào)制。D/A轉(zhuǎn)換器在測(cè)控領(lǐng)域有著廣泛的應(yīng)用,擴(kuò)展了8051單片機(jī)處理模擬信號(hào)的能力,是現(xiàn)代電子設(shè)計(jì)中不可缺少的一部分。
26.1 D/A轉(zhuǎn)換概述 533
26.1.1 D/A轉(zhuǎn)換原理 533
26.1.2 D/A轉(zhuǎn)換器的類(lèi)型 534
26.1.3 D/A轉(zhuǎn)換器的技術(shù)參數(shù) 535
26.2 高速D/A轉(zhuǎn)換芯片AD558 536
26.2.1 AD558簡(jiǎn)介 536
26.2.2 AD558電壓輸出模式 537
26.2.3 AD558的數(shù)據(jù)鎖存 538
26.3 光通信電壓調(diào)制電路實(shí)例——電路部分 539
26.3.1 相位調(diào)制的原理 539
26.3.2 電壓調(diào)制系統(tǒng) 540
26.3.3 電路圖 541
26.4 光通信電壓調(diào)制電路實(shí)例——程序部分 544
26.4.1 系統(tǒng)狀態(tài)編碼 544
26.4.2 建立項(xiàng)目 544
26.4.3 主程序 545
26.4.4 無(wú)調(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)制電路實(shí)例——仿真部分 547
26.5.1 程序仿真 548
26.5.2 運(yùn)行效果 548
26.6 小結(jié) 548
第27章 可編程邏輯器件CPLD 549
本章首先介紹了可編程邏輯器件的發(fā)展,以及CPLD和FPGA的結(jié)構(gòu)及邏輯實(shí)現(xiàn)??删幊踢壿嬈骷话悴捎肰HDL語(yǔ)言進(jìn)行設(shè)計(jì),本章對(duì)VHDL語(yǔ)言進(jìn)行了簡(jiǎn)要的介紹。本章對(duì)常用的CPLD芯片EPM7128SLC84進(jìn)行展開(kāi)講解,提供了Altera公司的CPLD下載電路。本章實(shí)例部分,使用CPLD配合AT89S52來(lái)擴(kuò)展了8051單片機(jī)的并行I/O端口。單片機(jī)和可編程邏輯器件內(nèi)部結(jié)構(gòu)不同,各有優(yōu)勢(shì),實(shí)際系統(tǒng)中經(jīng)常需要將兩者結(jié)合使用。
27.1 可編程邏輯器件概述 549
27.1.1 可編程邏輯器件的發(fā)展 549
27.1.2 CPLD的結(jié)構(gòu)及其邏輯實(shí)現(xiàn) 549
27.1.3 FPGA的結(jié)構(gòu)及其邏輯實(shí)現(xiàn) 551
27.2 硬件描述語(yǔ)言簡(jiǎn)述 552
27.2.1 硬件描述語(yǔ)言VHDL概述 553
27.2.2 VHDL程序結(jié)構(gòu) 553
27.3 Altera常用CPLD芯片介紹 555
27.4 使用CPLD擴(kuò)展51單片機(jī)I/O接口 557
27.4.1 CPLD擴(kuò)展單片機(jī)I/O接口原理 558
27.4.2 電路圖 558
27.5 單片機(jī)程序設(shè)計(jì) 559
27.5.1 項(xiàng)目建立 559
27.5.2 主程序 560
27.6 VHDL程序設(shè)計(jì) 560
27.6.1 項(xiàng)目建立 560
27.6.2 程序設(shè)計(jì) 561
27.7 程序仿真 563
27.7.1 設(shè)計(jì)CPLD引腳 563
27.7.2 仿真操作 564
27.8 程序下載 565
27.9 小結(jié) 567
第28章 51系列單片機(jī)讀寫(xiě)I2C總線 568
本章詳細(xì)介紹了I2C串行總線的工作原理、結(jié)構(gòu)及尋址方式等,并對(duì)I2C串行總線的數(shù)據(jù)傳輸進(jìn)行了詳細(xì)的介紹。本章還給出了采用普通的51系列單片機(jī)模擬讀寫(xiě)I2C串行總線的匯編語(yǔ)言和C語(yǔ)言的代碼。最后通過(guò)一個(gè)具體的實(shí)例,講解了單片機(jī)讀寫(xiě)I2C總線外圍器件的電路設(shè)計(jì)及程序設(shè)計(jì)。I2C串行總線具有接口簡(jiǎn)單,體積小等優(yōu)點(diǎn),在實(shí)際電路設(shè)計(jì)中經(jīng)常使用。熟練掌握本章內(nèi)容,可以控制大部分的I2C總線外圍器件,從而大大擴(kuò)展了51系列單片機(jī)的使用范圍。
28.1 I2C總線概述 568
28.1.1 I2C總線工作原理 568
28.1.2 I2C總線的電氣結(jié)構(gòu)和負(fù)載能力 569
28.1.3 I2C總線器件的尋址方式 569
28.2 I2C總線數(shù)據(jù)傳輸協(xié)議及其程序詳解 570
28.2.1 起始信號(hào) 570
28.2.2 終止信號(hào) 571
28.2.3 應(yīng)答信號(hào) 571
28.2.4 非應(yīng)答信號(hào) 572
28.2.5 應(yīng)答位檢查 573
28.2.6 總線數(shù)據(jù)位 573
28.2.7 寫(xiě)數(shù)據(jù) 573
28.2.8 讀數(shù)據(jù) 576
28.3 51單片機(jī)讀寫(xiě)EEPROM 579
28.3.1 串行EEPROM存儲(chǔ)器簡(jiǎn)介 579
28.3.2 電路設(shè)計(jì) 580
28.3.3 程序設(shè)計(jì) 581
28.3.4 仿真分析 582
28.4 小結(jié) 583
第29章 單片機(jī)音樂(lè)播放 584
本章詳細(xì)講述了音樂(lè)學(xué)中音調(diào)和節(jié)拍的概念,以及如何使用單片機(jī)來(lái)實(shí)現(xiàn)音調(diào)和節(jié)拍的演奏。本章還給出了一些音樂(lè)片段的示例代碼。最后通過(guò)一個(gè)具體的實(shí)例,講解了如何使用單片機(jī)播放音樂(lè)。單片機(jī)的功能強(qiáng)大,成本低廉,對(duì)于需要簡(jiǎn)單音樂(lè)播放的場(chǎng)合,可以選擇使用單片機(jī)控制揚(yáng)聲器來(lái)實(shí)現(xiàn)。
29.1 單片機(jī)發(fā)音概述 584
29.1.1 音調(diào) 584
29.1.2 節(jié)拍 586
29.1.3 單片機(jī)音樂(lè)播放的方法及音樂(lè)示例 586
29.2 單片機(jī)音樂(lè)播放實(shí)例——電路圖 589
29.3 單片機(jī)音樂(lè)播放實(shí)例——程序設(shè)計(jì) 590
29.3.1 建立項(xiàng)目 590
29.3.2 程序設(shè)計(jì) 591
29.4 小結(jié) 593
第30章 實(shí)時(shí)時(shí)鐘芯片應(yīng)用 594
本章詳細(xì)介紹了實(shí)時(shí)時(shí)鐘芯片DS1302的命令字節(jié)和數(shù)據(jù)格式,并介紹了兩種數(shù)據(jù)傳輸方式,即單字節(jié)傳輸方式和多字節(jié)突發(fā)傳輸方式。本章通過(guò)一個(gè)具體的實(shí)例,講解了如何使用8051單片機(jī)來(lái)實(shí)現(xiàn)對(duì)DS1302的控制,在該實(shí)例中分別采用了單字節(jié)傳輸方式和多字節(jié)傳輸方式來(lái)對(duì)DS1302的時(shí)鐘寄存器及RAM進(jìn)行操作。實(shí)時(shí)時(shí)鐘常用于需要時(shí)間設(shè)定和顯示的場(chǎng)合,在單片機(jī)應(yīng)用系統(tǒng)中很常見(jiàn),讀者熟練掌握本章內(nèi)容,可以輕松實(shí)現(xiàn)單片機(jī)的時(shí)鐘顯示擴(kuò)展。
30.1 實(shí)時(shí)時(shí)鐘芯片DS1302概述 594
30.1.1 實(shí)時(shí)時(shí)鐘芯片DS1302概述 594
30.1.2 實(shí)時(shí)時(shí)鐘芯片DS1302命令字節(jié) 595
30.1.3 實(shí)時(shí)時(shí)鐘芯片DS1302數(shù)據(jù)格式 595
30.1.4 實(shí)時(shí)時(shí)鐘芯片DS1302數(shù)據(jù)傳輸方式 597
30.2 單片機(jī)讀寫(xiě)實(shí)時(shí)時(shí)鐘芯片實(shí)例 598
30.2.1 電路圖 598
30.2.2 建立項(xiàng)目 598
30.2.3 主程序 599
30.2.4 復(fù)位函數(shù) 601
30.2.5 字節(jié)讀取函數(shù) 602
30.2.6 字節(jié)寫(xiě)入函數(shù) 602
30.2.7 初始化函數(shù) 602
30.2.8 時(shí)鐘字節(jié)寫(xiě)入函數(shù) 603
30.2.9 RAM字節(jié)寫(xiě)入函數(shù) 604
30.2.10 時(shí)鐘寄存器內(nèi)容顯示函數(shù) 604
30.2.11 多字節(jié)突發(fā)方式讀取RAM函數(shù) 605
30.2.12 多字節(jié)突發(fā)方式寫(xiě)入RAM函數(shù) 605
30.3 小結(jié) 606
第31章 靜態(tài)RAM存儲(chǔ)器應(yīng)用 607
本章詳細(xì)講述了RAM存儲(chǔ)器的種類(lèi)和特點(diǎn),并重點(diǎn)講解了應(yīng)用最為廣泛的靜態(tài)RAM存儲(chǔ)器。本章還對(duì)一款常用的靜態(tài)RAM存儲(chǔ)器HM628128進(jìn)行了詳細(xì)介紹。最后,通過(guò)一個(gè)綜合的實(shí)例介紹了靜態(tài)RAM存儲(chǔ)器的讀寫(xiě)。實(shí)例中使用了計(jì)算機(jī)的串行通信接口,以及單片機(jī)的串行接口設(shè)計(jì)。通過(guò)本章的講解,讀者可以掌握單片機(jī)系統(tǒng)中靜態(tài)RAM存儲(chǔ)器的讀寫(xiě)及計(jì)算機(jī)串行的應(yīng)用。
31.1 靜態(tài)RAM存儲(chǔ)器概述 607
31.1.1 RAM存儲(chǔ)器概述 607
31.1.2 靜態(tài)RAM芯片HM628128 608
31.1.3 靜態(tài)RAM芯片HM628128的讀寫(xiě) 608
31.2 靜態(tài)RAM存儲(chǔ)器讀寫(xiě)實(shí)例 609
31.2.1 系統(tǒng)原理 610
31.2.2 串行通信接口概述 610
31.2.3 單片機(jī)與RS-232C的接口 615
31.2.4 系統(tǒng)電路原理圖 616
31.2.5 建立項(xiàng)目 617
31.2.6 主程序設(shè)計(jì) 618
31.2.7 系統(tǒng)運(yùn)行 620
31.3 小結(jié) 622
第32章 道路交通燈控制系統(tǒng) 623
本章詳細(xì)講述了道路交通燈的運(yùn)行原理,以及如何使用RTX-51 Tiny程序來(lái)實(shí)現(xiàn)道路交通燈的控制模擬。本章給出了詳細(xì)的電路圖,以及RTX-51 Tiny的多任務(wù)程序。通過(guò)本章的學(xué)習(xí),可以掌握實(shí)時(shí)多任務(wù)操作系統(tǒng)的設(shè)計(jì),尤其是基于8051單片機(jī)的RTX-51 Tiny的程序設(shè)計(jì)。
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 建立項(xiàng)目 625
32.3.2 多任務(wù)劃分及程序設(shè)計(jì) 626
32.3.3 串行通信函數(shù) 632
32.3.4 獲取命令函數(shù) 635
32.4 小結(jié) 636
第33章 單總線溫度傳感器DS18S20 637
本章介紹了1-Wire單總線的工作原理,并結(jié)合1-Wire總線接口溫度傳感器DS18S20,詳細(xì)講解了其供電方式及數(shù)據(jù)操作命令。最后通過(guò)一個(gè)完整的實(shí)例介紹了如何使用51系列單片機(jī)模擬1-Wire總線數(shù)據(jù)傳輸,從而實(shí)現(xiàn)DS18S20的控制。1-Wire單總線是一種結(jié)構(gòu)簡(jiǎn)單的接口協(xié)議,其最大化地減少了I/O引腳數(shù)目,在實(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 單片機(jī)讀寫(xiě)溫度傳感器DS18S20實(shí)例 642
33.3.1 電路圖 642
33.3.2 建立項(xiàng)目 643
33.3.3 DS18S20讀寫(xiě)子函數(shù) 643
33.3.4 主函數(shù) 649
33.3.5 程序仿真 651
33.4 小結(jié) 651
第34章 Microware串行總線EEPROM的應(yīng)用 652
本章詳細(xì)講解了三線制Microware串行總線,并通過(guò)Microware串行總線的EEPROM介紹了Microware串行總線的操作指令及其操作時(shí)序。本章最后通過(guò)一個(gè)具體的實(shí)例,介紹了如何使用標(biāo)準(zhǔn)的51系列單片機(jī)來(lái)在軟件上仿真模擬Microware串行總線。其中給出了Microware串行總線讀寫(xiě)的子函數(shù)及一個(gè)完整的實(shí)例。三線制Microware串行總線減少了I/O引腳的使用,在實(shí)際電路設(shè)計(jì)中具有廣泛的應(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的指令時(shí)序 654
34.3 51系列單片機(jī)讀寫(xiě)三線制EEPROM實(shí)例 657
34.3.1 電路圖 657
34.3.2 建立項(xiàng)目 657
34.3.3 三線制Microware串行總線讀寫(xiě)子函數(shù) 658
34.3.4 主程序 660
34.3.5 Microware串行總線仿真 662
34.4 小結(jié) 663
第35章 單片機(jī)控制打印機(jī)實(shí)例 664
本章詳細(xì)講述了LASER PP40微型四色描繪式打印機(jī),包括其接口、工作時(shí)序、文本模式和圖形模式等。本章最后還通過(guò)一個(gè)具體的實(shí)例,介紹了如何使用51系列單片機(jī)控制LASER PP40微型打印機(jī)打印輸出。LASER PP40微型打印機(jī)接口簡(jiǎn)單、控制方便,十分適合作為單片機(jī)系統(tǒng)的智能輸出擴(kuò)展。因此,熟練掌握本章內(nèi)容對(duì)讀者以后的單片機(jī)系統(tǒng)設(shè)計(jì)工作很有幫助。
35.1 打印機(jī)概述 664
35.1.1 LASER PP40打印機(jī)概述 664
35.1.2 LASER PP40的文本模式 665
35.1.3 LASER PP40的圖形模式 666
35.2 51系列單片機(jī)控制打印機(jī)實(shí)例 667
35.2.1 電路圖 667
35.2.2 建立項(xiàng)目 668
35.2.3 程序設(shè)計(jì) 668
35.3 小結(jié) 669
第36章 A/D轉(zhuǎn)換實(shí)例 670
本章首先詳細(xì)介紹了A/D轉(zhuǎn)換的原理、A/D轉(zhuǎn)換器的技術(shù)參數(shù)及A/D轉(zhuǎn)換器的選用原則。接著,本章介紹了一個(gè)高性能的8通道A/D轉(zhuǎn)換器MAX197。其中,詳細(xì)講解了MAX197的特性、引腳功能,以及接口、控制和時(shí)序邏輯等。最后,本章通過(guò)一個(gè)完整的實(shí)例介紹了A/D轉(zhuǎn)換器MAX197與單片機(jī)的接口。A/D轉(zhuǎn)換在測(cè)控領(lǐng)域,特別是模擬信號(hào)的數(shù)據(jù)采集系統(tǒng)中有著廣泛的應(yīng)用,讀者應(yīng)熟練掌握A/D轉(zhuǎn)換的相關(guān)知識(shí)及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的接口、控制字及時(shí)序 675
36.3 單片機(jī)讀寫(xiě)A/D轉(zhuǎn)換器實(shí)例 677
36.3.1 電路圖 677
36.3.2 建立項(xiàng)目 679
36.3.3 程序設(shè)計(jì) 679
36.3.4 程序仿真 682
36.4 小結(jié) 682
第37章 單片機(jī)讀寫(xiě)智能IC卡 683
本章主要介紹了智能IC卡的相關(guān)知識(shí)。其中對(duì)目前市場(chǎng)上廣泛使用的AT45DB041D接觸式IC卡芯片進(jìn)行了詳細(xì)介紹,包括芯片的功能、內(nèi)存空間和指令。本章還通過(guò)一個(gè)具體的實(shí)例,介紹了如何使用單片機(jī)對(duì)IC卡芯片進(jìn)行讀寫(xiě)操作。由于IC卡芯片采用SPI串行數(shù)據(jù)接口,這里使用了帶有SPI接口的AT89S8253單片機(jī)進(jìn)行讀寫(xiě)操作。智能IC卡目前得到廣泛的使用,讀者應(yīng)該熟練掌握本章內(nèi)容。
37.1 智能IC卡概述 683
37.1.1 智能IC卡分類(lèi) 683
37.1.2 接觸式IC卡 684
37.1.3 非接觸式IC卡 684
37.2 智能IC卡芯片 684
37.2.1 IC卡芯片AT45DB041簡(jiǎn)介 684
37.2.2 AT45DB041D的內(nèi)存空間及其讀寫(xiě) 685
37.2.3 AT45DB041D的指令 686
37.3 單片機(jī)讀寫(xiě)智能IC卡實(shí)例 687
37.3.1 電路圖 687
37.3.2 SPI接口單片機(jī)AT89S8253簡(jiǎn)介 688
37.3.3 建立項(xiàng)目 689
37.3.4 IC卡芯片AT45DB041D讀寫(xiě)子函數(shù) 690
37.3.5 主程序 692
37.4 小結(jié) 694
第38章 單片機(jī)智能鋰電池充電管理 695
本章首先介紹了廣泛使用的鋰電池,以及鋰電池的充電要求。接著介紹了MAXIM公司的一款高性能的智能充電管理芯片MAX1898,包括MAX1898引腳功能及其充電工作原理。最后,本章通過(guò)一個(gè)具體的實(shí)例,介紹了如何使用51系列單片機(jī)控制MAX1898來(lái)實(shí)現(xiàn)單節(jié)鋰電池的智能充電過(guò)程。鋰電池及其充電器廣泛應(yīng)用于生活中,因此,熟練掌握本章內(nèi)容具有極大的實(shí)際意義。
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 單片機(jī)智能控制鋰電池充電實(shí)例 698
38.3.1 電路圖 699
38.3.2 智能充電器的功能 700
38.3.3 建立項(xiàng)目 700
38.3.4 程序設(shè)計(jì) 701
38.4 小結(jié) 702
原創(chuàng)經(jīng)典,中科院一線研發(fā)工程師傾力打造
深入介紹51單片機(jī)編程語(yǔ)言,透析單片機(jī)硬件編程操作
通過(guò)大量典型應(yīng)用案例,引領(lǐng)讀者迅速掌握51單片機(jī)開(kāi)發(fā)技術(shù)
請(qǐng)問(wèn)51單片機(jī)與51單片機(jī)之間的串口通信程序怎么寫(xiě)?
1、查詢方式:#include<reg51.h>main(){ unsigned char dat; TMOD=0x20; TH1=TL1=0xfd; SCON=0...
加減一加法器,通過(guò)P1口輸入一個(gè)八位無(wú)符號(hào)數(shù),P2口輸入另
#include<reg51.h>#define uchar unsigned charuchar num,time,limit=2;sbit led1=P1^0;sbit key1=P2...
全書(shū)分為5篇38章。首先介紹了51系列單片機(jī)的開(kāi)發(fā)概述及單片機(jī)的基本結(jié)構(gòu),接著介紹了單片機(jī)的匯編程序設(shè)計(jì)語(yǔ)言,然后介紹了單片機(jī)C51語(yǔ)言的程序設(shè)計(jì),隨后結(jié)合單片機(jī)的指令系統(tǒng)及各個(gè)功能部件詳細(xì)講解了單片機(jī)的編程操作,以及單片機(jī)硬件資源的仿真和程序調(diào)試。本書(shū)最后還給出了在各個(gè)領(lǐng)域中常用到的一些典型案例,供讀者在學(xué)習(xí)和工作中參考。
本書(shū)知識(shí)點(diǎn)覆蓋全面、結(jié)構(gòu)安排緊湊、講解詳細(xì)、實(shí)例豐富。對(duì)于51系列單片機(jī)的初學(xué)者,通過(guò)本書(shū)可以快速掌握單片機(jī)的程序設(shè)計(jì)。本書(shū)對(duì)具有一定開(kāi)發(fā)經(jīng)驗(yàn)的設(shè)計(jì)人員,也有很好的參考價(jià)值。
一般機(jī)電專(zhuān)業(yè)都有開(kāi)通單片機(jī)的課程,由于單片機(jī)的廣泛應(yīng)用,我的電子行業(yè)的剛剛起步,人才的需求相當(dāng)?shù)膮T乏,一般從事單片機(jī)的編程與開(kāi)發(fā),
《單片機(jī)的原理與應(yīng)用》 課程的開(kāi)通主要是相關(guān)的指令的介紹與如何的使用,調(diào)用子程序等,加上實(shí)習(xí)課,基本能夠更好的掌握。
開(kāi)通課程的高校:北京理工大學(xué) 、 閩南理工學(xué)院2100433B
格式:pdf
大?。?span id="fuhar8u" class="single-tag-height">11KB
頁(yè)數(shù): 4頁(yè)
評(píng)分: 4.6
51 單片機(jī)與串口通信代碼
2011年 04月 22 日 17:18 本站整理 作者:佚名 用戶評(píng)論( 0)
關(guān)鍵字: 串口通信 (35)
串口調(diào)試
1. 發(fā)送:向總線上發(fā)命令
2. 接收:從總線接收命令,并分析是地址還是數(shù)據(jù)。
3. 定時(shí)發(fā)送:從內(nèi)存中取數(shù)并向主機(jī)發(fā)送 .
經(jīng)過(guò)調(diào)試,以上功能基本實(shí)現(xiàn),目前可以通過(guò)上位機(jī)對(duì)單片機(jī)進(jìn)行實(shí)時(shí)控制。
程序如下:
// 這是一個(gè)單片機(jī) C51串口接收(中斷)和發(fā)送例程,可以用來(lái)測(cè)試 51單片機(jī)的中斷接收
// 和查詢發(fā)送,另外我覺(jué)得發(fā)送沒(méi)有必要用中斷,因?yàn)槌绦虻拈_(kāi)銷(xiāo)是一樣的
# i nclude
格式:pdf
大?。?span id="bib7z5s" class="single-tag-height">11KB
頁(yè)數(shù): 22頁(yè)
評(píng)分: 4.4
基于 51單片機(jī)的電子時(shí)鐘設(shè)計(jì) 摘要 本電子時(shí)鐘以 STC89C52單片機(jī)作為主控芯片,采用 DS12C887時(shí)鐘芯片, 使用 1602液晶作為顯示輸出。該時(shí)鐘走時(shí)精確,具有鬧鐘設(shè)置,以及可同時(shí)顯 示時(shí)間、日期等多種功能。本文將詳細(xì)介紹該電子時(shí)鐘涉及到的一些基本原理, 從硬件和軟件兩方面進(jìn)行分析。 【關(guān)鍵詞】 STC89C52單片機(jī) DS12C887時(shí)鐘芯片 1602液晶 蜂鳴器 目 錄 一、緒論?????????????????????? 4 1.1 電子時(shí)鐘功能???????????????? 4 1.2 設(shè)計(jì)方案?????????????????? 4 二、硬件設(shè)計(jì)???????????????????? 4 2.1 51單片機(jī)部分設(shè)計(jì)???????????? 4 2.2 USB 供電電路設(shè)計(jì)???????????? 5 2.3 串行通信電路設(shè)計(jì)???????????? 6
本書(shū)以標(biāo)準(zhǔn)C語(yǔ)言和MCS-51單片機(jī)為基礎(chǔ),系統(tǒng)地介紹了51單片機(jī)C語(yǔ)言程序設(shè)計(jì)方法與應(yīng)用技術(shù)。本書(shū)在內(nèi)容上重點(diǎn)突出實(shí)用性和應(yīng)用性兩大特點(diǎn),不僅對(duì)硬件接口進(jìn)行了詳細(xì)的論述,而且對(duì)軟件的設(shè)計(jì)思想、程序流程圖以及C語(yǔ)言程序進(jìn)行了重點(diǎn)講解。本書(shū)從應(yīng)用性角度出發(fā),融合了作者多年從事項(xiàng)目開(kāi)發(fā)的大量實(shí)際案例,為幫助讀者理解,書(shū)中對(duì)案例程序代碼部分做了很詳細(xì)的注釋?zhuān)郧笸ㄟ^(guò)案例闡述基本問(wèn)題,著重培養(yǎng)和提高讀者的開(kāi)發(fā)能力。
本書(shū)所附光盤(pán)中包括了書(shū)中所有案例的程序源代碼,讀者略作修改目口可在工程中應(yīng)用。
本書(shū)可供從事51單片機(jī)應(yīng)用與產(chǎn)品開(kāi)發(fā)的技術(shù)人員學(xué)習(xí)使用,也可供高等院校電氣工程、電信工程、自動(dòng)化等專(zhuān)業(yè)的師生參考使用。
第1篇 單片機(jī)系統(tǒng)開(kāi)發(fā)基礎(chǔ)篇
第1章 51系列單片機(jī)開(kāi)發(fā)的基礎(chǔ)知識(shí)
第2章 單片機(jī)軟件開(kāi)發(fā)工具
第2篇 常用模塊設(shè)計(jì)案例篇
第3章 LED顯示模塊
第4章 液晶顯示模塊
第5章 D/A轉(zhuǎn)換與A/D轉(zhuǎn)換模塊
第6章 MCS-51單片機(jī)與鍵盤(pán)的接口
第7章 串行接口模塊
第3篇 綜合應(yīng)用設(shè)計(jì)案例篇
第8章 單相交流多用表設(shè)計(jì)實(shí)例
第9章 程控直流電壓電流表設(shè)計(jì)實(shí)例
第10章 基于TLC1543的A/D轉(zhuǎn)換及數(shù)顯實(shí)例
第11章 步進(jìn)電機(jī)控制設(shè)計(jì)實(shí)例
第12章 基于DS18B20的數(shù)字溫度計(jì)設(shè)計(jì)
第13章 基于DDS的信號(hào)發(fā)生器的設(shè)計(jì)實(shí)例
第14章 可控整流直流電源設(shè)計(jì)實(shí)例
第15章 直流斬波電源的設(shè)計(jì)實(shí)例
第16章 LCR數(shù)字電橋設(shè)計(jì)實(shí)例
第17章 智能斷路器設(shè)計(jì)實(shí)例
第18章 單片機(jī)實(shí)現(xiàn)485總線現(xiàn)場(chǎng)監(jiān)測(cè)系統(tǒng)
第19章 基于ST7920芯片的液晶顯示設(shè)計(jì)
第20章 基于CPLD的等精度數(shù)字頻率計(jì)設(shè)計(jì)
附錄MCS-51系列指令表
參考文獻(xiàn) 2100433B
第1章c51單片機(jī)的組成及結(jié)構(gòu)1
1.1c51單片機(jī)的內(nèi)部結(jié)構(gòu)1
1.2c51單片機(jī)的cpu結(jié)構(gòu)3
1.2.1運(yùn)算器3
1.2.2布爾處理機(jī)4
1.2.3控制部件及振蕩器4
1.3c51單片機(jī)的存儲(chǔ)器空間5
1.3.1存儲(chǔ)器的基本知識(shí)5
1.3.2c51單片機(jī)的存儲(chǔ)器6
1.3.2.1數(shù)據(jù)存儲(chǔ)器7
1.3.2.2程序存儲(chǔ)器12
1.4c51單片機(jī)的并行輸入/輸出端口12
1.4.1p0口13
1.4.2p1口14
1.4.3p2口15
1.4.4p3口15
1.4.5四個(gè)并行口使用的注意事項(xiàng)16
1.5c51單片機(jī)的引腳信號(hào)和cpu時(shí)序16
1.5.1c51單片機(jī)引腳功能說(shuō)明17
1.5.2復(fù)位電路18
1.5.3cpu時(shí)序20
1.6c51單片機(jī)的工作方式22
1.6.1復(fù)位方式22
1.6.2程序執(zhí)行方式22
1.6.3掉電保護(hù)方式22
1.6.4c51單片機(jī)的低功耗方式23
習(xí)題和思考題23
第2章c51單片機(jī)的指令系統(tǒng)24
2.1c51單片機(jī)的指令系統(tǒng)概述24
2.2c51單片機(jī)的尋址方式26
2.2.1立即尋址27
2.2.2寄存器尋址27
2.2.3寄存器間接尋址27
2.2.4直接尋址28
2.2.5變址尋址28
2.2.6相對(duì)尋址29
2.2.7位尋址29
2.2.8尋址方式總匯29
2.3c51單片機(jī)的指令說(shuō)明30
2.3.1數(shù)據(jù)傳送類(lèi)指令30
2.3.2算術(shù)運(yùn)算類(lèi)指令35
2.3.3邏輯運(yùn)算類(lèi)指令39
2.3.4控制轉(zhuǎn)移類(lèi)指令42
2.3.5位操作指令48
2.4c51單片機(jī)的偽指令51
2.4.1程序起始地址偽指令org51
2.4.2結(jié)束匯編偽指令end51
2.4.3定義字節(jié)偽指令db51
2.4.4定義字偽指令dw52
2.4.5預(yù)留存儲(chǔ)空間偽指令ds52
2.4.6等值偽指令equ52
2.4.7位地址定義偽指令bit53
2.5c51單片機(jī)的程序設(shè)計(jì)舉例53
2.5.1簡(jiǎn)單程序設(shè)計(jì)53
2.5.2分支程序設(shè)計(jì)53
2.5.3循環(huán)程序設(shè)計(jì)55
2.5.4數(shù)據(jù)轉(zhuǎn)換程序設(shè)計(jì)55
2.5.5查表程序設(shè)計(jì)56
習(xí)題和思考題56
第3章單片機(jī)的c程序設(shè)計(jì)58
3.1單片機(jī)程序設(shè)計(jì)概論58
3.1.1單片機(jī)的c語(yǔ)言編程特點(diǎn)59
3.1.2c51單片機(jī)的c語(yǔ)言編譯器59
3.1.3c51單片機(jī)的程序結(jié)構(gòu)59
3.2c51的數(shù)據(jù)與運(yùn)算60
3.2.1數(shù)據(jù)與數(shù)據(jù)類(lèi)型60
3.2.2常量與變量61
3.2.3c51數(shù)據(jù)的存儲(chǔ)類(lèi)型與存儲(chǔ)器結(jié)構(gòu)63
3.2.4特殊功能寄存器(sfr)及其定義65
3.2.5并行接口及其定義67
3.2.6位變量(bit)及其定義68
3.2.7c51運(yùn)算符、表達(dá)式及其規(guī)則69
3.3c51流程控制語(yǔ)句76
3.3.1c語(yǔ)言程序的基本結(jié)構(gòu)及其流程圖76
3.3.2選擇語(yǔ)句79
3.3.3循環(huán)語(yǔ)句82
3.4c51構(gòu)造數(shù)據(jù)類(lèi)型87
3.4.1數(shù)組87
3.4.2指針94
3.4.3結(jié)構(gòu)103
3.4.4共用體110
3.4.5枚舉111
3.5函數(shù)113
3.5.1函數(shù)的分類(lèi)114
3.5.2函數(shù)的定義115
3.5.3函數(shù)的參數(shù)和函數(shù)值117
3.5.4函數(shù)的調(diào)用118
3.5.5數(shù)組/指針作為函數(shù)的參數(shù)126
3.5.6局部變量和全局變量132
3.6c51的庫(kù)函數(shù)133
3.7編程舉例136
習(xí)題和思考題137
第4章c51單片機(jī)的內(nèi)部資源139
4.1輸入/輸出控制方式139
4.1.1程序控制方式140
4.1.2中斷控制方式141
4.2中斷系統(tǒng)143
4.2.1中斷的基本概念143
4.2.2中斷源143
4.2.3中斷入口地址144
4.2.4中斷控制145
4.2.5中斷響應(yīng)147
4.2.6中斷的程序設(shè)計(jì)150
4.3定時(shí)/計(jì)數(shù)器152
4.3.1定時(shí)/計(jì)數(shù)器的控制寄存器153
4.3.2定時(shí)/計(jì)數(shù)器的工作方式154
4.3.3定時(shí)/計(jì)數(shù)器的應(yīng)用實(shí)例160
4.4串行通信接口163
4.4.1串行通信基礎(chǔ)知識(shí)163
4.4.2c51串行接口166
習(xí)題和思考題175
第5章c51單片機(jī)的系統(tǒng)擴(kuò)展176
5.1系統(tǒng)擴(kuò)展概述176
5.1.1c51單片機(jī)的最小系統(tǒng)176
5.1.2系統(tǒng)擴(kuò)展及結(jié)構(gòu)177
5.1.3c51單片機(jī)存儲(chǔ)器擴(kuò)展與編址技術(shù)179
5.2程序存儲(chǔ)器的擴(kuò)展180
5.2.1擴(kuò)展eprom180
5.2.2擴(kuò)展(e2prom)183
5.3數(shù)據(jù)存儲(chǔ)器的擴(kuò)展183
5.3.1單片數(shù)據(jù)存儲(chǔ)器擴(kuò)展184
5.3.2線選法多片數(shù)據(jù)存儲(chǔ)器擴(kuò)展184
5.3.3譯碼法多片數(shù)據(jù)存儲(chǔ)器擴(kuò)展186
5.4可編程外圍并行接口8255a187
5.4.18255a的引腳功能和邏輯結(jié)構(gòu)187
5.4.28255a的工作方式及數(shù)據(jù)i/o操作189
5.4.38255a控制字及初始化190
5.4.48255a與c51單片機(jī)的接口192
5.5可編程外圍定時(shí)器8253193
5.5.18253的結(jié)構(gòu)和引腳193
5.5.28253的工作方式和控制字194
5.5.38253與c51單片機(jī)的接口195
5.6可編程并行接口芯片8155198
5.6.18155的引腳功能和邏輯結(jié)構(gòu)198
5.6.28155的工作原理199
5.6.38155的命令/狀態(tài)字200
5.6.48155的定時(shí)/計(jì)數(shù)器201
5.6.58155的輸入/輸出口203
5.6.68155與c51單片機(jī)的接口204
5.7i2c接口芯片at24c01205
5.7.1i2c總線特點(diǎn)206
5.7.2i2c總線工作原理206
5.7.3at24c01與c51的接口207
5.8spi接口芯片x5045212
5.8.1spi總線的組成212
5.8.2x5045與c51單片機(jī)的接口213
5.9單片機(jī)配置fpga218
5.9.1flex10k的工作狀態(tài)219
5.9.2flex10k器件的配置219
5.9.3主動(dòng)串行模式配置flex10k器件219
5.9.4基于c51的被動(dòng)串行配置flex10k器件220
習(xí)題和思考題222
第6章c51單片機(jī)的機(jī)間串行通信224
6.1點(diǎn)對(duì)點(diǎn)的串行異步通信224
6.1.1通信雙方的硬件連接224
6.1.2通信雙方的約定225
6.1.3點(diǎn)對(duì)點(diǎn)通信編程226
6.2多機(jī)通信228
6.2.1通信接口228
6.2.2通信協(xié)議229
6.2.3通信程序229
6.3pc和單片機(jī)之間的通信方法238
6.3.1mscomm控件238
6.3.2編程實(shí)現(xiàn)240
習(xí)題和思考題243
第7章c51單片機(jī)人機(jī)交互的c編程244
7.1鍵盤(pán)接口技術(shù)244
7.1.1獨(dú)立式鍵盤(pán)與工作原理244
7.1.2行列式鍵盤(pán)與工作原理246
7.1.3鍵盤(pán)掃描的控制程序248
7.2led數(shù)碼顯示技術(shù)250
7.2.1led顯示器的結(jié)構(gòu)與原理250
7.2.2led靜態(tài)顯示接口251
7.2.3led動(dòng)態(tài)掃描顯示接口252
7.3可編程鍵盤(pán)/顯示接口芯片8279254
7.3.18279引腳和內(nèi)部結(jié)構(gòu)254
7.3.28279的命令字和狀態(tài)字256
7.3.38279和c51單片機(jī)的接口259
7.4字符型lcd顯示模塊261
7.4.1字符型lcd的結(jié)構(gòu)和引腳261
7.4.2顯示板控制器的指令系統(tǒng)262
7.4.3lcd顯示板與單片機(jī)的接口和編程263
7.5點(diǎn)陣型lcd顯示模塊265
7.5.1hd61830的特點(diǎn)和引腳265
7.5.2hd61830指令集266
7.5.3與內(nèi)藏hd61830的液晶模塊的接口和編程269
習(xí)題和思考題271
第8章keilc51上機(jī)指南272
8.1keilc51軟件的安裝272
8.1.1系統(tǒng)需求272
8.1.2軟件安裝273
8.2keilc51工程的建立及設(shè)置274
8.2.1keil工程的建立274
8.2.2設(shè)置工程屬性278
8.3代碼編譯282
8.4程序調(diào)試282
8.4.1常用調(diào)試命令283
8.4.2在線匯編283
8.4.3斷點(diǎn)設(shè)置284
8.5keil程序調(diào)試窗口284
8.5.1存儲(chǔ)器窗口285
8.5.2觀察窗口286
8.5.3工程窗口寄存器頁(yè)286
8.5.4外圍接口286
8.6keil程序調(diào)試287
8.6.1片內(nèi)程序模擬287
8.6.2仿真試驗(yàn)板仿真288
8.6.3硬件連接調(diào)試288
習(xí)題和思考題289
第9章c51單片機(jī)系統(tǒng)綜合實(shí)例290
9.1外部存儲(chǔ)器綜合擴(kuò)展290
9.2系統(tǒng)中斷程序設(shè)計(jì)291
9.3定時(shí)/計(jì)數(shù)器程序設(shè)計(jì)292
9.4串口程序設(shè)計(jì)293
9.5外擴(kuò)并行i/o口的c語(yǔ)言編程294
9.6點(diǎn)陣型lcd中文顯示的c語(yǔ)言編程296
附錄c51單片機(jī)指令系統(tǒng)表300
參考文獻(xiàn)302