彭遠芳,張靜,黃曉峰



摘 要:“微控制器應用”課程是高職應用電子技術專業核心課程,對培養學生的分析問題、解決問題能力,以及創新能力都具有十分重要的作用。但由于課程邏輯性強,與其他課程的關聯度大,加之高職學生專業基礎較弱、主動學習意愿不夠強烈,隨著課程內容的逐步加深,許多學生會逐漸失去學習興趣,教學效果不甚理想。如何讓多數學生掌握課程的主要內容并保持學習的興趣與動力,在項目教學設計中,基礎項目設計的重要性不容小覷。文章以流水燈控制為主線,以最大范圍涵蓋課程主要內容為目的,設計了若干個基礎教學項目,項目功能簡單具體、可操作性強,在課程教學實施中避免了學生的畏難情緒,滿足了學生對“微控制器應用”課程的基礎要求,為進一步學習打下了基礎。
關鍵詞:流水燈;微控制器應用;基礎項目設計
中圖分類號:G712
文獻標識碼:A
收稿日期:2018-11-14
基金項目:上海工程技術大學教學研究項目“微控制器應用課程建設”(k201716003)。
作者簡介:彭遠芳(1968—),女,重慶人,副教授,碩士,主要從事C語言程序設計、微控制器應用以及電子線路板設計等課程的教學工作。
一、高職“微控制器應用”課程
高職“微控制器應用”課程以電子電路的分析與實踐能力、電子線路板的設計能力為基礎,學習以單片機為微控制器的典型小系統調試與開發的全過程,該課程涉及模擬電子技術、數字電子技術、集成電路應用、傳感器應用技術以及C語言程序設計的相關知識,并為后續課程如CPLD/FPGA應用技術、嵌入式系統應用等課程的學習奠定基礎,更為學生畢業后從事智能儀表、汽車電子及其他消費類電子產品的調試、設計與制造,以及繼續學習與職業能力的提升起支撐作用,因此該課程對應用電子技術專業的學生顯得尤為重要。
筆者提出通過項目教學法引導學生學習,為此設計了基礎、提高、拓展項目以適應不同學習需求的學生,在教學實踐中,由于學生學習基礎、接受能力、主觀能動性迥異,加之課程內容多學時少,之前設計的提高及拓展項目不能為多數學生所接受,為改變曲高和寡的處境?以流水燈控制為主線,以最大范圍涵蓋課程主要內容為目的,設計了若干個基礎教學項目,在極少改變硬件組成的前提下,通過不同的控制方式將教學內容蘊涵于項目中,克服了學生在遭遇新知識點時的畏難情緒,使得多數學生能夠跟著教師的思路學習,在經歷這樣一個慢熱的過程后,基本掌握了課程基礎內容,學習興趣也由此被激發出來。
二、教學設計
圖1為典型流水燈硬件電路(晶振電路和復位電路略),其中P1口作為外接獨立式按鍵,P2口輸出低電平點亮發光二極管。以該電路為基礎,采用不同的控制方式,體現課程中最基礎最重要的內容,具體設計如下。
(一)I/O口的基本應用
1.項目1-無鍵控制的流水燈
暫不考慮按鍵控制,I/O口的輸出從1位發光二極管(如D0)的閃爍→(D0~D7)左移流水/右移流水→花樣流水燈圖案設計與實現。在項目功能實現的過程中,先要理解“閃爍”“流水”的原理,分別掌握利用左移/右移運算符、字符串循環左移/右移函數實現左右移流水的方法;對于花樣流水燈,如設置從八路LED閃爍→左移流水→右移流水→兩個亮點從中間向兩側舒展→兩個亮點從兩側向中間收縮→八路LED閃爍為1次循環,掌握采用子函數調用實現花樣流水效果,以及利用一維數組存儲和輸出花樣流水圖形數據表這兩種方法。
2.項目2-通用I/0口鍵控流水燈
(1)單鍵控制的流水燈。為方便起見(如K0),KO未動作記為KO+0,按下/釋放n次記為KO+n動作,項目設計中可設置K0+0為八路LED閃爍,K0+1左移流水,K0+2右移流水,K0+3兩個亮點從中間向兩側舒展,K0+4兩個亮點從兩側向中間收縮,K0+5隔路左移流水,K0+6隔路右移流水,K0+7左四路和右四路交替亮滅,K0+8則回到K0+0。
程序設計中,通過引入一次鍵動作的判斷(包括按下/釋放及鍵抖動處理)、按鍵動作次數的計數,掌握用兩種分支結構(if-else if語句和switch-case語句)對按鍵動作次數進行相應的處理,并比較這兩種分支結構的異同。
(2)多鍵控制的流水燈。依據圖1,在功能設計上由簡單到復雜,如基本功能可設計為Ki鍵動作(i=1~8),發光二極管Di被點亮;進一步可將上述花樣流水圖案進行分解,設計為Ki鍵動作,實現圖案中的第i個流水動作(動作時長可自定義)。
通過項目1-2,學生掌握了通用I/O口的輸入輸出特性、程序基本結構和編程方法。
(二)外中斷及定時器/計數器中斷的應用
中斷系統是單片機最重要的資源,包括外部中斷、定時器/計數器中斷以及串行口中斷。中斷系統的應用是重點也是難點,通過單片機外中斷及定時器/計數器中斷控制流水燈的運行。如圖2,保留K2-K5并分別與INT0/INT1、T0/T1接口,項目具體內容如下。
1.項目3-利用外部中斷控制流水燈
先引入INT0/INT1(K2/K3作為中斷源),暫不考慮K4/K5,如設置無鍵按下為左移流水→右移流水的循環,K2動作則8路閃爍持續5S報警,K3動作則完成上述項目2中單鍵控制的花樣流水燈功能(持續10S),INT0/INT1選用邊沿觸發。
該項目功能雖簡單,但實現過程中涉及的知識點卻很多也相當重要。如通用I/O口外接按鍵的軟件去抖動和INT0/INT1外接按鍵的軟件去抖動有何異同?如何實現?采用中斷方式為何多選用邊沿觸發而不是電平觸發?為何中斷函數一般要求盡可能短?INT0中斷函數如何設計,才能實現8路閃爍報警持續5s(INT1亦如此即完成花樣流水燈持續10s的功能),需知多數學生均會將5s或10s延時放在中斷服務函數中,這顯然是不合理的,啟發學生可以為INT0/INT1各設置一個標志位flag0/flag1,以及增設兩個計數變量C0/C1,通過調用1s延時函數分別實現5s/10s延時,在此基礎上將項目需要實現的功能通過邏輯關系加以詳細描述,再利用編程語言實現,學生會發現這是一個無比奇妙的過程。
2.項目4-利用計數器控制流水燈
忽略K2-K4,為方便起見,K5未動作記為K5+0,按下/釋放m次記為K5+m。項目設計為在K5按下m次完成花樣流水燈的第m個動作(m=1~8),且持續ms(通過定時器T0實現)。
為此T1為8位自動重裝初值的計數器,初值設置為0XFF,工作于查詢方式;T0為定時器方式1,工作于中斷控制方式(50ms溢出一次),另設置兩個計數變量C0/C1,其中C0用以對K5動作次數進行計數,C1對T0溢出次數進行計數,實現1s-8s的延時。在程序結構上,選用switch-case結構,實現花樣流水動作的分解與延時時長的配合。
(三)串口典型應用
串口是單片機最重要的資源之一,也是學生比較難以理解的內容。通過串口資源來控制流水燈,項目內容簡單直觀,學生易于理解。具體設計如下。
1.項目5-通過串口方式0控制流水燈
圖3給出了利用串口方式0控制流水燈的電路,可以設計為Ki鍵按下發光二極管Di閃爍(閃爍間隔1s由T0或采用調用延時子函數實現)。此時串口用作同步移位寄存器,單片機的P1口每讀入一組按鍵信息,RXD端作為數據移位的出口(設置為查詢工作方式),在TXD所提供移位脈沖的控制下,低位在前、高位在后將按鍵信息逐位移出。
需要著重強調的是74LS164的輸出QA~QH應與發光二極管Q7~Q0依此相連,以避免數據傳輸完成后出現“頭朝地”的現象,并通過流水燈運行效果加以印證。
2.項目6-雙機通信控制流水燈
圖4則給出了利用串行通信控制流水燈(閃爍間隔1s仍需由T0或采用調用延時子函數實現)。可以看到,這是一個簡單的雙機通信系統,甲機向乙機發送8位數據,乙機將接收到的數據在其連接的數碼管上顯示。
串口的工作方式可以設置為方式1~方式3中的任意一種(設置為中斷工作方式)。由于是雙機通信,因此對甲乙兩個單片機均需進行編程,通過這個簡單的項目,學生更加容易理解串口發送和接收數據的典型流程,何時可增加奇偶校驗位,何時可修改波特率以改變傳輸速度,并通過流水燈加以驗證。
三、結語
以上通過流水燈涵蓋了I/O端口典型應用、外部中斷、定時器/計數器以及串行口應用,項目設計中也可將流水燈用于人機接口及其程序設計,如通過4只發光二極管、以四位二進制代碼的形式顯示4×4矩陣式鍵盤的鍵號,從實際應用出發,有關人機接口應用的項目選用顯示器主要是LED數碼管、點陣電子顯示屏、LCD1602液晶顯示器等。
教學實踐表明:將課程主要內容蘊含于簡單項目中,在課程教學中項目的硬件組成只有些許改動,更多的是通過更改控制方式,將課程內容有機地嵌入其中,采取靈活多變的方式激發學生的學習興趣,同時增強了教學內容的系統性,使多數學生能夠掌握課程的基礎內容。
當然,對課程的深入學習是一定要通過深入研究具體、實用的典型單片機小系統而獲得的,但不可否認課程基礎知識的學習和掌握是提高與拓展的第一步。
參考文獻:
[1]蔡燕玲.基于多知識點的單片機單一項目教學設計[J].信息技術與信息化,2016(5).
[2]紀藝娟.利用Keil與Proteus聯調改進單片機實驗課程教學[J].電子技術,2017(12).
[3]王可寧,王 偉,王青松.以專業認證為導向的單片機教學改革方法探索[J].教育現代化,2017(6).
[4]鄭秋梅,王風華.“問題驅動”的研究性教學改革研究與實踐[J].中國成人教育,2015(20).
[5]劉 平.深入淺出玩轉51單片機[M].北京:北京航空航天大學出版社,2014.