如何将c8051f单片机内数据以串口方式发送出去

2019-07-15 19:22发布

想以c8051f作为转换芯片做一个USB转串口的下载器,但是不知道怎么将下载到c8051f的程序用串口的形式发给STC51单片机
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
913688247
2019-07-16 01:12
在内存外存(用dptr来访问,内存不够大)中定义一512字节的数组,pc机给你发数据一次发51个,都存入这个数组,收到pc机512个字节的数据后向pc机请求暂停发送,然后把这512个自己写入flash的扇区中,写入完成后,把在内存的数组和已经写入flash的数据做一次比较,如果有不一样的,重新把数组的数据写入flash,在写入的过程中要关闭中断。每写入一字节的数据后让单片机做几次空操作,保证可靠性。去新华龙网站技术交流区看看。我做过c8051向flash写入数值,比较少,就几个,但是思路是一样的。pc机和单片机之间的协议可以双方互相约定。比如,在内存外存(用dptr来访问,内存不够大)中定义一512字节的数组,pc机给你发数据一次发512个,都存入这个数组,收到pc机512个字节的数据后向pc机请求暂停发送,然后把这512个自己写入flash的扇区中,写入完成后,向pc机请求下一个512字节的数据,依次循环,直至完成所有的数据写入。想flash写入数据,要先规划数据区,然后在keil中把自己的程序定位在数据区之外,c8051的flash是512字节一个扇区,写数据时要先擦除一个扇区,然后再写入,一个扇区至多写512字节的数据,这个扇区写完了后 要擦除下一个扇区,再进行同样的工作,总的完了后要把相应的寄存器关闭,这时芯片中内存的指向就不是flash而是ram了。大体就是这样,你可以看看c8051的引用笔记,以前这些资料都是公开的,现在新华龙只向买它们产品的人提供,多在网上找找,结合c8051的引用笔记加例程,不难。 去新华龙网站 技术交流区有 “C8051F020中Flash存储器的在线擦写方法 ” 注册一个用户,可以下载,如果需要f020芯片的中文资料,可以在网上找,也可以找我。 f020可以在线擦除可执行的程序,因为它还有一段引导区,这一个我不是很清楚,你可以参看020的应用笔记。

一周热门 更多>