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