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

請問有關89C61用RS232跟電腦傳資料的問題~~

答題得分者是:
trowayui
一般會員


發表:3
回覆:7
積分:2
註冊:2005-05-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-10 17:57:27 IP:218.169.xxx.xxx 未訂閱
原本在用89C61傳資料給電腦的時候~都是用4.8K的BAUD RATE ~這樣資料都正確~但是由於要傳送差不多5M的資料~所以要提高BAUD RATE不然會傳很久....但是換成其他頻率的BAUD RATE就會整個資料就錯誤了~(電腦的接收程式都有調成相對應的頻率)~還是因為我用12M的震盪....以下是我的程式     這是我的主程式~其中rs232.h是上面那兩個副函式的~我震盪是用12M~RS232IC是用HIN232CP~  #include "io51.h"  #include "rs232.h"  main()  {  char start[]="READING.....";  int s;  set232(0xfa);  for(s=0;s<12;s ) trdata(*(start s)); while(1); } //設定BAUD RATE void set232(unsigned char baud) { PCON=0x00; SCON=0x50; TMOD=0x20; TH1=baud; TR1=1; } //傳送資料 void trdata(unsigned char sbufdata) //rs232設定 { SBUF=sbufdata; while(TI!=1); TI=0; } 我現在是送一個陣列去給他測試~~但是除了4.8K能收到正確的資料以外~其他都是錯誤的~不知道這是什麼問題~~希望各位大大幫我看一下~~謝啦

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-10 18:28:31 IP:220.134.xxx.xxx 未訂閱
將石英震盪器改為11.0592MHz的吧 不然某些鮑率會有傳輸錯誤的問題.
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
trowayui
一般會員


發表:3
回覆:7
積分:2
註冊:2005-05-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-10 19:28:05 IP:218.169.xxx.xxx 未訂閱
嗯嗯~謝謝版主~我等等去買來試試看
trowayui
一般會員


發表:3
回覆:7
積分:2
註冊:2005-05-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-10 23:27:24 IP:218.169.xxx.xxx 未訂閱
但是....我有個地方不懂~~位什麼用12MHZ的震盪~就只有4.8K不會出錯~~我其他頻率都是過~就是只有4.8K可以~~~嘿嘿~在次謝謝大大幫我解答~明天去買11M的震盪就可以實驗看看了

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-11 01:12:40 IP:220.134.xxx.xxx 未訂閱
依你的Timer模式與UART模式, 鮑率計算如下: 鮑率=振盪頻率/[384x(256-TH1)] 當振盪頻率=11.0592 MHz時可以清楚由鮑率須求算出TH1 當振盪頻率=12.0 MHz, TH1=0xFA(250), 實際鮑率應為5208 bps 其他的值你可以依公式算算,都不會是剛好2400 bps, 9600 bps....等 所以PC接收到的都是錯誤的.而設4800 bps時, PC能接收到是因為它在 一定的誤差範圍內可接受, 超過就不行.
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
trowayui
一般會員


發表:3
回覆:7
積分:2
註冊:2005-05-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-07-11 01:37:47 IP:218.169.xxx.xxx 未訂閱
原來是這樣子~~嘿嘿~~都怪我上課不認真~~現在要做專題~問題一大堆~~ 謝謝大大熱心幫助~^^~ 對了~我89C61是用6CLK/CYCLE~所以公式應該用 鮑率=振盪頻率/[192x(256-TH1)]~但是道理都是如大大所說的那樣^^
trowayui
一般會員


發表:3
回覆:7
積分:2
註冊:2005-05-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-07-11 12:04:02 IP:218.169.xxx.xxx 未訂閱
哈哈~真的是這樣耶~~換成11.059M的震盪就可以用了~~太感謝大大了^^
系統時間:2024-05-04 9:09:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!