广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 20996 个阅读者
 
<< 上页  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.103737 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言