原創(chuàng)經(jīng)典,中科院一線研發(fā)工程師傾力打造

深入介紹51單片機(jī)編程語言,透析單片機(jī)硬件編程操作

通過大量典型應(yīng)用案例,引領(lǐng)讀者迅速掌握51單片機(jī)開發(fā)技術(shù)

51單片機(jī)開發(fā)與應(yīng)用技術(shù)詳解造價(jià)信息

市場價(jià) 信息價(jià) 詢價(jià)
材料名稱 規(guī)格/型號 市場價(jià)
(除稅)
工程建議價(jià)
(除稅)
行情 品牌 單位 稅率 供應(yīng)商 報(bào)價(jià)日期
宣傳欄標(biāo)識 規(guī)格:2.28×2.2m做法:1、1.5mm鍍鋅板刨槽折彎成型,面烤淺香檳色金屬漆2、6mm鋼化玻璃推拉窗口3、文絲網(wǎng)絲印 查看價(jià)格 查看價(jià)格

個(gè) 13% 廣州市提莫科技有限公司
宣傳 400×35 查看價(jià)格 查看價(jià)格

個(gè) 13% 廣州盛靈廣告有限公司
宣傳 80×120 查看價(jià)格 查看價(jià)格

個(gè) 13% 廣州盛靈廣告有限公司
宣傳展板 規(guī)格:根據(jù)實(shí)際尺寸定制,說明:25方鋼結(jié)構(gòu)+噴繪布+安裝+包邊, 查看價(jià)格 查看價(jià)格

中國建筑

m2 13% 廣州市御鑫龍廣告有限公司
宣傳 加厚鋁塑板2000*1200*4,文字內(nèi)容:高精度噴繪畫面(雙面),板面反光膜等級:三級 查看價(jià)格 查看價(jià)格

13% 四川互悅交通工程有限公司
宣傳 2400*5100,北面不銹鋼板 查看價(jià)格 查看價(jià)格

個(gè) 13% 鄭州雅剛廣告有限公司
宣傳 2400*5100,北面不銹鋼板 查看價(jià)格 查看價(jià)格

個(gè) 13% 河南麗軒標(biāo)識標(biāo)牌有限公司
宣傳 2400*5100,北面不銹鋼板 查看價(jià)格 查看價(jià)格

個(gè) 13% 鄭州金億帆廣告有限公司
材料名稱 規(guī)格/型號 除稅
信息價(jià)
含稅
信息價(jià)
行情 品牌 單位 稅率 地區(qū)/時(shí)間
夯實(shí)機(jī)(電機(jī)) 夯擊能力20-62Nm 查看價(jià)格 查看價(jià)格

臺班 廣州市2006年4季度信息價(jià)
夯實(shí)機(jī)(電機(jī)) 夯擊能力20-62Nm 查看價(jià)格 查看價(jià)格

臺班 廣州市2006年1季度信息價(jià)
夯實(shí)機(jī)(電機(jī)) 夯擊能力20-62Nm 查看價(jià)格 查看價(jià)格

臺班 廣州市2005年3季度信息價(jià)
夯實(shí)機(jī)(電機(jī)) 夯擊能力20-62Nm 查看價(jià)格 查看價(jià)格

臺班 廣州市2006年3季度信息價(jià)
夯實(shí)機(jī)(電機(jī)) 夯擊能力20-62Nm 查看價(jià)格 查看價(jià)格

臺班 廣州市2006年2季度信息價(jià)
夯實(shí)機(jī)(電機(jī)) 夯擊能力20-62Nm 查看價(jià)格 查看價(jià)格

臺班 廣州市2005年4季度信息價(jià)
夯實(shí)機(jī)(電機(jī)) 夯擊能力20-62Nm 查看價(jià)格 查看價(jià)格

臺班 廣州市2005年2季度信息價(jià)
夯實(shí)機(jī)(電機(jī)) 夯擊能力20-62Nm 查看價(jià)格 查看價(jià)格

臺班 廣州市2005年1季度信息價(jià)
材料名稱 規(guī)格/需求量 報(bào)價(jià)數(shù) 最新報(bào)價(jià)
(元)
供應(yīng)商 報(bào)價(jià)地區(qū) 最新報(bào)價(jià)時(shí)間
禁毒宣傳語 中文字,PVC烤漆,35cm高,強(qiáng)力粘合劑安裝|16個(gè) 1 查看價(jià)格 人臉識別單片機(jī) 人臉識別單片機(jī)|1個(gè) 1 查看價(jià)格 惠州市金力工程技術(shù)有限公司 廣東   2022-11-21
禁煙宣傳橫幅宣傳語 1×10m|4根 3 查看價(jià)格 東莞市松立廣告有限公司 全國   2019-08-12
單片機(jī)應(yīng)用實(shí)訓(xùn)考核裝置 配置詳附件二|20套 2 查看價(jià)格 濟(jì)南智星教育設(shè)備有限公司 貴州  貴陽市 2016-11-02
人臉識別單片機(jī) -|1套 1 查看價(jià)格 國科城市大腦(北京)科技有限公司 廣東   2021-10-20
沖孔鋼板加噴宣傳語 1.5厚|50m2 3 查看價(jià)格 夕象文化傳播(廣州)有限公司 全國   2021-04-14
宣傳語文字 0.6m×1m|4個(gè) 3 查看價(jià)格 東莞市品藝廣告有限公司 全國   2020-04-16
家風(fēng)家訓(xùn)宣傳語 高0.8米×寬0.4米×0.1米厚|21套 1 查看價(jià)格 東莞市博詩廣告標(biāo)識設(shè)計(jì)有限公司 廣東   2022-07-20

