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