單片機C51語言是目前最流行的MCS51系列單片機程序設(shè)計語言。《單片機C語言教程》以“基礎(chǔ)、實用”為原則,通過基礎(chǔ)知識與大量實例結(jié)合的形式,循序漸進地講解了C51應(yīng)用編程的各種方法與技巧,是一本重在應(yīng)用、兼顧理論的實用教程。
全書共9章,通過大量的典型實例全面詳細(xì)地講述了單片機的c語言程序設(shè)計規(guī)范及應(yīng)用案例。第1章為基礎(chǔ)知識,首先簡要介紹了C51單片機的硬件結(jié)構(gòu)、指令系統(tǒng)及開發(fā)應(yīng)用特點;第2章~第7章介紹C51編程語言的基本規(guī)范、常用開發(fā)工具的使用、C語言與匯編混合編程等知識;第8章結(jié)合單片機的硬件資源講解了如何應(yīng)用C51語占進行編程操作;第9章介紹了在各個領(lǐng)域中常用到的一些C語言編程典型案例,以供讀者在學(xué)習(xí)和工作中參考,同時對所學(xué)知識融會貫通,從而開闊思路,提高實際工作能力。
《單片機C語言教程》特別適合單片機及其編程語言的初學(xué)者,可作為大專院校電子信息類、通信類、自動化類、機電類等專業(yè)學(xué)生學(xué)習(xí)與實踐單片機c語言程序設(shè)計的教材或參考書,或進行單片機課程設(shè)計、畢業(yè)設(shè)計和大學(xué)生電子設(shè)計競賽的參考用書,也可供從事自動控制、智能儀器儀表、電力電子、機電一體化等專業(yè)的單片機應(yīng)用開發(fā)技術(shù)人員參考。
第一臺電子數(shù)字計算機的誕生引發(fā)了20世紀(jì)的電子工業(yè)革命,而單片機的問世和飛速發(fā)展則開創(chuàng)了計算機工程應(yīng)用的另一個新時代。由于單片機具有高性價比、高速度、低功耗和方便功能擴展等優(yōu)點,被廣泛應(yīng)用于工業(yè)控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、自動測試系統(tǒng)、智能儀表以及各類功能模塊等廣闊領(lǐng)域。單片機技術(shù)也成為電子信息類各專業(yè)的一門必修課程。
Intel公司的MCS-51單片機是目前在我國應(yīng)用最廣泛的單片機之一。20世紀(jì)80年代中期,Intel公司將8051內(nèi)核使用權(quán)以專利互換或出售形式轉(zhuǎn)給世界許多著名IC制造廠商,如Philips、Atmel、Dallas、Infineon、ADI、TI、Winbond和Siliconc Labs公司等。這樣,8051就變成有眾多制造廠商支持、發(fā)展出上百個品種的大家族。到目前為止,其他任何一個單片機系列均未發(fā)展到如此的規(guī)模。隨著硬件的發(fā)展,8051軟件工具已有C級編譯器及實時多任務(wù)操作系統(tǒng)RTOS(Real Time Operating system)。在RTOS的支持下,單片機的程序設(shè)計更簡單、更可靠,因而8051是單片機教學(xué)的首選機型。
單片機的程序設(shè)計可以采用匯編語言和單片機C51語言。C51是在通用C語言基礎(chǔ)上發(fā)展起來的專門用于51系列單片機編程的編譯型高級語言。與匯編語言相比,C51具備可讀性、可移植性、可維護性好、編譯效率高等特點,兼具功能豐富的函數(shù)庫,且可直接實現(xiàn)對系統(tǒng)硬件的控制,以上特點使C51語言逐漸成為單片機應(yīng)用中的主流編程語言。目前國內(nèi)最流行的C51編譯器是Keil Software公司推出的Keil C51。
第1章 單片機基礎(chǔ)知識
1.1 單片機簡介
1.1.1 單片機的發(fā)展史
1.1.2 單片機的基本組成
1.1.3 單片機的特點
1.1.4 單片機的應(yīng)用領(lǐng)域
1.1.5 單片機的發(fā)展方向
1.1.6 8051單片機系列成員
1.2 8051的內(nèi)部結(jié)構(gòu)
1.2.1 中央處理器
1.2.2 存儲器組織
1.2.3 片內(nèi)并行接口
1.2.4 8051的內(nèi)部資源
1.2.5 8051的芯片引腳
1.2.6 單片機的工作方式
1.3 8051的系統(tǒng)擴展
1.3.1 外部總線的擴展
1.3.2 外部程序存儲器的擴展
1.3.3 外部數(shù)據(jù)存儲器的擴展
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è)計
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)基本知識
2.3.2 在Keil μVision下創(chuàng)建應(yīng)用程序
2.3.3 在Keil μVision下調(diào)試程序
2.4 C51程序設(shè)計簡介
2.5 本章小結(jié)
第3章 C51數(shù)據(jù)與運算
3.1 數(shù)據(jù)與數(shù)據(jù)類型
3.2 常量與變量
3.3 c51數(shù)據(jù)的存儲類型與8051存儲器結(jié)構(gòu)
3.3.1 存儲類型
3.3.2 存儲模式
3.4 8051特殊功能寄存器(sFR)及其c51定義
3.5 8051并行接口及其c51定義
3.6 位變量(BIT)及其C51定義
3.7 c51的運算符與表達(dá)式
3.7.1 C51的算術(shù)運算符與算術(shù)表達(dá)式
3.7.2 c51的關(guān)系運算符與關(guān)系表達(dá)式
3.7.3 c51的邏輯運算符與邏輯表達(dá)式
3.7.4 c51的條件運算符與條件表達(dá)式
3.7.5 c51的逗號運算符與逗號表達(dá)式
3.7.6 C51中的位操作符及其表達(dá)式
3.7.7 復(fù)合運算符及其表達(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ù)組與存儲空間
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 對被調(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è)計
7.1 基本概念
7.2 模塊化程序開發(fā)
7.3 連接/定位器
7.4 C51語言與匯編語言的混合編程
7.4.1 Keil C5l和A51接口所涉及的幾個主要問題
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ù)器(T/C)
8.2.1 與T/C有關(guān)的特殊功能寄存器
8.2.2 定時器/計數(shù)器的工作方式
8.2.3 定時器/計數(shù)器的初始化
8.2.4 定時器/計數(shù)器的應(yīng)用實例
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與單片機的連接
9.1.3 讀寫X5045的C語言程序
9.2 涓流充電時鐘保持芯片DSl302
9.2.1 DS1302簡介
9.2.2 DS1302與單片機的連接
9.2.3 讀寫DSl302的C語言程序
9.3 串行EEPR()M芯片AT24C04/512
9.3.1 AT24C04/512簡介
9.3.2 AT24C04/512與單片機的連接
9.3.3 讀寫AT24C04/AT24C512的C語言程序
9.4 12C接口的實時時鐘/日歷芯片P8563
9.4.1 P8563簡介
9.4.2 P8563與單片機的連接
9.4.3 讀寫P8563的C語言程序
9.5 單芯片溫度測量芯片DS1820
9.5.1 DS1820簡介
9.5.2 DS1820與單片機的連接
9.5.3 讀寫DSl820的C語言程序
9.6 2路8位串行模/數(shù)轉(zhuǎn)換器TLC0832
9.6.1 TLC0832簡介
9.6.2 TLC0832與單片機的連接
9.6.3 讀寫TLC0832的C語言程序
9.7 LED驅(qū)動芯片MAX7219/7221
9.7.1 MAx7219/722l簡介
9.7.2 MAX7219/7221與單片機的連接
9.7.3 基于MAx7221在LED上顯示十六位數(shù)據(jù)的C語言程序
9.8 1602字符液晶模塊控制
9.8.1 1602字符液晶模塊簡介
9.8.2 1602字符液晶模塊與單片機的連接
9.8.3 控制1602字符液晶顯示的C語言程序
9.9 語音錄放芯片ISD4002
9.9.1 ISD4002芯片簡介
9.9.2 ISD4002與單片機的連接
9.9.3 基于ISD4002的語音錄放系統(tǒng)的C語言編程
9.1 0本章小結(jié)
參考文獻