張婧婧 張靜
摘要:在《單片機》課程教學中,利用思維腦圖,采用項目驅(qū)動、互動建構(gòu)、講練結(jié)合三者交叉融合的翻轉(zhuǎn)課堂教學模式,解決了電子專業(yè)學生利用軟件代碼控制硬件的理解問題。講:51控制LED的項目為例,練:硬件控制LED;講:P0P1口控制LED的原理、C語言實現(xiàn);練:編程控制8路LED閃爍流水。課程考核結(jié)果表明教學有效解決了學生學習單片機編程的難點。
關(guān)鍵詞:LED;三極管;譯碼器;緩沖器;P0P1口
電子類學生學習《單片機》課程前,已經(jīng)學習了《模擬電路》、《數(shù)字電路》、《C語言》,但是許多同學對如何利用C語言代碼控制硬件的問題理解不清,影響進一步的學習和應用。
我院19級電工專業(yè)的單片機課程教學改革以單片機控制LED為例,從LED發(fā)光原理出發(fā),利用三極管、譯碼器、緩沖器、51單片機的P0P1口等硬件控制,說明如何定義硬件管腳、如何通過C賦值語句控制單片機P0P1口輸出,進而控制8路LED明滅;左移語句實現(xiàn)8路LED流水。利用軟件代碼控制硬件點亮二極管過程的思維腦圖如圖1所示。
翻轉(zhuǎn)課堂教學設計如下:
1、教師布置任務
網(wǎng)上教師發(fā)布任務,要求學生完成點亮LED的項目。學生要閱讀單片機、LED及驅(qū)動電路原理圖,用面包板搭建電路直接點
亮共陽極的8路LED,再利用三極管、譯碼器、緩沖器等硬件,通過譯碼器和三極管控制8路LED的陽極、緩沖器控制8路LED的陰極。
2學生自主學習
學生自學8路LED發(fā)光原理和138譯碼器245緩沖器工作原理,完成相關(guān)線上作業(yè),該部分成績占15%。
驅(qū)動LED發(fā)光必須加合適的VCC、地,以及限流電阻,如圖3(a)。把地信號換成P0.0,如圖3(b)所示,顯然LED發(fā)光條件是P0.0為低電平,即p0.0=0。再把VCC換成圖3(c), LED若要發(fā)光Q16需導通,條件是P1.0為低電平且 Q16的c極為高電平,Q16導通后LED陽極即為高電平。
3師生互動建構(gòu)
該環(huán)節(jié)主要在線下課堂上完成,將全班58人分為10組實施教學和開展練習。
3.1第一步:“練”,15分鐘
要求每位同學現(xiàn)場用面包板(1)搭建電路直接點亮共陽極的8路LED;
(2)利用三極管、譯碼器、緩沖器硬件,通過譯碼器和三極管控制8路LED的陽極、緩沖器控制陰極點亮共陽極的8路LED;
隨機請學生說明硬件工作原理。該部分成績占15%。
3.2第二步:“講”,30分鐘
教師和學生互動,討論講解51單片機P0P1口等知識點和硬件原理圖,說明P0口作為緩沖器輸入控制LED陰極,P1口控制通過譯碼器控制LED陽極;說明如何定義硬件管腳、如何通過C賦值語句控制單片機P0P1口輸出。主要是教師提問,每組派代表回答。代表成績是全組的成績,該部分成績占20%。
(1)單片機的相關(guān)原理圖:
74HC245是緩沖器,功能是右側(cè)輸出=左側(cè)輸入,即DB0=DB_0,......,DB7=DB_7。
圖知:DB_0是p0.0,.......,DB_7是p0.7;
DB0是LED2陰極,......., DB7是LED9陰極。
8路LED共陽極接法。所以8路LED均發(fā)光條件是:陽極:LEDS6=0
陰極: DB7DB6DB5DB4DB3DB2DB1DB0=00000000=0x00,即P0=0X00
如圖可知,LEDS6是U3的38譯碼器輸出Y6。
LEDS6=0條件是:
138譯碼器使能:ENLED=0, ADDR3=1;
輸入: A2 A1 A0= ADDR2ADDR1ADDR0=110,即 P1.2 P1.1 P1.0=110。
(2)C語言說明語句定義硬件管腳
圖知:ADDR2、ADDR1、ADDR0接P1.2 P1.1 P1.0,ADDR3、ENLED分別接P1.3 P1.4;
因此在程序中必須用sbit 說明;而P0、P1在reg52.h文件中已經(jīng)定義:
sfr P0=0x80; sfr P1=0x90;
因此不必再說明,但是必須加包含特殊功能寄存器定義的頭文件,說明以后,語句中就可以直接使用。具體如下:
#include <reg52.h>
sbit ADDR0= P1^0;
sbit ADDR1= P1^1;
sbit ADDR2= P1^2;
sbit ADDR3= P1^3;
sbit ENLED = P1^4;
(3)C賦值語句控制單片機P0P1口輸出
8路LED 閃爍關(guān)鍵代碼:
ENLED =0; /使能U3
ADDR3=1;
ADDR2=1; //經(jīng)U3的Y6輸出開啟三極管Q16
ADDR1=1;
ADDR0=0;
while (1)
{ //循環(huán)點亮和熄滅即得到閃爍效果
P0=0x00; //點亮8路小燈 for (i=0; i<30000; i++);//延時一段時間
P0=0xff;//熄滅8路小燈
for (i=0; i<30000; i++);//延時一段時間}
思考:左移語句實現(xiàn)8路LED流水
若依次點亮一個LED則出現(xiàn)流水效果,考慮到左移后原位置補0,所以令點亮的LED為1,再取反即可。
3.3第三步:“練”,45分鐘
要求學生現(xiàn)場編程控制8路LED閃爍、8路LED流水。根據(jù)實驗結(jié)果和答辯給考核成績,具體操作是教師負責各組組長考核,10組組長隨機選組,考核該組考核。該考核成績占40%。
3.4課后作業(yè)和效果調(diào)查
課后布置了線上課后作業(yè),要求完成課堂課程相關(guān)考核內(nèi)容。另外有1道調(diào)查題,請學生評價通過本次課程是否清楚的理解了軟件控制硬件的概念和方法。
結(jié)果表明100%的學生能夠清楚理解了軟件控制硬件概念和方法,能夠理解如何從過去的硬件控制方式轉(zhuǎn)換到軟件控制硬件方式。
4、小結(jié)
本文闡述了《單片機》課程中利用思維腦圖,采用“項目驅(qū)動、互動建構(gòu)、講練結(jié)合”的翻轉(zhuǎn)課堂教學模式開展教學的過程,解決了電子專業(yè)學生利用軟件代碼控制硬件的理解問題。
通過發(fā)布任務、自主學習、“練—講—練”課堂組織形式及考核,實現(xiàn)了單片機系統(tǒng)編程控制8路LED閃爍、左移語句實現(xiàn)8路LED流水,有效解決了學生學習單片機技術(shù)的難點問題,有效提升了學生綜合應用能力。
參考文獻:
[1]宋雪松.手把手教你學51單片機-C 語言版[M],清華大學出版社,2014.
電子信息科學與技術(shù)專業(yè)2019年湖北省省級一流本科建設點項目、教育部產(chǎn)學研項目編號201801193002、201801275003。