線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:9263
推到 Plurk!
推到 Facebook!

RS232通訊協定

答題得分者是:ScottWang
jeff119224
一般會員


發表:1
回覆:3
積分:0
註冊:2011-09-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-09-20 16:36:27 IP:118.171.xxx.xxx 訂閱
 大家好~我想請問一下   初始化 RS232 通訊介面
以下程式是我在書本上看到的

init_rs232() //設定串列介面工作於模式1,接收資料致能
TMOD=0x20; //設定鮑率為 9600 BPS
TR1=1; //設定串列傳送中斷產生旗號
}

紅色字體可知通訊協定 9600 N 8 1
由程式可知TH1=0xFD 表是設定鮑率為9600 BPS , 但N 8 1 的設定該怎得知呢?
scott123
中階會員


發表:19
回覆:66
積分:52
註冊:2011-08-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-09-21 12:32:33 IP:203.73.xxx.xxx 訂閱

===================引 用 jeff119224 文 章===================
大家好~我想請問一下 初始化 RS232 通訊介面
以下程式是我在書本上看到的

init_rs232() //設定串列介面工作於模式1,接收資料致能
TMOD=0x20; //設定鮑率為 9600 BPS
TR1=1; //設定串列傳送中斷產生旗號
}

紅色字體可知通訊協定 9600 N 8 1
由程式可知TH1=0xFD 表是設定鮑率為9600 BPS , 但N 8 1 的設定該怎得知呢?

個bits,加個結束位元
E是even 偶同位元檢查
O是odd 奇同位元檢查
jeff119224
一般會員


發表:1
回覆:3
積分:0
註冊:2011-09-20

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-09-21 14:29:44 IP:118.171.xxx.xxx 訂閱
8051單晶片寫的 ,  註解只有看到所設定的鮑率為9600  .

8個位元的資料 , 1個停止位元 程式裡註解好像沒有設定?


編輯記錄
jeff119224 重新編輯於 2011-09-21 00:32:27, 註解 無‧
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2011-09-21 18:12:31 IP:111.242.xxx.xxx 未訂閱
您要不要把 8051 的規格書先傳上來?
大家有個相同的資料會比較好討論?
jeff119224
一般會員


發表:1
回覆:3
積分:0
註冊:2011-09-20

發送簡訊給我
#5 引用回覆 回覆 發表時間:2011-09-22 09:48:15 IP:118.171.xxx.xxx 訂閱

===================引 用 暗黑破壞神 文 章===================
您要不要把 8051 的規格書先傳上來?
大家有個相同的資料會比較好討論?


-------------------------------------------------------------------------------------------------
這是8051--->UART規格書http://www.atmel.com/dyn/resources/prod_documents/DOC4316.PDF