全書分為5篇38章。首先介紹了51系列單片機(jī)的開發(fā)概述及單片機(jī)的基本結(jié)構(gòu),接著介紹了單片機(jī)的匯編程序設(shè)計(jì)語言,然后介紹了單片機(jī)C51語言的程序設(shè)計(jì),隨后結(jié)合單片機(jī)的指令系統(tǒng)及各個(gè)功能部件詳細(xì)講解了單片機(jī)的編程操作,以及單片機(jī)硬件資源的仿真和程序調(diào)試。本書最后還給出了在各個(gè)領(lǐng)域中常用到的一些典型案例,供讀者在學(xué)習(xí)和工作中參考。

本書知識點(diǎn)覆蓋全面、結(jié)構(gòu)安排緊湊、講解詳細(xì)、實(shí)例豐富。對于51系列單片機(jī)的初學(xué)者,通過本書可以快速掌握單片機(jī)的程序設(shè)計(jì)。本書對具有一定開發(fā)經(jīng)驗(yàn)的設(shè)計(jì)人員,也有很好的參考價(jià)值。

? 單片機(jī)的初學(xué)者

? 電子設(shè)計(jì)愛好者

? 電子工程師

? 系統(tǒng)開發(fā)人員

? 大學(xué)、大專等電子相關(guān)專業(yè)的學(xué)生及教師

編 者

51單片機(jī)開發(fā)與應(yīng)用技術(shù)詳解宣傳語常見問題

第一篇 51系列單片機(jī)基礎(chǔ)

第1章 51系列單片機(jī)概述 35

本章主要介紹了單片機(jī)的發(fā)展歷程、51系列單片機(jī)的簡介和51系列單片機(jī)的應(yīng)用領(lǐng)域;接著介紹了一下實(shí)際常用的一些主流半導(dǎo)體廠商的單片機(jī)型號,以供讀者參考;最后,詳細(xì)介紹了開發(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ī)簡介 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ī)開發(fā)概述 40

1.4.1 分析測控系統(tǒng) 41

1.4.2 單片機(jī)選型 41

1.4.3 硬件資源分配 41

1.4.4 程序設(shè)計(jì) 42

1.4.5 仿真測試 42

1.4.6 實(shí)際硬件測試 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、存儲器的結(jié)構(gòu)、單片機(jī)的復(fù)位、單片機(jī)工作的時(shí)鐘和時(shí)序、并行I/O端口的結(jié)構(gòu)和性能,以及單片機(jī)系統(tǒng)的掉電保護(hù)和低功耗設(shè)計(jì)。最后,還給出了一個(gè)典型的單片機(jī)最小系統(tǒng)。本章在講述的時(shí)候,不僅對基本的8051進(jìn)行了介紹,還介紹了目前新推出的高性能單片機(jī)AT89S52。這樣讀者在學(xué)習(xí)基礎(chǔ)知識的同時(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)的類型 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 專用寄存器 48

2.4 存儲器結(jié)構(gòu) 50

2.4.1 程序存儲器及其擴(kuò)展 50

2.4.2 數(shù)據(jù)存儲器及其擴(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 訪問外部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開發(fā)工具簡介 70

本章詳細(xì)介紹了Keil μVision3的集成開發(fā)環(huán)境μVision3,包括安裝過程、項(xiàng)目管理窗口、菜單欄、工具欄,以及μVision3的管理配置和各種常用的窗口。μVision3是一個(gè)十分優(yōu)秀的單片機(jī)開發(fā)軟件,應(yīng)用得十分廣泛,熟練掌握μVision3集成開發(fā)環(huán)境的使用是單片機(jī)設(shè)計(jì)的基礎(chǔ)。

3.1 Keil μVision3簡介 70

3.2 μVision3安裝 70

3.3 μVision3集成開發(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

第二篇 編程篇——匯編語言

第4章 匯編語言程序設(shè)計(jì) 85

本章主要講述了匯編語言的偽指令、匯編語言的程序格式及源程序的編譯。本章最后還通過一個(gè)具體的實(shí)例,介紹了如何在Keil μVision3集成開發(fā)環(huán)境中進(jìn)行單片機(jī)的匯編程序設(shè)計(jì)及仿真。匯編語言是最早應(yīng)用于單片機(jī)開發(fā)的程序語言。相比其他程序設(shè)計(jì)語言,匯編語言指令的執(zhí)行速度快、代碼短小精悍,且具有確定的指令執(zhí)行周期。熟練掌握本章內(nèi)容是后續(xù)匯編語言程序?qū)W習(xí)的基礎(chǔ)。

4.1 匯編語言程序概述 85

4.1.1 匯編語言簡介 85

4.1.2 匯編語言程序設(shè)計(jì)步驟 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 μVision3中運(yùn)行匯編語言實(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章 匯編語言程序結(jié)構(gòu) 94

本章主要介紹了利用匯編語言進(jìn)行單片機(jī)設(shè)計(jì)的各種程序結(jié)構(gòu),包括順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和子程序結(jié)構(gòu)。本章還介紹了兩類比較常用的程序設(shè)計(jì)類型,即查表程序和運(yùn)算類的程序。對于比較復(fù)雜的問題可以根據(jù)設(shè)計(jì)的要求,選用不同的程序結(jié)構(gòu)來進(jìn)行設(shè)計(jì)。因此,熟練掌握本章內(nèi)容,對讀者以后的設(shè)計(jì)工作會很有幫助。

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)算類程序 103

5.6.1 8位帶符號整數(shù)的乘法子程序 103

5.6.2 8位帶符號整數(shù)的除法子程序 104

5.7 小結(jié) 106

第三篇 編程篇——C51

第6章 單片機(jī)C語言程序設(shè)計(jì)基礎(chǔ) 107

單片機(jī)C語言是現(xiàn)在單片機(jī)系統(tǒng)設(shè)計(jì)所廣泛采用的程序語言。本章首先介紹了單片機(jī)C語言(C51語言)的特點(diǎn),然后分別介紹了C51語言的標(biāo)識符、關(guān)鍵字、數(shù)據(jù)類型、運(yùn)算符和表達(dá)式等,并對每一個(gè)知識點(diǎn)都提供了完整詳細(xì)的實(shí)例分析。本章是單片機(jī)C51語言的基礎(chǔ),熟練掌握本章知識,對以后章節(jié)的學(xué)習(xí)會有很大的幫助。

6.1 單片機(jī)C語言概述 107

6.1.1 單片機(jī)C語言和匯編語言對比 107

6.1.2 C51語言的主要特點(diǎn) 107

6.2 單片機(jī)C語言在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)識符與關(guān)鍵字 111

