標題: UART串行通信一些問題 [打印本頁]
作者: 無尾熊 時間: 2016-7-12 12:14
標題: UART串行通信一些問題
TMOD &= 0xF0; //清零T0的控制位
TMOD |= 0x02; //配置T0為模式2
老師 TMOD &= 0xF0;→TMOD =TMOD & 0xF0;→TMOD =0X00 //00000000 & 11110000→00000000
TMOD |= 0x02; →TMOD =TMOD | 0x02; →TMOD=0x02 //00000000 | 00000010→00000010
這樣理解對嗎?
TL0 = 256 - ((256-TH0) >> 1); //接收啟動時的T0定時為半個波特率周期
這個怎么理解接收啟動時為半個波特率周期 一個周期是9600嗎?
作者: kangshufan 時間: 2016-7-12 15:09
TMOD &= 0xF0 的目的是保證原來 時鐘1設置不變的情況下 清零T0
作者: 00嘻嘻00 時間: 2016-7-13 15:36
路過

作者: zl2168 時間: 2016-7-14 10:46
本帖最后由 zl2168 于 2016-7-14 10:49 編輯
實例77 雙機串行通信方式1
已知甲乙機以串行方式1進行數據傳送,fOSC=11.0592MHz,波特率為1200b/s,SMOD=0。甲機發送16個數據(設為16進制數0~9、A~F的共陽字段碼),間隔1秒,發送后,輸出到P1口顯示;乙機接收后輸出到P2口顯示。
先Proteus仿真一下,確認有效。
串1.jpg (113.33 KB, 下載次數: 77)
下載附件
2016-7-14 10:47 上傳
以上摘自張志良編著《單片機實驗實訓100例》 ISBN 978-7-5124-1603-1,北航社出版
書中電路和程序設計有詳細說明,程序語句條條有注解。
作者: zl2168 時間: 2016-7-14 10:49
本帖最后由 zl2168 于 2016-7-14 10:51 編輯
實例78 雙機串行通信方式2
已知甲乙機以串行方式2進行數據傳送,fOSC=12MHz,SMOD=0,TB8/RB8作為奇偶校驗位。甲機每發送一幀數據(設為0~9共陽字段碼,存在外ROM中),同時在P1口顯示;用P2.7(驅動LED燈)顯示奇偶校驗位(1亮0暗);接到乙機回復信號后,顯示暗0.5秒(作為幀間隔);然后發送下一數據,直至10個數據串送完畢;顯示再暗0.5秒(作為周期間隔),然后重新開始第二輪重復循環操作。乙機接收甲機發送的一幀數據后,送P2口顯示;用P1.1顯示第9位數據(1亮0暗),用P1.0顯示接收數據的奇偶性(奇亮偶暗);并進行奇偶校驗,向甲機發送回復信號(00H表示校驗正確,FFH表示出錯)。若正確,甲機繼續串行發送(共10幀);若出錯,甲機再重發一遍,直至乙機發回正確回復信號。
先Proteus仿真一下,確認有效。
串2.jpg (274.9 KB, 下載次數: 75)
下載附件
2016-7-14 10:51 上傳
以上摘自張志良編著《單片機實驗實訓100例》 ISBN 978-7-5124-1603-1,北航社出版
書中電路和程序設計有詳細說明,程序語句條條有注解。
作者: zl2168 時間: 2016-7-14 10:52
本帖最后由 zl2168 于 2016-7-14 10:54 編輯
實例79 雙機串行通信方式3
已知甲乙機以串行方式3進行數據傳送,fOSC=11.0592MHz,波特率為4800b/s,SMOD=1,其余要求同上例。
先Proteus仿真一下,確認有效。
串3.jpg (190.6 KB, 下載次數: 91)
下載附件
2016-7-14 10:53 上傳
以上摘自張志良編著《單片機實驗實訓100例》 ISBN 978-7-5124-1603-1,北航社出版
書中電路和程序設計有詳細說明,程序語句條條有注解。
作者: vision-31 時間: 2018-12-20 17:10
這個有程序嗎?
| 歡迎光臨 (http://m.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |