朱向慶,黎東濤,蘇超益,丘祖國,張學成
(嘉應學院 電子信息工程學院,廣東 梅州 514015)
“單片機原理及應用”是電子信息和自動控制類學科一門很重要的專業課,在課程體系中起著承前啟后的紐帶作用[1]。該課程以數字電子技術、模擬電子技術和C語言程序設計為前續基礎課,同時對嵌入式系統和DSP技術有重要影響。該課程教學質量的好壞,甚至能夠左右學生的就業[2]。
實踐教學是單片機教學中的重要環節,很多高校的單片機實驗平臺都是從教儀企業采購,該類設備往往在追求功能大而全的同時造成價格居高不下。另外,很多教儀企業生產的單片機實驗平臺電路都是固定的,且往往不公開全部技術資料,不利于學生掌握軟硬件原理,學生只能做驗證性、訓練性實驗項目,沒法做開放性、創新型的實驗項目[3-4]。在網店中,也有不少物美價廉的單片機實驗板,但它們的硬件電路也不是開放的,且只能完成下載實驗,沒法進行單步跟蹤、調試,而后者是學習單片機編程的重要環節。
從降低設備采購成本、滿足課程教學的角度出發,本文中設計一種適合項目教學法,集仿真、下載和實驗為一體,硬件模塊化,軟件可用多種語言編程,軟硬件資源完全開放的多功能單片機實驗箱。
(1)實驗箱硬件的擴展和配置應遵循以下設計原則:①采用新技術,注意通用性,選擇典型電路;②朝片上系統(System on Chip,SOC)方向發展,擴展接口盡可能采用現場可編程外圍芯片(programmable system device,PSD)等器件;③注重標準化、模塊化;④滿足應用系統的功能要求,并留有適當余地,以便進行二次開發;⑤工藝設計時要考慮安裝、調試、維修的方便[5]。為了方便學生完成實驗,PCB板上對各I/O接口功能及使用方法都在頂層絲印層用字符標注。
(2)實驗箱的整體布局如圖1所示,它采用的是模塊化設計思想,由單片機最小系統、仿真及下載接口、輸入輸出模塊、AD轉換模塊、DA轉換模塊及其他功能部件組成。單片機I/O口資源完全開放,所有功能部件的控制線、數據線與單片機的I/O口均不連接,而是引出至香蕉插孔上,操作者可以通過帶香蕉插頭的線纜連接各個模塊,設計自己需要的實驗項目電路。設計的實驗箱保留傳統的經典實驗項目,去除一些因功能陳舊而失去實際操作意義和使用價值的實驗,多設計一些數字化傳感器功能接口,以順應數字化的發展趨勢[6]。實驗箱能夠獨立完成表1所示的18個實驗項目,其中帶★號的是教學大綱和實驗大綱要求必做實驗。

圖1 實驗箱各功能部件整體布局

表1 實驗箱可以完成的實驗項目
單片機實驗箱的最小系統如圖2所示,它包括單片機、電源、復位電路(含上電復位及按鍵復位)和時鐘電路。本系統配置的是DIP-40封裝的51單片機,單片機安裝在緊鎖座上以方便拆換,晶振頻率可以根據需要選擇12MHz或11.0592MHz。系統采用220V交流電源供電,實驗箱內置一個可輸出+5V、+12V和-12V電壓的開關穩壓電源。為了保護好電源,實驗板上增加一個2A的保險絲。
圖3是硬件仿真與下載電路。在實驗箱緊鎖座上安裝SST(Silicon Storage Technology)公司推出的具有在系統調試(ISD,in system debugging)功能的SST89E5xRD系列單片機,通過單片機的一個串口就可以實現在線仿真功能。它不需要昂貴的仿真器支持,利用SST89E5xRD單片機硬件的特點,與Keil Software公司的Keil uVision集成開發軟件相結合,可以仿真、調試MCS51單片機的大多數外設[7]。
計算機通過串口連接實驗箱,不需要專用的編程器就可以用ISP(in system programming)方式進行單片機的實驗和開發[8],給宏晶公司生產的STC系列單片機及SST公司的SST89系列單片機下載(燒錄)機器碼文件。圖3中J19是與計算機相連的串口(孔),2個發光二極管是串行通信指示燈。電路采用Maxim公司推出的一款兼容RS232標準的芯片MAX232實現計算機串口RS-232-C電平與單片機串口TTL電平間的轉換。
實驗箱主要包括5類功能模塊,分別是輸入接口、輸出接口、串行總線模塊、AD與DA轉換模塊及其他模塊。
1.3.1 輸入接口
包括1×8自鎖開關、1×4獨立按鍵、4×4矩陣鍵盤和紅外接收頭。輸入接口模塊的作用是讓學習者理解自鎖開關、獨立按鍵和矩陣鍵盤的識別原理。實驗箱使用一體化紅外接收頭TL1838接收紅外信號,讓初學者了解紅外編/解碼原理。
成孔設備采用液壓步履式擠密灌注打樁機,外徑為425 mm、夯錘重5 t,成孔依次逐排由外向內進行,隔排隔行,間隔1~2孔跳打方式。在鉆桿上標注設計樁長位置,打樁完成后,檢查其樁長、樁徑、垂直度等滿足驗收要求后方可進行填料。

