廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 21021 個閱讀者
 
<<   1   2   3  下頁 >>(共 3 頁)
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
ken0127
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[C/C++][求助] 急!有關8051接收rs232傳輸的問題(keil c)
之前有上來問loader的問題
但現在卡在rs232傳輸的部份
程式主要的功能是由pc端傳送數字
使七段顯示器亮出所輸入的數字
但這樣子寫…不知道是程式的錯誤還是vb的部分有誤

電路應該是沒有錯
看了許多本書的接法都一樣
在電腦的com1部份也將鮑率設為9600
八位元
請各位大大看看我是哪個地方有誤

vb的程式碼我貼在下面

Option Explicit
Dim ComOpen As Boolean
Private Sub CmdSend_Click()
'判斷串列埠是否開啟
If ComOpen = False Then
OpenCom
End If
'傳輸字串
MSComm1.Output = Chr(Text1.Text)
End Sub
..

訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容




獻花 x0 回到頂端 [樓 主] From:未知地址 | Posted:2007-03-15 14:39 |
cmovies
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x20
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

有什麼問題? 都不會亮還是亮的位置有問題?
你應該做一些簡單的自我測試.
  ; 自我測試顯示 0 - 9
  for (i = 0; i < 10; i++)
  {
    P1 = seven_seg;
    delay10ms(100);  
  }
  P1 = 0x00; // turn off 7 segment led
  while(1)
    ...

接收顯示的部分看起來沒問題, 只要有收到資料應該會顯示(除非資料大於 10)

VB 傳送看起來也可以用, 只要 Text1 輸入 0 - 9 應該就會顯示

所以你應該檢查一下真的有收到 PC 送來的資料嗎?


獻花 x0 回到頂端 [1 樓] From:臺灣中華電信HINET | Posted:2007-03-15 16:52 |
ken0127
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

七段顯示器的部份
有做過就是單純的一直計數
是ok的

但我不知道要怎麼確定pc端是否真的有送訊號過來


獻花 x0 回到頂端 [2 樓] From:未知地址 | Posted:2007-03-15 17:29 |
ken0127
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

圖 1. 電路圖   
電路圖



我剛測試了
對於我在pc端傳送資料有反應
但七段顯示器上面的出現是亂碼......

我rs232的線是在3c買的,一公一母
老師說要跳線
也就是2 、3 腳對換
這是對的嗎??
因為我們老師只會出一張嘴而已....

我附上我的電路圖

另存新檔回去是正常大小


[ 此文章被ken0127在2007-03-15 18:22重新編輯 ]


獻花 x0 回到頂端 [3 樓] From:未知地址 | Posted:2007-03-15 17:51 |
cmovies
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x20
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

一般的確只要 2, 3 (TX/RX) 腳對換就可以了. 其他的 DTR/DSR, RTS/CTS 沒用到就不用管了.

七段顯示器會顯示亂碼代表收到的資料大於 9, 或是七段顯示有問題?
如果你測試過目前硬體七段顯示數字都正常的話那就是收到的數字錯了
你可以用回送的方式來證明是否資料接收正確
buf = SBUF;
SBUF = buf; // 回送資料

為什麼要把 3, 7, 8 接在一起, 一般都是 7, 8 接在一起, 3 (TX) 獨立???


獻花 x0 回到頂端 [4 樓] From:臺灣中華電信HINET | Posted:2007-03-15 18:23 |
cmovies
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x20
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

剛剛看到線路圖, 這跟你的 seven_seg 定義的剛好顛倒!
例如: 0 = 3Fh -> a, b, c, d, e, f 這幾段亮才對, 你的 a - g, dot 應該是 p1.0 - p1.7 這個順序


獻花 x0 回到頂端 [5 樓] From:臺灣中華電信HINET | Posted:2007-03-15 18:39 |
ken0127
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

圖 1.



我的電路圖上的七段的部份忘了改
接法是跟您說的一樣
不過因為我是接port 1
所以我把電阻拆了
而rs232接的地方也已經將2、3 腳獨立,7、8腳連接起來
而我把程式碼加入了您說的這段
buf = SBUF;
SBUF = buf; // 回送資料

我用了站上大大po過一一篇文章
http://bbs-mychat.com/read.php?tid=408813&keyword=rs232
裡面的RS232 通訊測試軟體
來測試傳輸
結果是有回傳回來
但是數值是不一樣的
而且七段顯示器也沒有亮
若是慢慢按
則是沒有回傳東西
若是按快一點則會回傳奇怪的數值
只有在壓的非常快,連點
就會回傳正常的數值了
但是七段顯示器還是一樣不會亮~

雖然我這樣描述可能很怪…但他動作就是這樣.....

另外,在pc端發送時
我將結束位元設為1位元
那這結束位元是會自動判斷還是說需要程式來判斷呢?


[ 此文章被ken0127在2007-03-15 20:15重新編輯 ]


獻花 x0 回到頂端 [6 樓] From:未知地址 | Posted:2007-03-15 20:00 |
cmovies
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x20
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

你用共陰還是共陽的七段顯示器? 你應該先確定七段是否正常

回傳的資料跟送的不一樣最大的可能就是速率不同或是硬體出問題?
我看了一下 MAX232 的資料, pin 2 好像是接電容到地而已吧!?
pin 16 Vcc, pin 15 Gnd 應該有接吧!?


獻花 x0 回到頂端 [7 樓] From:臺灣中華電信HINET | Posted:2007-03-15 20:32 |
ken0127
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

因為我是把MAX232的接法當作跟ICL232一樣
書上把ICL232的PIN 2接電容後接VCC,
而PIN 15接地,PIN 16接VCC都有接
就跟我的電路圖上的一樣接法
剛查了一下…
http://203.84.199.31/search/cache?p=MAX232&ei=UTF-8&fr=fp-tab-web-t&vst=0&vs=blog.xuite.net&u=blog.xuite.net/thomas1112/mcu/4490296&w=max232&d=FEVGdRIeOR4K&icp=1&.intl=tw
這個BLOG寫的跟大大說的一樣…我來試試!


獻花 x0 回到頂端 [8 樓] From:未知地址 | Posted:2007-03-15 20:40 |
cmovies
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x20
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

不過我覺得問題不一定是這個, 有可能是BaudRate不同的關係比較大.
你也可以由硬體主動送資料給PC來確定PC是否可以收到正確的資料.

while (1)
{
TI = 0;
SBUF = Ɔ' 看 PC 可不可以收到 Ɔ'
while (!TI) ;
delay10ms(100);
}


獻花 x0 回到頂端 [9 樓] From:臺灣中華電信HINET | Posted:2007-03-15 20:47 |

<<   1   2   3  下頁 >>(共 3 頁)
首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.110834 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言