下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
基于Arduino單片機(jī)項目的C語言程序設(shè)計教學(xué)基于Arduino單片機(jī)工程的C語言程序設(shè)計教學(xué)
【中圖分類號】G【文獻(xiàn)標(biāo)識碼】A
【文章編號】0450-9889〔2022〕05C-0158-03
一直以來,傳統(tǒng)C語言程序設(shè)計教學(xué)主要是以語法、語句和結(jié)構(gòu)為中心,以數(shù)據(jù)類型、變量、運(yùn)算符、數(shù)組、指針和函數(shù)等為根本知識點展開。這樣的教學(xué)模式雖然可以很好地按照教材逐一講授知識內(nèi)容,但是也容易使學(xué)生陷入知識細(xì)節(jié),而無視C語言程序的具體應(yīng)用。雖然學(xué)生通過不斷地學(xué)習(xí)根底知識和練習(xí)經(jīng)典算法,能夠閱讀、修改、編寫簡單C語言程序,但是學(xué)生的抽象思《S、自主創(chuàng)新意識、解決實際問題能力難以得到全面培養(yǎng)。另外,由于高職學(xué)生的計算機(jī)根底、邏輯思維、英語根底和數(shù)學(xué)運(yùn)算等綜合能力都較為單薄,這些因素也影響了學(xué)生學(xué)習(xí)C語言程序設(shè)計的興趣。
因此,為了提升學(xué)生閱讀、編寫和調(diào)試程序的能力,激發(fā)學(xué)生自主學(xué)習(xí)C語言程序設(shè)計的興趣,結(jié)合電類專業(yè)人才培養(yǎng)目標(biāo),提出以單片機(jī)工程為載體的C語言程序設(shè)計教學(xué)模式,通過實驗現(xiàn)象啟發(fā)學(xué)生思考目標(biāo)實現(xiàn)辦法,在實驗過程中引入重點理論知識,讓學(xué)生帶領(lǐng)興趣和目標(biāo)進(jìn)行C語言單片機(jī)工程學(xué)習(xí)。
一、引入單片機(jī)工程驅(qū)動C語言程序設(shè)計教學(xué)
首先讓學(xué)生體驗C語言編程控制單片機(jī)樂趣,然后,通過不同的工程引入C語言程序的結(jié)構(gòu)、語法、語句等相關(guān)知識內(nèi)容。示例,通過典型的跑馬燈工程引入for循環(huán)語句,通過數(shù)碼管倒計時顯示引入一維數(shù)組,通過八路搶答器引入if、switch選擇語句。利用單片機(jī)工程直觀可控的特點,以實用、夠用為導(dǎo)向,構(gòu)建適合高職學(xué)生特點的C語言單片機(jī)工程框架,具體的教學(xué)工程框架如圖1所示。
〔一〕引入簡單易學(xué)的Arduino單片機(jī)實訓(xùn)平臺
由于51系列單片機(jī)價格低廉,且配套教學(xué)資源豐盛,傳統(tǒng)單片機(jī)教學(xué)一般都是采用51系列單片機(jī),但是,51單片機(jī)最大的問題就是需要使用者掌握其內(nèi)部結(jié)構(gòu)、存放器、I/O設(shè)備等諸多底層硬件結(jié)構(gòu),然后才能發(fā)展C語言程序設(shè)計教學(xué),過多的底層硬件結(jié)構(gòu)會增加學(xué)生學(xué)習(xí)單片機(jī)編程的難度,而Arduino平臺那么繞開了單片機(jī)底層硬件結(jié)構(gòu),僅需少量指令即可開始程序設(shè)計,其自帶庫函數(shù)也已包含許多常用I/O設(shè)備驅(qū)動,在此根底上進(jìn)行二次開發(fā),很容易完成功能多樣的作品。
Arduino平臺的軟硬件完全開源,許多常用子函數(shù)已經(jīng)封裝成為庫函數(shù),在此根底上進(jìn)行程序編寫,可以大大縮短軟件開發(fā)周期,提升編程效率。
示例,編寫一個毫秒級的延時函數(shù),使用51單片機(jī)編寫那么需要多行代碼才可實現(xiàn),具體延時函數(shù)如下:
voiddelay_ms〔uchart〕
{uchari,k;
while〔t--〕
{for〔i=1;ifor〔k=1;k}
但是,采用Arduino單片機(jī)只需調(diào)用一個毫秒級延時函數(shù),即編寫下列一條代碼:
delay〔n〕;//括號中的n表示延時長度,單位為ms。
一個同樣功能的延時函數(shù),51單片機(jī)需要多行代碼,而Arduino單片機(jī)僅需一個函數(shù)調(diào)用,這種把過程匯合化、函數(shù)化的過程省去了繁瑣的細(xì)節(jié),既簡化了編程工作量,又讓學(xué)生更容易理解和接受。
〔二〕單片機(jī)控制LED閃爍,學(xué)習(xí)while循環(huán)語句
單片機(jī)控制一個LED燈閃爍工程的程序和硬件電路都比擬簡單,很適合作為C語言單片機(jī)教學(xué)的入門實驗,LED燈閃爍流程圖及主要對應(yīng)代碼如圖2所示。通過察看LED燈閃爍實驗現(xiàn)象,啟發(fā)學(xué)生思考實現(xiàn)LED燈閃爍的分解步驟,結(jié)合C語言程序代碼,學(xué)生可以直觀了解C語言程序控制指令在LED燈上所呈現(xiàn)的對應(yīng)關(guān)系。
在此工程驅(qū)動之下,學(xué)生更加容易理解while循環(huán)語句的使用辦法,同時,也能啟發(fā)學(xué)生思考工程中其它C語言程序的知識要點:
1.Arduino單片機(jī)C語言認(rèn)知。單片機(jī)C語言程序的結(jié)構(gòu)是由setup〔〕初始化函數(shù)和Loop〔〕主函數(shù)構(gòu)成,初始化函數(shù)主要完成單片機(jī)I/O口的功能設(shè)定,示例,pinMode〔i,OUTPUT〕,表示第i個引腳為低阻抗輸出模式;Loop〔〕函數(shù)那么是一個程序里面的主函數(shù),編程者的所有想法可以通過C語言控制單片機(jī)具體實施。
2.變量及函數(shù)調(diào)用。通過察看LED燈閃爍的快慢,深入學(xué)習(xí)延時函數(shù)delay〔n〕的使用辦法,其中n為參數(shù)傳遞,控制延時長度,單位是毫秒,調(diào)整變量n即可改變LED的閃爍速度。
3.賦值及輸出控制。digitalWrite〔ledpin,HIGH〕語句表示ledpin引腳輸出高電平,單片機(jī)所有數(shù)字引腳有兩種狀態(tài),分別為高電平HIGH和低電平LOW,其狀態(tài)的改變由關(guān)鍵詞digitalWrite進(jìn)行控制。
4.順序結(jié)構(gòu)及循環(huán)結(jié)構(gòu)。C語言程序一般默認(rèn)是按照順序結(jié)構(gòu)執(zhí)行代碼指令,但是,在執(zhí)行重復(fù)且有規(guī)律事件的時候需用循環(huán)控制結(jié)構(gòu),LED燈閃爍就是一個不斷重復(fù)亮滅的過程,因此,while語句或for語句都可以實現(xiàn)循環(huán)控制功能。
〔三〕開關(guān)控制LED燈,學(xué)習(xí)if選擇語句外部開關(guān)控制LED燈的亮滅,實驗現(xiàn)象為:閉合開關(guān)SW那么LED燈亮,斷開開關(guān)SW那么LED燈熄滅。通過此工程可以引導(dǎo)學(xué)生掌握單片機(jī)I/O口狀態(tài)的讀取辦法,以及重點使用if語句進(jìn)行邏輯狀態(tài)判別,程序關(guān)鍵代碼如下:
k=digitalRead〔SW〕;//讀取數(shù)字腳0口的狀態(tài),需要digitalRead〔〕語句才能得到引腳的狀態(tài)。
if〔k==0〕//判斷開關(guān)的狀態(tài),按下為0,放開為1。
digitalWrite〔ledpin,HIGH〕;//寫ledpin狀態(tài),HIGH驅(qū)動燈亮。
else
digitalWrite〔ledpin,LOW〕;//寫ledpin狀態(tài),LOW那么燈滅。
在此基《A上再進(jìn)行功能深入拓展,把一些實際生活經(jīng)驗引入程序設(shè)計。示例,當(dāng)開關(guān)斷開后,LED燈需要延時一段時間再熄滅,這樣的邏輯思維可以很好解決晚上關(guān)燈后不需要摸黑上床睡覺的問題,以此類推,啟發(fā)學(xué)生思考其它類型用到開關(guān)輸入量的地方,還有銀行ATM的按鍵、食堂刷卡機(jī)等生活實例,這樣就能很好激發(fā)學(xué)生的自主探索精神和學(xué)習(xí)熱情。
〔四〕單片機(jī)控制LED流水燈,學(xué)習(xí)for循環(huán)語句
在第一個LED燈閃爍工程的根底上,增加LED燈的數(shù)量,讓LED燈呈現(xiàn)流水效果,利用Arduino單片機(jī)的數(shù)字IO口D0至D7分別控制八個LED燈,LED流水燈的硬件電路如圖3所示,關(guān)鍵語句如下:
for〔i=0;i結(jié)合實驗現(xiàn)象,引導(dǎo)學(xué)生思考for循環(huán)語句的用法,重點掌握語句中循環(huán)變量初值的設(shè)定、循環(huán)次數(shù)、結(jié)束條件,以及循環(huán)內(nèi)容的分解步驟。借助LED燈輪流點亮的過程,可以讓學(xué)生很好理解延時變量長度對應(yīng)控制LED流水速度,循環(huán)次數(shù)對應(yīng)控制參與循環(huán)LED個數(shù),這種直接讓程序語句關(guān)聯(lián)實驗現(xiàn)象的教學(xué)辦法,能更加直觀有效幫忙學(xué)生掌握for語句的使用辦法。在八路LED流水燈的根底上,還可以引導(dǎo)學(xué)生繼續(xù)增加LED燈的數(shù)量,制作心形LED流水燈,進(jìn)一步激發(fā)學(xué)生自主創(chuàng)新思維,編寫更加豐盛多彩的LED流水效果。
〔五〕控制數(shù)碼管顯示,學(xué)習(xí)一維數(shù)組
通過控制一個數(shù)碼管顯示一位數(shù)字,引入七段數(shù)碼管顯示驅(qū)動方式,然后進(jìn)一步學(xué)習(xí)顯示數(shù)字“0〞到“9〞的辦法,并且把驅(qū)動數(shù)碼管顯示的編碼進(jìn)行歸納形成一個組,自然引入“一維數(shù)組〞概念。驅(qū)動一位數(shù)碼管顯示的硬件電路如圖4所示,其中單片機(jī)的數(shù)字腳D0至D6分別接到七數(shù)碼管的a至g引腳。
數(shù)字“0〞到“9〞的一維數(shù)組編碼定義為:chartable[]={0x40,0xf9,0xa4,0x30,0x19,0x92,0x02,0xf8,0x00,0x10},分別將數(shù)組中的編碼通過八位并行輸出方式驅(qū)動七段數(shù)碼管,即可顯示“0〞至“9〞之間的數(shù)字,C語言的輸出敘述方式為:PORTD=table[i];在顯示固定單個數(shù)字的根底之上,還可以結(jié)合for循環(huán)語句和delay〔n〕延時函數(shù),實現(xiàn)數(shù)字“0〞至“9〞之間循環(huán)動態(tài)顯示。
在完成數(shù)碼顯示根本功能之后,繼續(xù)沿用該硬件電路,引導(dǎo)學(xué)生修改程序代碼,設(shè)計一個“九秒倒計時器〞,并且使用定時器取代delay〔〕延時函數(shù),讓學(xué)生在分明工程要求和實驗結(jié)果的前提之下,運(yùn)用C語言編寫定時中斷函數(shù)。
結(jié)合實際生活,在原有硬件電路根底之上,增加一定數(shù)量的按鍵開關(guān),即可變成一個多路搶答器,啟發(fā)學(xué)生思考如何檢測鍵盤輸入、數(shù)據(jù)處理、結(jié)果顯示及鎖定,在完成邏輯分析之后,再具體引入端口狀態(tài)讀取函數(shù)digitalRead〔〕、是否有按鍵搶答判別語句if〔〕、結(jié)果顯示語句PORTD=table[i]、狀態(tài)鎖定使用循環(huán)語句while〔〕等關(guān)鍵C語言知識,通過搶答器工程的學(xué)習(xí),能夠幫忙學(xué)生直觀認(rèn)識C語言的更多用途,激發(fā)學(xué)生繼續(xù)深入C語言程序設(shè)計。
〔六〕控制LED點陣顯示,學(xué)習(xí)二維數(shù)組
類比日常生活,點陣顯示廣告屏在街上隨處可見,深入分析點陣屏顯示原理,可以把大型屏幕可以分解成多個16×16或8×8的小模塊,結(jié)合點陣顯示現(xiàn)象引入“二維數(shù)組〞,讓學(xué)生根據(jù)現(xiàn)象聯(lián)系C語言程序運(yùn)用場合,這樣的工程導(dǎo)入方式能夠有效提高學(xué)習(xí)針對性。通過進(jìn)一步分析點陣顯示過程,可以明確點陣顯示需要行列同步配合、延時長度適宜才能正常工作,該工程重點訓(xùn)練了如何從二維數(shù)組里調(diào)取行和列的信息,以及合理控制延時函數(shù)的辦法,結(jié)合C語言程序綜合運(yùn)用了逐行動態(tài)掃描技術(shù)。經(jīng)過點陣顯示控制工程的學(xué)習(xí),學(xué)生能夠掌握C語言控制一個靜態(tài)字的顯示辦法,同時,引導(dǎo)學(xué)生思考如何實現(xiàn)動態(tài)顯示多個文字,讓學(xué)生自主思考C語言程序更豐盛的應(yīng)用范圍。
〔七〕設(shè)計簡易數(shù)字溫度計,學(xué)習(xí)數(shù)據(jù)處理及函數(shù)調(diào)用
溫度是日常生活中經(jīng)常接觸的一個物理對象,冰箱、空調(diào)和電磁爐等家電都需用到溫度測量與控制,因此,利用單片機(jī)設(shè)計一個簡易數(shù)字溫度計能夠接近實際生活,比擬容易吸引學(xué)生參與工程設(shè)計與制作。
由于溫度為連續(xù)變化的模擬量,需要經(jīng)過模數(shù)轉(zhuǎn)換之后才能送入單片機(jī)進(jìn)行數(shù)據(jù)處理,而Arduino單片機(jī)集成有十位模數(shù)轉(zhuǎn)換功能,即溫度模擬量對應(yīng)0~1023之間的數(shù)字量。因此,簡易的數(shù)字溫度計的設(shè)計思路是:首先進(jìn)行溫度模擬量到數(shù)字量的轉(zhuǎn)換,然后將AD轉(zhuǎn)換結(jié)果進(jìn)行換算處理,最后將處理后的實際溫度值送入LCD液晶顯示。
簡易數(shù)字溫度計的設(shè)計流程圖及其主要程序代碼如圖5所示,通過簡易數(shù)字溫度計工程的學(xué)習(xí),學(xué)生能夠掌握參數(shù)傳遞、返回值、函數(shù)調(diào)用和數(shù)據(jù)運(yùn)算等C語言相關(guān)知識。〔八〕設(shè)計無弦電子琴,綜合運(yùn)用C語言程序設(shè)計
電子琴已然成為了人們喜愛的一種演奏樂器,通過單片機(jī)也可以設(shè)計一種無弦電子琴,一段樂曲是由許多不同的音階構(gòu)成,每一個音階對應(yīng)著一個獨有的頻率點,因此,只需要將不同的頻率點進(jìn)行有規(guī)律的組合,就可以譜寫一段有趣的音樂。利用單片機(jī)定時器產(chǎn)生不同頻率的方波是一件非常容易實現(xiàn)的事,前提是需要把某一首歌曲的音階所對應(yīng)的頻率點弄分明即可,電子琴的按鍵將由光電傳感器替代,即光電管感應(yīng)器輸出上下電平作為音符的按鍵,每一個按鍵對應(yīng)一個音階,單片機(jī)只需檢測I/O口的上下電平即可判斷是否有鍵按下,然后,輸出特定頻率的方波驅(qū)動揚(yáng)聲器發(fā)出對應(yīng)的音階。
現(xiàn)以八度中音音符為例,音符與頻率關(guān)系的相關(guān)計算數(shù)值如表1所示,單片機(jī)定時器TIMER產(chǎn)生各中音的定時長度根據(jù)表1數(shù)據(jù)即可完成設(shè)定,將全部中音音符建立成一個表格,單片機(jī)通過查表方式可以快速獲取與音符頻率相對應(yīng)的定時值。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 值班的管理制度
- 養(yǎng)鴿培訓(xùn)課件
- 企業(yè)員工培訓(xùn)與績效提升制度
- 紀(jì)檢財務(wù)知識培訓(xùn)
- 2026湖南婁底市婦幼保健院公開招聘專業(yè)技術(shù)人員備考題庫附答案
- 2026福建廈門市集美區(qū)華僑大學(xué)集美附屬學(xué)校非在編頂崗教師招聘1人參考題庫附答案
- 2026福建漳州市中醫(yī)院招聘臨時人員1人參考題庫附答案
- 會議安全管理與應(yīng)急預(yù)案制度
- 2026重慶鈊渝金融租賃股份有限公司招聘3人參考題庫附答案
- 2026陜西省面向清華大學(xué)招錄選調(diào)生備考題庫附答案
- 建筑工程施工質(zhì)量控制論文9【論文】
- 放射治療基礎(chǔ)知識
- 二十屆四中全會測試題及參考答案(第三套)超難
- 外墻貼磚專項施工方案
- 2025年事業(yè)單位面試心理素質(zhì)測試模擬試卷及答案
- 《物流與供應(yīng)鏈管理》教案
- 2025-2030疫苗冷鏈物流體系建設(shè)標(biāo)準(zhǔn)與第三方服務(wù)市場機(jī)會報告
- 2025年江蘇省事業(yè)單位招聘考試教師招聘體育學(xué)科專業(yè)知識試卷(秋季篇)
- 2025年中國橡膠粉改性瀝青(AR)行業(yè)市場分析及投資價值評估前景預(yù)測報告
- 凈菜品控與質(zhì)量管理體系建設(shè)方案
- 【完整版】2025年自考《馬克思基本原理概論》真題及答案
評論
0/150
提交評論