











摘要:針對單片機課程在串口通信教學上存在知識點相對單一、缺乏綜合性和創新性等問題,文章基于結果導向型教育(Outcomes-Based Education,OBE)理念對串口通信進行教學改革,優化串口通信的教學內容和教學方法,引入虛擬串口和藍牙串口技術,構建基于應用型人才素質能力培養要求的課堂教學模式。虛擬串口模擬串口通信,實現計算機仿真讀寫控制操作?;诖谕ㄐ排c藍牙通信拓展到藍牙與單片機通信的教學設計,以串口通信為著手點逐步深入到藍牙無線通信,以迭代遞進的方式增強串口通信教學內容的實用性和挑戰性,強化學生對相關知識內容的理解和應用能力,以達成培養具有工匠精神的應用型人才的課程目標。
關鍵詞:新工科;單片機;串口通信;結果導向型教育
中圖分類號:TP39 "文獻標志碼:A
0 引言
在新工科背景下,單片機課程注重實踐性、創新性以及如何與工程應用結合[1]。目前,應用型高校串口通信課程內容上存在技術落后、缺乏綜合性和創造性問題[2]。然而,教育部倡導“新工科”的研究和實踐,要求深化工程教育改革。解決實驗箱擴展性不足、課堂實驗與實際需求脫節、實驗地點固定等問題[3]?;贠BE理念,除掌握串口通信的基礎知識外,還要達到能夠自主解決項目中的復雜問題,能夠滿足面向工程應用的系統設計和開發需求[4]。為培養創新能力和工程應用能力,教學設計要結合接口技術原理和工程實踐,單片機實驗或大作業開展半命題式題目設計,讓學生自主確定研究內容和結果的展現方式[5-7]。
目前,很多單片機、嵌入式設備常采用串口通信來開發調試,工控設備也通過串口進行命令操控。在網絡運維中,經常用串口對設備進行安裝調試,例如:路由器、交換機等。常規的串口連接是采用線纜的方式,但在實際生產環境中,有可能因為設備安裝的位置較高、空間狹窄、設備處于運動狀態等,不便于進行線纜連接,而采用藍牙串口透傳的連接方式,進行近距離的無線操控,這種通信方式適于更多的應用場景。
1 PC與單片機串口通信
串口通信的教學任務是讓學生掌握通信的基本原理,包括數據傳輸、波特率、數據格式等。通常學生會在課前通過視頻、資料等方式自學串口通信的基礎知識,課堂上講授串口通信原理及應用,討論串口技術要點和實踐操作。指導學生連接單片機與其他設備(如計算機、傳感器等)進行串口通信。本課程選擇51系列單片機開發板,使用C語言編寫串口通信程序。
1.1 串口通信教學設計
首先開展AT89C52單片機和PC串口通信的基礎教學,重點講授串口通信基本原理和方法,再使用Keil軟件設計串口程序??紤]到機械電子工程專業學生計算機理論基礎薄弱,因此采用多函數段的形式,開展單片機程序設計。利用單片機獨立編寫子函數,如串口程序中設計初始化子函數、中斷子函數及主函數等程序段。本方案促進學生理解吸收相關寄存器的指令調用和設置,提升程序設計能力。中斷函數的功能是將SBUF寄存器中的數據傳送到單片機P1寄存器,控制單片機執行指令的動作。主函數的功能是將接收到的計算機數據再傳回PC電腦,由串口助手在顯示窗口顯示出來,因此能更直觀地理解發送和接收的過程。
初始化函數程序設置波特率為9600 bps,采用定時器定時方式,定時器T1初始值設置為0xfd,對REN、EA、ES執行置1操作,允許執行串口中斷,具體初始化子程序設計如下。
void intc()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
}
在初始化函數設計完成后,學生掌握了串口通信的內部寄存器設置,接下來編寫收發信息程序,單片機內部由中斷是否置為1反饋收發信息狀態,通過中斷函數獲得收發信息。本文中斷函數的功能是當單片機接收信息完成后執行點亮小燈指令,再將SBUF收到的信息賦值給變量a,將變量flag置為1。主函數設計的功能是當變量flag為1后,將執行變量a的信息發送到SBUF寄存器中,再將SBUF信息傳給PC上位機,實現串口助手實時顯示發送到單片機的信息,使收發信息現象更直觀,主函數及中斷函數程序設計如下。
#includelt;reg52.hgt;
int flag,a;
void main( )
{
intc( );
while(1)
{
if(flag==1)
{
ES=0;
flag=0;
SBUF=a;
while(!TI);
TI=0;
ES=1;
}
}
}
void ser( )" interrupt 4
{
RI=0;
P1=SBUF;
a=SBUF;
flag=1;
}
應用USB串口模塊將PC和單片機連接,通過串口助手軟件為單片機加載通信程序,在串口助手發送對話窗口中輸入傳輸內容,本文設計的方案是給單片機發送點亮小燈的信息,如點亮第一個小燈發送0xfe,單片機收到上位機數據后,執行點亮小燈指令,然后由PC的串口助手顯示,通過收發界面確認通信完成,串口助手使用如圖1所示。完成此程序設計,學生會掌握收發信息的一般操作過程及程序設計通用方法,如項目研發中遇到其他的串口通信問題,以此案例為基礎只需改寫收發的SBUF寄存器的數據即可,可以讓學生具備串口通信的能力,能完成更多的設計任務。
1.2 虛擬串口設計
以往教學過程中僅使用實驗板完成串口通信,課程實驗方法單一,受開發板限制,實驗場所固定,不利于學生自主開發和創新能力的培養?;贠BE的教育理念,重視學生探索能力和創新精神的培養,在此增加虛擬串口通信教學內容,為學生提供更多解決工程問題的策略和方法,提升解決工程問題的能力。虛擬串口通信是在軟件層面模擬串口通信,用于缺少實際串口設備的程序測試,或者在2臺無法直接通過物理串口連接的設備間模擬串口通信場景。
本課程預先在PC上安裝虛擬串口軟件,添加虛擬接口COM1和COM2,添加后串口助手就可以選擇對應虛擬接口,虛擬串口設置如圖2所示。
在軟件中繪制單片機控制的電路原理圖,導入串口通信元件compim接線端子,將串口端子的RXD、TXD與對應單片機RXD、TXD相連。虛擬串口通信程序與串口通信程序相同,仍由子函數和主函數組成,初始化子函數設置波特率為9600 bps,主函數設計程序功能為接收信息后,單片機執行收到的SBUF寄存器中的指令,這里是PC發送0xaa給單片機,單片機通過發光二極管顯示接收到的信息,單片機在接收到信息后將0xaa返回給上位機,在串口助手中顯示交互信息,虛擬串口設計仿真效果如圖3所示,程序設計如下。
#includelt;reg52.hgt;
#define uchar unsigned char
uchar flag,a;
void init()
{
TMOD=0x20;
TL1=0xfd;
TH1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1; //SCON=0x50
EA=1;
}
void main()
{
init();
while(1)
{
if(RI==1)
{
RI=0;
a=SBUF;
P1=SBUF;
}
if(a==0xaa)
{
a=0;
SBUF=0xaa;
while(!TI);
TI=0;
}
}
2 藍牙與手機通信設計
藍牙無線通信技術適合于信息技術、電子工程或計算機科學、機械電子工程等專業的學生,掌握藍牙技術的原理、架構和工作方式。
實驗中應用藍牙開發板或模塊,如HC-05、HC-06等,介紹藍牙模塊的組成以及如何與其他設備(如手機)進行配對。本實驗應用BT06藍牙模塊。該模塊專為智能無線數據傳輸而打造,遵循V3.0 藍牙規范。本模塊支持UART接口,支持SPP藍牙串口協議,具有成本低、體積小、功耗低、收發靈敏性高等優點,只需配備少量的外圍元件就能實現強大功能,藍牙模塊如圖4所示,分別連接給出的4線接口,藍牙模塊與PC采用USB串口的方式連接,藍牙與電腦連接如圖5所示。
藍牙連接后藍牙調試器會顯示已連接,藍牙調試器發出I like PKU and I research robot信息,PC上位機通過串口助手顯示收到的信息,同時發送I like PKU and I research robot too信息,在手機端顯示收到信息,信息交互過程如圖6和圖7所示。
通過上述教學設計,學生不僅能夠掌握藍牙通信的基礎知識和技能,還能夠了解藍牙技術在現代移動通信中的應用。
3 手機與單片機通信教學設計
使用手機控制單片機,如點亮小燈、數碼管和液晶顯示、驅動電機等。連接藍牙模塊與單片機如圖8所示,通過手機藍牙調試App搜索藍牙設備(JDY-31-SPP),如圖9和圖10是安卓系統下2款開源App,通過手機App匹配藍牙設備。當藍牙模塊指示燈常亮時表示連接成功,如圖11所示,同時手機界面上會出現設備已連接。按下本設計的按鍵,可實現手機端向藍牙發送16進制數或文本。當收到手機發送的16進制數后,單片機執行預定動作,以此來實現手機控制單片機。本設計是通過手機端給單片機一個16進制A驅動單片機點亮小燈,程序測試如圖12所示。
程序設計仍由子函數和主函數組成,初始化子函數設定波特率為9600 bps,定時器T1的初始值為0xfd,對REN、EA、ES執行置為1操作,允許串口中斷,初始化子函數程序設計如下。
void set_serial()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
}
本次單片機執行的動作由中斷函數完成,將SBUF接收到的數據讀出并賦值給變量r_data。當讀到變量r_data是A字符時,表示手機界面按鍵被按下,此時單片機執行相應動作,這里設計的功能是使小燈閃爍5次,本文設計的是一種通用程序,改變發送給SBUF的數據,可以實現單片機的其他動作控制,如驅動電機、控制顯示屏、輸出其他信號等,啟發學生靈活設計程序,以應對工程中的復雜控制,中斷函數程序設計如下。
void recv_data_from_serial() interrupt 4
{
RI=0;
r_data=SBUF;
if(r_data=='A')
{
for(k=0;klt;5;k++)
{
P1=0xfe;
delay();
P1=0xff;
delay();
}
}
}
設計單片機主程序函數,函數中調用初始化函數,另外設計延時函數控制小燈閃爍時間,主程序函數設計如下。
#includelt;reg52.hgt;
#define uchar unsigned char
char r_data;
int i,j,k;
void delay()
{
for(i=0;ilt;1000;i++)
for(j=0;jlt;110;j++);
}
void main()
{
set_serial();
while(1)
{
;
}
}
4 結語
新工科背景下引入OBE教學理念,開展串口通信教學改革,拓展PC與單片機串口通信教學內容,在串口通信基礎上增設虛擬串口通信、PC與藍牙通信、手機與單片機通信等教學內容,更好地滿足工程中生產設備調試及操控要求。教師在理論知識講授過程中,引導學生發散思維。學生不僅要掌握有線通信技術,還要具有不斷改進和創新的意識,強化對本專業技能的探索能力,將知識牽引到工程實踐中,努力成為具有精益求精和創新精神的工程師。
參考文獻
[1]鄭祥明,師飄,孔晨鑫.基于OBE的嵌入式實驗項目設計[J].商丘師范學院學報,2024(9):85-88.
[2]黃克亞,余雷,李曉旭.STM32與PC機USART通信教學實驗設計[J].現代電子技術,2022(10):21-25.
[3]王海蛟,李丹,丁棟,等.基于VB與單片機串口通信的智能控制教學演示臺的設計開發[J].工具技術,2014(10):52-56.
[4]陳燕慧,顧宗磊,丁帥.單片機與思政元素相融合的課堂教學設計與研究[J].科學咨詢(教育科研),2024(5):93-96.
[5]楊桂華,李懷暉.基于虛擬實驗教學平臺的單片機控制技術課程實踐教學改革研究[J].中國現代教育裝備,2024(3):29-32.
[6]王月.單片機無線射頻通信實驗電路設計[J].揚州職業大學學報,2023(4):55-59.
[7]胡發煥,鄭大騰,郭猷敏.基于能力培養的單片機課程設計[J].機電工程技術,2023(11):251-255.
(編輯 王永超編輯)
Teaching design of serial communication in microcontroller courses under the background of new engineering
LI" Hongyan1, LIU" Xing2*
(1.East University of Heillongjiang, Harbin 150066, China; 2.Harbin Institute of Information Technology,
Harbin 150431, China)
Abstract: In response to the issues of single-point knowledge, lack of comprehensiveness and innovation in serial communication teaching for microcontroller courses, based on the outcomes-based education philosophy, it will reform the teaching of serial communication, optimize the content and methods of serial communication teaching, and introduce virtual serial ports and Bluetooth serial port technology. A classroom teaching model is constructed that meets the requirements for cultivating the qualities and abilities of application-oriented talents. By simulating serial communication with virtual serial ports, it can achieve computer simulation of read and write control operations. Expanding from serial communication to Bluetooth communication, a teaching plan is designed that extends from serial communication to Bluetooth communication with microcontrollers, starting with serial communication and gradually delving into Bluetooth wireless communication. This iterative and progressive approach will enhance the practicality and challenge of serial communication teaching content, strengthen students’ understanding and application abilities of the relevant knowledge. It will achieve the course goal of training application-oriented talents with a craftsman’s spirit.
Key words: new engineering; microcontroller; serial communication; outcomes-based education