本書以宏晶公司的STC89C52RC單片機為例,采用“項目任務驅動”模式編寫教材,將單片機基礎知識點分解到八個項目中。項目一知識點是單片機的基本結構、內部資源、常見元器件識別及儀器儀表的使用方法,任務是完成單片機小控制系統的設計與制作。項目二知識點是單片機編程語言簡介、開發軟件介紹及LED燈基本知識,任務是編程實現單片機控制八個LED燈閃爍。項目三知識點是數碼管的結構、靜態顯示和動態顯示原理,任務是完成一位數碼管的靜態顯示、四位數碼管的動態顯示和點陣的顯示。項目四知識點是按鍵消抖和中斷原理,任務是完成獨立按鍵控制LED閃爍,矩陣按鍵控制數碼管顯示及按鍵中斷。項目五知識點是定時器基本原理,任務是定時器工作方式0產生1s延時,定時器工作方式1實現60s倒計時和定時器工作方式3實現8位數碼管拉幕式顯示。項目六知識點是單片機串口通信基本原理及編程方法,任務是實現單片機與單片機之間通信,單片機與PC機之間通信。項目七知識點是單片機D/A轉換原理和A/D轉換原理,任務是設計制作簡易信號發生器和數字電壓表。項目八知識點是PWM調速原理,任務是實現單片機控制小車運動。
適讀人群 :本書適合高職高專電子類、通信類、電氣類、計算機類學生使用,也可作為從事單片機開發的工程技術人員的培訓教材,還可以作為電子設計愛好者初學單片機技術的參考用書。
1.8個大項目下面有子任務的項目式編寫,所有任務便于自行搭建。
2.包含免費資源:課件、源代碼、視頻、習題集和試卷。
“單片機基礎及應用”是計算機應用相關專業課程模塊中的核心課程之一,在計算機應用專業中占據著非常重要的地位,該課程旨在培養高職高專學生單片機系統硬件設計、軟件編程及系統調試能力。
傳統的單片機教材,均是以單片機的結構為主線,注重課程本身的體系結構和前后的邏輯聯系,一般先講單片機的硬件結構,接著是指令系統(匯編指令)和程序設計,然后是單片機系統的擴展和各種外圍器件的應用,最后再講一些實例。單片機內部結構及工作原理等知識抽象、難于理解,并且單片機指令系統繁瑣難記,學生在學完這些內容后,對單片機課程學習興趣幾乎沒有了。
為了改變傳統單片機教學過程中存在的現實問題,目前大多數單片機教材將實踐教學環節融入課堂教學。學生實踐環節以課堂教學任務為對象,利用Proteus仿真軟件繪制出電路圖,用Keil C軟件將針對相應任務設計程序輸入并編譯,最后在實驗平臺上對程序和硬件電路進行仿真調試運行。但這種模式仍然存在問題是仿真軟件及實驗箱,對于同學們來說實際參與感不強,其中電路設計、焊接和調試過程中出現的問題都在這種模式中規避掉了,學完后單片機系統的硬件設計能力的培養幾乎都沒有達標。這種模式可以培養學生的單片機軟件編程能力,而高職同學更擅長動手實踐,因此在教學過程中往往也不是很理想。
教材是體現教學內容和教學方法的載體,是進行教學的基本工具,是深化教育教學改革、培養創新型人才的重要保證。“教學做一體化、項目化”是高職教育教材建設的發展方向。因此,在教育部《關于全面提高高等職業教育教學質量的若干意見》的精神指導下,采取基于“建構主義”教育理論的“項目任務驅動法”開發高職單片機課程教材,成為單片機課程改革重中之重。在認真分析近三年出版的單片機系列教材基礎上,結合高職院校學生特點,編寫了本教材,其特點如下:
教材編寫模式采用“項目任務驅動法”,教材共由八個項目組成,每個項目2~3個任務,項目內容基本覆蓋到單片機的基礎內容。
? 教材涉及到的電路總共有17個,這17個電路的電路圖以及所需要的器材在教材中詳細給出,教學過程中學生在老師的帶領下完成這17個電路的焊接。
? 每個任務需要學生完成從硬件電路設計、硬件電路焊接、軟件編程到最后的軟硬件聯合調試,整個過程雖然大家做的一樣,但每個學生會呈現不一樣的問題。發現問題、分析問題、解決問題是學生學習能力培養的另一種重要形式。
? 本教材與實際生活密切聯系,學生學習完可以在老師的指導下完成智能小車控制。
? 本教材所有任務的制作無需指定廠家硬件設備支持,均可自行購買元器件獨立完成,本書配套提供了相關視頻資源,可免費索取。
本書由重慶電子工程職業學院計算機學院徐宏英老師擔任主編并統稿,計算機學院的趙鵬舉老師、童世華老師、李毅老師、佘明洪老師參與共同編寫。此外,在編寫的過程中得到了重慶電子工程職業學院副校長龔小勇和計算機學院院長武春嶺的大力支持與幫助。最后特別感謝工業機器人專業1402班的海維同學,嵌入式技術專業1501班的張高云同學、廖恒同學,他們完成了本書的電路焊接、程序驗證和系統調試。重慶電子工程職業學院陳學平教授對全書進行了審稿,并提出了許多寶貴意見和建議,在此表示衷心的感謝。
由于編者水平有限,書中難免有錯誤和不妥之處,懇請讀者批評指正。
編者
項目一 單片機最小控制系統設計與制作1
任務1.1 單片機最小控制系統設計1
1.1.1單片機概述1
1.1.2 單片機基本結構3
1.1.3單片機最小控制系統電路組成13
任務1.2 單片機最小控制系統制作17
1.2.1常見電子元件識別及檢測17
1.2.2常見儀器儀表使用方法30
1.2.3焊接單片機最小控制系統35
1.2.4單片機最小控制系統電路檢測41
項目小結 41
習題與制作42
項目二單片機花樣流水燈控制的設計與制作44
任務2.1 單片機編程語言44
2.1.1 單片機匯編語言指令系統45
2.1.2 單片機C語言49
任務2.2單片機軟件開發系統56
2.2.1Keil μVision4基本操作56
2.2.2 Keil μVision4程序調試65
2.2.3 STC-ISP軟件下載程序68
任務2.3花樣流水燈控制實現69
2.3.1 設計和焊接8位LED燈接口電路69
2.3.2編程實現單個LED燈閃爍73
2.3.3編程實現任意花樣流水燈控制程序76
項目小結 81
習題與制作81
項目三 單片機顯示器的設計與制作83
任務3.1單片機數碼管靜態顯示83
3.1.1數碼管靜態顯示相關知識83
3.1.2數碼管靜態顯示接口電路設計86
3.1.3數碼管靜態顯示電路焊接87
3.1.4編程實現數碼管顯示字符“0”~“F”89
任務3.2單片機數碼管動態顯示92
3.2.1數碼管動態顯示相關知識92
3.2.2數碼管動態顯示接口電路設計94
3.2.3數碼管動態顯示電路焊接95
3.2.4編程實現數碼管動態顯示字符“1234”97
任務3.3單片機8*8點陣顯示100
3.3.1單片機8*8點陣相關知識100
3.3.2單片機8*8點陣顯示接口電路設計102
3.3.3單片機8*8點陣顯示電路焊接103
3.3.4編程實現點陣顯示26個字母“A”~“Z”105
項目小結 110
習題與制作110
項目四 單片機鍵盤的設計與制作112
任務4.1獨立按鍵控制LED燈閃爍112
4.1.1獨立按鍵及按鍵消抖方法112
4.1.2獨立按鍵接口電路設計113
4.1.3獨立按鍵電路焊接114
4.1.4編程實現4個獨立按鍵控制LED不同閃爍117
任務4.2矩陣4*4鍵盤控制數碼管顯示字符121
4.2.1矩陣4*4鍵盤相關知識121
4.2.2矩陣4*4鍵盤接口電路設計122
4.2.3矩陣4*4鍵盤電路焊接123
4.2.4編程實現矩陣4*4鍵盤控制數碼管顯示字符“0”~“F”125
任務4.3中斷方式的按鍵加減計數130
4.3.1 中斷相關知識130
4.3.2中斷方式的按鍵加減計數接口電路設計132
4.3.3中斷方式的按鍵加減計數電路焊接132
4.3.4 編程實現2個按鍵中斷控制數碼管加減計數134
項目小結 138
習題與制作138
項目五 單片機定時/計數器的設計與制作141
任務5.1 定時器T0工作方式0實現1S延時141
5.1.1定時器結構及工作原理141
5.1.2定時器工作方式0定時初值計算方法143
5.1.3定時器查詢法和中斷法編程方法144
5.1.4編程實現定時器T0產生1S延時144
任務5.2定時器T1工作方式1實現60S倒計時148
5.2.1定時器工作方式1工作原理及初值計算方法148
5.2.2設計和焊接2位數碼管動態顯示接口電路148
5.2.3編程實現60S倒計時數碼管動態顯示151
任務5.3 定時器T0工作方式2實現拉幕式數字顯示154
5.3.1定時器工作方式2工作原理及初值計算方法154
5.3.2 74LS138芯片的原理及使用方法155
5.3.3設計和焊接8位數碼管動態顯示接口電路156
5.3.4編程實現8位數碼管拉幕式顯示數字“12345678”159
項目小結 163
習題與制作163
項目六 單片機串行通信的設計與制作165
任務6.1 單片機與單片機的串口通信165
6.1.1單片機串口通信原理165
6.1.2設計和焊接單片機與單片機串口通信接口電路169
6.1.3編程實現單片機與單片機的串口通信173
任務6.2單片機與PC的串口通信176
6.2.1RS232C串行通信接口及電平轉換模塊MAX232176
6.2.2設計和焊接單片機與PC的串口通信接口電路178
6.2.3編程實現單片機與PC的串口通信180
任務6.3 單片機串口轉并口184
6.3.1 74LS164芯片的原理及使用方法184
6.3.2設計和焊接單片機串口轉并口通信接口電路185
6.3.3 編程實現單片機串口轉并口輸出控制數碼管顯示188
項目小結 190
習題與制作190
項目七 單片機A/D和D/A的設計與制作193
任務7.1 單片機D/A簡易信號發生器193
7.1.1D/A轉換的基本原理193
7.1.2DAC0832芯片的原理及使用方法195
7.1.3設計和焊接單片機D/A接口電路198
7.1.4編程實現單片機D/A簡易信號發生器201
任務7.2單片機A/D數字電壓表實現206
7.2.1A/D轉換的基本原理206
7.2.2ADC0809芯片的原理及使用方法210
7.2.3設計和焊接單片機A/D接口電路211
7.2.4編程實現單片機AD數字電壓表214
項目小結218
習題與制作218
項目八 單片機電機控制的設計與制作221
任務8.1單片機輸出PWM脈沖221
8.1.1 PWM簡介221
8.1.2 PWM輸出原理與方法222
任務8.2單片機PWM脈沖控制電機轉速224
8.2.1L298N電機驅動芯片224
8.2.2智能小車電機驅動硬件電路設計226
8.2.3編程實現PWM脈沖控制智能小車速度和方向229
項目小結 233
習題與制作234
附錄A MCS-51單片機指令表235
附錄B ASCII碼表239
附錄C 常用芯片引腳圖240