PIC單片機實訓裝置設計

單片機課程是電子專業的核心專業課。傳統的單片機教學:理論講解+實驗箱驗證。實驗箱的硬件電路模式固定,只需要用導線簡單連接,再將目標程序載入單片機就可以觀察到實驗結果。實驗過程中,人對硬件電路的操作空間十分有限,面對一堆電路,學生很難對自己所用的電路有一個非常直觀的認識。另外實驗箱成本高,浪費也大,實驗箱電路一般比較繁雜,一旦出現故障,很難維護,有問題的實驗箱通常會被擱置起來等著報廢,使得資源無法充分利用。
PIC單片機是Microchip公司推出的, PIC單片機系列產品被廣泛應用于從日常家用電器到智能儀器的各個領域。PIC單片機在國內發展非常迅速,而這方面的人才培養顯得相對滯后,學校的單片機課程和實驗還是以51單片機為主。作為高職學生,學習PIC單片機,不但可以提高自己的動手能力,還可以在就業方面領先一步。
PIC單片機最大的特點是從實際出發,根據產品的性能與價格比,發展多種型號來滿足不同層次的應用要求,其片內功能由簡單到復雜,封裝形式多樣化,引腳數也各不相同,最小的單片機只有8個引腳。
PIC單片機還集成了AD轉換模塊,在設計制作時,可以大大減少外圍器件,使得產品設計更為便捷,可以制作出更小的產品。另外,PIC 8位單片機具有很高的代碼兼容性,用戶很容易將代碼轉移到其它型號的PIC 8位單片機當中。
PIC 8位單片機具有指令少、執行速度快等優點,其原因是PIC單片機采用RISC和哈佛結構,如圖1所示,CPU在執行一條指令的同時,能對下一條指令進行取指操作,取指令和執行指令在時間上是相互重疊的,從而提高了CPU執行指令的速度和效率。
硬件設計
相同引腳數目的PIC 8位單片機一般都有好幾個型號,它們外部引腳兼容,內部則有所區別。這里選擇8腳、14腳、20腳、40腳的單片機,分別組成單片機最小系統。
如圖2所示,單片機最小系統、若干功能模塊組成單片機學習系統。每個功能模塊都具有一定的代表性,對需要掌握的知識和技能力求循序漸進,功能模塊之間既相互獨立,又互相銜接,功能模塊與單片機最小系統之間通過杜邦線互聯,各部分電路原理簡單,整體結構清晰明了,學生可以根據自己想法對功能模塊進行靈活搭配。

圖1 哈佛結構單片機內部構成

圖2 PIC單片機實訓裝置方框圖

圖3 印制板快速制作流程圖
例程設計
如圖2所示,通過單片機最小系統和若干個功能模塊組合,可以搭配成簡單的電壓表、頻率計、溫度計等。以頻率計為例,顯示部分既可以選用數碼管模塊,也可以采用液晶顯示模塊。PIC單片機實訓裝置為學生提供相應的演示程序,學生可以用來調試電路和參考編程。
熟悉電路原理圖及仿真環境
Proteus軟件建立了比較完備的電子設計開發環境,它可以仿真51、AVR、PIC、ARM等常用單片機。從原理圖繪制、代碼調試到單片機與外圍電路協同仿真,到PCB設計。Proteus還提供虛擬儀器:示波器、邏輯分析儀、信號發生器、交直流電壓/電流表、頻率計等。
給學生下達任務時,提供單片機電路圖和Hex文件,要求學生在Protues里繪制完成單片機電路仿真圖,再將Hex文件配置到仿真環境里的單片機上進行仿真調試。學生可以在Protues進行電路仿真時看到模擬的實物運行狀態和過程,再配合顯示及虛擬儀器,能觀察到程序運行的效果。學生調試通過,再進行下一步的編程訓練。
熟悉單片機編程及編譯環境
設置特定的驗證結果,要求學生通過編程來實現。學生在MPLAB環境里編寫程序并編譯出Hex文件,再將Hex文件配置到仿真環境里的單片機上進行調試。單片機的編程語言使用C語言比較好。單片機產品開發應用中大多采用C語言編程,C語言易懂實用,比較適合高職學生的學習特點。
MPLAB 是PIC單片機的集成開發環境,它是以工程為單位,即先要為源程序創建工程文件,再進行配置,載入相應的源程序文件。MPLAB自帶的MPASMWIN支持匯編程序編譯,要使用C語言程序編譯器,還需安裝HTTECH C。
PCB制作
對于電子專業的高職學生來講,動手能力尤為重要。在學習當中,他們不僅要盡快熟悉單片機的基本硬件設計和簡單軟件編程,還需要掌握比較扎實的電路焊接基本功。學生可以把通過仿真調試的電路繪制成PCB文件,再利用清華制板套件進行PCB制作,圖3是印制板快速制作流程圖。
單片機最小系統與功能模塊電路板焊接
給學生提供電路板及相關元件、電路圖、元件清單,要求學生焊接完單片機電路板后,把自己編譯的Hex文件下載到單片機實物里進行調試,最后將實物電路的運行結果與仿真結果進行比對,看看Proteus仿真和實物電路有哪些差別。
將單片機的功能電路分解成一個個的任務,教師邊講邊做,學生邊做邊學,可以激發學生對單片機的興趣,有利于他們提高硬件設計和軟件編程方面的能力。項目實踐中,以問題為導向,在遇到典型故障的時候,老師可以引導學生運用理論知識分析故障現象,讓學生自己在實踐中體會理論知識應用。
10.3969/j.issn.1001- 8972.2016.19.003