單片機(jī)C51語言是目前最流行的MCS51系列單片機(jī)程序設(shè)計(jì)語言!秵纹瑱C(jī)C語言教程》以“基礎(chǔ)、實(shí)用”為原則,通過基礎(chǔ)知識(shí)與大量實(shí)例結(jié)合的形式,循序漸進(jìn)地講解了C51應(yīng)用編程的各種方法與技巧,是一本重在應(yīng)用、兼顧理論的實(shí)用教程。
全書共9章,通過大量的典型實(shí)例全面詳細(xì)地講述了單片機(jī)的c語言程序設(shè)計(jì)規(guī)范及應(yīng)用案例。第1章為基礎(chǔ)知識(shí),首先簡要介紹了C51單片機(jī)的硬件結(jié)構(gòu)、指令系統(tǒng)及開發(fā)應(yīng)用特點(diǎn);第2章~第7章介紹C51編程語言的基本規(guī)范、常用開發(fā)工具的使用、C語言與匯編混合編程等知識(shí);第8章結(jié)合單片機(jī)的硬件資源講解了如何應(yīng)用C51語占進(jìn)行編程操作;第9章介紹了在各個(gè)領(lǐng)域中常用到的一些C語言編程典型案例,以供讀者在學(xué)習(xí)和工作中參考,同時(shí)對(duì)所學(xué)知識(shí)融會(huì)貫通,從而開闊思路,提高實(shí)際工作能力。
《單片機(jī)C語言教程》特別適合單片機(jī)及其編程語言的初學(xué)者,可作為大專院校電子信息類、通信類、自動(dòng)化類、機(jī)電類等專業(yè)學(xué)生學(xué)習(xí)與實(shí)踐單片機(jī)c語言程序設(shè)計(jì)的教材或參考書,或進(jìn)行單片機(jī)課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)和大學(xué)生電子設(shè)計(jì)競賽的參考用書,也可供從事自動(dòng)控制、智能儀器儀表、電力電子、機(jī)電一體化等專業(yè)的單片機(jī)應(yīng)用開發(fā)技術(shù)人員參考。
第一臺(tái)電子數(shù)字計(jì)算機(jī)的誕生引發(fā)了20世紀(jì)的電子工業(yè)革命,而單片機(jī)的問世和飛速發(fā)展則開創(chuàng)了計(jì)算機(jī)工程應(yīng)用的另一個(gè)新時(shí)代。由于單片機(jī)具有高性價(jià)比、高速度、低功耗和方便功能擴(kuò)展等優(yōu)點(diǎn),被廣泛應(yīng)用于工業(yè)控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、自動(dòng)測試系統(tǒng)、智能儀表以及各類功能模塊等廣闊領(lǐng)域。單片機(jī)技術(shù)也成為電子信息類各專業(yè)的一門必修課程。
Intel公司的MCS-51單片機(jī)是目前在我國應(yīng)用最廣泛的單片機(jī)之一。20世紀(jì)80年代中期,Intel公司將8051內(nèi)核使用權(quán)以專利互換或出售形式轉(zhuǎn)給世界許多著名IC制造廠商,如Philips、Atmel、Dallas、Infineon、ADI、TI、Winbond和Siliconc Labs公司等。這樣,8051就變成有眾多制造廠商支持、發(fā)展出上百個(gè)品種的大家族。到目前為止,其他任何一個(gè)單片機(jī)系列均未發(fā)展到如此的規(guī)模。隨著硬件的發(fā)展,8051軟件工具已有C級(jí)編譯器及實(shí)時(shí)多任務(wù)操作系統(tǒng)RTOS(Real Time Operating system)。在RTOS的支持下,單片機(jī)的程序設(shè)計(jì)更簡單、更可靠,因而8051是單片機(jī)教學(xué)的首選機(jī)型。
單片機(jī)的程序設(shè)計(jì)可以采用匯編語言和單片機(jī)C51語言。C51是在通用C語言基礎(chǔ)上發(fā)展起來的專門用于51系列單片機(jī)編程的編譯型高級(jí)語言。與匯編語言相比,C51具備可讀性、可移植性、可維護(hù)性好、編譯效率高等特點(diǎn),兼具功能豐富的函數(shù)庫,且可直接實(shí)現(xiàn)對(duì)系統(tǒng)硬件的控制,以上特點(diǎn)使C51語言逐漸成為單片機(jī)應(yīng)用中的主流編程語言。目前國內(nèi)最流行的C51編譯器是Keil Software公司推出的Keil C51。
第1章 單片機(jī)基礎(chǔ)知識(shí)
1.1 單片機(jī)簡介
1.1.1 單片機(jī)的發(fā)展史
1.1.2 單片機(jī)的基本組成
1.1.3 單片機(jī)的特點(diǎn)
1.1.4 單片機(jī)的應(yīng)用領(lǐng)域
1.1.5 單片機(jī)的發(fā)展方向
1.1.6 8051單片機(jī)系列成員
1.2 8051的內(nèi)部結(jié)構(gòu)
1.2.1 中央處理器
1.2.2 存儲(chǔ)器組織
1.2.3 片內(nèi)并行接口
1.2.4 8051的內(nèi)部資源
1.2.5 8051的芯片引腳
1.2.6 單片機(jī)的工作方式
1.3 8051的系統(tǒng)擴(kuò)展
1.3.1 外部總線的擴(kuò)展
1.3.2 外部程序存儲(chǔ)器的擴(kuò)展
1.3.3 外部數(shù)據(jù)存儲(chǔ)器的擴(kuò)展
1.4 8051指令系統(tǒng)
1.4.1 指令基本格式
1.4.2 尋址方式
1.4.3 指令說明
1.4.4 偽指令
1.4.5 指令系統(tǒng)表
1.5 實(shí)用匯編程序設(shè)計(jì)
1.5.1 順序程序
1.5.2 分支程序
1.5.3 循環(huán)程序
1.5.4 查表程序
1.5.5 散轉(zhuǎn)程序
1.6 本章小結(jié)
第2章 C與8051
2.1 8051的編程語言
2.2 C51編譯器
2.3 Keil C51開發(fā)工具
2.3.1 Keil C5l開發(fā)系統(tǒng)基本知識(shí)
2.3.2 在Keil μVision下創(chuàng)建應(yīng)用程序
2.3.3 在Keil μVision下調(diào)試程序
2.4 C51程序設(shè)計(jì)簡介
2.5 本章小結(jié)
第3章 C51數(shù)據(jù)與運(yùn)算
3.1 數(shù)據(jù)與數(shù)據(jù)類型
3.2 常量與變量
3.3 c51數(shù)據(jù)的存儲(chǔ)類型與8051存儲(chǔ)器結(jié)構(gòu)
3.3.1 存儲(chǔ)類型
3.3.2 存儲(chǔ)模式
3.4 8051特殊功能寄存器(sFR)及其c51定義
3.5 8051并行接口及其c51定義
3.6 位變量(BIT)及其C51定義
3.7 c51的運(yùn)算符與表達(dá)式
3.7.1 C51的算術(shù)運(yùn)算符與算術(shù)表達(dá)式
3.7.2 c51的關(guān)系運(yùn)算符與關(guān)系表達(dá)式
3.7.3 c51的邏輯運(yùn)算符與邏輯表達(dá)式
3.7.4 c51的條件運(yùn)算符與條件表達(dá)式
3.7.5 c51的逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式
3.7.6 C51中的位操作符及其表達(dá)式
3.7.7 復(fù)合運(yùn)算符及其表達(dá)式
3.8 本章小結(jié)
第4章 C51流程控制語句
4.1 c51語言程序的基本結(jié)構(gòu)及流程圖
4.1.1 順序結(jié)構(gòu)及其流程圖
4.1.2 選擇結(jié)構(gòu)及其流程圖
4.1.3 循環(huán)結(jié)構(gòu)及其流程圖
4.2 選擇語句
4.2.1 選擇語句if
4.2.2 switch/case語句
4.3 循環(huán)語句
4.3.1 while語句
4.3.2 do-while語句
4.3.3 for循環(huán)語句
4.3.4 循環(huán)結(jié)束語句
4.4 本章小結(jié)
第5章 C51構(gòu)造數(shù)據(jù)類型
5.1 數(shù)組
5.1.1 一維數(shù)組
5.1.2 二維數(shù)組
5.1.3 字符數(shù)組
5.1.4 查表
5.1.5 數(shù)組與存儲(chǔ)空間
5.2 指針
5.2.1 指針的基本概念
5.2.2 數(shù)組指針和指向數(shù)組的指針變量
5.2.3 指向多維數(shù)組的指針和指針變量
5.2.4 Keil C5l的指針類型的特殊要求
5.3 結(jié)構(gòu)(Stfuction)
5.3.1 結(jié)構(gòu)的定義和引用
5.3.2 結(jié)構(gòu)數(shù)組
5.3.3 指向結(jié)構(gòu)類型數(shù)據(jù)的指針
5.4 聯(lián)合(union)
5.5 枚舉(enum)
5.6 本章小結(jié)
第6章 C51的函數(shù)
6.1 函數(shù)的分類
6.2 函數(shù)的定義
6.3 函數(shù)的參數(shù)和函數(shù)值
6.4 函數(shù)的調(diào)用
6.4.1 函數(shù)調(diào)用的一般形式
6.4.2 函數(shù)調(diào)用的方式
6.4.3 對(duì)被調(diào)用函數(shù)的說明
6.4.4 函數(shù)的嵌套
6.4.5 函數(shù)的遞歸調(diào)用
6.4.6 用函數(shù)指針變量調(diào)用函數(shù)
6.5 數(shù)組、指針作為函數(shù)的參數(shù)
6.5.1 用數(shù)組作為函數(shù)的參數(shù)
6.5.2 用指向函數(shù)的指針變量作為函數(shù)的參數(shù)
6.5.3 用指向結(jié)構(gòu)的指針變量作函數(shù)的參數(shù)
6.5.4 返回指針的函數(shù)
6.6 本章小節(jié)
第7章 模塊化程序設(shè)計(jì)
7.1 基本概念
7.2 模塊化程序開發(fā)
7.3 連接/定位器
7.4 C51語言與匯編語言的混合編程
7.4.1 Keil C5l和A51接口所涉及的幾個(gè)主要問題
7.4.2 在C5l中調(diào)用匯編程序應(yīng)用舉例
7.4.3 Keil C51初始化代碼
7.5 程序優(yōu)化
7.6 本章小結(jié)
第8章 8051內(nèi)部資源的c51編程
8.1 中斷
8.1.1 中斷源
8.1.2 中斷的控制
8.1.3 中斷響應(yīng)
8.1.4 寄存器組切換
8.1.5 中斷編程
8.2 定時(shí)器/計(jì)數(shù)器(T/C)
8.2.1 與T/C有關(guān)的特殊功能寄存器
8.2.2 定時(shí)器/計(jì)數(shù)器的工作方式
8.2.3 定時(shí)器/計(jì)數(shù)器的初始化
8.2.4 定時(shí)器/計(jì)數(shù)器的應(yīng)用實(shí)例
8.3 串行口
8.3.1 與串行口有關(guān)的SFR
8.3.2 串行口的工作方式
8.3.3 串行口初始化
8.3.4 串行口應(yīng)用范例
8.4 本章小結(jié)
第9章 C語言編程示例
9.1 帶有串行EEPR()M的cPu監(jiān)控器X5045
9.1.1 X5043/5045簡介
9.1.2 X5045與單片機(jī)的連接
9.1.3 讀寫X5045的C語言程序
9.2 涓流充電時(shí)鐘保持芯片DSl302
9.2.1 DS1302簡介
9.2.2 DS1302與單片機(jī)的連接
9.2.3 讀寫DSl302的C語言程序
9.3 串行EEPR()M芯片AT24C04/512
9.3.1 AT24C04/512簡介
9.3.2 AT24C04/512與單片機(jī)的連接
9.3.3 讀寫AT24C04/AT24C512的C語言程序
9.4 12C接口的實(shí)時(shí)時(shí)鐘/日歷芯片P8563
9.4.1 P8563簡介
9.4.2 P8563與單片機(jī)的連接
9.4.3 讀寫P8563的C語言程序
9.5 單芯片溫度測量芯片DS1820
9.5.1 DS1820簡介
9.5.2 DS1820與單片機(jī)的連接
9.5.3 讀寫DSl820的C語言程序
9.6 2路8位串行模/數(shù)轉(zhuǎn)換器TLC0832
9.6.1 TLC0832簡介
9.6.2 TLC0832與單片機(jī)的連接
9.6.3 讀寫TLC0832的C語言程序
9.7 LED驅(qū)動(dòng)芯片MAX7219/7221
9.7.1 MAx7219/722l簡介
9.7.2 MAX7219/7221與單片機(jī)的連接
9.7.3 基于MAx7221在LED上顯示十六位數(shù)據(jù)的C語言程序
9.8 1602字符液晶模塊控制
9.8.1 1602字符液晶模塊簡介
9.8.2 1602字符液晶模塊與單片機(jī)的連接
9.8.3 控制1602字符液晶顯示的C語言程序
9.9 語音錄放芯片ISD4002
9.9.1 ISD4002芯片簡介
9.9.2 ISD4002與單片機(jī)的連接
9.9.3 基于ISD4002的語音錄放系統(tǒng)的C語言編程
9.1 0本章小結(jié)
參考文獻(xiàn)