濟寧職業(yè)技術學院 胡建波
濟寧市高級職業(yè)學校 胡延平
單片機實訓可以采用多種形式:比如面包板、洞洞實驗板、實訓套件等。本文主要以DS18B20溫度傳感器為例交流單片機課程實訓體會。為了使學生積極投入到單片機課程實訓中,讓每位學生獨立設計一件較為實用的作品,并焊接做出產(chǎn)品,有條的送給他們做為鼓勵,可大大調(diào)動學生學習單片機的熱情和積極性。考慮到網(wǎng)上DS18B20溫度計案例較多,為了避免學生抄襲,實訓最好能選用較為新型單片機,并有利于學生對新器件的選擇應用和學習;但也不能偏離太多而增加難度,不利于知識的鞏固和理解。本案例選用的STC10F08XE為1T單片機,速度較普通89C51單片機快8-10倍,且兼容51指令和引腳排列。為了方便交流學習,本文中的仿真電路、PCB板圖、51仿真測試程序和1T單片機STC10F08XE程序可在CSDN網(wǎng)站下載。
表1 P0口數(shù)碼管LEFT1段碼(0~2)計算方式
圖1 電路原理
圖2 時鐘-溫度計流程圖
上電直接進入溫度顯示,顯示精度0.1度。運用溫度傳感器ds18b20測試環(huán)境溫度,經(jīng)單片機接收并對數(shù)據(jù)處理,用4位共陽數(shù)碼管顯示。上電前長按鍵則進入時鐘顯示。長按鍵1秒進入時鐘調(diào)分功能,分數(shù)碼管閃爍,每按一次鍵分+1,加到60回0;再長按鍵進入調(diào)時功能,時數(shù)碼管閃爍,每按鍵一次時+1,加到24回0。時鐘計時使用定時器T0,數(shù)碼管閃爍計時使用定時器T1。拓展功能:設置上下限溫度報警,上下限溫度值自定義。
現(xiàn)代電子產(chǎn)品,硬件產(chǎn)品從設計到制板周期較長,一般要外加工訂做PCB板。為了能在產(chǎn)品焊接調(diào)試前驗證硬件電路及軟件設計缺陷,有經(jīng)驗的工程師一般要進行仿真測試。Proteus是一款比較實用的單片機程序仿真、硬件電路設計及PCB制板軟件,具有較為豐富的元件庫,并能創(chuàng)建元器件和封裝,該軟件簡單易學且功能強大。keil軟件提供視窗化的編輯、編譯和調(diào)試窗口,可進行單步、斷點調(diào)試,并可與Proteus仿真軟件聯(lián)接調(diào)試以便觀察寄存器和RAM數(shù)據(jù)變化。
電路采用數(shù)碼管靜態(tài)顯示(圖1),Proteus仿真電路中的單片機使用AT89C51,實際產(chǎn)品中使用STC10F08XE單片機,可直接驅(qū)動1英寸LED數(shù)碼管,與0.56英寸LED數(shù)碼管相比較,具有較好的視覺效果。為了方便制板中的布線,進一步加深學生對數(shù)碼管段碼的理解,數(shù)碼管段碼采用了非標準共陽段碼格式,這在工程設計中是非常實用的,其中數(shù)碼管LEFT1使用一種格式,其余三個數(shù)碼管使用另一種格式。表1列舉了P0口數(shù)碼管LEFT1段碼(0~2)計算方式。
本例中用的數(shù)碼管是1英寸共陽LED數(shù)碼管,Proteus中沒有對應的封裝。另外按鍵和DC電源插座也需要創(chuàng)建對應的封裝。元器件封裝創(chuàng)建后應在原理圖中添加指定的封裝,將原理圖中元器件的引腳序號與封裝庫中的引腳序號建立一一對應關系。若學生能獨立完成,就能很容易的理解元器件引腳排列。
PCB制板主要任務是元件排列布局和布線,元器布局一般采用自動排列元器件和手動排列相結合的方式,布線通常也采用自動與手動相結合的方式。實訓中為了鍛練學生的動手能力,采用單面板手動布局和布線。
項目設計的目的是鞏固所學理論知識,因溫度計項目包含的單片機知識點有限,為了讓學生充分利用所做電路資源,加深對單片機定時計數(shù)器的應用,項目中增加了時鐘功能。上電前長按鍵進入時鐘功能,直接加電進入溫度度功能。利用定時器0實現(xiàn)0.05毫秒時鐘計時,計數(shù)20次1秒。為了讓學生熟練使用獨立式按鍵,增加時鐘調(diào)整功能,且僅使用一個按鍵,長按0.5秒進入時、分調(diào)整或退出時鐘調(diào)整,單擊按鍵一次調(diào)整時、分+1。利用定時器1實現(xiàn)0.05毫秒時鐘調(diào)整閃爍計時,計數(shù)6次0.3秒數(shù)碼管亮滅狀態(tài)取反。學生也可利用此獨立按鍵編寫溫度計報警功能的上下限溫度值調(diào)整程序。根據(jù)實訓時間按排還可加入時鐘芯片DS1302,這樣可實現(xiàn)時鐘顯示和溫度顯示的隨意切換,可避免由于使用了定時器中斷影響時鐘精度,如圖2所示。
Proteus提供的代碼調(diào)試窗口可全速、單步、進入子程序、退出子程序、執(zhí)行到光標行和設置斷點多種調(diào)試手段,通過查看仿真電路引腳電平、數(shù)碼管數(shù)據(jù)顯示、CPU寄存器、數(shù)據(jù)寄存器和SFR等內(nèi)容變化,以便分析產(chǎn)生問題的原因,查找軟硬件錯誤。
特征數(shù)據(jù)測試與調(diào)試技術是現(xiàn)代單片機應用開發(fā)工程師最基本的能力要求,這不僅指軟件測試也包括硬件電路糾錯,所以在實訓過程中應特別強調(diào)該能力要素,通過實訓養(yǎng)成學生獨立思考的習慣,培養(yǎng)學生獨立解決問題的能力。部分學生實訓過程中不善于動腦,惰性較大。程序編輯輸入完成輸出結果就認為完成作業(yè)作務。其實學生們完成的僅是把書本的程序文檔在PC機上錄入一遍,有的同學甚至拷貝一份,其實質(zhì)并沒達到程序調(diào)試的目的。對于已經(jīng)完成作業(yè)任務的同學,在實訓過程中教師可嘗試將某些指令或電路有針對性的改錯,讓他們通過學到的調(diào)試技術和方法重新調(diào)試查找軟硬件錯誤。一般的編譯提示錯誤學生可能比較好改正,但結構性或非語法類指令錯誤,編譯系統(tǒng)不能提示,學生查錯就相對因難,這就要求學生有耐心細致的工作態(tài)度,擺脫浮夸的學習作風。另外實訓過程中應嚴格考評,將考評與實訓成績結合。
焊接技術是單片機課程設計、裝配不可缺少的重要環(huán)節(jié),焊接質(zhì)量的好壞真接影響電子產(chǎn)品的質(zhì)量性能。學習焊接知識、焊接方法,熟練掌握手工焊接的基本技能,練好焊接基本功也是單片機課程實訓的重點內(nèi)容之一。
焊接過程中可能會出現(xiàn)虛焊、斷路、導線連接錯誤,或焊接時間過長損壞元器件,或程序軟件錯誤,即出現(xiàn)的軟硬件錯誤使產(chǎn)品不能實現(xiàn)所要求的預期功能,這時就需要調(diào)試查找錯誤。由于STC10F08XE單片機沒有對應的硬件仿真器,產(chǎn)品焊接成功后不能進行在線實時跟蹤調(diào)試,學生可利用keil軟件的虛擬調(diào)試器查看CPU寄存器和RAM變量,或利用串口回顯待測數(shù)據(jù)。另外隨著STC最新型可仿真單片機IAP15F2K61S2的量產(chǎn),在以后的實訓中可選用該單片機讓學生動態(tài)觀察CPU寄存器、RAM或硬件顯示數(shù)據(jù)變化,并利用電壓表等工具測試電路引腳電平變化。單片機調(diào)試是一枯燥、繁瑣的腦力勞動,需要有持之以恒的決心和耐心,能較好的鍛煉學生的毅力。