安徽商貿(mào)職業(yè)技術(shù)學院 周正貴
單片機應用技術(shù)是高職院校電子類專業(yè)中開設的一門專業(yè)課程。在課程實踐教學中,除動手焊接實物單片機電路板外,一般采用Proteus軟件進行仿真,實現(xiàn)虛實結(jié)合,提高課堂教學效率。Proteus是英國Lab Center Electronics公司出版的教學仿真平臺,軟件集成了豐富的單片機芯片及外部元器件,支持Keil編譯器。下面重點分析RS485通信技術(shù)教學案例,以簡易秒表控制系統(tǒng)為例。
仿真教學系統(tǒng)采用單片機雙機串口通信,甲機單片機端口設計開始、暫停、復位三個按鍵。雙機串口通信轉(zhuǎn)換芯片使用MAX487,半雙工通信,即每個單片機可作為發(fā)送端或接收端。甲機MAX487電路接口電路如圖1所示。
圖1 甲機MAX487接口電路
乙機外圍接口電路如圖2所示。乙機P1端口連接動態(tài)顯示數(shù)碼管,顯示秒表數(shù)字,位選端口連接P2^5和P2^6端口,MAX487電路和甲機MAX487相連接,實現(xiàn)串口通信,本系統(tǒng)甲機作為發(fā)送端,己機作為接收端,接收按鍵值信息并控制秒表的工作。
圖2 乙機接口電路
軟件代碼使用C語言編程,集成開發(fā)環(huán)境使用Keil平臺。串口通信代碼設計思路:甲機啟動后,首先運行串口初始化函數(shù),建立和乙機通信,且P2^0控制端口為高電平,使得甲機為發(fā)送端;其次不間斷執(zhí)行按鍵掃描程序,即開始、暫停、復位三個按鍵按下后,必須發(fā)送三個標志數(shù)值給乙機,乙機接收到數(shù)據(jù)后,執(zhí)行相應指令。
乙機數(shù)碼管動態(tài)顯示采用中斷設計,即每間隔幾十微秒,執(zhí)行一次動態(tài)掃描,確保掃描不停止,實現(xiàn)顯示功能。秒表延時一秒函數(shù),使用定時器中斷完成。代碼設計思路:乙機程序運行后,首先運行串口初始化函數(shù),執(zhí)行中斷服務程序完成動態(tài)掃描,然后,不間斷執(zhí)行串口接收函數(shù),獲取相應按鍵值后,控制延時一秒定時器的工作,實現(xiàn)開始、暫停、復位功能。程序執(zhí)行流程如圖3所示。
圖3 乙機工作流程
本文主要討論了Proteus仿真軟件在單片機教學中的應用,較詳細介紹了雙機通信原理,分析了利用單片機內(nèi)部定時器、中斷系統(tǒng)資源設計軟件代碼思路,有助于學生進一步了解仿真軟件在單片機教學中的應用。