黨的二十大報(bào)告指出: 教育、科技、人才是全面建設(shè)社會(huì)主義現(xiàn)代化國家的基礎(chǔ)性、戰(zhàn)略性支撐。必須堅(jiān)持科技是第一生產(chǎn)力、人才是第一資源、創(chuàng)新是第一動(dòng)力,深入實(shí)施科教興國戰(zhàn)略、人才強(qiáng)國戰(zhàn)略、創(chuàng)新驅(qū)動(dòng)發(fā)展戰(zhàn)略,這三大戰(zhàn)略共同服務(wù)于創(chuàng)新型國家的建設(shè)。職業(yè)教育與經(jīng)濟(jì)社會(huì)發(fā)展緊密相連,對(duì)促進(jìn)就業(yè)創(chuàng)業(yè)、助力經(jīng)濟(jì)社會(huì)發(fā)展、增進(jìn)人民福祉具有重要意義。
本書以先進(jìn)理論為指導(dǎo),以問題為導(dǎo)向,以基礎(chǔ)知識(shí)夠用為度,注重實(shí)操與創(chuàng)新應(yīng)用。同時(shí)在技能操作中適時(shí)融入課程思政內(nèi)容,引導(dǎo)大學(xué)生樹立正能量的價(jià)值觀。加強(qiáng)愛國主義教育,增強(qiáng)大學(xué)生對(duì)我國芯片行業(yè)的自信心,深化對(duì)工匠精神的認(rèn)識(shí)。
編寫本書的目的和成書過程
STC單片機(jī)是宏晶公司出品的基于51內(nèi)核的系列單片機(jī)。筆者在2005年開始接觸STC單片機(jī)的第1代產(chǎn)品,當(dāng)時(shí)的型號(hào)為STC89C51。隨著技術(shù)的不斷發(fā)展,宏晶公司不斷推陳出新,在2014年推出了STC15系列增強(qiáng)型51單片機(jī),并流行至今。傳統(tǒng)51單片機(jī)的寄存器少而簡單,大多數(shù)教材內(nèi)容都基于寄存器方式編寫程序代碼。與傳統(tǒng)的51單片機(jī)相比,STC15系列增強(qiáng)型單片機(jī)
的內(nèi)部資源更加豐富,涉及的寄存器也比傳統(tǒng)的51單片機(jī)更多,使用基于寄存器方式編寫代碼的難度變大,非常不適合初學(xué)者。此外,大多數(shù)學(xué)習(xí)者在學(xué)完8位單片機(jī)的編程開發(fā)后,都會(huì)繼續(xù)學(xué)習(xí)32位單片機(jī)的編程開發(fā)。以現(xiàn)在流行的STM32單片機(jī)為例,它的編程方式從一開始的基于標(biāo)準(zhǔn)庫開發(fā)發(fā)展到現(xiàn)在流行的基于HAL/LL庫開發(fā),已不再使用基于寄存器的編程方式。因此,
如果繼續(xù)在增強(qiáng)型8位單片機(jī)的編程開發(fā)中使用寄存器編程方式,對(duì)初學(xué)者
來說難度很大且不利于后續(xù)學(xué)習(xí)。
基于寄存器編程方式的STC15系列單片機(jī)教材數(shù)不勝數(shù),但是基于庫函數(shù)編程方式的教材則很少,
因此筆者萌生了寫一本基于庫函數(shù)編程方式的STC15系列單片機(jī)教材的念頭。在瀏覽宏晶公司的官方網(wǎng)站時(shí),筆者發(fā)現(xiàn)宏晶公司在2015年曾經(jīng)推出了一個(gè)針對(duì)STC15系列的C函數(shù)庫,這個(gè)函數(shù)庫提供了涵蓋所有STC15系列單片機(jī)內(nèi)部資源的初始化函數(shù)。用戶不需要深入了解STC15系列單片機(jī)底層寄存器,就可以使用這個(gè)函數(shù)庫里的函數(shù)對(duì)單片機(jī)片內(nèi)資源進(jìn)行初始化,大大降低了學(xué)習(xí)門檻; 而且這個(gè)函數(shù)庫的代碼風(fēng)格與STM32的標(biāo)準(zhǔn)庫函數(shù)代碼風(fēng)格類似,對(duì)學(xué)習(xí)者未來繼續(xù)學(xué)習(xí)STM32編程開發(fā)非常有利。隨后,筆者在單片機(jī)原理及應(yīng)用課程中引入了這個(gè)函數(shù)庫,并基于這個(gè)函數(shù)庫編寫了部分講義供學(xué)生使用,這部分講義成為本書的部分初稿。
2021年,我校與國信藍(lán)橋教育科技股份有限公司共建物聯(lián)網(wǎng)單片機(jī)應(yīng)用與開發(fā)1 X等級(jí)證書考點(diǎn),考試中所使用的硬件開發(fā)平臺(tái)以STC15系列中的IAP15L2K61S2單片機(jī)為核心。因此,寫一本圍繞1 X證書考核,以庫函數(shù)方式進(jìn)行程序開發(fā)的單片機(jī)教材成了水到渠成的事情。
于是,在2022年,筆者組織同事和國信藍(lán)橋教育科技股份有限公司的工程技術(shù)人員合作,開始著手編寫此書,歷時(shí)1年,完成了包括案例代碼在內(nèi)的本書初稿,代碼使用C語言編寫。最終成書時(shí),案例代碼鎖定的IDE版本是Keil Vision5。書中所有案例代碼都已在
國信
藍(lán)橋教育科技股份有限
公司的
物聯(lián)網(wǎng)單片機(jī)應(yīng)用與開發(fā)
1 X訓(xùn)練考核套件(中級(jí))上一一驗(yàn)證通過。1 X訓(xùn)練考核套件(中級(jí))的單片機(jī)型號(hào)為IAP15L2K61S2。
本書內(nèi)容、特點(diǎn)和預(yù)備知識(shí)
本書共包括7個(gè)項(xiàng)目案例(項(xiàng)目7以電子版形式給出),除了第1個(gè)項(xiàng)目案例是單片機(jī)入門知識(shí)介紹外,其余6個(gè)項(xiàng)目案例都是單片機(jī)實(shí)踐案例,每個(gè)案例被分為4個(gè)任務(wù),每個(gè)任務(wù)包括以下6部分。
(1) 任務(wù)描述: 對(duì)任務(wù)需要完成的內(nèi)容進(jìn)行描述。
(2) 知識(shí)要點(diǎn): 任務(wù)涉及的主要知識(shí)點(diǎn)。
(3) 電路設(shè)計(jì): 任務(wù)涉及的電路原理。
(4) 軟件模塊: 任務(wù)中需要編寫代碼的部分按照功能劃分為幾個(gè)模塊。
(5) 程序設(shè)計(jì): 為各個(gè)模塊編寫具體的程序代碼。
(6) 課后練習(xí): 完成任務(wù)后的自我提升,讀者可通過課后練習(xí)自我檢查知識(shí)的掌握情況。
讀者只要按照進(jìn)度學(xué)完每個(gè)案例中的4個(gè)任務(wù),自然而然就能完成項(xiàng)目案例。而相關(guān)的知識(shí)點(diǎn)已經(jīng)被融入項(xiàng)目案例里,讀者完成案例后,自然也就掌握了這些知識(shí)點(diǎn)。
本書內(nèi)容側(cè)重應(yīng)用軟件編程,對(duì)單片機(jī)內(nèi)部硬件和寄存器一般只解釋其工作原理,沒有全面、深入地對(duì)硬件進(jìn)行內(nèi)部分析。在為本書案例編寫代碼的過程中,盡量使用STC官方提供的函數(shù)庫對(duì)單片機(jī)的內(nèi)部資源進(jìn)行初始化,同時(shí)將應(yīng)用功能和硬件有關(guān)功能分層處理,讓應(yīng)用功能部分的代碼更易于移植。
閱讀本書的讀者需要學(xué)習(xí)過數(shù)字電路和C程序設(shè)計(jì),最好也學(xué)習(xí)過模擬電路,沒有這些儲(chǔ)備知識(shí),學(xué)習(xí)本書內(nèi)容會(huì)比較困難。本書簡化了案例的電路原理圖,提供了1 X訓(xùn)練考核套件(中級(jí))
的電路圖供讀者參考(掃描目錄后面的二維碼可下載)。本書所有案例的代碼和資源都可以在清華大學(xué)出版社網(wǎng)站下載。
致謝
本書
由校企合作完成,其中
項(xiàng)目2、項(xiàng)目3和項(xiàng)目4由陳麒編寫,項(xiàng)目5和項(xiàng)目7由陳曉斌編寫,項(xiàng)目1由陳超然編寫,項(xiàng)目6由林伊婷和阮藝冰編寫,全書由陳麒統(tǒng)稿。
國信
藍(lán)橋教育科技股份有限
公司的
鄭未、李艷萍和
單寶軍主審。
長沙四梯科技有限公司的彭大海、朱青建和喬婷在成書過程中提出了很多寶貴意見。
在本書撰寫過程中,筆者參閱了不少資料,這里對(duì)所有參考資料的作者表示感謝。編寫過程中難免需要在互聯(lián)網(wǎng)上查閱并引用資料,這里向這些無法知曉姓名的作者表示真摯的謝意。本書完成初稿后,林伊婷老師付出大量時(shí)間和精力,不但校對(duì)了全書的文字部分,還測試了
全書的案例代碼;
本書配套視頻由熊瑤瑤、謝瑤錄制、配音和剪輯,在此對(duì)他們表示誠摯的感謝。
本書的編寫得到家人的理解和幫助,同時(shí)得到清華大學(xué)出版社的關(guān)心和支持,在這里向他們一并致謝。
由于編著者水平有限及時(shí)間倉促,書中難免有疏漏和不足之處,請(qǐng)廣大讀者批評(píng)、指正。
編著者2023年7月
項(xiàng)目1單片機(jī)基礎(chǔ)知識(shí)
任務(wù)1.1單片機(jī)簡介
任務(wù)1.2實(shí)驗(yàn)平臺(tái)與開發(fā)軟件工具
任務(wù)1.3如何學(xué)好單片機(jī)開發(fā)
任務(wù)1.4建立Keil C51工程模板
任務(wù)1.5簡單實(shí)例實(shí)現(xiàn)點(diǎn)亮一個(gè)LED燈
項(xiàng)目2可控LED流水燈設(shè)計(jì)
任務(wù)2.1LED燈閃爍
任務(wù)2.2模塊化編程
任務(wù)2.3LED流水燈
任務(wù)2.4按鍵控制的LED流水燈
項(xiàng)目3可控?cái)?shù)字秒表設(shè)計(jì)
任務(wù)3.1一位數(shù)碼管的靜態(tài)顯示
任務(wù)3.2四位數(shù)碼管的動(dòng)態(tài)顯示
任務(wù)3.3定時(shí)器實(shí)現(xiàn)數(shù)碼管秒表計(jì)數(shù)
任務(wù)3.4按鍵控制的數(shù)碼管秒表計(jì)數(shù)
項(xiàng)目4可控制亮度的LED燈設(shè)計(jì)
任務(wù)4.1CCP/PCA模塊輸出方波信號(hào)
任務(wù)4.2PCA模塊輸出PWM
任務(wù)4.3自動(dòng)控制亮度的LED燈
任務(wù)4.4按鍵控制亮度的LED燈
項(xiàng)目5單片機(jī)通信技術(shù)
任務(wù)5.1UART接口通信
任務(wù)5.2RS485接口通信
任務(wù)5.3IIC接口的24c02存儲(chǔ)器讀寫
任務(wù)5.4LoRa無線通信
項(xiàng)目6單片機(jī)常用外接模塊
任務(wù)6.1超聲波模塊接口驅(qū)動(dòng)程序設(shè)計(jì)
任務(wù)6.2DHT11溫濕度傳感器接口驅(qū)動(dòng)程序設(shè)計(jì)
任務(wù)6.3光敏電阻電壓采集系統(tǒng)設(shè)計(jì)
任務(wù)6.4蜂鳴器音樂播放驅(qū)動(dòng)程序設(shè)計(jì)
參考文獻(xiàn)
項(xiàng)目7
本書配套教學(xué)資源
1 X訓(xùn)練考核套件(中級(jí))電路圖