本書以8051系列單片機應用為目的,以項目為載體,以Keil C51 為編程調(diào)試軟件,介紹了用C語言編寫單片機程序的方法,主要包括七個項目,涵蓋了單片機的基本知識、C語言基礎、LED燈的程序設計、數(shù)碼管的程序設計、串行口通信原理、交通燈控制系統(tǒng)的程序設計、LCD液晶顯示器系統(tǒng)的程序設計等內(nèi)容。本書內(nèi)容與行業(yè)、職業(yè)崗位需要的知識、技能密切結(jié)合,意在培養(yǎng)學生良好的實踐動手能力和分析解決問題能力。本書可作為高職高專院校工科類專業(yè)教材使用,也可供相關技術人員參考閱讀。
單片機應用技術是高等職業(yè)院校機電類、自動化類、電子信息類專業(yè)學生乃至工科非計算機專業(yè)學生必須學習的一門專業(yè)課。
本書緊跟職業(yè)教育的教學改革潮流,突出行業(yè)性、實用性、科學性和操作性,采用企業(yè)真實業(yè)務,貼近職業(yè)崗位實際需求,在拉近單片機教學與職業(yè)崗位需求距離的同時,兼顧知識的系統(tǒng)性和完整性。
本書以C語言編寫單片機應用程序,利用C語言編程功能靈活,程序的可讀性、可移植性較強的優(yōu)點,整合C語言和單片機兩個部分的教學內(nèi)容。本書依據(jù)任務驅(qū)動、做中學的編寫思路,以完成實際項目中的各項任務為編寫模式。每個項目均由若干個具體的典型任務組成,每個任務又將相關知識和職業(yè)崗位基本技能結(jié)合在一起,把知識、技能的學習融入任務過程中。突出了教學內(nèi)容的實踐性、實用性,注重對學生技術應用能力的培養(yǎng),體現(xiàn)了教、學、做一體化的教學模式。
本書共分七個項目,由盤錦職業(yè)技術學院高天哲、直敏和孫卓擔任主編,盤錦職業(yè)技術學院尤建祥、盤錦高級技工學校王晗、盤錦職業(yè)技術學院叢榆坤、沈陽機床(集團)有限責任公司設計研究院關百軍擔任副主編,盤錦職業(yè)技術學院陳金陽、王敏參編。
由于編者水平有限,書中難免會有不妥之處,敬請廣大讀者和專家批評指正。
編者
2021年8月
項目一單片機的認識
任務1.1單片機綜述001
1.1.1單片機的概念001
1.1.2單片機的發(fā)展歷史002
1.1.3單片機的特點及應用002
1.1.4單片機的發(fā)展趨勢004
任務1.2單片機的學前準備006
1.2.1數(shù)制轉(zhuǎn)換006
1.2.2二進制的邏輯運算009
任務1.3單片機的開發(fā)軟件環(huán)境搭建011
1.3.1編程軟件Keil的安裝步驟011
1.3.2編程軟件Keil的使用步驟014
1.3.3下載器的使用步驟021
項目二C語言基礎
任務2.1C語言基礎知識介紹025
2.1.1利用C語言開發(fā)單片機的優(yōu)點025
2.1.2C51中的數(shù)據(jù)類型026
2.1.3C51數(shù)據(jù)類型擴充定義028
2.1.4C51中常用的頭文件028
2.1.5C51中的運算符和表達式029
2.1.6C51中的基礎語句032
任務2.2選擇語句034
2.2.1if語句034
2.2.2if else語句035
2.2.3else if語句036
2.2.4if語句嵌套037
2.2.5switch多分支語句038
任務2.3循環(huán)語句040
2.3.1for語句040
2.3.2while語句042
2.3.3do while循環(huán)語句043
任務2.4數(shù)組048
2.4.1一維數(shù)組048
2.4.2二維數(shù)組051
2.4.3字符數(shù)組054
任務2.5函數(shù)059
2.5.1函數(shù)的概念059
2.5.2函數(shù)的分類060
2.5.3函數(shù)的定義060
2.5.4函數(shù)的調(diào)用062
2.5.5函數(shù)的聲明063
2.5.6函數(shù)的返回值064
任務2.6指針066
2.6.1指針與指針變量066
2.6.2指針變量的運算069
2.6.3指針與數(shù)組070
2.6.4指針與函數(shù)074
2.6.5指針與字符串079
2.6.6指針數(shù)組與命令行參數(shù)084
2.6.7C51中指針的使用087
項目三LED燈的程序設計
任務3.1點亮LED燈的程序設計092
3.1.1單片機的結(jié)構(gòu)組成092
3.1.2單片機的小系統(tǒng)096
任務3.2流水燈的程序設計103
項目四數(shù)碼管的程序設計
任務4.1數(shù)碼管靜態(tài)顯示108
4.1.1數(shù)碼管結(jié)構(gòu)及工作原理108
4.1.2數(shù)碼器的字形編碼109
4.1.3鎖存器110
任務4.2數(shù)碼管動態(tài)顯示113
4.2.1中斷的產(chǎn)生背景113
4.2.2定時器中斷的應用114
4.2.3中斷的優(yōu)先級117
4.2.4動態(tài)顯示的基本原理118
4.2.5數(shù)碼管顯示消隱119
項目五串行口通信原理
任務5.1串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)124
5.1.1并行通信和串行通信124
5.1.2單工通信和雙工通信125
5.1.3同步通信和異步通信126
5.1.4串行接口的電氣標準127
5.1.5串行接口的物理標準131
5.1.6多機通信131
項目六交通燈控制系統(tǒng)的程序設計
任務6.1交通燈控制系統(tǒng)的程序設計136
任務6.2復雜交通燈控制系統(tǒng)的程序設計141
6.2.1定時器/計數(shù)器141
6.2.2定時器/計數(shù)器的寄存器143
6.2.3定時器/計數(shù)器的工作方式144
6.2.4定時器/計數(shù)器的應用146
項目七LCD液晶顯示系統(tǒng)的程序設計
任務7.1LCD廣告牌的程序設計157
7.1.1液晶顯示器的原理及特點157
7.1.2LCD 1602液晶顯示模塊和引腳功能158
7.1.3LCD 1602液晶顯示器的編程應用164
附錄
附錄AC51關鍵字175
附錄BASCII碼表176
參考文獻