吳葉蘭 范衛(wèi)萍 陳寶花 黃亞楠
北京工商大學(xué)計(jì)算機(jī)與信息工程學(xué)院 北京 100048
綜合型課程設(shè)計(jì)在單片機(jī)實(shí)踐教學(xué)中的應(yīng)用
吳葉蘭 范衛(wèi)萍 陳寶花 黃亞楠
北京工商大學(xué)計(jì)算機(jī)與信息工程學(xué)院 北京 100048
單片機(jī)原理及應(yīng)用是一門(mén)實(shí)踐性很強(qiáng)的課程,其綜合性課程設(shè)計(jì)是實(shí)踐教學(xué)中非常重要的一環(huán)。單片機(jī)課程設(shè)計(jì)能夠加深學(xué)生對(duì)單片機(jī)原理的理解,提高實(shí)踐和創(chuàng)新能力。介紹了一種人體反應(yīng)速度測(cè)試儀的單片機(jī)課程設(shè)計(jì)項(xiàng)目,給出了系統(tǒng)工作原理、系統(tǒng)軟硬件設(shè)計(jì),分析了相關(guān)算法。實(shí)驗(yàn)結(jié)果表明,該課程設(shè)計(jì)能綜合應(yīng)用單片機(jī)知識(shí),激發(fā)學(xué)生學(xué)習(xí)單片機(jī)的興趣,提高學(xué)生的工程實(shí)踐能力。
單片機(jī);課程設(shè)計(jì);反應(yīng)速度測(cè)試儀
單片機(jī)技術(shù)自問(wèn)世以來(lái),已經(jīng)廣泛應(yīng)用到工業(yè)自動(dòng)化控制、自動(dòng)檢測(cè)、家用電器、電力電子等各個(gè)領(lǐng)域。單片機(jī)原理及應(yīng)用課程是電類工科專業(yè)的專業(yè)必修課,是一門(mén)實(shí)踐性很強(qiáng)的課程,可以使學(xué)生真正掌握單片機(jī)原理并能靈活應(yīng)用是實(shí)踐教學(xué)的重點(diǎn)[1-3]。單片機(jī)的實(shí)踐教學(xué)通常分兩個(gè)層次,一個(gè)層次是與課程相配套的實(shí)驗(yàn)教學(xué),這部分內(nèi)容通常是針對(duì)某個(gè)具體知識(shí)點(diǎn)設(shè)計(jì)的,多數(shù)是驗(yàn)證性的;另一個(gè)層次是課程設(shè)計(jì),其目的是通過(guò)綜合性設(shè)計(jì)將單片機(jī)各個(gè)知識(shí)點(diǎn)貫穿起來(lái),讓學(xué)生能夠融會(huì)貫通所學(xué)的理論知識(shí)從而具備綜合應(yīng)用能力。但以往的單片機(jī)課程設(shè)計(jì),一般是要求學(xué)生編寫(xiě)一個(gè)較大的程序在實(shí)驗(yàn)箱上運(yùn)行,這種方式雖然能綜合不同的知識(shí)點(diǎn),但不能使學(xué)生了解單片機(jī)設(shè)計(jì)從芯片選型、原理圖繪制、PCB制作到軟硬件聯(lián)調(diào)的全過(guò)程;同時(shí),有的課程設(shè)計(jì)題目缺乏趣味性、實(shí)用性,難以吸引學(xué)生興趣。因此,符合學(xué)生認(rèn)知特點(diǎn)、綜合相關(guān)知識(shí)的單片機(jī)課程設(shè)計(jì)具有十分重要的意義,好的課程設(shè)計(jì)能激發(fā)學(xué)生的學(xué)習(xí)興趣,培養(yǎng)學(xué)生動(dòng)手能力,使學(xué)生的創(chuàng)新能力與實(shí)踐能力得到提高。同時(shí),改進(jìn)教學(xué)組織形式,把課程設(shè)計(jì)環(huán)節(jié)擴(kuò)展到整個(gè)教學(xué)過(guò)程中,即在單片機(jī)課程初期就把課程設(shè)計(jì)內(nèi)容布置下去,學(xué)生在學(xué)習(xí)過(guò)程中有充分的時(shí)間進(jìn)行思考、改進(jìn)設(shè)計(jì)方案,并做出最終的實(shí)物,取得了較好效果。
在單片機(jī)課程設(shè)計(jì)的實(shí)踐教學(xué)中,我們選取了多個(gè)趣味性、實(shí)用性的課程設(shè)計(jì),下面通過(guò)人體反應(yīng)速度測(cè)試儀實(shí)例說(shuō)明單片機(jī)課程設(shè)計(jì)所包含的設(shè)計(jì)原理、軟硬件設(shè)計(jì)、測(cè)試結(jié)果等諸多環(huán)節(jié)。
1.1 工作原理
人體反應(yīng)速度測(cè)試儀的原理[4]是用LED測(cè)試燈亮滅的隨機(jī)性測(cè)試被測(cè)者的反應(yīng)速度。具體做法是:當(dāng)測(cè)試者按下按鍵后,測(cè)試燈亮起,測(cè)試隨之開(kāi)始。在測(cè)試過(guò)程中,測(cè)試者集中注意力一直觀察測(cè)試燈,當(dāng)看到燈滅時(shí),測(cè)試者要迅速放開(kāi)按鍵,從燈滅到放開(kāi)按鍵的時(shí)間就是測(cè)試者的反應(yīng)時(shí)間,該時(shí)間會(huì)顯示在數(shù)碼管上。如果LED測(cè)試燈從亮到滅的時(shí)間是固定的,則在重復(fù)測(cè)試情況下,被測(cè)者有可能預(yù)測(cè)到滅燈時(shí)間,進(jìn)而影響測(cè)試結(jié)果的可靠性,因此要求LED測(cè)試燈從亮到滅的時(shí)間必須具有隨機(jī)性。
滅燈時(shí)間的隨機(jī)性是通過(guò)獲取隨機(jī)數(shù)實(shí)現(xiàn)的,這里通過(guò)采集環(huán)境溫度作為隨機(jī)種子并調(diào)用隨機(jī)函數(shù)產(chǎn)生隨機(jī)數(shù)。同時(shí),為了直觀顯示反應(yīng)速度的快慢,系統(tǒng)采用了LED燈(以下稱為“反應(yīng)速度等級(jí)指示燈”)亮燈個(gè)數(shù)來(lái)體現(xiàn),反應(yīng)時(shí)間越短,則反應(yīng)速度等級(jí)指示燈亮的個(gè)數(shù)就越多,表明測(cè)試者反應(yīng)越快。若測(cè)試者在滅燈之前放開(kāi)按鈕,則系統(tǒng)判為犯規(guī),報(bào)警并顯示錯(cuò)誤信息。系統(tǒng)總體框圖如圖1所示。
圖1 系統(tǒng)總體框圖
1.2 系統(tǒng)硬件設(shè)計(jì)
根據(jù)系統(tǒng)工作原理,系統(tǒng)的硬件設(shè)計(jì)如圖2所示。本系統(tǒng)采用的單片機(jī)是AT89S52,為實(shí)現(xiàn)上述反應(yīng)速度測(cè)試器的功能此系統(tǒng)包括了測(cè)試燈模塊,測(cè)試按鍵模塊,蜂鳴報(bào)警電路模塊,溫度采集模塊和反應(yīng)速度等級(jí)指示燈模塊。
圖2 硬件設(shè)計(jì)原理圖
其中,測(cè)試燈模塊選用紅色LED燈模擬測(cè)試燈,亮滅狀態(tài)通過(guò)軟件編程控制。本設(shè)計(jì)中選用P1.0端口控制該LED燈,外加限流電阻接+5 V電源,P1.0端口輸出低電平時(shí),測(cè)試燈亮,輸出高電平時(shí),測(cè)試燈滅。測(cè)試按鍵模塊僅由一個(gè)按鍵組成,接P3.4端口。按鍵按下時(shí),該I/O口的輸入為低電平。此時(shí)測(cè)試燈亮起,測(cè)試正式開(kāi)始。反應(yīng)時(shí)間顯示裝置由4位LED數(shù)碼管組成,用來(lái)動(dòng)態(tài)顯示反應(yīng)時(shí)間,單位為毫秒。蜂鳴報(bào)警電路模塊用于提示被測(cè)者有無(wú)犯規(guī),如果被測(cè)者在燈滅之前釋放按鍵則鳴響,表示犯規(guī)。用P3.6口接蜂鳴器報(bào)警電路,通過(guò)該口輸出一定頻率的方波來(lái)驅(qū)動(dòng)蜂鳴器。溫度采集模塊用于采集環(huán)境溫度,用于隨機(jī)種子的產(chǎn)生,進(jìn)而得到滅燈隨機(jī)時(shí)間。反應(yīng)速度等級(jí)指示燈模塊選用5個(gè)LED燈作為反應(yīng)速度等級(jí)指示燈,燈亮的個(gè)數(shù)越多,表明測(cè)試者的反應(yīng)速度越快。
1.3 算法分析
1.3.1 滅燈時(shí)間隨機(jī)的必要性
人類反應(yīng)時(shí)間長(zhǎng)短的主要決定因素之一是中樞神經(jīng)系統(tǒng)機(jī)能,它對(duì)刺激信號(hào)的分析時(shí)間主要和2個(gè)因素有關(guān):一是中樞神經(jīng)系統(tǒng)的興奮性,二是條件反射建立的鞏固程度[5,6]??紤]到條件反射建立的鞏固程度對(duì)反應(yīng)時(shí)間有不可忽視的影響,即在滅燈時(shí)間固定不變的情況下,短時(shí)間內(nèi)隨著測(cè)試次數(shù)的不斷增加,測(cè)試者對(duì)滅燈時(shí)間的熟悉程度以及動(dòng)作嫻熟度的提高會(huì)使反應(yīng)時(shí)間縮短,降低該系統(tǒng)的精確性與可靠性。因此,滅燈時(shí)間必須嚴(yán)格隨機(jī)。
1.3.2 隨機(jī)數(shù)的選取
常用產(chǎn)生隨機(jī)數(shù)的方法是直接為隨機(jī)數(shù)生成器提供一粒不變的隨機(jī)種子,然后調(diào)用rand()函數(shù)來(lái)產(chǎn)生隨機(jī)數(shù)。這種做法并不能產(chǎn)生真正的隨機(jī)數(shù),因?yàn)閞and()函數(shù)是按指定的順序來(lái)產(chǎn)生整數(shù),所以每次得到的值都是一樣的。因此,C語(yǔ)言的隨機(jī)并不是真正意義上的隨機(jī)。為了使程序在每次執(zhí)行時(shí)都能生成一個(gè)新序列的隨機(jī)值,常需要為隨機(jī)數(shù)生成器提供一粒新的隨機(jī)種子。函數(shù)srand()可以為隨機(jī)數(shù)生成器播散種子。只要種子不同rand()函數(shù)就會(huì)產(chǎn)生不同的隨機(jī)數(shù)序列。srand()稱為隨機(jī)數(shù)生成器的初始化器。
要在不同的時(shí)間得到不同的隨機(jī)種子,自然會(huì)想到一些變化量,例如電壓、電流、溫度等。在這里,選取溫度作為變化量。然而,環(huán)境中的溫度雖在變化,但一般情況不可能有單位量的差異,故本系統(tǒng)對(duì)于采集到的溫度只取小數(shù)部分作為變化量。
1.3.3 隨機(jī)數(shù)的產(chǎn)生
通過(guò)溫度傳感器DS18B20采集環(huán)境的溫度,以十進(jìn)制表示,并取小數(shù)部分前4位,設(shè)變量名為value。表1給出了value的取值情況。
表1 DS18B20的溫度數(shù)據(jù)關(guān)系表
由表中十進(jìn)制與二進(jìn)制的對(duì)照關(guān)系可知,將數(shù)據(jù)輸出(二進(jìn)制)的低4位取出,化為十進(jìn)制數(shù)n,再除以16即為溫度的小數(shù)部分,則有如下公式:
value有下列16種值,如表2所示。將該值作為seed值,用srand(seed)函數(shù)初始化隨機(jī)數(shù)序列種子,調(diào)用rand()函數(shù)就會(huì)產(chǎn)生不同的隨機(jī)數(shù)序列rt,再結(jié)合定時(shí)器實(shí)現(xiàn)毫秒的整數(shù)倍延時(shí),得到從燈亮到燈滅的時(shí)間T。
表2 隨機(jī)種子取值情況表
1.4 系統(tǒng)軟件設(shè)計(jì)
程序采用模塊化的設(shè)計(jì)思想,在Keil開(kāi)發(fā)環(huán)境下,系統(tǒng)的軟件采用C語(yǔ)言編寫(xiě),其程序固化在AT89S52單片機(jī)內(nèi)部Flash存儲(chǔ)器中,整個(gè)軟件程序包括按鍵模塊,溫度采集模塊,測(cè)試燈模塊,數(shù)碼管顯示模塊,速度等級(jí)指示燈模塊和蜂鳴報(bào)警模塊。
1.4.1 主程序
系統(tǒng)主程序流程如圖3所示。單片機(jī)上電之后系統(tǒng)便開(kāi)始檢測(cè)測(cè)試按鍵的狀態(tài),當(dāng)測(cè)試按鍵被按下時(shí),測(cè)試燈亮起,經(jīng)過(guò)某段隨機(jī)時(shí)間,測(cè)試燈熄滅。在亮燈過(guò)程中不斷檢測(cè)測(cè)試按鍵的狀態(tài),若在燈滅之前按鍵被釋放,則系統(tǒng)將反應(yīng)時(shí)間設(shè)為四位數(shù)碼管可以顯示的最大數(shù)值9999,指示測(cè)試者犯規(guī),此次測(cè)試結(jié)果無(wú)效。否則,等到燈滅之后,定時(shí)器從零開(kāi)始計(jì)時(shí)至按鍵被釋放,并將得到的反應(yīng)時(shí)間顯示在數(shù)碼管上。
1.4.2 反應(yīng)速度測(cè)試
反應(yīng)速度測(cè)試模塊的流程圖如圖4所示。該段程序描述了燈從亮到滅隨機(jī)時(shí)間的實(shí)現(xiàn)。在測(cè)試燈亮起之后,系統(tǒng)先讀取經(jīng)過(guò)溫度傳感器采集到的溫度值,并取小數(shù)部分t作為隨機(jī)種子,得到隨機(jī)數(shù)rt,即滅燈時(shí)間。若rt<1 000,則令rt=rt+2 000,防止滅燈時(shí)間過(guò)短,出現(xiàn)燈一閃即滅的情況。將rt的值結(jié)合1 ms定時(shí)器實(shí)現(xiàn)ms的延時(shí),延時(shí)時(shí)間結(jié)束或者出現(xiàn)測(cè)試按鍵被提前釋放時(shí)燈自行熄滅。
1.5 測(cè)試結(jié)果及數(shù)據(jù)分析
1.5.1 測(cè)試條件
反應(yīng)時(shí)間測(cè)試實(shí)驗(yàn)分別在兩種條件下進(jìn)行,第一種是“時(shí)間固定”,即每次測(cè)試中測(cè)試燈從燈亮到滅的時(shí)間間隔是一樣的;第二種是“時(shí)間隨機(jī)”,即每次測(cè)試中測(cè)試燈從燈亮到滅的時(shí)間間隔隨機(jī)變化。測(cè)試者在測(cè)試前未被告知測(cè)試燈從亮到滅的時(shí)間間隔是否隨機(jī),每個(gè)測(cè)試者分別在兩種條件下進(jìn)行測(cè)試,在經(jīng)過(guò)幾次測(cè)試等測(cè)試者熟悉操作之后開(kāi)始記錄測(cè)試數(shù)據(jù)。
1.5.2 測(cè)試數(shù)據(jù)
圖5 反應(yīng)時(shí)間變化曲線
由于外界的微小因素極易對(duì)反應(yīng)時(shí)間的測(cè)定造成干擾,因此在數(shù)據(jù)的測(cè)試上采用了在一段時(shí)間內(nèi)取均值的方法,測(cè)試結(jié)果如圖5所示。根據(jù)測(cè)試結(jié)果,對(duì)時(shí)間固定和時(shí)間隨機(jī)兩種情況的均值和方差做了統(tǒng)計(jì),如表3所示??梢钥闯?,在時(shí)間隨機(jī)的條件下,測(cè)試者所測(cè)得的反應(yīng)時(shí)間均值大于在時(shí)間固定條件下所測(cè)得的反應(yīng)時(shí)間均值,且離散性更大,更符合測(cè)試的規(guī)律。
表3 兩種測(cè)試結(jié)果的均值與方差
單片機(jī)課程是一門(mén)理論性和實(shí)踐性都很強(qiáng)的課程,理論學(xué)習(xí)之后進(jìn)行課程設(shè)計(jì)是十分必要的。開(kāi)展一個(gè)具體項(xiàng)目的設(shè)計(jì),能加強(qiáng)學(xué)生對(duì)理論知識(shí)的掌握和運(yùn)用,達(dá)到理論與實(shí)踐相結(jié)合的目的。通過(guò)以上單片機(jī)課程設(shè)計(jì)的實(shí)例,介紹了一個(gè)好的課程設(shè)計(jì)應(yīng)包括原理設(shè)計(jì)、硬件設(shè)計(jì)、軟件設(shè)計(jì)、算法分析、實(shí)驗(yàn)結(jié)果測(cè)試等各個(gè)環(huán)節(jié)。學(xué)生通過(guò)這些環(huán)節(jié)的實(shí)際訓(xùn)練,看到自己作品的成功運(yùn)行,會(huì)從中體會(huì)到學(xué)習(xí)的樂(lè)趣,激發(fā)他們的科研熱情,也為后續(xù)相關(guān)課程、學(xué)科競(jìng)賽、畢業(yè)設(shè)計(jì)打下很好的基礎(chǔ)。
[1] 唐永紅.單片機(jī)實(shí)踐教學(xué)探索,電氣電子教學(xué)學(xué)報(bào)[J].2007,29(1):72-73.
[2] 毛敏.MCS-51系列單片機(jī)系統(tǒng)及應(yīng)用實(shí)踐教程[M].北京:高等教育出版社,2006.
[3] 吳葉蘭,段振剛,喬繼紅,蘇維均.Proteus仿真軟件在單片機(jī)實(shí)驗(yàn)教學(xué)中的應(yīng)用[J].計(jì)算機(jī)教育,2009(24):146-148.
[4] 王曉鵬.人體反應(yīng)速度測(cè)試器[J].電子制作,2009(5):35-38.
[5] 李春梅.人體反應(yīng)速度測(cè)試器的實(shí)驗(yàn)研究[J].實(shí)驗(yàn)科學(xué)與技術(shù),2011(4):4-7.
[6] 張梅.影響速度素質(zhì)的因素分析[J].田徑, 2004 (1):53-54.
An Application of Integrated Course Design in SCM Practice Teaching
Wu Yelan, Fan Weiping, Chen Baohua, Huang Yanan
Beijing Technology and Business University, Beijing, 100048, China
Principles and applications of SCM is a course emphasized on practice. The comprehensive course project of SCM is very important in teaching process. SCM course project can deepen students' understanding of SCM principle and enhance the students' practice and innovation ability. The paper introduces the SCM course design of human reaction speed test instrument, gives the system working principle, the hardware and software design, and provides an analysis of the random algorithm. The experimental result shows that the course design can integrate the SCM knowledge comprehensively, arouse students the students' interest in learning SCM, and improve the students' engineering practice ability.
SCM; course project; reaction speed tester
2014-07-09
吳葉蘭,碩士,副教授。
北京市屬高等學(xué)校人才強(qiáng)教計(jì)劃資助項(xiàng)目(編號(hào):PHR201108088)。