摘要:本文講述的單片機(jī)學(xué)習(xí)方法是基于理論課時(shí)少,實(shí)踐課時(shí)多,生源基礎(chǔ)差或者0基礎(chǔ)的一種單片機(jī)教學(xué)和學(xué)習(xí)方法,項(xiàng)目式教學(xué)法,該學(xué)習(xí)方法經(jīng)過實(shí)踐是相對于以前其它方法更容易讓學(xué)生接受和學(xué)習(xí)的一種方法。
關(guān)鍵詞:單片機(jī)學(xué)習(xí);項(xiàng)目式教學(xué)法
在我所帶的專業(yè)中,單片機(jī)現(xiàn)在的總課時(shí)是48學(xué)時(shí),理論24學(xué) 時(shí),實(shí)踐24學(xué)時(shí),如果根據(jù)以前的大綱和思路來系統(tǒng)學(xué)習(xí)單片機(jī)是根本不可能的,最起碼匯編語言這一塊就需要占據(jù)機(jī)會(huì)三分之一的課程,還不說其余的知識,這一門課上完差不多需要48理論學(xué)時(shí)以上,還有就是前沿課程中,根本沒有匯編語言,而只完成了C語言程序設(shè)計(jì)的課程,很明顯,現(xiàn)在的學(xué)時(shí)是根本講不完也講不會(huì)單片機(jī)的,學(xué)生學(xué)習(xí)起來也是非常吃力的,因此為了改變這種學(xué)時(shí)少前沿課程不足的情況,根據(jù)多年的教學(xué)經(jīng)驗(yàn)和實(shí)踐總結(jié)出一套適用于理論課時(shí)少,前沿課程沒有匯編語言而只有C語言的單片機(jī)教學(xué)思路和方法—項(xiàng)目式教學(xué)。
所謂項(xiàng)目式其實(shí)是在學(xué)校要求培養(yǎng)應(yīng)用型人才的基礎(chǔ)上,理論學(xué)時(shí)完全壓縮的情況下,只有C語言基礎(chǔ)的形勢下,經(jīng)過實(shí)踐摸索得出來的。
首先,需要培養(yǎng)應(yīng)用型人才,那么從我的理解來看,就是要放棄一部分的理論教學(xué),增加實(shí)踐動(dòng)手能力,培養(yǎng)出可以一畢業(yè)就就能上手或者工作的人才,而這一的話,從思想來說,就會(huì)減少單片機(jī)最基本的理論教學(xué),比如:單片機(jī)的內(nèi)部結(jié)構(gòu),我們只需要讓學(xué)生知道什么是累加器,什么是寄存器,什么是特殊類寄存器就可以了,而沒有必要像以前教學(xué)一樣,給學(xué)生詳細(xì)講解什么是累加器,累加器主要是作為運(yùn)算的,它參加所有的運(yùn)算,在匯編語言可以寫成“A”,在C語言必須寫成“ACC”,還可以按位操作等等,實(shí)話說,現(xiàn)在真沒有必要,因?yàn)镃語言寫程序的時(shí)候?qū)τ谒玫倪€真的很少,除非你為了表現(xiàn)自己對單片機(jī)內(nèi)部結(jié)構(gòu)學(xué)習(xí)有多好,否則真沒有必要等等,所以你只需要告訴學(xué)生其內(nèi)部有什么就可以了,另外再給學(xué)生做一張表格或者圖,寫出內(nèi)部結(jié)構(gòu)都有哪些都是多少位的,是否可按位操作,作用告訴就可以了。
其次,在講程序設(shè)計(jì)時(shí),首先就不要去講匯編語言,因此沒有匯編語言的基礎(chǔ),那么你現(xiàn)在就算是把會(huì)語言的117條指令全部講個(gè)學(xué)生,沒有大量的程序講解、學(xué)習(xí)和練習(xí)是根本沒有任何的作用的,簡單來說就算講了學(xué)生也學(xué)不會(huì),那么就只能講C語言程序設(shè)計(jì)了,由于有C語言程序設(shè)計(jì)基礎(chǔ)也有C語言的課程設(shè)計(jì)等基礎(chǔ),那么學(xué)生在學(xué)習(xí)起來就簡單多了,在這里講的時(shí)候主要講數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu),C51常用的10中語句,比如循環(huán)語句有:“for”語句,“while”語句,“do…while”語句,要把這些語句寫法告訴學(xué)生,一般在上面情況下最常用,在這里可以據(jù)例子,實(shí)話說,這里沒有必要講解那些所謂的運(yùn)算,因?yàn)镃語言講了很多,單片機(jī)里面對于運(yùn)算也就那么常見的幾種,比如“i++”和“++i”等等,這些事需要學(xué)生知道它們的區(qū)別的,但是這些可以在后面講程序的時(shí)候提到,學(xué)生自然就會(huì)知道了,沒有必要在這里浪費(fèi)很多的時(shí)間。
第三,就是實(shí)例或者項(xiàng)目講解了,我記得在我上學(xué)的時(shí)候或者是剛開始工作時(shí),我們講解的立體都是真對知識點(diǎn)而講的,這里的程序根本不全,而只是完成程序中找出來與本次教學(xué)內(nèi)容相關(guān)的一部分,學(xué)完之后,還是不會(huì)寫程序,后來經(jīng)過多次的摸索,我覺得講課的時(shí)候例題不一定要有多么的難或者說有一定的高度,都是要從基本的完成的程序入手去講,在我講單片機(jī)的時(shí)候,我在講C語言程序設(shè)計(jì)開始就是完整的程序,而不是簡單的半句程序,比如講數(shù)據(jù)類型時(shí),以前都是講兩個(gè)數(shù)相加的程序,這樣只能看到運(yùn)算結(jié)果,而不知道單片機(jī)如何去寫,而我在講課的時(shí)候,這部分內(nèi)容主要是讓一個(gè)發(fā)光二極管去閃爍,使用延時(shí)程序來去看數(shù)據(jù)類型,這里主要是“uchar”類型和“uint”類型,使用“for”語句,學(xué)生學(xué)完了知道了哪里可以使用“uchar”類型,哪里可以使用“Uint”類型,也對這兩種類型記憶比較深刻,因?yàn)橛辛朔抡?,學(xué)生對單片機(jī)的興趣也增加了不少,而我上單片機(jī)的原理的前半部分內(nèi)容,從數(shù)據(jù)類型和結(jié)構(gòu)到中斷講完,其實(shí)這部分我所用的實(shí)例就只有一種,那就是點(diǎn)亮發(fā)光二極管,我上課就和學(xué)生說,如果說學(xué)完單片機(jī)你還不會(huì)點(diǎn)亮各種狀態(tài)的發(fā)光二極管,那么單片機(jī)你真的沒學(xué)會(huì),其實(shí)說白了就是霓虹燈的設(shè)計(jì),各種狀態(tài),有速度一定的,速度不一定的,方向定的,方向不定的,間隔點(diǎn)亮的,連續(xù)點(diǎn)亮的,開關(guān)控制速度的,等等,至于說是使用那一種,就要看所講的內(nèi)容,比如講定時(shí)器時(shí),就用定時(shí)器控制八個(gè)發(fā)光二極管亮的速度,講中斷時(shí),就用外部中斷開關(guān)來控制發(fā)光二極管的顯示方向、狀態(tài)和速度等等,在講常用電路時(shí),這里主要是七段數(shù)碼管,4*4鍵盤矩陣等等,在這里,七段數(shù)碼管課堂上講解的0-99的計(jì)數(shù),課堂完成編程和仿真,課下學(xué)生完成數(shù)字鐘的程序編寫,獨(dú)立鍵盤結(jié)合數(shù)字鐘實(shí)現(xiàn)校時(shí)的功能,優(yōu)化學(xué)生作業(yè),4*4鍵盤這里課堂講解的是按鍵和數(shù)碼管顯示的編程及仿真,學(xué)生完成4*4鍵盤輸入3位數(shù)的程序等等,經(jīng)過這種實(shí)例講解,學(xué)生課下作業(yè)練習(xí)這種方式,學(xué)生很容易就學(xué)會(huì)了單片機(jī)的編程
第四,在實(shí)驗(yàn)課方面,主要是完成單片機(jī)開發(fā)板的設(shè)計(jì),而這部分內(nèi)容主要是課堂講解的知識,學(xué)生去設(shè)計(jì)電路,完成程序測試,開發(fā)板主要包含:發(fā)光二極管顯示、七段數(shù)碼管顯示、8*8點(diǎn)陣顯示、1602液晶顯示、獨(dú)立鍵盤、4*4矩陣鍵盤、AD轉(zhuǎn)換、DA轉(zhuǎn)換等內(nèi)容,實(shí)驗(yàn)做完了就是完成了開發(fā)板圖紙的設(shè)計(jì)
總之,單片機(jī)教學(xué)現(xiàn)在都是往應(yīng)用層次去發(fā)展,而我們教學(xué)的時(shí)候也是需要往這個(gè)方向去的,如何讓學(xué)生學(xué)會(huì)單片機(jī)的應(yīng)用,項(xiàng)目式的教學(xué)無疑是一種比較有效的手段。
作者簡介
張占紅(1984—),男,陜西丹鳳人,武漢傳媒學(xué)院講師,主要研究方向:電子與通信領(lǐng)域。