因为STC的单片机的EEPROM不是真正的EEPROM,它是拿程序储存器用IAP技术分出来的,它的实质是flash。Flash只能把1写0,把1写1。不能把0写1。只有擦除才能把0写成1。所以在写入前最好先擦除。其实如果原来的数据是0xf0,你写0x10是不用擦除的。因为0xf0(1111 0000)到0x10(0001 0000)的过程中只有写0动作。但是你写成0x11(0001 0001)就不行了,因为在最低位有个把0写1的动作。所以为了代码简便(省去判断数据的代码),就规定写入前必须擦除。另外补充一下,Flash全名叫Flash EEPROM Memory,所以也不能说STC是假的EEPROM,只是STC模糊了这个概念当卖点多赚钱。
首先,不知道楼主用的是什么单片机,估计是C51,因为使用最广泛。
其次,不知道楼主用那个厂家的,如果第一条成立,那么只有Atmel根STC两种可能,因为这两种最好买到。
再次,楼主肯定是做实验用的,所以不可能是OTP。
最后,如果楼主单片机是STC的,建议查找以下原因:
1波特率是否合适?
2单片机之前的程序是否加了写保护?
3下载程序是否点了P0_0(P0_1)为低电平时才能写入。
4写入顺序是否合理,下载软件先点下载,在给单片机通电。
5如果都不行,请换一块单片机试试。
6如果还不行,请追问,如果可以,请点采纳。
STC8H28的程序存储区可以通过以下步骤进行设置:
1 打开STC-ISP软件,连接STC8H28芯片。
2 选择“高级”菜单,点击“选项设置”。
3 在“选项设置”中,选择“程序存储器”,根据实际需要选择存储器的起始地址和结束地址,一般情况下程序存储器的起始地址为0,结束地址为芯片的最大存储地址。
4 点击“确定”按钮,保存设置。
5 在编写程序时,需要将程序存储在设置的存储器范围内,否则将无法正常运行。
需要注意的是,STC8H28的程序存储器是Flash存储器,具有擦除和编程次数的限制,因此在程序开发过程中需要注意擦除和编程的次数,避免过度使用导致存储器损坏。
你说的情况有多种可能性: 1、单片机的最小系统也许就没工作 2、你的232接口电路有问题 3、USB转232的线有问题,能正常收发,不一定能下载,STC单片机对有的转换线不支持 4、建议先换一根转换线,进而一步步的排查单片机的故障
win7系统,STC89C52单片机,用ISP
V483下载,以前一直很好用的,今天突然不能烧程序了,是这样的,一、接上单片机后第一次烧程序,会提示:
Chinese:正在尝试与
MCU/单片机
握手连接
Chinese:连接失败,请尝试以下 *** 作:
1在单片机停电状态下,点下载按钮,再给单片机上电
2停止下载,重新选择
RS-232
串口,
接好电缆
3可能需要先将
P10/P11
短接到地
4可能外部时钟未接
5因
PLCC、PQFP
转换座引线过长而引起时钟不振荡,请
调整参数
6可能要升级电脑端的
STC-ISPexe
软件
7若仍然不成功,可能
MCU/单片机内无
ISP
系统引导码,
或需退回升级,或
MCU
已损坏
8若使用
USB
转
RS-232
串口线下载,可能会遇到不兼容
的问题,可以让我们帮助购买兼容的
USB
转
RS-232
串口线
仍在连接中,
请给
MCU
上电
其中我已经给单片机冷启动了但是不管用;二、重新再烧程序的时候会提示:
Chinese:正在尝试与
MCU/单片机
握手连接
打开串口失败!Chinese:串口已被其它程序打开或该串口不存在。
之后烧程序会一直重复情况二;如果关了重新打开ISP软件的话就会重复情况一,然后是二;
补充:ISP软件的设置没有问题,单片机型号和COM口都仔细校对过,而且刚用这个单片机和下载线在别人的电脑上试也没有问题,可以烧进程序,那我这是个什么情况呢?希望大家帮帮忙
以上就是关于STC89C52自带的EEPROM为什么需要擦除呢直接写入时,就把原来的数据覆盖了呀全部的内容,包括:STC89C52自带的EEPROM为什么需要擦除呢直接写入时,就把原来的数据覆盖了呀、烧入单片机的程序无法擦除,不管写什么程序都无法覆盖,怎么办、stc8h28的程序存储区怎么设置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)