汪燕
摘要:針對(duì)單片機(jī)原理課程中數(shù)碼管動(dòng)態(tài)顯示方式的教學(xué)難點(diǎn),設(shè)計(jì)了一種可通過按鍵改變掃描頻率的教具,直觀展示了動(dòng)態(tài)掃描的工作原理。教具以8051單片機(jī)為核心,涵蓋了系統(tǒng)的軟硬件設(shè)計(jì)和數(shù)碼管的動(dòng)態(tài)驅(qū)動(dòng)原理。該教具與單片機(jī)原理課程聯(lián)系緊密,使用簡(jiǎn)單,能激發(fā)學(xué)生學(xué)習(xí)興趣,促進(jìn)學(xué)生能力牽移。
關(guān)鍵詞:數(shù)碼管;教具;單片機(jī);動(dòng)態(tài)掃描
中圖分類號(hào):G642.423 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2018)04-0141-03
數(shù)碼管的顯示分為靜態(tài)驅(qū)動(dòng)方式和動(dòng)態(tài)掃描方式。靜態(tài)驅(qū)動(dòng)的方法使用了單片機(jī)較多的I/O口,一般將需要顯示的內(nèi)容存儲(chǔ)在寄存器中,接線方式直觀,理解較為簡(jiǎn)單。在顯示模塊設(shè)計(jì)或基于單片機(jī)的簡(jiǎn)單應(yīng)用中,一般采用動(dòng)態(tài)掃描方法驅(qū)動(dòng)多位數(shù)碼管,學(xué)生理解與編程有一定的困難[1-3]。為配合課堂教育改革,將翻轉(zhuǎn)課堂引入教學(xué)實(shí)踐,需要引導(dǎo)學(xué)生探究數(shù)碼管的顯示方式,掌握數(shù)碼管的動(dòng)態(tài)驅(qū)動(dòng)方式,我們?cè)O(shè)計(jì)了數(shù)碼管動(dòng)態(tài)顯示教具[4-6]。
1 總體設(shè)計(jì)
該教具的硬件由單片機(jī)STC89C52為核心,I/O口擴(kuò)展了4位8字?jǐn)?shù)碼管、按鍵和有源蜂鳴器構(gòu)成[7]。通過按鍵的按壓可以動(dòng)態(tài)改變掃描頻率,通過蜂鳴器發(fā)出聲音提醒掃描頻率發(fā)生了改變,系統(tǒng)結(jié)構(gòu)如圖1所示。
在STC89C52最小系統(tǒng)板的基礎(chǔ)上,在P0口和P2口擴(kuò)展了4位共陽(yáng)極8字?jǐn)?shù)碼管,采用掃描方式驅(qū)動(dòng),掃描的頻率由間隔時(shí)間決定。初始狀態(tài),掃描頻率為每秒2次,可以清晰看到4位數(shù)碼管依次被點(diǎn)亮。當(dāng)觸發(fā)按鍵時(shí),數(shù)碼管的掃描頻率將增加,同時(shí)蜂鳴器發(fā)聲,提示頻率已經(jīng)修改。每按一次按鍵,掃描會(huì)加快一倍,共10級(jí),當(dāng)掃描頻率接近25次/秒時(shí),4位數(shù)碼管的數(shù)字將穩(wěn)定顯示[8]。
2 硬件設(shè)計(jì)
如圖1,STC單片機(jī)最小系統(tǒng)共擴(kuò)展了3個(gè)I/O器件。圖1中的按鍵對(duì)應(yīng)于圖2的K1。圖1中的蜂鳴器對(duì)應(yīng)于圖2中的P3.7引腳的擴(kuò)展部分:R2、R3、S8550、Buzzer。4位共陽(yáng)極數(shù)碼管模塊對(duì)應(yīng)于圖2的右上角的限流電阻RN1(阻值為510歐姆的排阻)、74LS245和4只0.5英寸的共陽(yáng)極數(shù)碼管。74LS245是雙向總數(shù)驅(qū)動(dòng)芯片,用于增強(qiáng)單片機(jī)P2口的驅(qū)動(dòng)能力。圖2中數(shù)碼管下方“ABCDEFG”為字型碼驅(qū)動(dòng)引腳,“DP”為小數(shù)點(diǎn)驅(qū)動(dòng);“1234”為4個(gè)數(shù)碼管的字選線,共陽(yáng)極接法。當(dāng)P2接高電平時(shí),通過U2的驅(qū)動(dòng),可以直接驅(qū)動(dòng)0.5英寸的數(shù)碼管。當(dāng)P2.0為高電平,P0口輸出低電平,將點(diǎn)亮第1位數(shù)碼管,P2.1為高電平時(shí),將點(diǎn)亮第2位數(shù)碼管,依次類推。P0口送不同的字型碼即可顯示不同的字符[8]。制作印刷電路板(PCB)布線時(shí),將數(shù)碼管的字型碼驅(qū)動(dòng)和位線盡量在PCB的同一面上,并且將“字型碼驅(qū)動(dòng)”和“位選”放在絲印層上,以方便學(xué)生研究學(xué)習(xí)。
3 軟件設(shè)計(jì)
動(dòng)態(tài)掃描利用了人眼的視覺暫留效應(yīng),時(shí)間大約是0.1~0.4ms,一般刷新率取24以上,即每秒鐘每個(gè)數(shù)碼管必須被點(diǎn)亮24次以上,人眼才能看到穩(wěn)定的圖像[9]。顯然掃描是不能中斷的,假如有4位數(shù)碼管需要驅(qū)動(dòng),掃描的最大間隔是1/24/4,即10ms,如果單片機(jī)在掃描時(shí)需要處理其它事件,中斷的時(shí)間必須小于這個(gè)值,否則顯示就不穩(wěn)定。本教具設(shè)計(jì)了一個(gè)按鍵K1,用于改變掃描頻率;設(shè)計(jì)了一個(gè)有源蜂鳴器,用來提示頻率發(fā)生了改變。按鍵不能采用掃描的方式讀取,而是采用了外部中斷的方式,節(jié)省了執(zhí)行時(shí)間。蜂鳴器的打開時(shí)間采用定時(shí)器來控制,按鍵中斷啟動(dòng)定時(shí)器,打開蜂鳴器。定時(shí)器時(shí)間一到,由定時(shí)中斷關(guān)閉蜂鳴器。軟件開發(fā)基于Keil C51,設(shè)計(jì)階段采用Proteus仿真,軟件處理流程如圖3所示。
3.1 數(shù)碼管的動(dòng)態(tài)掃描方式
掃描流程[10]如圖3(a)所示。
數(shù)碼管的字型碼為:
uchar code DSY_CODE[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e
}; //0-9,A-F
掃描間隔采用數(shù)組預(yù)定義:
unsigned char intVal[]={250,200,100,50,25,12,10,9,8,7};//掃描間隔
數(shù)碼管顯示的字符序號(hào)放在數(shù)組lcd中:
Unsigned char lcd[]={1,2,3,4}; //初始顯示為"1,2,3,4"
圖3(a)中“送位選”指的是依次送P2.0, P2.1, P2.2, P2.3高電平,即依次點(diǎn)亮1至4位數(shù)碼管,當(dāng)掃描的頻率超過人眼的視覺暫留時(shí)間后,即可看到穩(wěn)定的數(shù)字顯示。
3.2 按鍵K1的觸發(fā),修改掃描頻率
K1按鍵采用外部中斷方式觸發(fā)[11]。中斷服務(wù)程序?qū)⑿薷臄?shù)碼管的掃描間隔:250,200,100,50,25,12,10,9,8,7,單位為毫秒。每按一次,掃描間隔減少約一半。為看清動(dòng)態(tài)顯示過程,后面的幾次間隔逐漸減小。為了吸引學(xué)生的注意,每按一次按鍵,讓蜂鳴器發(fā)出聲音。蜂鳴器采用有源蜂鳴器,P3.7輸出低電平,驅(qū)動(dòng)三極管Q1工作于飽和態(tài),BUZ1發(fā)聲。K1按鍵中斷服務(wù)程序中同時(shí)啟動(dòng)定時(shí)器T0,在T0定時(shí)器溢出中斷中關(guān)閉蜂鳴器,達(dá)到發(fā)聲的短延時(shí)。
3.3 蜂鳴器發(fā)聲,提示頻率改變
在T0定時(shí)器中斷服務(wù)程序[12]中令P3.7為高電平,三極管Q1工作于截止態(tài),BUZ1停止發(fā)聲。由于按鍵和蜂鳴器處理采用了中斷和定時(shí)器的方法,語句執(zhí)行時(shí)間極短,不影響數(shù)碼管的動(dòng)態(tài)掃描效果。
4 結(jié)語
數(shù)碼管動(dòng)態(tài)顯示是單片機(jī)的重要輸出方式,本設(shè)計(jì)以8051最小系統(tǒng)為基礎(chǔ),擴(kuò)展了按鍵輸入和蜂鳴器輸出模塊,調(diào)用了外部中斷和定時(shí)器中斷,將各個(gè)知識(shí)點(diǎn)有機(jī)地聯(lián)系在一起,形成了一套集聲光電一體的教學(xué)演示模板,清晰展示了數(shù)碼管動(dòng)態(tài)顯示原理,激發(fā)了學(xué)生學(xué)習(xí)興趣,方便了教師的使用,提高了實(shí)驗(yàn)課程的教學(xué)效果。
參考文獻(xiàn)
[1]楊穎.以學(xué)生為本創(chuàng)新電子技術(shù)實(shí)驗(yàn)課教學(xué)[J].實(shí)驗(yàn)室研究與探索,2010,29(6):80-83.
[2]朱名強(qiáng).基于自制教學(xué)裝置或教具的教學(xué)改革研究[J].北京城市學(xué)院學(xué)報(bào),2014(5):55-58.
[3]賈萍,丁向榮,胡美蘭.“教、學(xué)、做”一體化單片機(jī)教學(xué)實(shí)驗(yàn)平臺(tái)的設(shè)計(jì)與應(yīng)用[J].實(shí)驗(yàn)技術(shù)與管理,2012,29(6):139-142.
[4]王志強(qiáng),管恩京,鞏秀鋼,等.高校的混合式CDIO教學(xué)——以“高校單片機(jī)原理”課程為例[J].現(xiàn)代教育技術(shù),2016,26(9):113-119.
[5]周冠玲,馮占英,李戰(zhàn).“單片機(jī)原理及應(yīng)用”課程教學(xué)改革的探討[J].中國(guó)電化教育,2012,(6):105-107.
[6]樓然苗,王世來.單片機(jī)實(shí)踐教學(xué)改革與應(yīng)用型人才培養(yǎng)[J].中國(guó)大學(xué)教學(xué),2009,(3):80-81.
[7]于斌.單片機(jī)原理與接口技術(shù)[M].北京:人民郵電出版社,2008:156-158.
[8]趙亮.跟我學(xué)51單片機(jī)(五)——單片機(jī)動(dòng)態(tài)掃描驅(qū)動(dòng)數(shù)碼管[J].電子制作,2011,(5):75-78.
[9]楊果仁,蔡順燕.從“視覺暫留”看LED數(shù)碼管動(dòng)態(tài)顯示[J].數(shù)字技術(shù)與應(yīng)用,2013,(12):79-79.
[10]戴佳,戴衛(wèi)恒.51單片機(jī)C語言應(yīng)用程序?qū)嵗v[M].北京:電子工業(yè)出版社,2007:108-110.
[11]王超,朱鵬遠(yuǎn).基于Proteus的單片機(jī)中斷電路的設(shè)計(jì)與仿真[J].實(shí)驗(yàn)技術(shù)與管理,2017,34(7):136-140.
[12]秦玉蒙,王婭男,邱春玲.一種高效軟件定時(shí)器的設(shè)計(jì)與實(shí)現(xiàn)[J].實(shí)驗(yàn)室研究與探索,2015,34(9):94-97.