賈玉榮, 王 鵬, 祁 碩
(清華大學(xué) 電機(jī)系, 北京 100084)
基于數(shù)碼管顯示教學(xué)實(shí)驗(yàn)設(shè)計(jì)
賈玉榮, 王 鵬, 祁 碩
(清華大學(xué) 電機(jī)系, 北京 100084)
為了深化計(jì)算機(jī)硬件課程教學(xué)改革、培養(yǎng)創(chuàng)新型人才,適應(yīng)基于項(xiàng)目型實(shí)驗(yàn)來(lái)培養(yǎng)學(xué)生實(shí)際動(dòng)手能力的趨勢(shì),設(shè)計(jì)了一套數(shù)碼管控制實(shí)驗(yàn),給出了電路。該實(shí)驗(yàn)通過(guò)微控制器實(shí)現(xiàn)對(duì)8位數(shù)碼管的并行、串行控制。通過(guò)這些控制方式的具體實(shí)現(xiàn),使學(xué)生對(duì)微控制器的使用,以及并行、串行通信機(jī)制的理解有更清晰的認(rèn)識(shí)。該實(shí)驗(yàn)可激發(fā)學(xué)生做實(shí)驗(yàn)的積極性,取得良好的實(shí)驗(yàn)教學(xué)效果。
數(shù)碼管顯示; 實(shí)驗(yàn)設(shè)計(jì); 微控制器; 并行控制; 串行控制
計(jì)算機(jī)硬件技術(shù)基礎(chǔ)課程是工程類學(xué)科非計(jì)算機(jī)專業(yè)的重要專業(yè)基礎(chǔ)課。很多高校早期通?;趚86體系架構(gòu)進(jìn)行講授和實(shí)驗(yàn)教學(xué)[1-7]。基于x86體系架構(gòu)的教學(xué)方式,無(wú)論是講授內(nèi)容還是實(shí)驗(yàn)內(nèi)容,都顯得復(fù)雜且不實(shí)用[5-6]。學(xué)生學(xué)完該課程后,在實(shí)際的科研或各類電子競(jìng)賽中均無(wú)用武之地。隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,各類微控制器、數(shù)字信號(hào)處理器(DSP)及ARM已廣泛應(yīng)用于日常生活。目前,清華大學(xué)等很多高校都不再基于x86進(jìn)行該類課程的講解[1,8-11],而是選用微控制器或ARM[3]。
清華大學(xué)的計(jì)算機(jī)硬件技術(shù)基礎(chǔ)課程目前主要基于TI公司的MSP430x2xx系列微控制器。在實(shí)驗(yàn)教學(xué)中,設(shè)計(jì)了一系列針對(duì)基本模塊的實(shí)驗(yàn),如基本I/O實(shí)驗(yàn)、中斷實(shí)驗(yàn)、定時(shí)器、時(shí)鐘模塊、串行接口控制、A/D轉(zhuǎn)換等。在此基礎(chǔ)上,還要求學(xué)生完成一個(gè)綜合實(shí)驗(yàn)項(xiàng)目,包含對(duì)微控制器多個(gè)模塊的綜合使用。其中,用微控制器實(shí)現(xiàn)對(duì)多位數(shù)碼管的控制就是一個(gè)較實(shí)用的例子,從教學(xué)的角度由易到難讓學(xué)生更容易接受。本文從單個(gè)數(shù)碼管并行控制、8個(gè)數(shù)碼管并行控制、基于單片串行移位寄存器(595d)的串行控制8個(gè)數(shù)碼管和基于2片串行移位寄存器的串行控制8個(gè)數(shù)碼管等方面介紹該實(shí)驗(yàn)教學(xué)案例。
在單個(gè)數(shù)碼管并行控制實(shí)驗(yàn)中,數(shù)碼管是共陽(yáng)極數(shù)碼管,控制電路見(jiàn)圖1。數(shù)碼管顯示段Sa—Sh由P2.0—P2.7控制:置 0 亮;置1 滅。比如在數(shù)碼管顯示‘0’,也就是‘a(chǎn),b,c,d,e,f’段亮,需要P2端口輸出11000000B,當(dāng)程序執(zhí)行P2OUT=11000000B時(shí),CPU通過(guò)總線送出地址、數(shù)據(jù)、控制信號(hào),外部電路在這些信號(hào)的作用下進(jìn)行工作。這部分實(shí)驗(yàn)使學(xué)生很好地理解指令、信號(hào)和外部設(shè)備之間的關(guān)系。
圖1 單個(gè)數(shù)碼管并行控制電路
在理解單個(gè)數(shù)碼管并行控制原理基礎(chǔ)上,實(shí)現(xiàn)并行控制8個(gè)數(shù)碼管。數(shù)碼管是由2個(gè)4位共陽(yáng)極數(shù)碼管組成,控制電路見(jiàn)圖2。當(dāng)微控制器的P1.0引腳置1、P1.1—P1.7置時(shí)0時(shí),三極管T7導(dǎo)通,數(shù)碼管DIG7的公共端電平為VCC,故DIG7數(shù)碼管亮,三極管T0—T6不通,對(duì)應(yīng)的DIG0—DIG6數(shù)碼管不亮。如果P1.1—P1.7也置1,則8個(gè)數(shù)碼管顯示同樣內(nèi)容。實(shí)際應(yīng)用中8個(gè)數(shù)碼管分別顯示不同的內(nèi)容,學(xué)生剛接觸不知如何控制。考慮到任一時(shí)刻只有1個(gè)數(shù)碼管被點(diǎn)亮,另外7個(gè)處于滅的狀態(tài),只要在1 s內(nèi),每個(gè)數(shù)碼管能循環(huán)顯示30次以上,利用眼睛的視覺(jué)停留效果,則感覺(jué)上幾個(gè)數(shù)碼管在同時(shí)顯示。
圖2 并行方式控制數(shù)碼管電路
這種并行方法控制8位數(shù)碼管的方式,需要使用16個(gè)微控制器引腳。由于本實(shí)驗(yàn)室選用的微控制器MSP430G2553僅有20個(gè)引腳,對(duì)外控制只有P1和P2兩個(gè)8位端口,共16個(gè)I/O引腳;如果選用這種并行方式控制數(shù)碼管,就很難再有多余引腳控制其他外設(shè)。為了解決此問(wèn)題,考慮采用串行移位寄存器實(shí)現(xiàn)對(duì)多位數(shù)碼管的串行控制。
串行移位寄存器74HC595d包含8位串行移位寄存器、存儲(chǔ)器和三態(tài)輸出門電路[12],邏輯框圖見(jiàn)圖3。移位寄存器和存儲(chǔ)寄存器分別采用單獨(dú)的時(shí)鐘。數(shù)據(jù)在SCK的上升沿輸入,而在RCK的上升沿?cái)?shù)據(jù)傳送到存儲(chǔ)寄存器。移位寄存器帶有一個(gè)串行輸入SER引腳,一個(gè)串行標(biāo)準(zhǔn)輸出(Q7′)引腳(用于級(jí)聯(lián)),一個(gè)異步的低電平復(fù)位端,存儲(chǔ)寄存器有一個(gè)8位的、具有
圖3 74HC595d邏輯框圖
三態(tài)輸出的總線,當(dāng)OE使能時(shí)(低電平有效),存儲(chǔ)寄存器的數(shù)據(jù)傳輸?shù)捷敵隹偩€。每當(dāng)SCK上升沿到來(lái)時(shí),SER引腳當(dāng)前電平值在移位寄存器中左移1位,在下一個(gè)上升沿到來(lái)時(shí)移位寄存器中的所有位都會(huì)向左移1位,同時(shí)Q7′也會(huì)串行輸出移位寄存器中高位值,這樣連續(xù)進(jìn)行8次,就可以把數(shù)據(jù)中的每一位(8位數(shù))送到移位寄存器;然后當(dāng)RCK上升沿到來(lái)時(shí),移位寄存器的值將會(huì)被鎖存到鎖存器里,并從Q1—Q7引腳輸出。
單片串行移位寄存器實(shí)現(xiàn)串行控制電路見(jiàn)圖4。圖4中,微控制器的P1端口仍然連接8個(gè)三極管,用于選通8位數(shù)碼管,與圖2相同;但控制數(shù)碼管顯示段的電路有所不同,在微控制器P2端口與數(shù)碼管顯示段控制線之間增加了一個(gè)8位串行移位寄存器74HC595d,用P2端口中的3個(gè)引腳P2.0—P2.2控制。其中,P2.0連接595d的串行數(shù)據(jù)輸入引腳SER,P2.1和P2.2分別連接時(shí)鐘引腳SCK和RCK。根據(jù)上述595d的工作原理,在時(shí)鐘信號(hào)的作用下,從P2.0送出的8位數(shù)據(jù)經(jīng)串行移位寄存器后,從Q0—Q7引腳并行輸出,進(jìn)而實(shí)現(xiàn)對(duì)數(shù)碼管8個(gè)顯示段的控制。
圖4 單片串行移位寄存器(595d)實(shí)現(xiàn)數(shù)碼管串行控制電路
編程時(shí)可以參見(jiàn)圖5。假設(shè)控制數(shù)碼管顯示的數(shù)值放在data中。首先判斷data的最高位(BIT7)是否為“0”,如果為“0”,P2.0輸出“0”,否則輸出“1”;然后將data左移1位,以便檢測(cè)下一位;隨后P2.1輸出SCK時(shí)鐘脈沖,SER引腳當(dāng)前電平值在移位寄存器中左移1位,在下一個(gè)上升沿到來(lái)時(shí)移位寄存器中的所有位都會(huì)向左移1位;如果8位均輸出完畢,則通過(guò)P2.2輸出RCK時(shí)鐘脈沖,將數(shù)據(jù)傳送到存儲(chǔ)寄存器;否則跳轉(zhuǎn)至判斷data最高位的操作,直至8位均輸出完畢。
圖5 數(shù)碼管串行控制流程圖
采用這種方式,盡管每個(gè)數(shù)碼管的選通控制還需要單獨(dú)的微控制器引腳,但對(duì)數(shù)碼管顯示段Sa—Sh的控制只需要其中3個(gè)即可完成。最終,采用11個(gè)引腳就可以控制8位數(shù)碼管,剩余5個(gè)引腳可用于其他控制。
上面采用單片移位寄存器的實(shí)現(xiàn)方案,雖然可解放P2端口的部分引腳,但在對(duì)8個(gè)數(shù)碼管進(jìn)行選通控制時(shí),還是占用了P1端口的8個(gè)引腳。為此希望進(jìn)一步改進(jìn)電路,實(shí)現(xiàn)對(duì)數(shù)碼管的選通控制。
實(shí)際上,可考慮用74HC595d移位寄存器的輸出引腳Q7′,將2片74HC595d進(jìn)行級(jí)聯(lián),進(jìn)而實(shí)現(xiàn)對(duì)8位數(shù)碼管的控制?;谶@種思路的控制電路見(jiàn)圖6。圖6中,對(duì)數(shù)碼管顯示段的控制電路與圖3相同,但對(duì)8位數(shù)碼管的選通控制電路則由原來(lái)的P1端口直接控制,改成了通過(guò)一片74HC595d進(jìn)行控制,并且該片74HC595d的串行數(shù)據(jù)輸入引腳與用于控制數(shù)碼管顯示段的74HC595d的Q7′相連。兩片74HC595d的SHCP和STCP連接在一起,由微控制器的P2.1和P2.2進(jìn)行控制。
圖6 用2片串行移位寄存器實(shí)現(xiàn)數(shù)碼管串行控制電路
在這種級(jí)聯(lián)方式中,無(wú)論是對(duì)數(shù)碼管的選擇,還是對(duì)數(shù)碼管顯示段Sa—Sh的控制,均通過(guò)P2.0—P2.2 3個(gè)引腳即可完成。這就大大解放了微控制器的引腳,更多的引腳可以用于其他方面的控制。
控制程序的編寫(xiě)也較簡(jiǎn)單,首先按位輸出數(shù)碼管要顯示的數(shù)值,然后按位輸出第幾個(gè)數(shù)碼管顯示,循環(huán)8次就可以在8個(gè)數(shù)碼管上顯示不同的數(shù)值。對(duì)數(shù)碼管的選擇以及對(duì)顯示段的控制過(guò)程與圖5中的控制流程圖基本一致,可參考圖7流程圖編寫(xiě)相應(yīng)程序。
實(shí)驗(yàn)平臺(tái)是TI公司的MSP-EXP430G2開(kāi)發(fā)板。編成后下載到MSP-EXP430G2中,按照?qǐng)D6所示電路進(jìn)行連接,顯示效果見(jiàn)圖8。
在微控制器控制外設(shè)的教學(xué)中,數(shù)碼管顯示實(shí)驗(yàn)是常見(jiàn)內(nèi)容,也是計(jì)算機(jī)硬件技術(shù)基礎(chǔ)等專業(yè)基礎(chǔ)課程中綜合實(shí)驗(yàn)項(xiàng)目中的一部分。通過(guò)對(duì)數(shù)碼管控制方法的學(xué)習(xí)和實(shí)踐,使學(xué)生對(duì)微控制器的使用,以及并行、串行通信機(jī)制的理解有更清晰的認(rèn)識(shí)。本文所設(shè)計(jì)的實(shí)驗(yàn)教學(xué)案例,激發(fā)了學(xué)生做實(shí)驗(yàn)項(xiàng)目的積極性,提高了實(shí)驗(yàn)教學(xué)效率。
圖7 2片595d進(jìn)行級(jí)聯(lián)實(shí)現(xiàn)數(shù)碼管串行控制流程圖
圖8 實(shí)驗(yàn)顯示效果圖
References)
[1] 王鵬,朱小梅. 一種“微機(jī)原理與應(yīng)用”課程教學(xué)實(shí)驗(yàn)平臺(tái)[J].電氣電子教學(xué)學(xué)報(bào),2010,32(5):90-92.
[2] 周寧寧, 王偉,成衛(wèi)青. 微機(jī)原理與接口技術(shù)課程教學(xué)模式研究[J].實(shí)驗(yàn)科學(xué)與技術(shù),2011,9(4):117-119.
[3] 嚴(yán)國(guó)志. 基于電氣工程專業(yè)的ARM嵌入式系統(tǒng)教學(xué)研究[J].電氣電子教學(xué)學(xué)報(bào),2010,32(2):11-13.
[4] 曹華蘇,曙光, 陳亨斌.“微機(jī)原理與接口技術(shù)”課程教學(xué)改革探索[J].電氣電子教學(xué)學(xué)報(bào),2015,37(4):18-20.
[5] 劉民岷. 《微機(jī)原理及接口技術(shù)》課程教學(xué)及實(shí)驗(yàn)改革實(shí)踐[J].實(shí)驗(yàn)科學(xué)與技術(shù),2013,11(1):64-66.
[6] 高林. 單片機(jī)原理與微機(jī)原理綜合仿真系統(tǒng)的設(shè)計(jì)及應(yīng)用[J].實(shí)驗(yàn)技術(shù)與管理,2014,31(3):91-94.
[7] 張妍,王詠梅. 任務(wù)驅(qū)動(dòng)法在微機(jī)原理及應(yīng)用課程中的應(yīng)用[J].實(shí)驗(yàn)科學(xué)與技術(shù),2015,13(1):172-175.
[8] 姚分喜,張百海. 自動(dòng)化專業(yè)計(jì)算機(jī)類課程綜合實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)[J].實(shí)驗(yàn)室研究與探索,2013,32(11):276-278.
[9] 晏湧,藍(lán)波. “任務(wù)驅(qū)動(dòng) ” 教學(xué)法在電工電子技術(shù)課程中的應(yīng)用[J].實(shí)驗(yàn)技術(shù)與管理,2012,29(9):163-166.
[10] 蔡述庭,劉銀萍,謝云,等.微機(jī)原理及單片機(jī)技術(shù)課程教學(xué)改革研究[J].實(shí)驗(yàn)科學(xué)與技術(shù),2011,9(5):70-72.
[11] 田社平,俞水鋒,方向忠,等.Proteus在微機(jī)原理課程教學(xué)中的應(yīng)用[J].電氣電子教學(xué)學(xué)報(bào), 2011,33(5):70-72.
[12] CD74HC595: 8-Bit Shift Registers With 3-State Output Registers[EB/OL].[2016-07-02].2004.http://www.ti.com/product/CD74HC595?keyMatch=74hc595&tisearch=Search-EN-Everything.
Design of teaching experiment based on digital tube display
Jia Yurong,Wang Peng, Qi Shuo
(Department of Electrical Engineering, Tsinghua University, Beijing 100084, China)
In order to deepen the teaching reform of Computer Hardware course,train innovative talents, and adapt to the trend of project-based experiments to cultivate students’ practical ability, a set of digital tube display control experiments is designed. In this experiment, the 8 digital tube parallel and serial controls through the microcontroller are realized, and the circuits are presented. Through the concrete realization of these control methods, the students can get a better understanding of the use of the microcontroller, and the parallel and serial communication mechanism. The experiment can stimulate the students' enthusiasm to do experiments, and help to achieve the good effect of the experimental teaching.
digital tube display; experimental design; microcontroller; parallel control; serial control
10.16791/j.cnki.sjg.2016.12.012
2016-07-11
賈玉榮(1972—),女,北京,工程師,研究方向?yàn)橛?jì)算機(jī)硬件技術(shù)和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù).
E-mail:jyrong@mail.tsinghua.edu.cn
TP368.1;G642.423
: A
: 1002-4956(2016)12-0043-05