• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::


Browsing this Thread:   1 Anonymous Users




(1) 2 »


Re: 透過 RS232 向 PIC16F877A 收發資料有問題
#17
版主
版主


查看用戶資訊
抱歉,中國 Third-Party 做的版子,我這裡沒有資料所以不知道 S1 是做什麼用的。
台灣 RTC 所上的基本為處理課程都是以 APP001 為基礎,可以的話換一片,你應該有折價卷可以用 NT$1500 買到。

發表於: 2008/1/18 15:01
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 透過 RS232 向 PIC16F877A 收發資料有問題
#16
新會員
新會員


查看用戶資訊
是公司從大陸 http://www.pic16.com/ 訂購回來的實驗板+ICD2,在下也不懂為何要從大陸訂購回來,而不直接在台灣買就好

發表於: 2008/1/18 14:16
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 透過 RS232 向 PIC16F877A 收發資料有問題
#15
版主
版主


查看用戶資訊
S1 ??? 你是用哪一家的版子? APP001 沒有 S1 的零件編號。

發表於: 2008/1/18 13:54
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 透過 RS232 向 PIC16F877A 收發資料有問題
#14
新會員
新會員


查看用戶資訊
找到了,上面寫著 4.000M,看來是 4M 沒錯了,非常謝謝。

另外問題二也解決了,主要是因為在下沒有將 S1 全調成 OFF,會知道要這樣調,是因為有在別的範例程式上偶然發現的,不過還是不太了解為何要這樣調,說明書上是寫:「由 S1 控制接在實驗板上的 RC0~RC7,要實驗 LED 時須將 S1 相對位置設為 ON」,這不是用來控制 LED 是否作用而已?

發表於: 2008/1/18 10:49
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 透過 RS232 向 PIC16F877A 收發資料有問題
#13
中級會員
中級會員


查看用戶資訊
你好!

使用 PIC16F877A 的話! 時脈速度可以察看振盪器的數值來得知.
查看連接於IC的 OSC1 (PIN 13)、OSC2 (PIN 14)之振盪器.
如果數值是 4.000 或 4000000 便可以確定為 4 MHz的時脈了.
想要改變時脈速度, 於PIC16F877A只有更換振盪器的方法了,
購買所希望使用之速度的振盪器更換上去, 再調整燒錄設定位元中的振盪模式就可以了.
(大致上 4~12 MHz 選擇為 XT模式, 12~20 MHz選擇為 HS模式)

致於你貼上來的程式, 我猜想它像是沒有接收的原因是...
RCIF 未被清除, 導致不斷的在提取 RCREG,
而這時候RCREG並無接收到的數值, 所以數值為 0.
以下為提供給你的修改...

#include <pic.h>

void main()
{
    
unsigned char ReceiveChar;

    
SPBRG 25;
    
SPEN 1;
    
BRGH 1;    
    
TXEN 1;
    
CREN 1;
    
SYNC 0;
    
RCIF 0;  // clear receive flag on start

    
while (1)
    {
        if (
RCIF == 1)    // if RCREG is not empty
        
{
            
ReceiveChar RCREG//move the character to a variable
            
RCIF 0// clear receive flag after get the receive character
            
if (TXIF == 1// if TXREG is empty
            
{
                
TXREG ReceiveChar// send the same character to PC
                // TXREG = 'A';
            
}
        }
    }
}

發表於: 2008/1/18 9:28
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 透過 RS232 向 PIC16F877A 收發資料有問題
#12
新會員
新會員


查看用戶資訊
在下已經能夠讓 PIC 傳送固定字元到 PC 上了,之前是因為在下設錯 SPBRG = 130,改成 SPBRG = 25 就沒問題了,因為在下一直以為 PIC 上的時脈為 20M,後來經過一陣亂試才知道是 4M,想請問要如何得知 PIC 的時脈呢? 或是有地方可以設定的

另外一個問題就是雖然在下可以讓 PIC 傳送固定字元到 PC 上了,但在下想試著讓 PIC 可以接收並回傳 PC 傳送過去的字元,結果一樣只能回傳 '.' (Hex=00),這應該不是 Baud-Rate 的問題了,從 Watch 上來看,感覺 RCREG 都沒接收到字元,因為值都沒變,請問是不是有哪邊搞錯了呢?

程式碼:
#include <pic.h>

void main()
{
    
unsigned char ReceiveChar;

    
SPBRG 25;
    
SPEN 1;
    
BRGH 1;    
    
TXEN 1;
    
CREN 1;
    
SYNC 0;

    while (
1)
    {
        if (
RCIF == 1)    // if RCREG is not empty
        
{
            
ReceiveChar RCREG//move the character to a variable
            
if (TXIF == 1// if TXREG is empty
            
{
                
TXREG ReceiveChar// send the same character to PC
                // TXREG = 'A';
            
}
        }
    }
}

發表於: 2008/1/17 17:13
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 透過 RS232 向 PIC16F877A 收發資料有問題
#11
版主
版主


查看用戶資訊
RC6 ==> TxD , RC7 ==> RxD
RC6 & RC7 短路的話是屬於 Look-Back Mode 自發自收模式,這跟你使用 RS-232 接出去是不一樣的。

發表於: 2008/1/17 14:32
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 透過 RS232 向 PIC16F877A 收發資料有問題
#10
新會員
新會員


查看用戶資訊
在下有在網路上找到一篇文章:
http://blog.sina.com.cn/s/blog_54da57aa01000883.html

當中有提到「原來是RC6,RC7需要跳線」,請問這是要怎麼做呢? 將 RC6、RC7 短路嗎?

在下用的實驗板是從中國買來的,MCD DEMO REV:A3,公司當初就丟這板子給我,我也不懂為何要從中國買...

發表於: 2008/1/17 14:22
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 透過 RS232 向 PIC16F877A 收發資料有問題
#9
新會員
新會員


查看用戶資訊
UART 的通訊大致了解,但還是不懂在下的程式為何無法正常運作,在網路上找了幾個程式碼,不管是 C or ASM,結果都是一樣,只會回傳一個 Hex 為 00 的值

有沒有好心的板友可以幫忙測試一下在下的程式在其他電腦上是否也是有同樣的情況,謝謝

發表於: 2008/1/17 10:27
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 透過 RS232 向 PIC16F877A 收發資料有問題
#8
版主
版主


查看用戶資訊
如果今天有上 W400 的課,認真一點上到練習四你就會了解 UART 的通訊了。

發表於: 2008/1/16 9:34
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------