本書共分10章,主要介紹單片機(jī)硬件組成和軟件操作環(huán)境、C51編程語言基礎(chǔ)知識、單片機(jī)并行I/O端口、顯示與鍵盤接口技術(shù)、中斷與定時(shí)/計(jì)數(shù)器、串口通信技術(shù)、A/D與D/A轉(zhuǎn)換接口以及單總線和I2C總線技術(shù)等。
單片機(jī)是計(jì)算機(jī)的一個(gè)重要分支,它具有體積小、價(jià)格低、控制功能強(qiáng)等特點(diǎn),廣泛應(yīng)用于工業(yè)控制、智能化儀器儀表、家用電器、網(wǎng)絡(luò)通信等領(lǐng)域,極大地提高了這些領(lǐng)域的智能化程度。單片機(jī)技術(shù)的掌握已成為電子信息類、通信類、自動類等專業(yè)學(xué)生與技術(shù)人員必備的一項(xiàng)技能。
本書是在作者長期從事高職高專單片機(jī)技術(shù)課程教學(xué)的基礎(chǔ)上,以國家的教學(xué)改革方針為指導(dǎo),以示范院校課程建設(shè)為要求編寫的。本書每章后都設(shè)有針對性的任務(wù),突出技能,從內(nèi)容安排、教與學(xué)、做與練等方面都體現(xiàn)了高職教育的教學(xué)特色。本書特點(diǎn)包括以下幾個(gè)方面。
1.采用C語言編程目前,很多高等院校的單片機(jī)技術(shù)課程教學(xué)仍然采用匯編語言編寫控制程序。但匯編語言編寫的程序可讀性差,不易理解。尤為重要的是,現(xiàn)在單片機(jī)應(yīng)用系統(tǒng)的開發(fā),基本上不用匯編語言編程,使用C語言進(jìn)行程序設(shè)計(jì)已成為軟件開發(fā)的一個(gè)主流。用C語言來編寫目標(biāo)系統(tǒng)軟件,會大大縮短開發(fā)周期,且明顯地增加軟件的可讀性,便于改進(jìn)和擴(kuò)充。采用C語言編程是單片機(jī)課程教學(xué)改革的重要內(nèi)容。
2.以任務(wù)驅(qū)動課程教學(xué)先學(xué)理論知識,然后引出相關(guān)任務(wù),通過任務(wù)中的技能訓(xùn)練來鞏固理論知識,掌握相關(guān)概念、硬件電路的設(shè)計(jì)與制作及軟件的編程技巧,這種以理論指導(dǎo)實(shí)踐的方法符合學(xué)生的認(rèn)知規(guī)律和職業(yè)教育的理念。
全書共安排了25個(gè)具有代表性的任務(wù),每個(gè)任務(wù)均設(shè)置了目的與要求,任務(wù)內(nèi)容緊扣該章節(jié)的理論知識,又避免過大過繁,體現(xiàn)了技能訓(xùn)練的綜合性與系統(tǒng)性。
3.內(nèi)容安排更合理本書在內(nèi)容安排上充分考慮了讀者的認(rèn)知規(guī)律、單片機(jī)課程的特點(diǎn)以及任務(wù)的綜合性,首先介紹了單片機(jī)的硬件結(jié)構(gòu),而后給出了C51語言編程基礎(chǔ)知識,將顯示與鍵盤接口技術(shù)放在中斷、定時(shí)器和串行通信之前,這樣在學(xué)習(xí)中斷、定時(shí)器和串行通信時(shí)便于引入按鍵顯示接口技術(shù),使任務(wù)更具有綜合性和實(shí)用性,也便于知識、技能的靈活運(yùn)用。
4.增加了近年來使用較多的I2C總線技術(shù)和單總線技術(shù)隨著單片機(jī)技術(shù)的不斷發(fā)展,新型元器件與新技術(shù)層出不窮,本書引入了目前使用較普遍的元器件與新技術(shù),第10章中安排了數(shù)字溫度傳感器DS18B20、具有I2C總線結(jié)構(gòu)的AD和DA轉(zhuǎn)換器PCF8591及EEPROM AT24C04新型元器件的應(yīng)用,使學(xué)生通過該內(nèi)容的學(xué)習(xí)緊跟當(dāng)前單片機(jī)的新技術(shù)。
本書由彭志剛?cè)沃骶,謝芳芳、李力、趙麗任副主編。彭志剛負(fù)責(zé)統(tǒng)稿,并編寫了第1、2、3、10章。趙麗、謝芳芳編寫了第6章和第9章,李力編寫了第8章,趙自鵬編寫了第4章,何忠勝編寫了第5章,陳新華編寫第7章。
本書的編寫參閱了大量單片機(jī)技術(shù)方面的教材和其他文獻(xiàn),在此謹(jǐn)向作者致以衷心的謝意。
由于編者水平有限,書中的錯(cuò)誤和疏漏之處在所難免,歡迎讀者提出批評與建議。
編者
機(jī)工授權(quán)書
前言
第1章單片機(jī)概述與Keil C51軟件
的使用
1.1認(rèn)識單片機(jī)
1.2 Keil C51軟件的使用
1.3Keil C51軟件應(yīng)用
任務(wù)11用Keil C51軟件生成
HEX文件
本章小結(jié)
習(xí)題
第2章51系列單片機(jī)的結(jié)構(gòu)和
原理
2.151系列單片機(jī)的組成
2.1.1內(nèi)部結(jié)構(gòu)
2.1.2引腳說明
2.1.3三總線結(jié)構(gòu)
2.1.4存儲器配置
2.2單片機(jī)的時(shí)鐘及復(fù)位
2.2.1振蕩器和時(shí)鐘電路
2.2.2時(shí)序及有關(guān)概念
2.2.3復(fù)位方式
2.351系列單片機(jī)存儲器的讀/寫
任務(wù)21查看單片機(jī)ROM存儲單元的
機(jī)器碼
任務(wù)22查看單片機(jī)RAM單元的數(shù)據(jù)
本章小結(jié)
習(xí)題
第3章C51語言基礎(chǔ)知識
3.1C51語言概述
3.1.1C51語言的特點(diǎn)
3.1.2C語言程序結(jié)構(gòu)
3.1.3C語言的符號與術(shù)語
3.2數(shù)據(jù)結(jié)構(gòu)
3.2.1數(shù)據(jù)類型
3.2.2常量與變量
3.2.3存儲器類型
3.2.4存儲器模式
3.3C51運(yùn)算符與表達(dá)式
3.3.1算術(shù)運(yùn)算
3.3.2賦值運(yùn)算
3.3.3關(guān)系運(yùn)算
3.3.4邏輯運(yùn)算
3.3.5位運(yùn)算
3.3.6自增、自減運(yùn)算
3.3.7復(fù)合賦值運(yùn)算
3.4C語言程序的三種結(jié)構(gòu)及相關(guān)語句
3.4.1順序結(jié)構(gòu)
3.4.2分支結(jié)構(gòu)
3.4.3循環(huán)結(jié)構(gòu)
3.4.4break語句和continue語句
3.5數(shù)組
3.5.1一維數(shù)組
3.5.2二維數(shù)組
3.5.3字符數(shù)組
3.6C51函數(shù)
3.7C51語言編程應(yīng)用
任務(wù)31分支結(jié)構(gòu)程序設(shè)計(jì)應(yīng)用
任務(wù)32循環(huán)結(jié)構(gòu)程序設(shè)計(jì)應(yīng)用
本章小結(jié)
習(xí)題
第4章并行輸入/輸出口
4.151系列單片機(jī)的并行輸入/輸出口
4.1.1P0口
4.1.2P1口
4.1.3P2口
4.1.4P3口
4.1.5并行I/O口
4.2并行I/O口的應(yīng)用
任務(wù)41流水燈設(shè)計(jì)
任務(wù)42障礙物檢測
本章小結(jié)
習(xí)題
第5章顯示與鍵盤接口技術(shù)
5.1LED顯示器及其接口
5.1.1LED顯示器的結(jié)構(gòu)及工作原理
5.1.2軟件譯碼LED顯示器接口
5.1.3點(diǎn)陣LED顯示接口
5.2LCD顯示器及其接口
5.2.1LCD顯示器的結(jié)構(gòu)及工作原理
5.2.21602液晶顯示器
5.3鍵盤及其接口
5.3.1鍵的狀態(tài)輸入及去抖動
5.3.2獨(dú)立式鍵盤及其接口
5.3.3矩陣式鍵盤及其接口
5.4顯示及鍵盤接口技術(shù)的應(yīng)用
任務(wù)51靜態(tài)顯示方式的應(yīng)用
任務(wù)52動態(tài)顯示方式的應(yīng)用
任務(wù)53LED點(diǎn)陣的應(yīng)用
任務(wù)541602液晶顯示器的應(yīng)用
任務(wù)55獨(dú)立式鍵盤的應(yīng)用
任務(wù)56矩陣式鍵盤的應(yīng)用
本章小結(jié)
習(xí)題
第6章51系列單片機(jī)的中斷系統(tǒng)
及定時(shí)器
6.1中斷系統(tǒng)
6.1.1中斷系統(tǒng)概述
6.1.2中斷系統(tǒng)的結(jié)構(gòu)
6.2中斷處理過程
6.2.1中斷響應(yīng)條件和時(shí)間
6.2.2中斷響應(yīng)過程
6.3定時(shí)器/計(jì)數(shù)器
6.3.1定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)及
工作原理
6.3.2定時(shí)器的專用寄存器
6.3.3定時(shí)器的工作方式
6.3.4定時(shí)器應(yīng)用總結(jié)
6.4中斷及定時(shí)器應(yīng)用
任務(wù)61外部中斷0的應(yīng)用
任務(wù)62測頻儀的設(shè)計(jì)
任務(wù)63秒表的設(shè)計(jì)
本章小結(jié)
習(xí)題
第7章串行輸入/輸出接口
7.1串行通信概述
7.1.1串行通信的基本方法
7.1.2串行通信中的幾個(gè)問題
7.2串行通信標(biāo)準(zhǔn)
7.2.1RS232C串行通信標(biāo)準(zhǔn)
7.2.2RS422A與RS485串行
通信標(biāo)準(zhǔn)
7.3單片機(jī)的串行I/O口
7.3.1串行口專用寄存器
7.3.2串行口的四種工作方式
7.4串行口的應(yīng)用
任務(wù)71串行口在方式0下的應(yīng)用
任務(wù)72雙機(jī)通信
本章小結(jié)
習(xí)題
第8章輸入通道和輸出通道的
接口技術(shù)
8.1輸入/輸出通道概述
8.1.1輸入通道概述
8.1.2輸出通道概述
8.1.3光隔離接口
8.2AD轉(zhuǎn)換器
8.2.1AD轉(zhuǎn)換器的基本知識
8.2.2ADC0809及其應(yīng)用
8.3DA轉(zhuǎn)換器
8.3.1DA轉(zhuǎn)換器的基本知識
8.3.2DAC0832及其應(yīng)用
8.4AD和DA轉(zhuǎn)換器的應(yīng)用
任務(wù)81ADC0809的應(yīng)用
任務(wù)82DAC0832輸出波形
本章小結(jié)
習(xí)題
第9章電動機(jī)接口電路
9.1直流電動機(jī)接口電路
9.1.1直流電動機(jī)的工作原理
9.1.2直流電動機(jī)應(yīng)用舉例
9.2步進(jìn)電動機(jī)接口電路
9.2.1步進(jìn)電動機(jī)簡介
9.2.2步進(jìn)電動機(jī)的控制系統(tǒng)和基本
控制方法
9.2.3步進(jìn)電動機(jī)步數(shù)、轉(zhuǎn)速的確定
9.3電動機(jī)接口技術(shù)的應(yīng)用
任務(wù)91直流電動機(jī)正反轉(zhuǎn)控制
任務(wù)92步進(jìn)電動機(jī)正反轉(zhuǎn)控制
本章小結(jié)
習(xí)題
第10章其他接口電路
10.1數(shù)字溫度傳感器DS18B20
10.1.1DS18B20的特點(diǎn)
10.1.2DS18B20的結(jié)構(gòu)
10.1.3DS18B20的操作命令和時(shí)序
10.1.4DS18B20的使用方法
10.2PCF8591功能簡介
10.3I2C串行總線擴(kuò)展技術(shù)
10.3.1I2C串行總線概述
10.3.2EEPROM芯片簡介
10.4其他接口電路的應(yīng)用
任務(wù)10.1數(shù)字溫度計(jì)的設(shè)計(jì)
任務(wù)10.2基于PCF8591簡易信號發(fā)生器
的設(shè)計(jì)
任務(wù)10.3EEPROM AT24C04讀寫控制
本章小結(jié)
習(xí)題
參考文獻(xiàn)