本站小編為你精心準(zhǔn)備了單片機(jī)通信任務(wù)設(shè)計(jì)實(shí)現(xiàn)分析參考范文,愿這些范文能點(diǎn)燃您思維的火花,激發(fā)您的寫(xiě)作靈感。歡迎深入閱讀并收藏。
摘要:介紹單片機(jī)通信任務(wù)的設(shè)計(jì)與實(shí)現(xiàn)。介紹硬件電路設(shè)計(jì)原理、有關(guān)數(shù)據(jù)傳送編程的注意思想,并在Proteus環(huán)境下仿真驗(yàn)證硬件電路設(shè)計(jì)合理,結(jié)果表明編寫(xiě)程序符合控制要求。
關(guān)鍵詞:?jiǎn)纹瑱C(jī);通信;Proteus
引言
單片機(jī)課程是電子類專業(yè)的必修課,在專業(yè)學(xué)習(xí)中起著非常重要的作用[1-2]。串行通信技術(shù)是單片機(jī)的一個(gè)重要應(yīng)用[3]。目前Proteus虛擬仿真已被廣泛應(yīng)用到單片機(jī)原理與應(yīng)用學(xué)習(xí)中,針對(duì)單片機(jī)通信原理復(fù)雜難懂,將介紹如何通過(guò)Proteus軟件學(xué)習(xí)單片機(jī)有關(guān)通信任務(wù)。
1控制要求
以單工通信為例,具體控制要求如下:(1)兩個(gè)單片機(jī)最小系統(tǒng),一個(gè)是主機(jī)(發(fā)送),一個(gè)是從機(jī)(接收);主機(jī)發(fā)送命令,控制從機(jī)的數(shù)碼管和LED燈工作。(2)LED彩燈、數(shù)碼管分別接到從機(jī)并行I/O口,3個(gè)開(kāi)關(guān)(開(kāi)始、暫停/繼續(xù)、停止)接到主機(jī)的I/O口。(3)系統(tǒng)上電,數(shù)碼管顯示“P”,LED燈不亮,按下“開(kāi)始”按鈕,數(shù)碼管顯示的數(shù)字和LED燈亮的數(shù)目一致(顯示“2”,亮兩個(gè)LED燈),0,1,…,8,數(shù)碼管、LED燈循環(huán)工作;任何時(shí)候按下“暫停/繼續(xù)”按鈕,數(shù)碼管、LED燈停在當(dāng)前狀態(tài),再次按下“暫停/繼續(xù)”按鈕,系統(tǒng)繼續(xù)循環(huán)工作;任何時(shí)候按下“停止”按鈕,系統(tǒng)循環(huán)要結(jié)束(數(shù)碼管顯示“8”,亮8個(gè)LED燈→數(shù)碼管顯示“P”,LED燈不亮);等待再次按下“開(kāi)始”按鈕,系統(tǒng)繼續(xù)工作。
2硬件電路設(shè)計(jì)
Proteus提供多種元件庫(kù),比如單片機(jī)、晶振、電容、電阻、LED燈等。根據(jù)案例要求,進(jìn)行功能分析后,在Proteus環(huán)境下設(shè)計(jì)仿真電路圖如圖1所示。LED燈和數(shù)碼管接在從機(jī)的P0口和P2口。3個(gè)開(kāi)關(guān)分別接在主機(jī)P3口的P3.2、P3.3、P3.4,另一端接地。根據(jù)通信要求[4-9],主機(jī)和從機(jī)的P3.0/RXD(串行口輸入)和P3.1/TXD(串行口輸出)要交叉連接,如圖2所示。為了畫(huà)圖清晰,避免元件、連線凌亂采用設(shè)置“總線”的方式,所有元件連線都可以接到總線上,然后在連接線上“wirelabel”。如圖3所示,主機(jī)的串行口P3.0/RXD、P3.1/TXD接到總線上,分別貼上標(biāo)簽“30”和“31”,從機(jī)的串行口P3.0/RXD、P3.1/TXD也對(duì)應(yīng)著接到總線上,貼上標(biāo)簽“31”和“30”。
3軟件設(shè)計(jì)
根據(jù)該案列要求,軟件設(shè)計(jì)包括3部分:按鍵模塊、主機(jī)模塊和從機(jī)模塊。
3.1按鍵模塊
通過(guò)3個(gè)按鍵“開(kāi)始”、“暫停/繼續(xù)”、“停止”實(shí)現(xiàn)對(duì)從機(jī)LED燈、數(shù)碼管的控制。8個(gè)LED燈、數(shù)碼管顯示“0—8”,整個(gè)系統(tǒng)有9個(gè)工作狀態(tài)。編程采用循環(huán)結(jié)構(gòu),用0組寄存器R0作為計(jì)數(shù)初值(R0)=0,每顯示一個(gè)狀態(tài),(R0)+1→R0,當(dāng)(R0)=10,重新賦值(R0)=0,開(kāi)始下一輪循環(huán)。具體流程圖如圖3所示。編寫(xiě)數(shù)據(jù)傳送與接收程序注意主機(jī)和從機(jī)波特率的確定以及要對(duì)串行口初始化。數(shù)據(jù)傳送可以采用查詢方式也可以采用中斷方式。案例采用的是查詢方式。
3.2主機(jī)發(fā)送模塊
主機(jī)發(fā)送數(shù)據(jù)程序模塊編寫(xiě)時(shí),要注意:初始化時(shí)串行口發(fā)送中斷標(biāo)志TI要清零,每發(fā)送完一幀數(shù)據(jù),由硬件置位TI,為了要發(fā)送下一幀數(shù)據(jù),要用軟件清TI標(biāo)志。發(fā)送數(shù)據(jù)流程圖如圖4所示。
3.3從機(jī)接收模塊
從機(jī)接收數(shù)據(jù)程序模塊編寫(xiě)時(shí),要注意:串行口接收使能位REN=1,啟動(dòng)串行口接收數(shù)據(jù),每接收完一幀數(shù)據(jù),由內(nèi)部硬件使RI置1,為了要接收下一幀數(shù)據(jù),要用軟件將其清零。接收數(shù)據(jù)程序流程圖如圖5所示。部分接收數(shù)據(jù)程序源程序:編寫(xiě)程序是個(gè)復(fù)雜的過(guò)程,一個(gè)環(huán)節(jié)考慮不周全,或者某條指令理解不清楚,會(huì)導(dǎo)致任務(wù)要求不能實(shí)現(xiàn),因此編寫(xiě)程序需要反復(fù)修改。仿真軟件Proteus提供了這樣便捷的環(huán)境,把編寫(xiě)的程序分別燒寫(xiě)到圖1的主機(jī)與從機(jī),可以看到仿真效果是否符合要求,經(jīng)過(guò)多次修改,最終完善程序。
4仿真
用鼠標(biāo)單擊仿真按鈕“”,可以看到系統(tǒng)上電的仿真結(jié)果,如圖6所示。按下“開(kāi)始”按鈕,系統(tǒng)運(yùn)行,如果按下“暫停/繼續(xù)”按鈕,系統(tǒng)停在當(dāng)前位置,比如數(shù)碼管顯示“5”,LED燈亮了5個(gè)。仿真結(jié)果如圖7所示。
5結(jié)束語(yǔ)
從硬件設(shè)計(jì)和軟件編程兩方面詳盡介紹了基于單片機(jī)單工通信控制系統(tǒng)的設(shè)計(jì),并通過(guò)Proteus軟件仿真整體電路系統(tǒng),仿真結(jié)果驗(yàn)證該設(shè)計(jì)原理正確,程序編寫(xiě)符合控制要求。
參考文獻(xiàn):
[1]王海燕,楊艷華.Proteus和Keil軟件在單片機(jī)實(shí)驗(yàn)教學(xué)中的應(yīng)用[J].實(shí)驗(yàn)室研究與探索,2012,31(5):88-91.
[2]王娟.Proteus軟件在單片機(jī)專題實(shí)訓(xùn)中的應(yīng)用[J].實(shí)驗(yàn)室研究與探索,2012,31(8):72-75.
[3]孫萬(wàn)麟.基于Proteus的單片機(jī)通信電路設(shè)計(jì)[J].實(shí)驗(yàn)室研究與探索,2016,35(10):135-138.
[4]李現(xiàn)國(guó),張艷.Proteus仿真在微機(jī)原理及接口技術(shù)教學(xué)中的應(yīng)用[J].實(shí)驗(yàn)技術(shù)與管理,2010,27(12):125-127.
[5]蘇變玲,朱志平,袁衛(wèi).基于Proteus的單片機(jī)仿真教學(xué)的研究[J].實(shí)驗(yàn)室研究與探索,2009,28(4):75-78.
[6]王娟.Proteus軟件在單片機(jī)專題實(shí)訓(xùn)中的應(yīng)用[J].實(shí)驗(yàn)室研究與探索,2012,31(8):72-110.
[7]周潤(rùn)景.基于Proteus的電路及單片機(jī)系統(tǒng)設(shè)計(jì)與仿真[M].北京:北京航天航空大學(xué)出版社,2006.
[8]劉勝,楊夏.基于Proteus的數(shù)字電路虛擬實(shí)驗(yàn)室建設(shè)[J].電氣電子教學(xué)學(xué)報(bào),2012,34(3):85-87.
[9]艾明晶.基于自動(dòng)設(shè)計(jì)方法的數(shù)字邏輯課程改革研究與實(shí)踐[J].實(shí)驗(yàn)技術(shù)與管理,2012,29(9):151-155.
作者:張翠云 單位:河南工業(yè)和信息化職業(yè)學(xué)院