廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 20993 個閱讀者
 
<< 上頁  1   2   3  >>(共 3 頁)
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
ken0127
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用ken0127於2007-03-16 00:09發表的 :
那如果我在HEX後自行加入一個結束字元呢?
因為以我的流程來寫的話
若是以0X01來判斷結尾的話
好像行不通
因為有些行程式開頭是0X01開頭...
.......

我好像想錯了= =
但0X01是CTRL + A
每個HEX結尾都是這個?


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

書上有 EA 接地但是 PSEN 空接, 在 51 的 Datasheet 應該不允許啊!?
倒是我剛剛抓了 INTEL 8051 MANUAL 來看, 發現我之前有地方沒說對.
In the 8K byte ROM devices, EA = Vcc selects addresses
0000H through 1FFFH to be internal, and addresses
2000H through FFFFH to be external.
所以 52 的前 8K 都是內部, 大於 8K 會自動到外部ROM, 但還是要靠 PSEN 來讀取程式空間.

你的 inchar 不就把 RI 清為 0 了嗎?
還有第一個 while 應該改成 while (1), 不然如果 CheckSum 為 1A 那就結束了

我說的是判別檢查碼而不是第一個字元
你也可以在PC讀完最後一個byte後送 0x1A 給 51
這樣你下面的程式就可以正常
  while (1)  
  {
REload:      
    inchar();
    if( getChar != 0x3a )
        goto REload;
    else if( getChar == 0x1a) goto Done;


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

下面是引用cmovies於2007-03-16 00:20發表的 :
書上有 EA 接地但是 PSEN 空接, 在 51 的 Datasheet 應該不允許啊!?
倒是我剛剛抓了 INTEL 8051 MANUAL 來看, 發現我之前有地方沒說對.
In the 8K byte ROM devices, EA = Vcc selects addresses
0000H through 1FFFH to be internal, and addresses
2000H through FFFFH to be external.
.......

那依我所需要的接法的話
EA腳接地
那PSEN接到?

而在程式全部讀入SRAM後
再手動RESET 8051
就大功告成囉?


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

如果你的SRAM想要在位址 0 的地方, 那麼你就需要幾個部分:
1. PSEN 跟 RD 做 AND 後接到 SRAM 的 OE
2. 做個開關可以控制 EA 接 High 或 Low
因此當你下載完程式後將EA開關接到 Low, 然後 Reset 應該就可以了

如果你的SRAM的位址在 8K 以上的話, 那麼
1. PSEN 跟 RD 做 AND 後接到 SRAM 的 OE
2. 所有從 HEX 來的位址必須要加上 Offset (就是SRAM的起始位址)
3. HEX 檔的程式最好用組合語言寫, 不然就是要熟悉 KEIL, 知道如何修改Offset及STARTUP
4. 最好不要用中斷, 如果要用的話 Loader 要當成跳板
當你下載完後可以自動進入SRAM的程式

如果你的 SRAM 不要讀取的話, 那麼可以直接將 PSEN 接到 OE 就好不需要 RD


獻花 x0 回到頂端 [23 樓] From:臺灣中華電信HINET | Posted:2007-03-16 00:49 |

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