電子資訊工程綜合實訓分析論文

才智咖 人氣:3.12W

摘要:該院電子資訊工程專業《微控制器應用技術》課程的綜合實訓專案是"簡易計算器",能輸入並顯示十進位制資料的算術運算表示式及運算結果,同時顯示當前環境的溫溼度。該專案考察的知識點包括微控制器的I/O埠、中斷系統、定時/計數器、串列埠以及感測器通訊,能很好地檢驗學生對微控制器應用技術的掌握情況。

電子資訊工程綜合實訓分析論文

關鍵詞:綜合實訓;《微控制器應用技術》

引言

《微控制器應用技術》是我院電子資訊工程專業的專業核心課程,在整個課程體系中起著承上啟下的重要作用。該課程的前導課程有《C語言程式設計》、《類比電子技術》、《數位電子技術》等,後續課程有《電子產品系統設計》、《嵌入式系統》、《EDA技術》以及《感測器應用技術》等,《微控制器應用技術》課程開設於大二上學期,共120課時。一門課程的綜合實訓專案要求覆蓋該課程的重要知識點、針對性強、難度適中,並且具備一定的趣味性和實用性。基於以上幾點要求,課程組將綜合實訓專案確定為"簡易計算器"。簡易計算器的基本功能為:開機後顯示當前環境的溫度和溼度,能進行三位以內(包含三位)十進位制整數的加、減、乘、除運算,顯示運算表示式及運算結果;當計算器進行運算時,運算指示燈亮,否則運算指示燈滅。

1硬體設計

簡易計算器能進行十進位制資料的加、減、乘、除運算,需要輸入"0"-"9"十個數字,"+"、"-"、"*"、"/"和"="五個符號,故輸入裝置中至少應有十五個按鍵;簡易計算器能顯示當前環境的溫溼度和兩個三位十進位制數的算術運算表示式及結果,故輸出裝置至少能顯示20個(6個字元顯示溫溼度,14個字元顯示算術表示式及結果)字元。

1.1輸入裝置

輸入裝置需要至少十五個按鍵(選用兩個觸點的彈性按鍵),按鍵與微控制器的連線有獨立按鍵和矩陣鍵盤兩種形式。獨立按鍵與微控制器連線時,按鍵的一個觸點連線微控制器的一位I/O埠、另一個觸點接地,即每一個按鍵需要佔用微控制器的一位I/O埠,因此獨立按鍵形式適用於按鍵個數偏少(少於或等於八個)的場合。矩陣鍵盤與微控制器連線時,按鍵按矩陣式排列、位於行列線的交叉點上,按鍵的一個觸點與所在行的行線連線、另一個觸點與其所在列的列線連線,即多個按鍵可共用一根行線或列線。矩陣鍵盤的一根行線或列線佔用微控制器的一位I/O埠,例如8*8(8行8列)的矩陣鍵盤共有64個按鍵,佔用微控制器16位I/O埠,因此矩陣鍵盤適用於按鍵數量相對較多(大於八個)的場合。在該專案中選用4*4(4行4列)16個按鍵的矩陣鍵盤作為輸入裝置。4*4矩陣鍵盤由4行、4列組成,16個按鍵位於行、列線的交叉點上,每根行線、列線與微控制器的一位I/O埠連線,且4根行線分別經上拉電阻接+5V電源。用微控制器的P3口連線矩陣鍵盤(P3.0-P3.3連線4根行線,P3.4-P3.7連線4根列線)。16個按鍵分別表示數字"0"-"9"、"+"、"-"、"*"、"/"、"="和"清零"。

1.2輸出裝置

微控制器應用系統中常用的輸出裝置有數碼管和液晶顯示器。雖然微控制器控制數碼管顯示時硬體電路和軟體程式都相對簡單,但專案中輸出裝置要顯示至少20個字元,即使數碼管採用動態掃描的方法顯示,微控制器控制20位數碼管同時顯示不同的字元需要28位I/O埠。本課程所教授的微控制器為STC89C52,共32位I/O埠,且矩陣鍵盤已佔用了8位,所以數碼管顯示不可取。在本專案中選用LCD1602液晶顯示器作為輸出裝置。LCD1602可顯示16*2(兩行顯示,每行顯示16個字元)共32個字元,需要佔用微控制器11位I/O埠。用微控制器的P2口連線LCD1602的資料埠D0-D7,微控制器的P0.1-P0.2連線LCD1602的'第4-6引腳(分別為RS、RW和EN引腳)。簡易計算器的運算指示燈用一個LED即可,佔用微控制器一位I/O埠,用微控制器的P0.3控制運算指示燈。

1.3感測器

專案要求顯示當前環境的溫度和溼度,常用的溫溼度感測器有DS18B20、HIH9000、DHT11等等。因DHT11既是溫度感測器又是溼度感測器,故本專案中選用DHT11溫溼度感測器。DHT11與微控制器序列通訊,只需佔用一位I/O埠,用微控制器的P0.4接收DHT11傳送的資料。整個電路圖如圖1所示。

2軟體設計

專案的軟體程式需要處理讀鍵、LCD1602顯示字元、算術運算以及接收處理溫溼度感測器的資料。

