鮑率的問題

Home Home
引用 | 編輯 tgs0910
2006-11-03 16:43
樓主
推文 x0
石英振盪器為11.0592mhz
鮑率為115200bps
我要送8個 ..

訪客只能看到部份內容,免費 加入會員



獻花 x0
引用 | 編輯 cmovies
2006-11-05 20:13
1樓
  
11.0592MHz 如果要 115200 bps 應該要用 Timer 2 才可以吧!?

Mode 1 BaudRate = OSC / (32 * (65536 - RCAP2))

115200 = 11059200 / (32 * (65536 - 65533))

獻花 x0
引用 | 編輯 tgs0910
2006-11-13 21:48
2樓
  
請問一下用模式2
th1為3還是253
smod = 1
對不對
那不好意思在請問一下
如果用模式2如何不使用bit9同位元簡檢查
謝謝大大的幫忙

獻花 x0
引用 | 編輯 cmovies
2006-11-14 08:57
3樓
  
8051 的 Timer 都為上數(從 0 到 255), 所以應該是 256 - 3 = 253
SMOD = 1 代表兩倍(只對 Timer 1 當 BaudRate 有效)
11.0592MHz, TH1=253(Mode2), SMOD=1 -> BaudRate = 19200 bps

>如果用模式2如何不使用bit9同位元簡檢查
你所指的是 Timer 1 用 Mode 2 還是 SCON 中的 Mode 2 (9-bit UART with OSC/64 or OSC/32)???
不過你用 TH1 來當 BaudRate, 應該指的是 Timer 1 用 Mode 2 吧!?
這樣只要 SCON 設成 Mode 1 就沒有 9th bit


SCON bit description:

  SM0 SM1   Mode   Description   Baud Rate
  0   0     0     shift register fosc./12
  0   1     1     8-bit UART     variable
  1   0     2     9-bit UART     fosc./64 or fosc./32
  1   1     3     9-bit UART     variable

  SM0       SCON.7
  SM1       SCON.6
  SM2       SCON.5 Enables the multiprocessor communication feature in
              Mode 2 and 3. In Mode 2 or 3, if SM2 is set to 1 then
              RI will not be activeated if the received 9th data bit
              (RB8) is 0. In Mode 1, if SM2 = 1 then RI will not be
              activated if a valid stop bit was not received. In
              Mode 0, SM2 should be 0.
  REN       SCON.4 Set/Cleared by software to Enable/Disable reception.
  TB8       SCON.3 The 9th bit that will be transmitted in mode 2 & 3.
              Set/Cleared by software.
  RB8       SCON.2 In mode 2 & 3, is the 9th data bit that was received.
              In mode 1, if SM2 = 0, RB8 is the stop bit that was
              received. In mode 0, RB8 is not used.
  TI       SCON.1 Transmit interrupt flag. Set by hardware at the end of
              the 8th bit time in mode 0, or at the beginning of the
              top bit in the other modes. Must be cleared by software.
  RI       SCON.0 Receive interrupt flag. Set by hardware at the end of
              the 8th bit time in mode 0, or halfway through the stop
              bit time in the other modes (except see SM2). Must be
              cleared by software.

獻花 x0
引用 | 編輯 tgs0910
2006-11-14 22:40
4樓
  
不好意思請問一下

11.0592MHz 如果要 115200 bps 應該要用 Timer 2 才可以吧!?

請問一下 Timer 2 不是要52系列才有嘛

51系列有Timer 2 嗎


可以請教要如何寫嘛

謝謝大大的幫忙

獻花 x0
引用 | 編輯 cmovies
2006-11-14 22:57
5樓
  
沒錯! 8x52 才有 Timer 2.
如果用 51 加上 11.0592MHz 應該無法達到 115200 bps
要麼換Crystal不然就換成8x52

獻花 x0
引用 | 編輯 tgs0910
2006-11-21 22:50
6樓
  
不好意思 那請問一下如果用52系列
用time2的模式
要如何設定 t2con 和 tcon

scon 和time1時設定是否一樣
小弟找了好久都找不到time2的資料
可以請大大幫幫小弟嘛
還是有相關資料可以給小弟 謝謝

獻花 x0
引用 | 編輯 cmovies
2006-11-22 00:12
7樓
  
SCON 的設定是一樣的, 需要設定的是 T2CON 跟 RCAP2L, RCAP2H
只要將 RCLK, TCLK 設為 1, 就是使用 Timer 2 當 BaudRate
如果看 Datasheet 方便的話, 直接到 Intel/Atmel,.. 的 52 系列資料來看就很詳細了

; T2CON bit description:
;   TF2       T2CON.7 Timer 2 overflow flag set by a Timer 2 overflow and must
;               be cleared by software. TF2 will not be set when either
;               RCLK = 1 or TCLK = 1.
;   EXF2     T2CON.6 Timer 2 external flag set when either a capture or
;               reload is caused by a negative transition on T2EX and
;               EXEN2 = 1. when Timer 2 interrupt is enabled, EXF2 = 1
;               will cause the CPU to vector to the Timer 2 interrupt
;               routine. EXF2 must be cleared by software.
;   RCLK     T2CON.5 Receive clock flag. When set, causes the serial port to
;               use Timer 2 overflow pulses for its receive clock in
;               Modes 1 and 3. RCLK = 0 causes Timer 1 overflow to be
;               used for the receive clock.
;   TCLK     T2CON.4 Transmit clock flag. When set, causes the serial port to
;               use Timer 2 overflow pulses for its transmit clock in
;               Modes 1 and 3. TCLK = 0 causes Timer 1 overflow to be
;               used for the transmit clock.
;   EXEN2     T2CON.3 Timer 2 external enable flag. When set, allows a capture
;               or reload to occur as a result of a negative transition
;               on T2EX if Timer 2 is not being used to clock the serial
;               port. EXEN2 = 0 causes Timer 2 to ignore events at T2EX.
;   TR2       T2CON.2 Start/Stop control for Timer 2. A logic 1 starts the
;               timer.
;   C/T2-     T2CON.1 Timer or counter select. (Timer 2)
;                 0 = Internal timer (OSC/12)
;                 1 = External event counter (falling edge triggered)
;   CP/RL2-   T2CON.0 Capture/Reload flag. When set, captures will occur on
;               negative transitions at T2EX if EXEN2 = 1. When cleared,
;               auto-reloads will occur either with Timer 2 overflows or
;               negative transitions at T2EX when EXEN2 = 1. When either
;               RCLK = 1 or TCLK = 1, this bit is ignored and the timer
;               is forced to auto-reload on Timer 2 overflow.

獻花 x0
引用 | 編輯 tgs0910
2006-11-22 22:27
8樓
  
不好意思
我的意思是要如何使用time2這個工能
是要在那設定使用time2
像time 0 和 time 1是在tmod設定
是不是這樣設

ORG   00H
MOV T2CON ,#00110100B
MOV TH1,#253
MOV TL1,#253
SETB TR2
END

獻花 x0
引用 | 編輯 cmovies
2006-11-22 23:31
9樓
  
沒錯! 就是設定 T2CON 來使用 Timer 2 的功能

mov T2CON, #00110000b
mov RCAP2H, #HIGH (-3) ; -3 = 65533
mov RCAP2L, #LOW (-3)
mov TH2, RCAP2H
mov TL2, RCAP2L
setb TR2

獻花 x0