补充说明:
使用下面的方法,你需要的硬件是,带max232转换电路的实验板,一条串口电缆,当然还有带串口的pc。仅此而已!
-------------------------------------
如果,你也像我一样,正在学习51单片机;
如果,你也经常要做一些实验。如果,你做实验总是用89c5x、89s5x;
如果,你每次写完程序,编译好hex,都要用编程器烧进芯片;
如果,你还没有编程器,但也想做51单片机实验;
那么,你用sst系列的芯片吧。
sst的51系列单片机,和普通的51单片机最大的区别在于,它有一个iap功能,即“在应用编程”。先别头晕,本来就是初学,不是让你去学那些复杂的功能使用。我们是只用这个iap功能,来把你写的程序,装入芯片。非常简单,请看下去。
先粗略地说一下,sst单片机内部的特殊结构。
sst系列单片机,内部的程序存储器,是flash工艺的,分为两个区块,block1和block0。这两个区域,在程序运行时,满足特定的条件后,可以改写。暂时可以这样理解,block1,不去管它,block0,就是你要用的程序存储器。
在block1中,出厂时,厂家在里面装了一个iap功能的示例。单片机复位启动后,会在非常短的时间内,检查串口是否有特定的通信,如果没有,单片机会自动切换到block0的0000h开始正常的启动(0000h开始,是你写的程序)。
了解了以上内容,就足够了,现在准备硬件。如果你已经有一块实验板,买的或者自制的,并且上面已经接好了max232串口电平转换电路,那么就可以开始了。就如果你还没有,那么就自己搭一个,把串口接好max232电平转换电路。这个接线的图,网上非常的多,随便找一下就能找到,这里就不帖了。
然后,你需要一个pc端软件,直接点击下面地址进行下载
http://www.sst.com/products/software_utils/bsl/ssteasyiap11f.exe做实验时,如果需要编程,那么先把你的板子和pc的串口接好。
1、然后运行这个软件,在“detectchip/rs232”中,按最上面一项“detect target mcu for firmware1.1f and rs232 config”。
2、在弹出的窗口中,上面选择好你使用的芯片型号,比如我用的是sst89e564rd,就选择“sst89e/v564rd”。
3、下面部分,一般不用改动,选上面的“internal memory(ea#=1)”就行。然后按“ok”,选择你pc连接实验板的端口,我的是com1,就选“com1”。后面的速率,不用改,用“38400”就可以工作。
4、下面输入你实验板的实际晶振频率,如果正好用的是11.0592的,就不用改了,默认就是这个频率。
5、再下面一个速率,不用改动,和你上面选择的相同即可。
6、现在按“detect mcu”,弹出一个小窗口,按“确定”。
7、这时马上复位你的实验板cpu(推荐复位脚上接个轻触开关,如果有没开关,那么重新断电开电也可以)。这时,窗口的右侧应该显示出你芯片的型号、内部存储器容量等信息。如果没显示出来,那么你需要检查你的硬件是否有问题,电缆是否接得正确、良好,之前的端口、速率选择是否正确。
右侧显示出信息后,你按窗口右下角的“dnload/run usercode”,弹出的窗口中,按“file name”后面的“...”浏览按钮,选择你编译好的hex文件。“starting”里的东西不要改,默认的“sector 000 addr=0000 ”就可以。然后按ok,会弹出一个芯片内的数据将被擦除的警告,按“是”。在进度条快速闪过以后,你会发现,你编写的程序已经在运行了。
恭喜,你已经完成了!
至于刚才写入的数据,是不怕断电的。你重新启动你的实验板,发现它运行的还是你上次写入的程序。
写程序时,不用选择sst89e564rd的头文件,直接用你打算使用的芯片头文件reg51.h,或者是52,2051都可以。你就当芯片是89c51、89c52就可以了,没任何不同
然后,你可以一遍一遍的修改你的程序,来完成你的设想要求。每次修改完,都用上面的步骤进行芯片编程即可。你会发现,比使用编程器来烧芯片,方便多了,连芯片插拨都免去了
另外,在搞清楚easyiap软件的功能之前,不要乱选,你很可能意外锁定芯片或者把iap引导程序删除。如果不幸锁定或删除了,就只能通过用编程器来写入iap代码进行恢复了。