我把我主要問題詳細描述一次
目前程式須要透過UART介面傳送與接收
在與PC通訊方面都有需要有通訊協定,而通訊協定有很多種設定.
如: 9600.N.8.1
9600 : 鮑率 設定常用鮑率有(無(N) 奇(O) 偶(E) )
8 : 資料長度
1 :停止位元 (RS232初始化通訊介面程式

init_rs232() //初始化 RS232 通訊介面
{ //通訊協定:<9600 N 8 1>
SCON=0x50; //設定串列介面工作於模式1,接收資料致能
TMOD=0x20; //設定計時器1工作於模式2
TH1=0xFD; //設定鮑率為 9600 BPS =>11.0592MHz
TR1=1; //啟動計時器1開使計數
TI=1; //設定串列傳送中斷產生旗號
}

19200 是在程式裡TH1=0XFD 做修改

至於
O 8 2 => 不知道改怎設定了 也是我目前<9600 N 8 1>看不懂得地方

編輯記錄
jeff119224 重新編輯於 2011-09-21 19:53:51, 註解 無‧
DavidLo
高階會員


發表:17
回覆:225
積分:168
註冊:2004-07-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2011-09-22 10:58:25 IP:111.240.xxx.xxx 訂閱

if O,8,2
1 start bit 8 data bits 1 parity bit 2 stop bits = 12 bits ,51 好像沒支援 12 bits

at page 2-95 serial port mode setting
Mode 1: 10 bits are transmitted (through TXD) or received (through RXD): a start bit (0),
8 data bits (LSB first), and a stop bit (1). On receive, the stop bit goes into RB8 in Special
Function Register SCON. The baud rate is variable.
can be used for O,8,1 to use

rja123
一般會員


發表:7
回覆:3
積分:2
註冊:2005-03-29

發送簡訊給我
#7 引用回覆 回覆 發表時間:2011-09-23 22:44:06 IP:118.160.xxx.xxx 訂閱
 SCON = 0X50 
//SCON = SM0,SM1,SM2,REN,TB8,RB8,TI,RI
//SCON = 0 , 1 , 0 , 1 , 0 , 0 ,0 ,0
//模式 = 1
//SM2=0 , 模式1時,接收到不正確的停止位元,RI不會產生中斷,所以不會發生接收中斷(因為設定為0所以RI位元會動作)
//REN=1 , 表示允許接收串列資料
//TB8=0 ,
//RB8=0 , 在模式1中,若SM2 = 1 存放接收到的停止位元
//TI=0 , 發送旗標,完成時,TI = 1 ,須軟體設定為0
//RI=0 , 接收旗標,完成時,RI = 1 ,須軟體設定為0
分析:


要有校驗位需11bit(模式2或3),1個起始位元,8個資料,校驗位(1個可程式規劃設定的TB8),1個停止位
jeff119224
一般會員


發表:1
回覆:3
積分:0
註冊:2011-09-20

發送簡訊給我
#8 引用回覆 回覆 發表時間:2011-09-26 11:58:06 IP:111.254.xxx.xxx 訂閱

所以我的通訊協定為19200 N 7 2
程式設定如下

init_rs232() //初始化 RS232 通訊介面
{
SCON=0x50; //設定串列介面工作於模式1,接收資料致能
TMOD=0x20; //設定計時器1工作於模式2
TH1=0xFD; //設定鮑率為 19200 BPS =>11.0592MHz
TR1=1; //啟動計時器1開使計數
TI=1; //設定串列傳送中斷產生旗號
}

這樣是正確的嗎?
ScottWang
版主


發表:32
回覆:486
積分:688
註冊:2009-04-27

發送簡訊給我
#9 引用回覆 回覆 發表時間:2011-09-27 02:47:16 IP:59.115.xxx.xxx 訂閱
你先試試正常通用的模式,如9600 N,8,1,測試可以正常通訊了,再來測試新的設定值.
------
高壓直流電源供應器,高壓模組,測試LED專用AC LED定電流源,全範圍可調電壓電流,
中低壓直流電源供應器,電壓放大器,電流放大器,帶通濾波器,高精度參考電壓,
標準電壓,恆流源(定電流源),恆壓源(定電壓源),大電流電源供應器.
接受訂製,設計生產各種特殊規格,高精度產品,學校實驗室,研究單位實驗設備,
另可接受其它電子專案設計,HV Power,Vmax=20KV,Imax=2000A.
http://hvpower.myweb.hinet.net/
rja123
一般會員


發表:7
回覆:3
積分:2
註冊:2005-03-29

發送簡訊給我
#10 引用回覆 回覆 發表時間:2011-09-27 22:35:49 IP:111.251.xxx.xxx 訂閱
是要收? 還是要發?

EA總中斷是否有開?(接收產生中斷)
ES通訊中斷是否有開???

接收時,要做中斷時才可以確認是否正確

請去看一下8051(組合語言)版本,去看一下中斷及串列的所有暫存器的用法。
請注意讀法,去讀暫存器定義表,這樣你就可以了解為什麼。
編輯記錄
rja123 重新編輯於 2011-09-27 08:38:40, 註解 無‧
ScottWang
版主


發表:32
回覆:486
積分:688
註冊:2009-04-27

發送簡訊給我
#11 引用回覆 回覆 發表時間:2011-09-29 21:43:41 IP:218.161.xxx.xxx 訂閱
這兩篇交互著看.

Serial Communication,通訊格式.
http://esd.cs.ucr.edu/labs/serial/serial.html

Serial Communication,C與ASM的設定.
http://www.freewebs.com/maheshwankhede/rs232.html
------
高壓直流電源供應器,高壓模組,測試LED專用AC LED定電流源,全範圍可調電壓電流,
中低壓直流電源供應器,電壓放大器,電流放大器,帶通濾波器,高精度參考電壓,
標準電壓,恆流源(定電流源),恆壓源(定電壓源),大電流電源供應器.
接受訂製,設計生產各種特殊規格,高精度產品,學校實驗室,研究單位實驗設備,
另可接受其它電子專案設計,HV Power,Vmax=20KV,Imax=2000A.
http://hvpower.myweb.hinet.net/
系統時間:2024-04-18 17:46:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!