6.3.1 標(biāo)識符 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 浮點(diǎn)型數(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 運(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)先級和結(jié)合性 133

6.8 表達(dá)式 134

6.8.1 算術(shù)表達(dá)式 134

6.8.2 賦值表達(dá)式 135

6.8.3 逗號表達(dá)式 136

6.8.4 關(guān)系和邏輯表達(dá)式 137

6.9 小結(jié) 138

第7章 數(shù)組 139

本章首先介紹了C51語言中的數(shù)組的使用,主要包括數(shù)組類型的說明、數(shù)組元素的表示及初始化賦值。接著,本章分別對一維數(shù)組、二維數(shù)組及多維數(shù)組的使用進(jìn)行了詳細(xì)的講解。數(shù)組是重要數(shù)據(jù)結(jié)構(gòu),廣泛應(yīng)用于C51語言的程序設(shè)計(jì)中。因此,熟練掌握本章內(nèi)容是學(xué)習(xí)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 一維字符串?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語言中指針的使用,主要包括指針的概念、指針變量的聲明和賦值。接著,本章詳細(xì)講解了指針變量的引用及運(yùn)算規(guī)則。最后,本章還對幾種特殊的指針進(jìn)行了詳細(xì)的介紹,主要包括數(shù)組指針、字符指針及指針數(shù)組。指針的概念來源于C語言,在程序設(shè)計(jì)中靈活使用指針可以優(yōu)化程序設(shè)計(jì)。因此,熟練掌握本章內(nèi)容是學(xué)習(xí)C51語言的基礎(chǔ),同時(shí)對讀者以后的C51語言程序設(shè)計(jì)工作會大有幫助。

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語言中的結(jié)構(gòu)的使用,主要包括結(jié)構(gòu)的定義、結(jié)構(gòu)變量的定義和賦值。接著,本章詳細(xì)講解了結(jié)構(gòu)數(shù)組及結(jié)構(gòu)指針的使用。最后,本章還對幾種特殊的指針進(jìn)行了詳細(xì)的介紹,主要包括嵌套結(jié)構(gòu)和位結(jié)構(gòu)。結(jié)構(gòu)是C51語言中重要的數(shù)據(jù)類型,其和C語言中的結(jié)構(gòu)非常類似。熟練掌握本章內(nèi)容是學(xué)習(xí)C51語言的基礎(chǔ),同時(shí)對讀者以后的C51程序設(shè)計(jì)工作會大有幫助。

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 直接說明結(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ù)類型的有效擴(kuò)充。靈活運(yùn)用這些特殊數(shù)據(jù)類型,可以方便單片機(jī)的程序設(shè)計(jì)。因此,熟練掌握本章內(nèi)容是單片機(jī)程序設(shè)計(jì)的基礎(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

本章詳細(xì)介紹了C51語言中函數(shù)的使用,包括函數(shù)的定義、形參和實(shí)參、函數(shù)的返回值、函數(shù)的調(diào)用、函數(shù)及其變量的作用域。本章還結(jié)合單片機(jī)程序設(shè)計(jì)的特點(diǎn),介紹了C51程序中的main函數(shù)。函數(shù)是C51語言中的重要概念,靈活運(yùn)用函數(shù)可以實(shí)現(xiàn)程序的模塊化設(shè)計(jì)。因此,熟練掌握本章內(nèi)容,是C51語言程序設(shè)計(jì)的基礎(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 形參和實(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語言的常用庫函數(shù)詳解 195

本章詳細(xì)講解了C51語言中常用的庫函數(shù),主要包括字符函數(shù)、字符串函數(shù)、I/O函數(shù)、數(shù)學(xué)函數(shù)、標(biāo)準(zhǔn)函數(shù)、內(nèi)部函數(shù)、絕對地址訪問函數(shù)、變量參數(shù)表函數(shù)、全程跳轉(zhuǎn)函數(shù)及偏移量函數(shù)。這些庫函數(shù)涵蓋了常見的字符、字符串、數(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 小寫英文字母檢查函數(shù) 199

12.1.9 大寫英文字母檢查函數(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 大寫字符轉(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 獲取字符串個(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 絕對值函數(shù) 231

12.4.2 指數(shù)及對數(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 位測試函數(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 計(jì)算結(jié)構(gòu)體成員的偏移量函數(shù) 249

12.11 小結(jié) 250

第13章 C51語句和流程 251

本章詳細(xì)講述了單片機(jī)C51語言中的各種語句結(jié)構(gòu),包括說明語句、表達(dá)式語句、復(fù)合語句、循環(huán)語句、條件語句、開關(guān)語句、跳轉(zhuǎn)語句、函數(shù)調(diào)用語句、空語句和返回語句。這些語句是C51語言程序的重要組成部分。靈活利用這些語句,可以實(shí)現(xiàn)不同的程序流程控制結(jié)構(gòu),如順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)等,以達(dá)到簡化程序的目的。熟練掌握本章內(nèi)容是進(jìn)行C51語言程序設(shè)計(jì)的基礎(chǔ)。

13.1 說明語句 251

13.2 表達(dá)式語句 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

本章詳細(xì)介紹了C51語言所支持的各種預(yù)處理命令,包括宏定義指令、文件包含指令、條件編譯指令和其他一些編譯指令。然后還介紹了C51語言編譯器的一些控制指令,這需要和具體的編譯器相聯(lián)系。最后還介紹了一下C51語言的用戶配置文件。熟練掌握本章內(nèi)容,對讀者以后的單片機(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語言編譯器的控制指令 273

14.6.1 源文件控制類 273

14.6.2 目標(biāo)文件(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

本章詳細(xì)講述了C51語言的存儲器結(jié)構(gòu)、存儲類型、存儲模式及存儲器指針等,后面還介紹了動態(tài)內(nèi)存分配。數(shù)據(jù)的存儲模式是單片機(jī)系統(tǒng)特有的概念,這里的內(nèi)容涉及單片機(jī)的硬件資源比較多,讀者應(yīng)該對照著單片機(jī)的介紹來進(jìn)行學(xué)習(xí),這樣可以加深理解。

15.1 存儲器結(jié)構(gòu) 281

15.1.1 51系列單片機(jī)的存儲區(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 擴(kuò)展數(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 指針存儲類型與指針?biāo)赶虻臄?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系列單片機(jī)編程指南篇

第16章 51系列單片機(jī)的指令系統(tǒng) 290

本章詳細(xì)講解了51系列單片機(jī)的指令系統(tǒng),包括指令的7種尋址方式,以及51系列單片機(jī)指令系統(tǒng)中的各類指令的書寫格式、功能、使用方法及注意事項(xiàng)等。對于每一條指令,均給出了完整詳細(xì)的實(shí)例來講解如何在程序設(shè)計(jì)中應(yīng)用。這一章的內(nèi)容是讀者學(xué)習(xí)使用單片機(jī)的基礎(chǔ)必備知識,深刻地理解單片機(jī)指令系統(tǒng),可以為接下來的學(xué)習(xí)打下良好的基礎(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ù)運(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 無條件轉(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ì)方法;本章還對52子系列的單片機(jī)定時(shí)器/計(jì)數(shù)器T2也進(jìn)行了詳細(xì)的介紹。定時(shí)器/計(jì)數(shù)器是單片機(jī)的一個(gè)非常有用的功能,熟練掌握本章內(nèi)容,對讀者以后的單片機(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及其程序訪問 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ī)的中斷類型及中斷的各種控制標(biāo)準(zhǔn)位;接著講述了51系列單片機(jī)對中斷的處理過程,并通過實(shí)例詳細(xì)講述了各種中斷源的編程方式;最后還介紹了外部中斷源的擴(kuò)展方式及其程序設(shè)計(jì)。中斷是51系列單片機(jī)重要的系統(tǒng)資源,合理使用中斷系統(tǒng),可以減輕CPU的負(fù)擔(dān),簡化程序設(shè)計(jì),實(shí)現(xiàn)對外部信號的實(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 中斷需要解決的問題 369

18.2 51系列單片機(jī)的中斷類型 371

18.2.1 外部中斷源 371

18.2.2 定時(shí)中斷源 371

18.2.3 串行中斷源 371

18.3 51系列單片機(jī)的中斷系統(tǒng) 372

18.3.1 中斷請求標(biāo)志及其訪問 372

18.3.2 中斷允許標(biāo)志及其訪問 373

18.3.3 中斷優(yōu)先級標(biāo)志及其訪問 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è)計(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 串行通信簡介 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硬件平臺的RTX-51實(shí)時(shí)多任務(wù)操作系統(tǒng)。RTX-51的程序不同于普通的單片機(jī)程序,這里對RTX-51的任務(wù)調(diào)度、系統(tǒng)函數(shù)、任務(wù)管理及RTX-51 Tiny的配置進(jìn)行了詳細(xì)的闡述。熟練掌握和運(yùn)用本章內(nèi)容,可以簡化復(fù)雜的多任務(wù)單片機(jī)系統(tǒng)設(shè)計(jì)。

20.1 RTX-51實(shí)時(shí)多任務(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 清除信號標(biāo)志函數(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 當(dāng)前任務(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的注意事項(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集成開發(fā)環(huán)境中,對單片機(jī)各種常見的片上資源的仿真操作。主要包括并行I/O端口、定時(shí)器/計(jì)數(shù)器、串行接口、中斷、看門狗定時(shí)器、A/D、D/A、寄存器及低功耗仿真。單片機(jī)的程序設(shè)計(jì)主要是對各種片上資源進(jìn)行操作,Keil μVision3集成開發(fā)環(huán)境對各種片上資源均提供了完善的仿真支持。在程序設(shè)計(jì)時(shí),通過仿真操作可以完美地模擬程序的執(zhí)行情況,便于及時(shí)發(fā)現(xiàn)問題。這樣便大大提高了程序開發(fā)的可靠性,加速了程序的開發(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 看門狗定時(shí)器的仿真 448

21.6.1 看門狗定時(shí)器的仿真界面 448

21.6.2 看門狗定時(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集成開發(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 存儲器命令 469

22.6 小結(jié) 471

第五篇 典型案例篇

第23章 鍵盤程序設(shè)計(jì) 472

本章詳細(xì)講述了鍵盤設(shè)計(jì)需要注意的一些問題,然后介紹了獨(dú)立式按鍵和矩陣式鍵盤的工作方式。其中著重講了矩陣式鍵盤的掃描法、線反轉(zhuǎn)法和中斷法的工作原理及程序設(shè)計(jì)。最后通過一個(gè)完整電路,實(shí)現(xiàn)了矩陣式鍵盤的掃描查詢方式在程序中的應(yīng)用。在實(shí)例中,還通過仿真分析了整個(gè)程序流程的正確性。矩陣式鍵盤應(yīng)用十分廣泛,熟練掌握它的使用是學(xué)習(xí)單片機(jī)應(yīng)用系統(tǒng)的基礎(chǔ)。

23.1 鍵盤接口概述 472

23.1.1 按鍵編碼 472

23.1.2 輸入的可靠性 472

23.1.3 程序檢測及響應(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矩陣式鍵盤及其編程接口 475

23.3.1 掃描法及其程序設(shè)計(jì) 475

23.3.2 線反轉(zhuǎn)法及其程序設(shè)計(jì) 477

23.3.3 中斷法及其程序設(shè)計(jì) 479

23.4 矩陣式鍵盤的接口實(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段共陽極LED數(shù)碼管和7段共陰極LED數(shù)碼管,然后介紹了LED的靜態(tài)顯示技術(shù)及其應(yīng)用實(shí)例。本章還重點(diǎn)講解了LED數(shù)碼管的動態(tài)顯示技術(shù),包括靜態(tài)驅(qū)動、動態(tài)驅(qū)動和LED驅(qū)動器驅(qū)動。最后通過一個(gè)具體的實(shí)例講解了使用LED驅(qū)動器控制多個(gè)LED的顯示。LED數(shù)碼管顯示是單片機(jī)系統(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 單個(gè)LED驅(qū)動實(shí)例 488

24.2.1 電路圖 488

24.2.2 程序設(shè)計(jì) 490

24.3 多個(gè)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 多個(gè)LED驅(qū)動實(shí)例 503

24.4.1 LED驅(qū)動器電路圖 503

24.4.2 程序設(shè)計(jì) 504

24.5 小結(jié) 508

第25章 LCD液晶顯示模塊 509

本章詳細(xì)介紹了液晶和液晶顯示模塊的結(jié)構(gòu)及原理,并對常用的LCD驅(qū)動控制器的指令和功能進(jìn)行了介紹,其中給出了用于圖形點(diǎn)陣式液晶讀寫的詳細(xì)子函數(shù)。最后利用一款采用這個(gè)驅(qū)動器的液晶顯示模塊,來介紹如何控制其顯示漢字和圖形等。近年來,液晶顯示模塊應(yīng)用越來越廣泛。熟練掌握本章內(nèi)容對讀者以后的設(shè)計(jì)很有幫助。

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)點(diǎn) 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擴(kuò)充指令集 518

25.2.5 ST7920的操作方式 520

25.2.6 圖形點(diǎn)陣式液晶顯示模塊 521

25.2.7 圖形點(diǎn)陣式液晶讀寫子函數(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)換器的基本知識,包括D/A轉(zhuǎn)換器的原理、D/A轉(zhuǎn)換器的類型及技術(shù)參數(shù),然后介紹了一個(gè)高速易使用的D/A轉(zhuǎn)換芯片AD558。最后通過一個(gè)具體的實(shí)例,介紹了如何采用AD558在光通信領(lǐng)域中完成對光信號的相位精確調(diào)制。D/A轉(zhuǎn)換器在測控領(lǐng)域有著廣泛的應(yīng)用,擴(kuò)展了8051單片機(jī)處理模擬信號的能力,是現(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)換器的類型 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)制電路實(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 無調(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)。可編程邏輯器件一般采用VHDL語言進(jìn)行設(shè)計(jì),本章對VHDL語言進(jìn)行了簡要的介紹。本章對常用的CPLD芯片EPM7128SLC84進(jìn)行展開講解,提供了Altera公司的CPLD下載電路。本章實(shí)例部分,使用CPLD配合AT89S52來擴(kuò)展了8051單片機(jī)的并行I/O端口。單片機(jī)和可編程邏輯器件內(nèi)部結(jié)構(gòu)不同,各有優(yōu)勢,實(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 硬件描述語言簡述 552

27.2.1 硬件描述語言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ī)讀寫I2C總線 568

本章詳細(xì)介紹了I2C串行總線的工作原理、結(jié)構(gòu)及尋址方式等,并對I2C串行總線的數(shù)據(jù)傳輸進(jìn)行了詳細(xì)的介紹。本章還給出了采用普通的51系列單片機(jī)模擬讀寫I2C串行總線的匯編語言和C語言的代碼。最后通過一個(gè)具體的實(shí)例,講解了單片機(jī)讀寫I2C總線外圍器件的電路設(shè)計(jì)及程序設(shè)計(jì)。I2C串行總線具有接口簡單,體積小等優(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 起始信號 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單片機(jī)讀寫EEPROM 579

28.3.1 串行EEPROM存儲器簡介 579

28.3.2 電路設(shè)計(jì) 580

28.3.3 程序設(shè)計(jì) 581

28.3.4 仿真分析 582

28.4 小結(jié) 583

第29章 單片機(jī)音樂播放 584

本章詳細(xì)講述了音樂學(xué)中音調(diào)和節(jié)拍的概念,以及如何使用單片機(jī)來實(shí)現(xiàn)音調(diào)和節(jié)拍的演奏。本章還給出了一些音樂片段的示例代碼。最后通過一個(gè)具體的實(shí)例,講解了如何使用單片機(jī)播放音樂。單片機(jī)的功能強(qiáng)大,成本低廉,對于需要簡單音樂播放的場合,可以選擇使用單片機(jī)控制揚(yáng)聲器來實(shí)現(xiàn)。

29.1 單片機(jī)發(fā)音概述 584

29.1.1 音調(diào) 584

29.1.2 節(jié)拍 586

29.1.3 單片機(jī)音樂播放的方法及音樂示例 586

29.2 單片機(jī)音樂播放實(shí)例——電路圖 589

29.3 單片機(jī)音樂播放實(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ā)傳輸方式。本章通過一個(gè)具體的實(shí)例,講解了如何使用8051單片機(jī)來實(shí)現(xiàn)對DS1302的控制,在該實(shí)例中分別采用了單字節(jié)傳輸方式和多字節(jié)傳輸方式來對DS1302的時(shí)鐘寄存器及RAM進(jìn)行操作。實(shí)時(shí)時(shí)鐘常用于需要時(shí)間設(shè)定和顯示的場合,在單片機(jī)應(yīng)用系統(tǒng)中很常見,讀者熟練掌握本章內(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ī)讀寫實(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é)寫入函數(shù) 602

30.2.7 初始化函數(shù) 602

30.2.8 時(shí)鐘字節(jié)寫入函數(shù) 603

30.2.9 RAM字節(jié)寫入函數(shù) 604

30.2.10 時(shí)鐘寄存器內(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

本章詳細(xì)講述了RAM存儲器的種類和特點(diǎn),并重點(diǎn)講解了應(yīng)用最為廣泛的靜態(tài)RAM存儲器。本章還對一款常用的靜態(tài)RAM存儲器HM628128進(jìn)行了詳細(xì)介紹。最后,通過一個(gè)綜合的實(shí)例介紹了靜態(tài)RAM存儲器的讀寫。實(shí)例中使用了計(jì)算機(jī)的串行通信接口,以及單片機(jī)的串行接口設(shè)計(jì)。通過本章的講解,讀者可以掌握單片機(jī)系統(tǒng)中靜態(tài)RAM存儲器的讀寫及計(jì)算機(jī)串行的應(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存儲器讀寫實(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程序來實(shí)現(xiàn)道路交通燈的控制模擬。本章給出了詳細(xì)的電路圖,以及RTX-51 Tiny的多任務(wù)程序。通過本章的學(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ù)操作命令。最后通過一個(gè)完整的實(shí)例介紹了如何使用51系列單片機(jī)模擬1-Wire總線數(shù)據(jù)傳輸,從而實(shí)現(xiàn)DS18S20的控制。1-Wire單總線是一種結(jié)構(gòu)簡單的接口協(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ī)讀寫溫度傳感器DS18S20實(shí)例 642

33.3.1 電路圖 642

33.3.2 建立項(xiàng)目 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

本章詳細(xì)講解了三線制Microware串行總線,并通過Microware串行總線的EEPROM介紹了Microware串行總線的操作指令及其操作時(shí)序。本章最后通過一個(gè)具體的實(shí)例,介紹了如何使用標(biāo)準(zhǔn)的51系列單片機(jī)來在軟件上仿真模擬Microware串行總線。其中給出了Microware串行總線讀寫的子函數(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ī)讀寫三線制EEPROM實(shí)例 657

34.3.1 電路圖 657

34.3.2 建立項(xiàng)目 657

34.3.3 三線制Microware串行總線讀寫子函數(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í)序、文本模式和圖形模式等。本章最后還通過一個(gè)具體的實(shí)例,介紹了如何使用51系列單片機(jī)控制LASER PP40微型打印機(jī)打印輸出。LASER PP40微型打印機(jī)接口簡單、控制方便,十分適合作為單片機(jī)系統(tǒng)的智能輸出擴(kuò)展。因此,熟練掌握本章內(nèi)容對讀者以后的單片機(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í)序邏輯等。最后,本章通過一個(gè)完整的實(shí)例介紹了A/D轉(zhuǎn)換器MAX197與單片機(jī)的接口。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的接口、控制字及時(shí)序 675

36.3 單片機(jī)讀寫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ī)讀寫智能IC卡 683

本章主要介紹了智能IC卡的相關(guān)知識。其中對目前市場上廣泛使用的AT45DB041D接觸式IC卡芯片進(jìn)行了詳細(xì)介紹,包括芯片的功能、內(nèi)存空間和指令。本章還通過一個(gè)具體的實(shí)例,介紹了如何使用單片機(jī)對IC卡芯片進(jìn)行讀寫操作。由于IC卡芯片采用SPI串行數(shù)據(jù)接口,這里使用了帶有SPI接口的AT89S8253單片機(jī)進(jìn)行讀寫操作。智能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 單片機(jī)讀寫智能IC卡實(shí)例 687

37.3.1 電路圖 687

37.3.2 SPI接口單片機(jī)AT89S8253簡介 688

37.3.3 建立項(xiàng)目 689

37.3.4 IC卡芯片AT45DB041D讀寫子函數(shù) 690

37.3.5 主程序 692

37.4 小結(jié) 694

第38章 單片機(jī)智能鋰電池充電管理 695

本章首先介紹了廣泛使用的鋰電池,以及鋰電池的充電要求。接著介紹了MAXIM公司的一款高性能的智能充電管理芯片MAX1898,包括MAX1898引腳功能及其充電工作原理。最后,本章通過一個(gè)具體的實(shí)例,介紹了如何使用51系列單片機(jī)控制MAX1898來實(shí)現(xiàn)單節(jié)鋰電池的智能充電過程。鋰電池及其充電器廣泛應(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

一般機(jī)電專業(yè)都有開通單片機(jī)的課程,由于單片機(jī)的廣泛應(yīng)用,我的電子行業(yè)的剛剛起步,人才的需求相當(dāng)?shù)膮T乏,一般從事單片機(jī)的編程與開發(fā),

《單片機(jī)的原理與應(yīng)用》 課程的開通主要是相關(guān)的指令的介紹與如何的使用,調(diào)用子程序等,加上實(shí)習(xí)課,基本能夠更好的掌握。

開通課程的高校:北京理工大學(xué) 、 閩南理工學(xué)院2100433B

51單片機(jī)開發(fā)與應(yīng)用技術(shù)詳解宣傳語文獻(xiàn)

51單片機(jī)與串口通信代碼 51單片機(jī)與串口通信代碼

格式:pdf

大?。?span id="7btdnbl" class="single-tag-height">11KB

頁數(shù): 4頁

評分: 4.6

51 單片機(jī)與串口通信代碼 2011年 04月 22 日 17:18 本站整理 作者:佚名 用戶評論( 0) 關(guān)鍵字: 串口通信 (35) 串口調(diào)試 1. 發(fā)送:向總線上發(fā)命令 2. 接收:從總線接收命令,并分析是地址還是數(shù)據(jù)。 3. 定時(shí)發(fā)送:從內(nèi)存中取數(shù)并向主機(jī)發(fā)送 . 經(jīng)過調(diào)試,以上功能基本實(shí)現(xiàn),目前可以通過上位機(jī)對單片機(jī)進(jìn)行實(shí)時(shí)控制。 程序如下: // 這是一個(gè)單片機(jī) C51串口接收(中斷)和發(fā)送例程,可以用來測試 51單片機(jī)的中斷接收 // 和查詢發(fā)送,另外我覺得發(fā)送沒有必要用中斷,因?yàn)槌绦虻拈_銷是一樣的 # i nclude # i nclude # i nclude #define INBUF_LEN 4 // 數(shù)據(jù)長度 unsigned char inbuf1[IN

立即下載
基于51單片機(jī)電子時(shí)鐘設(shè)計(jì) 基于51單片機(jī)電子時(shí)鐘設(shè)計(jì)

格式:pdf

大小:11KB

頁數(shù): 22頁

評分: 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

立即下載

本書以標(biāo)準(zhǔn)C語言和MCS-51單片機(jī)為基礎(chǔ),系統(tǒng)地介紹了51單片機(jī)C語言程序設(shè)計(jì)方法與應(yīng)用技術(shù)。本書在內(nèi)容上重點(diǎn)突出實(shí)用性和應(yīng)用性兩大特點(diǎn),不僅對硬件接口進(jìn)行了詳細(xì)的論述,而且對軟件的設(shè)計(jì)思想、程序流程圖以及C語言程序進(jìn)行了重點(diǎn)講解。本書從應(yīng)用性角度出發(fā),融合了作者多年從事項(xiàng)目開發(fā)的大量實(shí)際案例,為幫助讀者理解,書中對案例程序代碼部分做了很詳細(xì)的注釋,以求通過案例闡述基本問題,著重培養(yǎng)和提高讀者的開發(fā)能力。

本書所附光盤中包括了書中所有案例的程序源代碼,讀者略作修改目口可在工程中應(yīng)用。

本書可供從事51單片機(jī)應(yīng)用與產(chǎn)品開發(fā)的技術(shù)人員學(xué)習(xí)使用,也可供高等院校電氣工程、電信工程、自動化等專業(yè)的師生參考使用。

第1篇 單片機(jī)系統(tǒng)開發(fā)基礎(chǔ)篇

第1章 51系列單片機(jī)開發(fā)的基礎(chǔ)知識

第2章 單片機(jī)軟件開發(fā)工具

第2篇 常用模塊設(shè)計(jì)案例篇

第3章 LED顯示模塊

第4章 液晶顯示模塊

第5章 D/A轉(zhuǎn)換與A/D轉(zhuǎn)換模塊

第6章 MCS-51單片機(jī)與鍵盤的接口

第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的信號發(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)場監(jiān)測系統(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ī)的存儲器空間5

1.3.1存儲器的基本知識5

1.3.2c51單片機(jī)的存儲器6

1.3.2.1數(shù)據(jù)存儲器7

1.3.2.2程序存儲器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ī)的引腳信號和cpu時(shí)序16

1.5.1c51單片機(jī)引腳功能說明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相對尋址29

2.2.7位尋址29

2.2.8尋址方式總匯29

2.3c51單片機(jī)的指令說明30

2.3.1數(shù)據(jù)傳送類指令30

2.3.2算術(shù)運(yùn)算類指令35

2.3.3邏輯運(yùn)算類指令39

2.3.4控制轉(zhuǎn)移類指令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ù)留存儲空間偽指令ds52

2.4.6等值偽指令equ52

2.4.7位地址定義偽指令bit53

2.5c51單片機(jī)的程序設(shè)計(jì)舉例53

2.5.1簡單程序設(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語言編程特點(diǎn)59

3.1.2c51單片機(jī)的c語言編譯器59

3.1.3c51單片機(jī)的程序結(jié)構(gòu)59

3.2c51的數(shù)據(jù)與運(yùn)算60

3.2.1數(shù)據(jù)與數(shù)據(jù)類型60

3.2.2常量與變量61

3.2.3c51數(shù)據(jù)的存儲類型與存儲器結(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流程控制語句76

3.3.1c語言程序的基本結(jié)構(gòu)及其流程圖76

3.3.2選擇語句79

3.3.3循環(huán)語句82

3.4c51構(gòu)造數(shù)據(jù)類型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ù)的分類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的庫函數(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ǔ)知識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ī)存儲器擴(kuò)展與編址技術(shù)179

5.2程序存儲器的擴(kuò)展180

5.2.1擴(kuò)展eprom180

5.2.2擴(kuò)展(e2prom)183

5.3數(shù)據(jù)存儲器的擴(kuò)展183

5.3.1單片數(shù)據(jù)存儲器擴(kuò)展184

5.3.2線選法多片數(shù)據(jù)存儲器擴(kuò)展184

5.3.3譯碼法多片數(shù)據(jù)存儲器擴(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主動串行模式配置flex10k器件219

5.9.4基于c51的被動串行配置flex10k器件220

習(xí)題和思考題222

第6章c51單片機(jī)的機(jī)間串行通信224

6.1點(diǎn)對點(diǎn)的串行異步通信224

6.1.1通信雙方的硬件連接224

6.1.2通信雙方的約定225

6.1.3點(diǎn)對點(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鍵盤接口技術(shù)244

7.1.1獨(dú)立式鍵盤與工作原理244

7.1.2行列式鍵盤與工作原理246

7.1.3鍵盤掃描的控制程序248

7.2led數(shù)碼顯示技術(shù)250

7.2.1led顯示器的結(jié)構(gòu)與原理250

7.2.2led靜態(tài)顯示接口251

7.2.3led動態(tài)掃描顯示接口252

7.3可編程鍵盤/顯示接口芯片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存儲器窗口285

8.5.2觀察窗口286

8.5.3工程窗口寄存器頁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外部存儲器綜合擴(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語言編程294

9.6點(diǎn)陣型lcd中文顯示的c語言編程296

附錄c51單片機(jī)指令系統(tǒng)表300

參考文獻(xiàn)302

51單片機(jī)開發(fā)與應(yīng)用技術(shù)詳解相關(guān)推薦
  • 相關(guān)百科
  • 相關(guān)知識
  • 相關(guān)專欄

最新詞條

安徽省政采項(xiàng)目管理咨詢有限公司 數(shù)字景楓科技發(fā)展(南京)有限公司 懷化市人民政府電子政務(wù)管理辦公室 河北省高速公路京德臨時(shí)籌建處 中石化華東石油工程有限公司工程技術(shù)分公司 手持無線POS機(jī) 廣東合正采購招標(biāo)有限公司 上海城建信息科技有限公司 甘肅鑫禾國際招標(biāo)有限公司 燒結(jié)金屬材料 齒輪計(jì)量泵 廣州采陽招標(biāo)代理有限公司河源分公司 高鋁碳化硅磚 博洛尼智能科技(青島)有限公司 燒結(jié)剛玉磚 深圳市東海國際招標(biāo)有限公司 搭建香蕉育苗大棚 SF計(jì)量單位 福建省中億通招標(biāo)咨詢有限公司 泛海三江 威海鼠尾草 廣東國咨招標(biāo)有限公司 Excel 數(shù)據(jù)處理與分析應(yīng)用大全 甘肅中泰博瑞工程項(xiàng)目管理咨詢有限公司 山東創(chuàng)盈項(xiàng)目管理有限公司 拆邊機(jī) 當(dāng)代建筑大師 廣西北纜電纜有限公司 大山檳榔 上海地鐵維護(hù)保障有限公司通號分公司 舌花雛菊 甘肅中維國際招標(biāo)有限公司 華潤燃?xì)猓ㄉ虾#┯邢薰? 湖北鑫宇陽光工程咨詢有限公司 GB8163標(biāo)準(zhǔn)無縫鋼管 中國石油煉化工程建設(shè)項(xiàng)目部 韶關(guān)市優(yōu)采招標(biāo)代理有限公司 莎草目 建設(shè)部關(guān)于開展城市規(guī)劃動態(tài)監(jiān)測工作的通知 電梯平層準(zhǔn)確度 廣州利好來電氣有限公司 蘇州弘創(chuàng)招投標(biāo)代理有限公司