圖2 51單片機最小系統

圖3 硬件仿真與下載接口電路
1.3.2 輸出接口
包括8路LED流水燈、8位共陽數碼管、8×8點陣和1602液晶。8路LED作為單片機最基礎學習部分,用作指示燈、流水燈和演示IO口狀態等;8位數碼管由2個4位共陽數碼管拼裝而成,采用動態掃描的方法顯示各種常用數字和字符;8×8點陣用于顯示簡單的字符和圖形;1602字符型液晶用來顯示兩行,每行16個字母、數字和符號等。
為了增加顯示亮度,數碼管和點陣等都需要驅動電路,本系統特意增加PNP三極管、74HC573數據鎖存器以及由達林頓管構成的ULN2803驅動電路,可由使用者隨意選擇。
1.3.3 串行總線模塊
串行總線數據傳輸速率的逐漸提高和芯片系列化,為多功能、小型化和低成本的單片機系統設計提供更好的解決方案。采用串行總線擴展技術可以使系統的硬件設計簡化、體積減小,系統的更改和擴充更為容易[9]。除了上文介紹的與計算機通信的串口外,本系統還有采用單總線(1-Wire)的DS18B20數字溫度檢測模塊,采用SPI總線的DS1302實時時鐘模塊。
1.3.4 AD與DA轉換模塊
實驗箱含有AD與DA轉換模塊各1個。AD轉換模塊由高精度、低噪聲、低漂移、抗干擾能力強的12位雙積分AD轉換器ICL7109及其外圍器件構成,通過增加1個MAX308模擬多路開關,可實現對8路0~5V模擬電壓信號輪流進行采集。為了提高實驗的穩定性,輸入的模擬電壓采用精密多圈電位器分壓得到。DA轉換由8位電流輸出型DA轉換器DAC0832及運放等外圍器件構成,通過電流/電壓轉換電路可輸出0~5V的模擬電壓。
1.3.5 其他模塊
系統可通過ULN2803驅動步進電機,如5線4相減速步進電機28BYJ-48,讓初學者了解步進電機的工作原理。ULN2803也可驅動蜂鳴器,讓初學者掌握用單片機定時器功能播放簡單音樂的方法。
軟件系統設計應遵循3個原則:(1)可使用傳統的匯編語言設計程序,讓學習者加深對單片機底層知識的理解;(2)能運用C51語言進行程序設計,讓學習者加快程序的開發速度;(3)可使用嵌入式實時操作系統,如Small RTOS51或μC/OS-II,讓程序具有更強的可移植性和更快的開發效率。
單片機的程序設計語言已經從傳統的匯編過渡至C51,隨著單片機片內程序存儲器、數據存儲器及其他資源的增加,運行速度的加快,嵌入式系統里采用的操作系統,如Small RTOS51和μC/OS-II也逐漸在各種單片機系統運用。在設計實驗箱時,除了編制好常見的匯編及C51實驗例程,還增加將Small RTOS51移植至STC89C52RC這類普通51單片機,將μC/OS-II移植至STC12C5A60S2這類增強型51單片機的實驗例程。初學者可以先學習匯編語言,再學習C51語言,也可以直接學習C51語言。在學有余力時,繼續向Small RTOS51或μC/OS-II操作系統進階。
學會通過調試方法查找、發現所設計程序中的紕漏,是初學者掌握單片機編程的必由之路。市場上的單片機仿真器價格較高,動輒需要幾百元。如果將Proteus與Keil軟件聯合使用,可實現單片機的軟硬件仿真[10]。此方法雖然能夠查找程序錯誤,但不能很好地體現單片機的硬件功能。在本系統單片機緊鎖座上安裝SST89E5xRD系列單片機,可以實現在系統的硬件仿真,如運行到斷點處、運行到光標行、單步跟蹤、跨步、全速運行、夭折等。如果在單片機緊鎖座上安裝學林電子的51mini嵌入式仿真器,能夠以零資源占用實現極速單步,完成其他專業仿真器的所有功能,提高學生的學習效率。
采用硬件仿真時,要按圖4正確設置Keil uVision工程的屬性,其中調試(Debug)選項卡內選擇“Keil Monitor-51Driver”仿真器,并選擇計算機與單片機實驗箱相連接的串口,將串行通信的波特率設置為9.6 kbit/s,使用51mini嵌入式仿真器則設置為115.200 kbit/s;選中所有Cache選項能加快仿真速度,選中“Stop Program Execution with Serial Interrupt”,使仿真調試時能正常停止程序。在調試C51或匯編程序時,應在程序主函數前面加入圖5所示的代碼,使用51mini嵌入式仿真器則將0x0023(0023H)改為0x003B(003BH)。生成機器碼文件時,加入的C51或者匯編代碼都可以刪除。