2.1讀鍵

微控制器讀取矩陣鍵盤的資訊通常有列掃描和行列反轉兩種方法。列掃描法的基本原理是:微控制器首先掃描第1列:給第1列的列線輸出"0"電平、給其餘三根列線輸出"1"電平,讀取4根行線的狀態,若4根行線全部為"1",則表示第1列中的四個按鍵無鍵被按下;若4根行線不全為"1",則表示第1列中的四個按鍵有鍵被按下,根據所讀行線的具體值確定被按下的是這一列四個按鍵中的哪一個;然後掃描第2列:給第2列的列線輸出"0"電平、給其餘三列輸出"1"電平,讀取4根行線的值,通過行線的狀態確定第2列四個按鍵的狀態。按照同樣的方法掃描第3列和第4列,通過所讀行線值判斷第3列、第4列中四個按鍵的狀態。當四列都掃描完後,再從第1列開始,如此反覆迴圈。行列反轉法的基本原理是:微控制器先給四根列線同時輸出"0"電平,讀取行線的值並儲存;然後微控制器給四根行線同時輸出"0"電平,讀取列線的值並儲存,再將行線值與列線值進行邏輯或運算,得到的資料稱為按鍵碼,微控制器通過按鍵碼確定被按下的是哪個按鍵。在本專案中微控制器採用行列反轉法讀鍵,若矩陣鍵盤中無鍵被按下,則按鍵碼為0xff;若矩陣鍵盤中有鍵被按下(假設同一時刻只有一個按鍵被按下),則16個按鍵被按下時的按鍵碼各不相同(0xee、0xed、0xeb、0xe7、0xde、0xdd、0xdb、0xd7、0xbe、0xbd、0xbb、0xb7、0x7e、0x7d、0x7b、0x77)。

2.2LCD1602顯示字元

根據LCD1602的通訊時序以及指令格式編寫液晶顯示器的初始化子函式、讀指令子函式、寫指令子函式、寫資料子函式和忙檢測子函式。LCD1602第一行16個字元的地址分別為0x40-0x4f,根據字元顯示地址和LCD1602中常用字元的字元顯示程式碼使液晶顯示器第一行顯示當前環境的溫度和溼度。LCD1602第二行16個字元的地址分別為0xc0-0xcf,根據字元顯示地址以及字元顯示程式碼使液晶顯示器第二行顯示算術運算表示式及運算結果。利用微控制器的定時/計數器定時10分鐘,使定時計數器T0工作於方式1,作為16位定時器,當晶體振盪器頻率為fosc=12MHZ時,T0的最長定時時間為65.536ms。若使T0定時50ms,則T0定時初值的計算方法為:TH0=(65536-50000)/256(1)TH0=(65536-50000)%256(2)在T0的中斷服務子函式中,用全域性變數T(初值為0)計數T0中斷的次數,若T的值累加到12000則表示10分鐘時間到,此時便更新溫溼度資料,T0中斷服務子函式的流程圖如圖2所示。

2.3接收感測器資訊

DHT11傳送給微控制器的資料共5個位元組,分別是溼度整數字節、溼度小數字節、溫度整數字節、溫度小數字節和校驗位元組。在微控制器接收到的資料中取第一個和第三個位元組即溼度整數字節和溫度整數字節,通過LCD1602液晶顯示器的第一行顯示出來。2.4算術運算在程式中,當矩陣鍵盤有按鍵被按下時,運算指示燈亮,程式通過多分支選擇結構判斷輸入的運算子是"+"、"-"、"*"、"/"中的哪一個,從而進行相應的運算得出正確結果,通過LCD1602的第二行將算術運算表示式及結果顯示出來。運算結束後按下"清零"按鍵,液晶顯示器第二行顯示內容清除,運算指示燈滅,算術運算的流程圖如圖3所示。

3系統除錯

將程式載入到微控制器中,觀測簡易計算器的執行狀況。經檢測,開機後LCD1602第一行顯示溫溼度(例如:25℃73%),矩陣鍵盤輸入算術運算表示式後,運算指示燈亮,LCD1602第二行顯示運算表示式及結果(例如:25*368=9200),按"清零"按鍵後LCD1602第二行顯示內容清除,運算指示燈滅。

4結束語

在綜合實訓開始之前,授課教師通過線上學習的平臺釋出綜合實訓通知、專案要求以及作品功能演示視訊,讓同學們清楚直觀地瞭解實訓目標、提前進行思考、自行查閱相關資料;在綜合實訓進行的過程中,在線上學習的平臺進行討論、搶答等活動,逐個突破難點;作品完成後,同學們將各自的作品拍照、錄功能檢測視訊,並將照片、視訊等檔案上傳至線上學習的平臺,讓大家充分地互相交流學習、互評自評;課後,每位同學將綜合實訓小結以作業形式上傳。教師根據學生的作品、互評自評以及小結給與學生最後的總評。《微控制器應用技術》課程綜合實訓近兩年來學生作品完成情況很好,對學生綜合應用本課程的各知識點以及承接後續課程起到良好的作用。