本書以8051單片機為主線,以工程項目和科技競賽為實例背景,按照案例驅(qū)動教學(xué)模式,由淺入深地講述了51單片機的硬件結(jié)構(gòu)、C51語言編程方法、單片機內(nèi)部資源、單片機應(yīng)用系統(tǒng)的接口設(shè)計、STC系列最新單片機、綜合應(yīng)用設(shè)計以及科技競賽研究成果,并介紹了相應(yīng)的開發(fā)工具。
第1章案例目標(biāo)1單片機的認(rèn)知
1.1單片機概述
1.1.1單片機組成及其特點
1.1.2單片機分類
1.1.3幾種教學(xué)中常見單片機的區(qū)別
1.2單片機的應(yīng)用
1.3單片機的歷史與發(fā)展
1.4常見單片機
1.5STC系列單片機
習(xí)題與思考題
第2章51單片機結(jié)構(gòu)體系
2.1案例目標(biāo)2單片機的內(nèi)核
2.1.151單片機的引腳功能
2.1.251單片機的硬件結(jié)構(gòu)
2.1.351單片機的存儲器
2.1.451單片機的時鐘與復(fù)位
2.2案例目標(biāo)3單片機最小系統(tǒng)的硬件設(shè)計
2.2.1單片機最小系統(tǒng)原理圖
2.2.2單片機最小系統(tǒng)原理圖講解
2.2.3單片機最小系統(tǒng)元器件清單
2.2.4單片機最小系統(tǒng)實物圖
2.2.5單片機最小系統(tǒng)注意事項
2.2.6單片機最小系統(tǒng)電子元器件
2.2.7電子元器件的焊接
習(xí)題與思考題
第3章51單片機C51程序設(shè)計
3.1案例目標(biāo)4Keil μVision4軟件的運用
3.1.1Keil μVision4軟件簡介
3.1.2Keil μVision4軟件安裝
3.1.3Keil μVision4案例目標(biāo)的實現(xiàn)
3.2案例目標(biāo)5STCISP V6.83程序下載軟件的使用
3.2.1軟件安裝及主要功能介紹
3.2.2STC下載軟件案例目標(biāo)的實現(xiàn)
3.2案例目標(biāo)6Proteus仿真軟件的運用
3.3.1軟件功能簡介與安裝
3.3.2Proteus仿真軟件案例目標(biāo)的實現(xiàn)
3.4案例目標(biāo)7單片機中常用C語言知識
3.4.1C51程序設(shè)計基礎(chǔ)
3.4.2C51語言的函數(shù)
習(xí)題與思考題
第4章案例目標(biāo)851單片機并行I/O端口的靈活運用
4.1并行I/O口的結(jié)構(gòu)及工作原理
4.1.1P0口(32腳~39腳)結(jié)構(gòu)及工作原理
4.1.2P1口(1腳~8腳)結(jié)構(gòu)及工作原理
4.1.3P2口(21腳~28腳)結(jié)構(gòu)及工作原理
4.1.4P3口(10腳~17腳)結(jié)構(gòu)及工作原理
4.2并行I/O口C51編程
4.2.1流水燈案例目標(biāo)的實現(xiàn)
4.2.2蜂鳴器案例目標(biāo)的實現(xiàn)
4.2.3繼電器案例目標(biāo)的實現(xiàn)
習(xí)題與思考題
第5章數(shù)碼管顯示與鍵盤檢測
5.1案例目標(biāo)9數(shù)碼管顯示的具體實現(xiàn)
5.1.1數(shù)碼管顯示原理
5.1.2數(shù)碼管靜態(tài)顯示應(yīng)用舉例
5.1.3數(shù)碼管動態(tài)顯示應(yīng)用舉例
5.1.4數(shù)碼管案例目標(biāo)的實現(xiàn)
5.2案例目標(biāo)10利用數(shù)碼管顯示按鍵值
5.2.1獨立鍵盤檢測應(yīng)用舉例
5.2.2矩陣鍵盤檢測應(yīng)用舉例
5.2.3鍵盤檢測案例目標(biāo)的實現(xiàn)
習(xí)題與思考題
第6章案例目標(biāo)11帶有緊急情況處理的交通燈控制系統(tǒng)設(shè)計
6.1中斷系統(tǒng)概述
6.1.1基本概念
6.1.251系列單片機中斷源
6.1.351系列單片機中斷請求標(biāo)志寄存器
6.1.4中斷允許與中斷優(yōu)先級的控制
6.2外部中斷案例目標(biāo)的實現(xiàn)
6.3外部中斷及應(yīng)用舉例
習(xí)題與思考題
第7章案例目標(biāo)12基于數(shù)碼管的電子時鐘顯示
7.1定時器簡介
7.1.1定時器的結(jié)構(gòu)
7.1.2定時器/計數(shù)器控制寄存器
7.251單片的機定時器/計數(shù)器T0和T1的控制
7.2.1定時器/計數(shù)器對輸入信號的要求
7.2.2方式0
7.2.3方式1
7.2.4方式2
7.2.5方式3
7.3STC89C52的定時器/計數(shù)器應(yīng)用舉例
7.3.1應(yīng)用步驟和初值設(shè)定方法
7.3.2應(yīng)用實例的描述
7.4定時器/計數(shù)器案例目標(biāo)的實現(xiàn)
習(xí)題與思考題
第8章案例目標(biāo)13單片機的雙機通信
8.1串行通信基礎(chǔ)
8.1.1串行通信線路形式
8.1.2異步通信和同步通信
8.2串行口結(jié)構(gòu)描述
8.2.1串行接口的結(jié)構(gòu)
8.2.2串行接口的控制寄存器
8.3波特率的設(shè)定與定時器的關(guān)系
8.4串行口的工作方式與典型應(yīng)用舉例
8.5串行口案例目標(biāo)的實現(xiàn)
習(xí)題與思考題
第9章51單片機擴展與接口技術(shù)
9.1案例目標(biāo)14可調(diào)數(shù)字時鐘顯示
9.1.1LCD1602液晶應(yīng)用舉例
9.1.2LCD1602液晶應(yīng)用實例
9.1.3LCD12864液晶應(yīng)用舉例
9.1.4LCD12864液晶顯示舉例
9.1.5LCD液晶案例目標(biāo)的實現(xiàn)
9.2案例目標(biāo)15基于光敏電阻的LCD電壓采集顯示系統(tǒng)
9.2.1ADC0804轉(zhuǎn)換器應(yīng)用舉例
9.2.2DAC0832轉(zhuǎn)換器應(yīng)用舉例
9.2.3A/D案例目標(biāo)的實現(xiàn)
9.3案例目標(biāo)16基于DS18B20芯片的數(shù)字溫度計設(shè)計
9.3.1串行單總線擴展技術(shù)
9.3.2串行總線技術(shù)案例目標(biāo)的實現(xiàn)
9.4案例目標(biāo)17基于I2C總線的AT24C02芯片讀/寫操作
9.4.1I2C串行總線技術(shù)
9.4.2I2C串行總線案例目標(biāo)的實現(xiàn)
9.5案例目標(biāo)18基于TLC549 A/D的光敏電阻密碼鎖設(shè)計
9.5.1SPI串行總線技術(shù)
9.5.2SPI串行總線案例目標(biāo)的實現(xiàn)
9.6案例目標(biāo)19直流電動機調(diào)速控制系統(tǒng)的設(shè)計
9.7案例目標(biāo)20步進電動機正反轉(zhuǎn)角度控制的設(shè)計
9.8案例目標(biāo)21舵機方向角度控制的設(shè)計
習(xí)題與思考題
第10章案例目標(biāo)22利用STC15F2K60S2單片機點亮小燈并實現(xiàn)
在線調(diào)試功能
10.1STC15F2K60S2單片機特點
10.2STC15F2K60S2單片機最小系統(tǒng)設(shè)計與應(yīng)用舉例
10.3STC15F2K60S2單片機案例目標(biāo)的實現(xiàn)
第11章8個步驟精通綜合應(yīng)用實例設(shè)計
11.1基于CH452控制芯片的鍵盤及數(shù)碼管驅(qū)動設(shè)計
11.1.1CH452簡介
11.1.2案例設(shè)計
11.2多功能密碼鎖的設(shè)計
11.3超聲波測距的設(shè)計
11.3.1超聲波原理
11.3.2案例設(shè)計
11.4光敏電阻逐光隨動系統(tǒng)的設(shè)計
11.5SIM900手機模塊的應(yīng)用設(shè)計
11.5.1SIM900簡介
11.5.2案例設(shè)計
11.6直流電動機調(diào)速系統(tǒng)的設(shè)計
11.6.1利用PCA/PWM功能實現(xiàn)PWM控制
11.6.2案例設(shè)計
11.7基于NRF905無線數(shù)據(jù)傳輸設(shè)計
第12章科技競賽獲獎作品交流
12.1多功能語音控制智能盲人拐杖助手設(shè)計
12.2基于觸摸屏的多功能水族箱設(shè)計
12.3基于GSM手機戶外點陣控制系統(tǒng)設(shè)計
12.4智能實驗室遠程無線監(jiān)管系統(tǒng)設(shè)計
12.5基于紅外傳感器的無弦電子琴設(shè)計
12.6嬰兒發(fā)燒尿床呵護系統(tǒng)的設(shè)計
12.7開展科技創(chuàng)新活動與科技競賽的探析
附錄A常用字符與ASCII代碼對照表
附錄B液晶標(biāo)準(zhǔn)字符庫
附錄C單片機最小系統(tǒng)及開發(fā)板實物圖
參考文獻
2100433B
8051單片機在一塊芯片上集成了一個微型計算機的主要部件,它包括以下幾部分: 1個8位微處理器(CPU)。 1個時鐘電路。 4KB程序存儲器。 256B數(shù)據(jù)存儲器。 2個16位定時/計數(shù)器。 64KB...
用c51單片機做AD轉(zhuǎn)換,只要用一個簡單的延時就可以,沒必要動用定時器這么高級的東西,DMA就更別提了,我寫了很多程序,還真沒有人能用C51實現(xiàn)DMA,DMA一般在arm系列和FPGA等的高級嵌入式里...
#include<reg51.h>#define uint unsigned int#define uchar unsigned charsbit spk=P3^0;sbit k0=P3^...
格式:pdf
大?。?span id="ns6o88s" class="single-tag-height">353KB
頁數(shù): 7頁
評分: 4.6
89C51單片機論文 摘要:為了方便初學(xué)者使用單片機的各種片內(nèi)資源以及 一些常用的外圍擴展芯片,設(shè)計開發(fā)了基于 51系列單片機 的系統(tǒng)板。同時,該板還可做為學(xué)習(xí)各種仿真器所需的目標(biāo) 板。 關(guān)鍵詞: 89c51 單片機; tlc 2543 ; tlc5615 the development and application based on 51 series mcu system board li li,shao xinhui (changcheng institute of metrology&measurement,avic,beijing100095,china) abstract:in order to facilitate the beginner to use all kinds of microcontroller chip internal resources
格式:pdf
大?。?span id="pd20546" class="single-tag-height">353KB
頁數(shù): 4頁
評分: 4.6
51 單片機與串口通信代碼
2011年 04月 22 日 17:18 本站整理 作者:佚名 用戶評論( 0)
關(guān)鍵字: 串口通信 (35)
串口調(diào)試
1. 發(fā)送:向總線上發(fā)命令
2. 接收:從總線接收命令,并分析是地址還是數(shù)據(jù)。
3. 定時發(fā)送:從內(nèi)存中取數(shù)并向主機發(fā)送 .
經(jīng)過調(diào)試,以上功能基本實現(xiàn),目前可以通過上位機對單片機進行實時控制。
程序如下:
// 這是一個單片機 C51串口接收(中斷)和發(fā)送例程,可以用來測試 51單片機的中斷接收
// 和查詢發(fā)送,另外我覺得發(fā)送沒有必要用中斷,因為程序的開銷是一樣的
# i nclude
《單片機原理及接口技術(shù)(C51編程)》詳細(xì)介紹了美國ATMEL公司的AT89S51單片機的硬件結(jié)構(gòu)和片內(nèi)外圍部件的工作原理,Keil C51編程基礎(chǔ)知識,并從應(yīng)用設(shè)計的角度介紹AT89S51單片機的各種常用的硬件接口設(shè)計,以及相應(yīng)的Keil C51接口驅(qū)動程序設(shè)計。本書最后介紹了AT89S51單片機應(yīng)用系統(tǒng)設(shè)計以及一些典型應(yīng)用舉例。
《單片機原理及接口技術(shù)(C51編程)》可作為各類工科院校、職業(yè)技術(shù)學(xué)院電子技術(shù)、計算機、工業(yè)自動化、自動控制、智能儀器儀表、電氣工程、機電一體化等專業(yè)單片機課程教材,也可供從事單片機應(yīng)用設(shè)計的工程技術(shù)人員參考。
第1章 8051單片機與KeilC51基礎(chǔ)1
1.1 8051單片機的存儲器組織結(jié)構(gòu) 1
1.2 Keil C51開發(fā)工具6
1.3 C51簡單編程與調(diào)試 6
第2章 C51程序設(shè)計基礎(chǔ)16
2.1 標(biāo)識符與關(guān)鍵字 16
2.2 C51程序設(shè)計的基本語法 18
2.2.1 數(shù)據(jù)類型 18
2.2.2 常量 20
2.2.3 變量及其存儲模式 22
2.2.4 用typedef重新定義數(shù)據(jù)類型 25
2.2.5 運算符與表達式 26
2.3 C51程序的基本語句 39
2.3.1 表達式語句 39
2.3.2 復(fù)合語句 40
2.3.3 條件語句 41
2.3.4 開關(guān)語句 43
2.3.5 循環(huán)語句 45
2.3.6 返回語句 50
2.4函數(shù) 51
2.4.1 函數(shù)的定義 51
2.4.2 函數(shù)的調(diào)用形式 54
2.4.3 對被調(diào)用函數(shù)的說明 54
2.4.4 函數(shù)的參數(shù)與返回值 56
2.4.5 實際參數(shù)的傳遞方式 58
2.4.6 函數(shù)的遞歸調(diào)用與再入函數(shù) 59
2.4.7 中斷函數(shù)與寄存器組定義 60
2.5 函數(shù)變量的存儲方式 62
2.5.1 局部變量與全局變量 62
2.5.2 變量的存儲種類 64
2.5.3 函數(shù)的參數(shù)和局部變量的存儲器模式 68
2.6 數(shù)組 69
2.6.1 數(shù)組的定義與引用 69
2.6.2 字符數(shù)組 70
2.6.3 數(shù)組作為函數(shù)的參數(shù) 73
2.7 指針 76
2.7.1 指針與地址 76
2.7.2 指針變量的定義 77
2.7.3 指針變量的引用 79
2.7.4 指針變量作為函數(shù)的參數(shù) 80
2.8 數(shù)組的指針 81
2.8.1 用指針引用數(shù)組元素 81
2.8.2 字符數(shù)組指針 83
2.8.3 指針的地址計算 84
2.9 函數(shù)型指針 86
2.10 返回指針型數(shù)據(jù)的函數(shù) 88
2.11 指針數(shù)組與指針型指針 89
2.11.1 指針數(shù)組 89
2.11.2 指針型指針 92
2.11.3 抽象型指針 94
2.12 結(jié)構(gòu)體、聯(lián)合體與枚舉 95
2.12.1 結(jié)構(gòu)體變量的定義與引用 95
2.12.2 結(jié)構(gòu)體變量的初值 98
2.12.3 結(jié)構(gòu)體數(shù)組 99
2.12.4 結(jié)構(gòu)體型指針 100
2.12.5 將結(jié)構(gòu)體作為函數(shù)的參數(shù) 101
2.12.6 將結(jié)構(gòu)體型指針作為函數(shù)的參數(shù) 103
2.13 聯(lián)合體變量的定義與引用105
2.14 枚舉變量的定義與引用 109
2.15 預(yù)處理器 110
2.15.1 不帶參數(shù)的宏定義 111
2.15.2 帶參數(shù)的宏定義 112
2.15.3 文件包含 114
2.15.4 條件編譯 114
2.15.5 其他預(yù)處理命令 117
第3章 Vision4集成開發(fā)環(huán)境 118
3.1 Vision4的下拉菜單 120
3.1.1 File菜單 121
3.1.2 Edit菜單 122
3.1.3 View菜單 126
3.1.4 Project菜單 128
3.1.5 Flash菜單 139
3.1.6 Tools菜單 139
3.1.7 SVCS菜單 141
3.1.8 Window菜單 142
3.1.9 Help菜單 142
3.2 Vision4中的調(diào)試器 143
3.2.1 Debug狀態(tài)下窗口分配與View菜單 145
3.2.2 通過Debug菜單進行程序代碼調(diào)試 150
3.2.3 通過Peripherals菜單觀察仿真結(jié)果 156
3.3 Vision4的調(diào)試命令 157
3.3.1 顯示和更新存儲器內(nèi)容命令 159
3.3.2 程序執(zhí)行控制命令 163
3.3.3 斷點管理命令 166
3.3.4 其他通用命令 169
3.4 Vision4的表達式 178
3.4.1 表達式的組成 178
3.4.2 Vision4表達式與C語言表達式之間的差別 183
3.4.3 Vision4表達式應(yīng)用舉例 183
3.5 Vision4的函數(shù) 186
3.5.1 內(nèi)部函數(shù) 187
3.5.2 用戶函數(shù) 192
3.5.3 信號函數(shù) 194
3.5.4 Vision4函數(shù)與C51函數(shù)的差別 196
第4章 C51編譯器 197
4.1 C51編譯器簡介 197
4.2 C51編譯器控制命令詳解 200
4.2.1 源控制命令 200
4.2.2 列表控制命令 203
4.2.3 目標(biāo)控制命令 208
4.3 Keil C51編譯器對ANSIC的擴展235
4.3.1 存儲器類型與編譯模式 235
4.3.2 關(guān)于bit,sbit,sfr,sfr16數(shù)據(jù)類型 237
4.3.3 一般指針與基于存儲器的指針及其轉(zhuǎn)換 241
4.3.4 C51編譯器對ANSIC函數(shù)定義的擴展 242
4.4 C51編譯器的數(shù)據(jù)調(diào)用協(xié)議 249
4.4.1 數(shù)據(jù)在內(nèi)存中的存儲格式 249
4.4.2 目標(biāo)代碼的段管理 250
4.5 C51編譯器的特殊支持 252
4.5.1 Analog Device公司的Aduc8xxB2系列 253
4.5.2 Atmel 89x8252及衍生產(chǎn)品 253
4.5.3 Dallas 80C320/420/520/530 254
4.5.4 Dallas 80C390/400/5240及衍生產(chǎn)品 254
4.5.5 Infineon 80517/509/537及衍生產(chǎn)品 255
4.5.6 NXP 8xC750/751/752 256
4.5.7 NXP 8xC51Mx 256
4.5.8 NXP和AtmelWM系列的雙數(shù)據(jù)指針 256
4.6 用戶配置文件 257
4.6.1 啟動代碼文件 257
4.6.2 變量初始化文件 259
4.6.3 基本I/O函數(shù)文件 260
4.6.4 分組配置文件 261
4.7 與匯編語言程序的接口 262
4.8 與PL/M51程序的接口272
4.9 絕對地址訪問 273
4.9.1 采用擴展關(guān)鍵字“_at_”或指針定義變量的絕對地址 273
4.9.2 采用預(yù)定義宏指定變量的絕對地址 274
4.9.3 采用鏈接定位控制命令指定變量的絕對地址 275
4.10 C51的庫函數(shù) 276
4.10.1 字符函數(shù)CTYPE.H 277
4.10.2 標(biāo)準(zhǔn)I/O函數(shù)STDIO.H 283
4.10.3 字符串函數(shù)STRING.H 291
4.10.4 標(biāo)準(zhǔn)函數(shù)STDLIB.H 299
4.10.5 數(shù)學(xué)函數(shù)MATH.H 305
4.10.6 絕對地址訪問ABSACC.H 312
4.10.7 內(nèi)部函數(shù)INTRINS.H 313
4.10.8 變量參數(shù)表STDARG.H 317
4.10.9 全程跳轉(zhuǎn)SETJMP.H318
4.10.10 計算結(jié)構(gòu)體成員的偏移量STDDEF.H 319
4.10.11 創(chuàng)建測試條件ASSERT.H 319
第5章 A51宏匯編器321
5.1 符號與表達式 323
5.2 匯編偽指令 327
5.2.1 段控制指令 328
5.2.2 符號定義指令 331
5.2.3 存儲器初始化指令 334
5.2.4 存儲器保留指令 335
5.2.5 過程聲明指令(僅用于Ax51) 336
5.2.6 程序鏈接指令 338
5.2.7 地址控制指令 339
5.2.8 其他指令 340
5.3 宏處理器 340
5.3.1 標(biāo)準(zhǔn)宏處理器 341
5.3.2 嵌套宏定義 344
5.3.3 宏調(diào)用 345
5.3.4 C宏處理器349
5.3.5 MPL宏處理器 351
5.3.6 MPL函數(shù) 353
5.3.7 MPL條件處理函數(shù) 357
5.3.8 MPL字符串處理函數(shù) 360
5.4 匯編控制命令 362
5.4.1 匯編控制命令詳解 363
5.4.2 條件匯編命令 371
第6章 BL51/Lx51鏈接定位器與實用工具 375
6.1 BL51/Lx51的鏈接定位方式375
6.1.1 鏈接定位中的數(shù)據(jù)段處理 375
6.1.2 鏈接定位器的引用 378
6.1.3 應(yīng)用程序在存儲器空間中的定位 379
6.1.4 數(shù)據(jù)覆蓋 381
6.1.5 代碼分組 383
6.1.6 分組配置 385
6.2 鏈接定位控制命令詳解 393
6.2.1 列表文件控制命令 393
6.2.2 輸出文件控制命令 397
6.2.3 段與存儲器定位控制命令 401
6.2.4 高級語言控制命令 418
6.3 符號轉(zhuǎn)換工具 425
6.3.1 Intel HEX文件格式與符號轉(zhuǎn)換工具 425
6.3.2 引用符號轉(zhuǎn)換工具OH51/OHX51 426
6.3.3 引用分組目標(biāo)文件轉(zhuǎn)換工具OC51 428
6.4 庫管理器LIBx51 428
第7章 RTX51實時多任務(wù)操作系統(tǒng)432
7.1 RTX51一般介紹 432
7.2 RTX51技術(shù)參數(shù) 437
7.3 使用RTX51TINY的要求和限定 439
7.4 RTX51 TINY的任務(wù)管理 440
7.5 RTX51 TINY的配置 442
7.6 RTX51 TINY的系統(tǒng)函數(shù) 444
7.7 RTX51 TINY應(yīng)用系統(tǒng)調(diào)試 449
第8章 8051單片機片內(nèi)資源的C51應(yīng)用
編程 464
8.1 編寫C51應(yīng)用程序的基本原則 464
8.2 C51應(yīng)用中的一些常見問題與解決方法 465
8.3 8051單片機中斷系統(tǒng)應(yīng)用編程 468
8.3.1 外部中斷源擴展 468
8.3.2 中斷嵌套 470
8.4 8051單片機定時器/計數(shù)器應(yīng)用編程473
8.4.1 定時器方式應(yīng)用 474
8.4.2 計數(shù)器方式應(yīng)用 478
8.6 8051單片機串行口應(yīng)用編程 483
8.6.1 8051串行口實現(xiàn)串/并轉(zhuǎn)換應(yīng)用編程 483
8.6.2 8051串行口的通信方式應(yīng)用編程 487
8.7 P89C51RD2單片機片內(nèi)FLASH在應(yīng)用中編程的C51驅(qū)動程序 504
8.8 80C552單片機內(nèi)部A/D轉(zhuǎn)換器的C51驅(qū)動程序 517
8.8.1 80C552單片機簡介 517
8.8.2 80C552內(nèi)部ADC的應(yīng)用 519
8.8.3 使用80C552內(nèi)部ADC的C51驅(qū)動程序523
第9章 8051單片機片外擴展的C51應(yīng)用編程 529
9.1 LED數(shù)碼管顯示接口應(yīng)用編程 529
9.1.1 軟件譯碼和動態(tài)掃描的LED數(shù)碼管顯示接口應(yīng)用編程 530
9.1.2 8位共陰極LED數(shù)碼管驅(qū)動器MAX7219應(yīng)用編程 532
9.2 非編碼矩陣鍵盤接口應(yīng)用編程 538
9.2.1 采用8155實現(xiàn)的矩陣鍵盤及數(shù)碼管顯示接口應(yīng)用編程 539
9.2.2 采用8279實現(xiàn)的矩陣鍵盤及數(shù)碼管顯示接口應(yīng)用編程 544
9.3LCD液晶模塊顯示接口應(yīng)用編程 550
9.3.1 點陣字符型LCD顯示接口應(yīng)用編程 551
9.3.2 12864點陣圖型LCD顯示接口應(yīng)用編程562
9.3.3 內(nèi)置T6963C控制器的點陣圖型LCD顯示接口應(yīng)用編程 570
9.4 D/A與A/D轉(zhuǎn)換接口應(yīng)用編程 580
9.4.1 DAC0832轉(zhuǎn)換接口應(yīng)用編程 581
9.4.2 串行接口DAC芯片MAX517應(yīng)用編程 584
9.4.3 ADC0809轉(zhuǎn)換接口應(yīng)用編程 588
9.4.4 ICL7135轉(zhuǎn)換接口應(yīng)用編程 592
9.4.5 串行接口ADC芯片TLC549應(yīng)用編程 596
9.5 單片機I2C總線擴展應(yīng)用編程 600
9.5.1 I2C總線簡介 600
9.5.2 I2C總線通用驅(qū)動程序 603
9.5.3 I2C接口器件24C04的讀/寫程序 606
9.6 8051單片機存儲器擴展與測試應(yīng)用編程 610
9.6.1 測試8051應(yīng)用系統(tǒng)總線與擴展存儲器的C51驅(qū)動程序 610
9.6.2 8051擴展FLASH存儲器在系統(tǒng)編程的C51驅(qū)動程序 613
第10章 KeilC51綜合應(yīng)用編程實例626
10.1 有關(guān)C51編程的若干實際應(yīng)用技巧626
10.2 C51與匯編語言混合編程與生成應(yīng)用庫文件 632
10.2.1 C51與匯編語言混合編程 632
10.2.2 在Vision4中生成應(yīng)用庫文件 634
10.3 在Vision4中應(yīng)用硬件目標(biāo)板 635
10.3.1 帶MON51監(jiān)控程序的硬件目標(biāo)板 636
10.3.2 帶FLASHMON51監(jiān)控程序的硬件目標(biāo)板 640
10.4 紅外遙控系統(tǒng)設(shè)計 642
10.4.1 功能要求 642
10.4.2 硬件電路設(shè)計 642
10.4.3 軟件程序設(shè)計 643
10.5 簡易電子琴設(shè)計650
10.5.1 功能要求 650
10.5.2 硬件電路設(shè)計 650
10.5.3 軟件程序設(shè)計 650
10.6 帶農(nóng)歷的電子萬年歷設(shè)計655
10.6.1 功能要求 655
10.6.2 硬件電路設(shè)計 655
10.6.3 軟件程序設(shè)計 658
10.7 電子密碼鎖設(shè)計671
10.7.1 功能要求 671
10.7.2 硬件電路設(shè)計 671
10.7.3 軟件程序設(shè)計 671
10.8 DS18B20多點溫度監(jiān)測系統(tǒng)設(shè)計 687
10.8.1 功能要求 687
10.8.2 硬件電路設(shè)計 688
10.8.3 軟件程序設(shè)計 692
10.9 STH11數(shù)字溫-濕度測量系統(tǒng)設(shè)計 700
10.9.1 功能要求 700
10.9.2 硬件電路設(shè)計 700
10.9.3 軟件程序設(shè)計 704
10.10 單片機SD卡讀/寫接口設(shè)計 710
10.10.1 功能要求 710
10.10.2 硬件電路設(shè)計 710
10.10.3 軟件程序設(shè)計 712
附錄AKeilC51與ANSI C的差別 717
附錄BKeilC51不同版本的差別 719
附錄C 代碼優(yōu)化723
附錄DC51編譯器的限制 726
附錄E 關(guān)于配套光盤及硬件目標(biāo)板727
參考文獻 728
德國Keil公司*推出的C51編譯器是一種符合工業(yè)標(biāo)準(zhǔn)的8051 C語言開發(fā)工具,在業(yè)界獲得了廣泛應(yīng)用,被公認(rèn)為是最有效的單片機開發(fā)手段之一。Keil公司于2010年推出了全新的開發(fā)環(huán)境Vision4,其中集成了V9.00版本的C51編譯器、Debug調(diào)試器、RTX51 Tiny實時操作系統(tǒng)等,全面支持8051單片機主流產(chǎn)品及其眾多的派生系列。
Keil C51編譯器具有如下優(yōu)點。
(1)經(jīng)過優(yōu)化編譯后生成的代碼,其效率接近于匯編語言生成的代碼。
(2)支持所有8051系列單片機,提供對所有外圍硬件部件的操作。
(3)無論在有無工作寄存器區(qū)轉(zhuǎn)換的情況下,都能產(chǎn)生快速中斷代碼。
(4)支持Atmel,Dallas,Infineon,Philips和Temic等公司8051衍生產(chǎn)品上的雙數(shù)據(jù)指針及高速算術(shù)單元(arithmeticunits)。
(5)能夠在整個應(yīng)用程序中執(zhí)行全局寄存器優(yōu)化。
(6)所有應(yīng)用工具均可產(chǎn)生詳細(xì)警告信息和錯誤信息,幫助用戶處理難以尋找的問題。
(7)支持再入功能和寄存器區(qū)的獨立代碼,便于中斷服務(wù)程序和多任務(wù)應(yīng)用程序的執(zhí)行。
(8)采用分組方式執(zhí)行代碼分組和調(diào)試,用戶程序代碼可以輕松突破64KB空間的限制。
全新集成開發(fā)環(huán)境Vision4具有強大的項目管理功能,包括源程序文件、開發(fā)工具選項以及編程說明等。Vision4內(nèi)部集成了一個器件數(shù)據(jù)庫(devicedatabase),其中儲存了各種型號單片機的片上存儲器和集成外圍功能信息,通過器件數(shù)據(jù)庫可以自動設(shè)置C51編譯器、A51匯編器、BL51/Lx51連接定位器、Debug調(diào)試器等開發(fā)工具的功能選項,充分滿足用戶使用特定單片機的要求。集成仿真調(diào)試功能允許在統(tǒng)一的Vision4環(huán)境下進入Debug調(diào)試器,提供純軟件模擬仿真(Simulator)和多種硬件驅(qū)動調(diào)試。Simulator可以在沒有單片機硬件的條件下在PC上用純軟件模擬方式完成單片機應(yīng)用程序仿真調(diào)試,硬件驅(qū)動Monitor-51可以將帶有MON51監(jiān)控程序的硬件目標(biāo)板與Vision4無縫連接,直接對目標(biāo)板進行仿真調(diào)試而無須采用昂貴的硬件仿真器。
本書完整地闡述了Keil C51開發(fā)工具的功能和使用方法,力求先進性和實用性,給出了大量具體應(yīng)用實例,不僅介紹了Keil C51自帶Simulator軟件模擬仿真調(diào)試方法,還介紹了Keil C51與Proteus軟件聯(lián)機,實現(xiàn)8051單片機在線虛擬仿真調(diào)試方法,同時對廣大讀者所關(guān)心的利用MON51監(jiān)控程序設(shè)計自己硬件目標(biāo)板的方法做了詳細(xì)介紹,并在隨書光盤中給出了硬件目標(biāo)板的電路原理圖。
全書共分10章:
第1章闡述8051單片機存儲器結(jié)構(gòu),以及在Vision4集成開發(fā)環(huán)境下進行C51程序設(shè)計和編譯調(diào)試的基本方法。
第2章闡述C51程序設(shè)計基礎(chǔ)知識,詳細(xì)介紹C51的數(shù)據(jù)類型、基本語法、變量及其存儲模式、函數(shù)、數(shù)組與指針等。
第3章闡述Vision4集成開發(fā)環(huán)境,詳細(xì)介紹了工作環(huán)境、目標(biāo)程序的仿真調(diào)試以及各種應(yīng)用選項的設(shè)置方法。
第4章闡述Keil C51編譯器,介紹了各種編譯控制命令、數(shù)據(jù)調(diào)用協(xié)議,給出了全部C51庫函數(shù)及其應(yīng)用范例。
第5章闡述A51宏匯編器,介紹了各種匯編偽指令、宏處理以及匯編控制命令。
第6章闡述BL51/Lx51鏈接定位器與實用工具,詳細(xì)介紹了各種鏈接控制命令、符號轉(zhuǎn)換工具OH51、庫管理工具LIB51的使用方法。
第7章闡述RTX51實時多任務(wù)操作系統(tǒng),介紹了RTX51 TINY的功能和使用方法。
第8章闡述8051單片機片內(nèi)資源的C51應(yīng)用編程,介紹了C51編程的基本原則、常見問題與解決方法,給出了中斷系統(tǒng)、定時器/計數(shù)器、串行口、片內(nèi)FLASH IAP等資源的具體應(yīng)用實例。
第9章闡述8051單片機片外擴展的C51應(yīng)用編程,給出了LED數(shù)碼管、非編碼矩陣鍵盤、點陣字符型和點陣圖型LCD、D/A及A/D轉(zhuǎn)換、I2C總線擴展、外部存儲器擴展等具體應(yīng)用實例。
第10章闡述Keil C51綜合應(yīng)用編程,介紹了C51編程的若干實際應(yīng)用技巧,C51與匯編語言混合編程方法以及如何在Vision4中應(yīng)用硬件目標(biāo)板,給出了紅外遙控系統(tǒng)、簡易電子琴、帶農(nóng)歷的電子萬年歷、電子密碼鎖、DS18B20多點溫度監(jiān)測系統(tǒng)、STH11數(shù)字溫-濕度測量系統(tǒng)、單片機SD卡讀寫接口等大量綜合應(yīng)用實例。2100433B