圖4 硬件仿真Keil uVision設置方法

圖5 硬件調試時程序中加入的代碼
源程序代碼經過調試,沒有語法錯誤和邏輯錯誤后,可將其編譯生成擴展名是Hex的目標文件(機器碼),再將目標文件下載(燒錄)進單片機,單片機才能脫離計算機獨立運行程序。在計算機端運行STC-ISP或SST EasyIAP11F下載軟件,可通過計算機串口分別給宏晶公司和SST公司的51系列單片機下載程序,讓初學者掌握ISP原理。
設計的實驗箱照片見圖6,它可以順利完成表1中的18個實驗項目,批量生產的成本約六七百元,低于市場上同類型的單片機教儀產品。

圖6 實驗箱照片
在課堂理論教學中,使用自制的單片機實驗箱,再結合計算機上運行的Keil uVision軟件,可以在計算機上對設計的程序代碼進行單步跟蹤,同時讓學生在實驗箱看到運行結果,通過“軟硬兼施”使學生真正領悟單片機知識。同時,模塊化設計的實驗系統有利于教師改革教學方法,從傳統的純理論教學改為理論與實踐并重的項目教學,取得較好的實踐效果[11]。
在實驗教學中,使用自制的模塊化實驗箱,學生可以自主選擇實驗項目內容。如:輸入接口實驗,可以根據自己的能力選擇自鎖開關、獨立按鍵和矩陣鍵盤中的一個或者多個;輸出接口實驗,同樣可以選擇LED數碼管、點陣和液晶中的一個或者多個。學生在實驗過程中通過連線,可以加深對硬件知識的理解。模塊化設計的實驗箱,還有利于充分發揮學生的主觀能動性,讓學生自主設計實驗項目以完成綜合性、設計性實驗。該實驗箱還可以作為學生參加大學生電子設計競賽、挑戰杯競賽的賽前訓練之用,以學促賽,以賽促學[12]。
自制的單片機實驗箱可實現仿真、下載與實驗3種功能,滿足單片機課程理論教學與實驗教學的要求,同時可對學生的課外科技活動提供有益的幫助。自制教儀可以彌補通用教儀靈活性和適應性不足的缺點,而且可以體現出教師的教學理念、工程經驗和教學獨創性,有利于培養學生的動手能力和創造能力,提高學生學習理論知識的積極性,有效節約實驗室建設經費[13-14],獲得學生和同行教師的廣泛好評。根據教學需要自制物美價廉且方便實用的教學儀器,是工科院校應用性課程實驗教學的一種可選之路。本設備的研制成功,對同類型的工科專業實驗室建設有一定的參考意義。
(References)
[1]Wang Ping,Liu Mengxia,Wang Yanni,et al.Teaching Reform of“Principle and Application of Signal-Chip Microproce -ssor”and Engineering Quality[C]//In proceedings of 2010Third International Conference on Education Technology and Training(ETT 2010),Wuhan,China,2010:433-436.
[2]朱向慶,胡均萬,陳宏華,等.多功能單片機實驗系統的研制[J].實驗室研究與探索,2012,31(4):41-44.
[3]惠煌,賴曉晨,遲宗正,等.高校單片機教學實驗設備自制模式探索[J].實驗技術與管理,2012,29(5):229-232.
[4]周冠玲,馮占英,李戰.“單片機原理及應用”課程教學改革的探討[J].中國電化教育,2012,33(6):105-107.
[5]張鑫.單片機原理及應用[M].2版.北京:電子工業出版社,2010.
[6]陳世瓊.單片機教學多功能實驗開發板設計與實現[D].成都:西南交通大學,2010.
[7]林益平.基于SST89E54RD單片機的 MONITOR-51仿真器設計[J].肇慶學院學報,2008,29(2):29-32.
[8]浙江科技學院.一種單片機開發綜合實驗箱:中國,CN202362992[P].2012-08-01.
[9]李曉林,牛昱光,閻高偉.單片機原理與接口技術[M].2版.北京:電子工業出版社,2011:194.
[10]王海燕,楊艷華.Proteus和Keil軟件在單片機實驗教學中的應用[J].實驗室研究與探索,2012,31(5):88-91.
[11]朱向慶,胡均萬,曾輝.CDIO工程教育模式的微型項目驅動教學法研究[J].實驗技術與管理,2012,50(11):159-162.
[12]賈萍,丁向榮,胡美蘭.“教、學、做”一體化單片機教學實驗平臺的設計與應用[J].實驗技術與管理,2012,29(6):139-142.
[13]趙大中,吳曉東.自制教學儀器在高校教育教學中的應用[J].中國現代教育裝備,2006,15(9):32-34.
[14]Wang Li,Wang Fuzhong,Su Bo.Reform on Experiment Teaching of Single-Chip Microcomputer and Cultivation of Students’Practical Ability[C]//In proceedings of Interna-tional Conference on E-Health Networking,Digital Ecosys-tems and Technology(EDT),Shenzhen,China,2010:263-266.