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